[
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\nindent_style = space\nindent_size = 4\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.md]\ntrim_trailing_whitespace = false\n\n[package.json]\nindent_size = 2\n"
  },
  {
    "path": ".eslintignore",
    "content": "/test/coverage\n/dev\n/cli.js\n"
  },
  {
    "path": ".eslintrc.json",
    "content": "{\n    \"root\": true,\n    \"extends\": [\n        \"eslint-config-moxy/es8\",\n        \"eslint-config-moxy/addons/node\"\n    ],\n    \"globals\": {\n        \"logger\": false\n    }\n}\n"
  },
  {
    "path": ".gitignore",
    "content": "node_modules\nnpm-debug.*\n\n/config/local.*\n/test/coverage\n/test/tmp\n/test/fixtures/**/downloaded\n/dev\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: node_js\nnode_js:\n  - node\n  - lts/*\nscript: \"npm run test-travis\"\nbefore_install:\n  - sudo apt-get install -y bsdtar\nafter_success:\n  - \"npm i codecov\"\n  - \"node_modules/.bin/codecov\"\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2016 npms\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# npms-analyzer\n\n[![Build status][travis-image]][travis-url] [![Coverage status][codecov-image]][codecov-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev dependency status][david-dm-dev-image]][david-dm-dev-url]\n\nThe npms-analyzer analyzes the npm ecosystem, collecting info, evaluating and scoring each package.\n\n\n## Usage\n\nThis project offers all its functionality through a CLI.\n\n![Demo](https://i.imgur.com/nz9CzVR.gif)\n*(output might be outdated)*\n\nNote that you must [setup](./docs/setup.md) the project before using the CLI. The most important commands will be described below. To discover the other ones run `$ npms-analyzer -h`.\n\n### npms-analyzer observe\n\nThe `observe` command starts observing changes that occur in the `npm` registry as well as packages that were not analyzed for a while. Each reported package will be pushed into a queue to be processed by the queue consumers.\n\n```bash\n$ npms-analyzer observe --log-level debug | pino\n```\n\nFor more information about the command, run `$ npms-analyzer observe -h`\n\n### npms-analyzer consume\n\nThe `consume` command starts consuming the queue, running the analysis process for each queued package.\n\n```bash\n$ npms-analyzer consume --log-level debug --concurrency 5 | pino\n```\n\nFor more information about the command, run `$ npms-analyzer consume -h`\n\n### npms-analyzer scoring\n\nThe `scoring` command, continuously iterates over the analysis results and calculates a score for all the `npm` packages, storing its result in `elasticsearch`.\n\n```bash\n$ npms-analyzer scoring\n```\n\nFor more information about the command, run `$ npms-analyzer scoring -h`\n\n\n## Architecture\n\nThere's a separate document that explains the architecture, you may read it [here](./docs/architecture.md).\n\n\n## Setup\n\nThere's a separate document that explains the setup procedure, you may read it [here](./docs/setup.md).\n\n\n## Deploys\n\nThere's a separate document that explains the deployment procedure, you may read it [here](./docs/deploys.md).\n\n\n## Tests\n\nBefore running the tests, you must have read through the setup guide.\n\n```bash\n$ npm test\n$ npm test-cov # to get coverage report\n```\n\n[codecov-url]:https://codecov.io/gh/npms-io/npms-analyzer\n[codecov-image]:https://img.shields.io/codecov/c/github/npms-io/npms-analyzer/master.svg\n[david-dm-dev-image]: https://img.shields.io/david/dev/npms-io/npms-analyzer.svg\n[david-dm-dev-url]: https://david-dm.org/npms-io/npms-analyzer#info=devDependencies\n[david-dm-image]: https://img.shields.io/david/npms-io/npms-analyzer.svg\n[david-dm-url]: https://david-dm.org/npms-io/npms-analyzer\n[travis-image]: http://img.shields.io/travis/npms-io/npms-analyzer/master.svg\n[travis-url]: https://travis-ci.org/npms-io/npms-analyzer\n"
  },
  {
    "path": "cli.js",
    "content": "#!/bin/sh\n':' //; exec \"$(command -v node)\" --max-old-space-size=4192  \"$0\" \"$@\"\n\n'use strict';\n\n// require('heapdump');\nrequire('./lib/configure');\n\nconst yargs = require('yargs');\n\nyargs\n.strict()\n.wrap(Math.min(120, yargs.terminalWidth()))\n.version()\n.alias('version', 'v')\n.help()\n.alias('help', 'h')\n.usage('npms-analyzer command line, choose one of the available commands.\\n\\nUsage: $0 <command> .. [options]')\n\n.option('log-level', {\n    type: 'string',\n    alias: 'll',\n    choices: ['fatal', 'error', 'warn', 'info', 'debug', 'trace'],\n    describe: 'The log level to use',\n    global: true,\n})\n\n.commandDir('./cmd')\n.demandCommand(1, 'Please supply a valid command')\n\n.argv;\n"
  },
  {
    "path": "cmd/consume.js",
    "content": "'use strict';\n\nconst assert = require('assert');\nconst config = require('config');\nconst analyze = require('../lib/analyze');\nconst score = require('../lib/scoring/score');\nconst bootstrap = require('./util/bootstrap');\nconst stats = require('./util/stats');\n\n// Need JSON.parse & JSON stringify because of config reserved words\n// See: https://github.com/lorenwest/node-config/issues/223\nconst blacklist = JSON.parse(JSON.stringify(config.get('blacklist')));\nconst githubTokens = config.get('githubTokens');\nconst log = logger.child({ module: 'cli/consume' });\n\n/**\n * Handles a message.\n *\n * @param {Object}  msg      - The message.\n * @param {Nano}    npmNano  - The npm nano instance.\n * @param {Nano}    npmsNano - The npms nano instance.\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} A promise that fulfills when consumed.\n */\nfunction onMessage(msg, npmNano, npmsNano, esClient) {\n    const name = msg.data;\n\n    // Check if this package is blacklisted\n    const blacklisted = blacklist[name];\n\n    if (blacklisted) {\n        const err = Object.assign(new Error(`Package ${name} is blacklisted`), { code: 'BLACKLISTED', unrecoverable: true });\n\n        return onFailedAnalysis(name, err, npmsNano, esClient)\n        .catch(() => {});\n    }\n\n    log.info(`Processing package ${name}`);\n\n    // Check if the package has been analyzed after it has been pushed to the queue\n    return analyze.get(name, npmsNano)\n    .catch({ code: 'ANALYSIS_NOT_FOUND' }, () => {})\n    .then((analysis) => {\n        if (analysis && Date.parse(analysis.startedAt) >= Date.parse(msg.pushedAt)) {\n            log.info(`Skipping analysis of ${name} because it was already analyzed meanwhile`);\n\n            return;\n        }\n\n        // If not, analyze it! :D\n        return analyze(name, npmNano, npmsNano, {\n            githubTokens,\n            waitRateLimit: true,\n            rev: analysis && analysis._rev,\n        })\n        // Score it to get a \"real-time\" feeling, ignoring any errors\n        .then((analysis) => score(analysis, npmsNano, esClient).catch(() => {}))\n        .catch({ code: 'PACKAGE_NOT_FOUND' }, () => score.remove(name, esClient))\n        // Ignore unrecoverable errors, so that these are not re-queued\n        .catch({ unrecoverable: true }, (err) => (\n            onFailedAnalysis(name, err, npmsNano, esClient)\n            .catch(() => {})\n        ));\n    });\n}\n\nfunction onFailedAnalysis(name, err, npmsNano, esClient) {\n    // Save the failed analysis, by generating an empty analysis object with the associated error\n    return analyze.saveFailed(name, err, npmsNano)\n    // Score it to get a \"real-time\" feeling, ignoring any errors\n    .then((analysis) => score(analysis, npmsNano, esClient).catch(() => {}));\n}\n\n// ----------------------------------------------------------------------------\n\nexports.command = 'consume [options]';\nexports.describe = 'Starts observing module changes and pushes them into the queue';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 consume [options]\\n\\n\\\nConsumes packages that are queued, triggering the analysis process for each package.')\n\n    .default('log-level', 'error')\n\n    .option('concurrency', {\n        type: 'number',\n        default: 5,\n        alias: 'c',\n        describe: 'Number of packages to consume concurrently',\n    })\n\n    .check((argv) => {\n        assert(argv.concurrency > 0, 'Invalid argument: --concurrency must be a number greater than 0');\n\n        return true;\n    });\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-consume';\n    logger.level = argv.logLevel || 'error';\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpm', 'couchdbNpms', 'queue', 'elasticsearch'], { wait: true })\n    .spread((npmNano, npmsNano, queue, esClient) => {\n        // Stats\n        stats.process();\n        stats.queue(queue);\n        stats.progress(npmNano, npmsNano);\n        stats.tokens(githubTokens, 'github');\n\n        // Clean old packages from the download directory\n        return analyze.cleanTmpDir()\n        // Start consuming\n        .then(() => (\n            queue.consume((message) => onMessage(message, npmNano, npmsNano, esClient), {\n                concurrency: argv.concurrency,\n                onRetriesExceeded: (message, err) => onFailedAnalysis(message.data, err, npmsNano, esClient),\n            })\n        ));\n    })\n    .done();\n};\n"
  },
  {
    "path": "cmd/observe.js",
    "content": "'use strict';\n\nconst assert = require('assert');\nconst config = require('config');\nconst promiseRetry = require('promise-retry');\nconst realtime = require('../lib/observers/realtime');\nconst stale = require('../lib/observers/stale');\nconst bootstrap = require('./util/bootstrap');\nconst stats = require('./util/stats');\n\nconst log = logger.child({ module: 'cli/observe' });\n\n/**\n * Pushes a package into the queue, retrying several times on error.\n * If all retries are used, there isn't much we can do, therefore the process will gracefully exit.\n *\n * @param {Array}  name     - The package name.\n * @param {Number} priority - The priority to assign to this package when pushing into the queue.\n * @param {Queue}  queue    - The analysis queue instance.\n *\n * @returns {Promise} The promise that fulfills once done.\n */\nfunction onPackage(name, priority, queue) {\n    return promiseRetry((retry) => (\n        queue.push(name, priority)\n        .catch(retry)\n    ))\n    .catch((err) => {\n        log.fatal({ err, name }, 'Too many failed attempts while trying to push the package into the queue, exiting..');\n        process.exit(1);\n    });\n}\n\n// ----------------------------------------------------------------------------\n\nexports.command = 'observe [options]';\nexports.describe = 'Consumes modules from the queue, analyzing them';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 observe [options]\\n\\n\\\nStarts the observing process, enqueueing packages that need to be analyzed into the queue.')\n\n    .default('log-level', 'error')\n\n    .option('default-seq', {\n        type: 'number',\n        default: 0,\n        alias: 'ds',\n        describe: 'The default seq to be used on first run',\n    })\n\n    .check((argv) => {\n        assert(argv.defaultSeq >= 0, 'Invalid argument: --default-seq must be a number greater or equal to 0');\n\n        return true;\n    });\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-observe';\n    logger.level = argv.logLevel || 'error';\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpm', 'couchdbNpms', 'queue'], { wait: true })\n    .spread((npmNano, npmsNano, queue) => {\n        // Stats\n        stats.process();\n        stats.queue(queue);\n\n        // Start observing..\n        config.observers.realtime &&\n            realtime(npmNano, npmsNano, { defaultSeq: argv.defaultSeq }, (name) => onPackage(name, 1, queue));\n        config.observers.stale &&\n            stale(npmsNano, (name) => onPackage(name, 0, queue));\n    })\n    .done();\n};\n"
  },
  {
    "path": "cmd/scoring.js",
    "content": "'use strict';\n\nconst assert = require('assert');\nconst humanizeDuration = require('humanize-duration');\nconst prepare = require('../lib/scoring/prepare');\nconst aggregate = require('../lib/scoring/aggregate');\nconst score = require('../lib/scoring/score');\nconst finalize = require('../lib/scoring/finalize');\nconst bootstrap = require('./util/bootstrap');\nconst stats = require('./util/stats');\n\nconst log = logger.child({ module: 'cli/scoring' });\n\n/**\n * Waits the time needed before running the first cycle.\n *\n * @param {Number}  delay    - The delay between each cycle.\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} The promise to be waited.\n */\nfunction waitRemaining(delay, esClient) {\n    // Need to use Promise.resolve() because Elasticsearch doesn't use the global promise\n    return Promise.resolve(esClient.indices.getAlias({ name: 'npms-current' }))\n    .then((response) => {\n        const index = Object.keys(response)[0];\n        const timestamp = Number(index.replace(/^npms-/, ''));\n        const wait = timestamp ? Math.max(0, timestamp + delay - Date.now()) : 0;\n        const waitStr = humanizeDuration(Math.round(wait / 1000) * 1000, { largest: 2 });\n\n        wait && log.info({ now: (new Date()).toISOString() }, `Waiting ${waitStr} before running the first cycle..`);\n\n        return Promise.delay(wait);\n    })\n    .catch((err) => err.status === 404, () => {});\n}\n\n/**\n * Runs a scoring cycle.\n * When it finishes, another cycle will be automatically run after a certain delay.\n *\n * @param {Number}  delay    - The delay between each cycle.\n * @param {Nano}    npmsNano - The npm nano instance.\n * @param {Elastic} esClient - The Elasticsearch instance.\n */\nfunction cycle(delay, npmsNano, esClient) {\n    const startedAt = Date.now();\n\n    log.info('Starting scoring cycle');\n\n    // Prepare\n    prepare(esClient)\n    // Aggregate + score all packages\n    .tap(() => (\n        aggregate(npmsNano)\n        .then((aggregation) => aggregation && score.all(aggregation, npmsNano, esClient)) // If aggregation is null, there were no evaluations\n    ))\n    // Finalize\n    .then((esInfo) => finalize(esInfo, esClient))\n    // We are done!\n    .then(() => {\n        const durationStr = humanizeDuration(Math.round((Date.now() - startedAt) / 1000) * 1000, { largest: 2 });\n\n        log.info(`Scoring cycle successful, took ${durationStr}`);\n\n        return delay;\n    }, (err) => {\n        log.fatal({ err }, 'Scoring cycle failed');\n\n        return 10 * 60 * 1000;\n    })\n    // Start all over again after a short delay\n    .then((wait) => {\n        const waitStr = humanizeDuration(Math.round(wait / 1000) * 1000, { largest: 2 });\n\n        log.info({ now: (new Date()).toISOString() }, `Waiting ${waitStr} before running the next cycle..`);\n\n        Promise.delay(wait)\n        .then(() => cycle(delay, npmsNano, esClient));\n    })\n    .done();\n}\n\n// ----------------------------------------------------------------------------\n\nexports.command = 'scoring [options]';\nexports.describe = 'Continuously iterate over the analyzed modules, scoring them';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 scoring [options]\\n\\n\\\nContinuously iterate over the analyzed packages, scoring them.')\n\n    .default('log-level', 'error')\n\n    .option('cycle-delay', {\n        type: 'number',\n        default: 3 * 60 * 60 * 1000, // 3 hours\n        alias: 'd',\n        describe: 'The time to wait between each scoring cycle (in ms)',\n    })\n\n    .check((argv) => {\n        assert(argv.cycleDelay >= 0, 'Invalid argument: --cycle-delay must be a number greater or equal to 0');\n\n        return true;\n    });\n\nexports.handler = (argv) => {\n    // Disable long stack traces specifically for this command since we create them in bursts\n    // This improves performance by a great margin\n    Promise.config({ longStackTraces: false });\n\n    process.title = 'npms-analyzer-scoring';\n    logger.level = argv.logLevel || 'error';\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpms', 'elasticsearch'], { wait: true })\n    .spread((npmsNano, esClient) => {\n        // Stats\n        stats.process();\n\n        // Wait for the previous cycle delay if necessary\n        return waitRemaining(argv.cycleDelay, esClient)\n        // Start the continuous process of scoring!\n        .then(() => cycle(argv.cycleDelay, npmsNano, esClient));\n    })\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks/check-gh-tokens.js",
    "content": "'use strict';\n\nconst config = require('config');\nconst got = require('got');\n\nconst githubTokens = config.get('githubTokens');\nconst log = logger.child({ module: 'cli/check-gh-tokens' });\n\nexports.command = 'check-gh-tokens [options]';\nexports.describe = 'Checks the status of each GitHub token';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 check-gh-tokens [options]\\n\\n\\\nChecks the status of each GitHub token.');\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-check-gh-tokens';\n    logger.level = argv.logLevel;\n\n    const valid = [];\n    const invalid = [];\n\n    Promise.map(githubTokens, (token) => (\n        got.get('https://api.github.com/user', {\n            json: true,\n            headers: {\n                accept: 'application/vnd.github.v3+json',\n                authorization: `token ${token}`,\n            },\n        })\n        .then(() => valid.push(token))\n        .catch((err) => err.statusCode === 401 || err.statusCode === 403, (err) => {\n            log.debug({ err }, `Token ${token} seems invalid`);\n            invalid.push(token);\n        })\n    ), { concurrency: 5 })\n    .then(() => {\n        log.info({ valid }, `${valid.length} valid tokens`);\n        invalid.length && log.error({ invalid }, `${invalid.length} invalid tokens`);\n    })\n    .then(() => process.exit(invalid.length ? 1 : 0))\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks/clean-extraneous.js",
    "content": "'use strict';\n\nconst stats = require('../util/stats');\nconst bootstrap = require('../util/bootstrap');\n\nconst log = logger.child({ module: 'cli/clean-extraneous' });\n\n/**\n * Fetches the npm packages.\n *\n * @param {Nano} npmNano - The npm nano instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction fetchNpmPackages(npmNano) {\n    log.info('Fetching npm packages, this might take a while..');\n\n    return npmNano.listAsync()\n    .then((response) => (\n        response.rows\n        .map((row) => row.id)\n        .filter((id) => id.indexOf('_design/') !== 0)\n    ));\n}\n\n/**\n * Fetches the npms packages.\n *\n * @param {Nano} npmsNano - The npms nano instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction fetchNpmsPackages(npmsNano) {\n    log.info('Fetching npms packages, this might take a while..');\n\n    return npmsNano.listAsync({ startkey: 'package!', endkey: 'package!\\ufff0' })\n    .then((response) =>\n        response.rows.map((row) =>\n            row.id\n            .split('!')\n            .slice(1)\n            .join('!')\n        ));\n}\n\n/**\n * Fetches the npms packages.\n *\n * @param {Nano} npmsNano - The npms nano instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction fetchNpmsObservedPackages(npmsNano) {\n    log.info('Fetching npms observed packages, this might take a while..');\n\n    return npmsNano.listAsync({ startkey: 'observer!package!', endkey: 'observer!package!\\ufff0' })\n    .then((response) =>\n        response.rows.map((row) =>\n            row.id\n            .split('!')\n            .slice(2)\n            .join('!')\n        ));\n}\n\n/**\n * Calculates which npms packages are considered extraneous and removes them.\n *\n * @param {Array}   npmPackages  - All npm packages.\n * @param {Array}   npmsPackages - All npms packages.\n * @param {Nano}    npmsNano     - The npms nano instance.\n * @param {Boolean} dryRun       - True to do a dry-run, false otherwise.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction cleanExtraneousNpmsPackages(npmPackages, npmsPackages, npmsNano, dryRun) {\n    log.info(\n        { npmPackagesCount: npmPackages.length, npmsPackagesCount: npmsPackages.length },\n        'Calculating extraneous packages, this might take a while..'\n    );\n\n    const npmPackagesSet = new Set(npmPackages);\n    const extraneousPackages = npmsPackages.filter((name) => !npmPackagesSet.has(name));\n\n    log.info(`There's a total of ${extraneousPackages.length} extraneous packages`);\n    extraneousPackages.forEach((name) => log.debug(name));\n\n    if (!extraneousPackages.length) {\n        return;\n    }\n\n    if (dryRun) {\n        log.info('This is a dry-run, skipping..');\n\n        return;\n    }\n\n    let count = 0;\n\n    return Promise.map(extraneousPackages, (name) => {\n        count += 1;\n        count % 100 === 0 && log.info(`Removed ${count} packages`);\n\n        const key = `package!${name}`;\n\n        return npmsNano.getAsync(key)\n        .then((doc) => npmsNano.destroyAsync(key, doc._rev));\n    }, { concurrency: 15 })\n    .then(() => log.info('Extraneous packages were removed!'));\n}\n\n/**\n * Calculates which npms observed packages are considered extraneous and removes them.\n *\n * @param {Array}   npmPackages          - All npm packages.\n * @param {Array}   npmsObservedPackages - All npms observed packages.\n * @param {Nano}    npmsNano             - The npms nano instance.\n * @param {Boolean} dryRun               - True to do a dry-run, false otherwise.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction cleanExtraneousNpmsObservedPackages(npmPackages, npmsObservedPackages, npmsNano, dryRun) {\n    log.info(\n        { npmPackagesCount: npmPackages.length, npmsObservedPackagesCount: npmsObservedPackages.length },\n        'Calculating extraneous observed packages, this might take a while..'\n    );\n\n    const npmPackagesSet = new Set(npmPackages);\n    const extraneousPackages = npmsObservedPackages.filter((name) => !npmPackagesSet.has(name));\n\n    log.info(`There's a total of ${extraneousPackages.length} extraneous observed packages`);\n    extraneousPackages.forEach((name) => log.debug(name));\n\n    if (!extraneousPackages.length || dryRun) {\n        log.info('This is a dry-run, skipping..');\n\n        return;\n    }\n\n    let count = 0;\n\n    return Promise.map(extraneousPackages, (name) => {\n        count += 1;\n        count % 100 === 0 && log.info(`Removed ${count} observed packages`);\n\n        const key = `observer!package!${name}`;\n\n        return npmsNano.getAsync(key)\n        .then((doc) => npmsNano.destroyAsync(key, doc._rev));\n    }, { concurrency: 15 })\n    .then(() => log.info('Extraneous observed packages were removed!'));\n}\n\n// --------------------------------------------------\n\nexports.command = 'clean-extraneous [options]';\nexports.describe = 'Finds packages that are analyzed but no longer exist in npm';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 tasks clean-extraneous [options]\\n\\n\\\nFinds packages that are analyzed but no longer exist in npm.\\nThis command is useful if operations were lost due to repeated \\\nerrors, e.g.: RabbitMQ or CouchDB were down or unstable.')\n\n    .option('dry-run', {\n        alias: 'dr',\n        type: 'boolean',\n        default: false,\n        describe: 'Enables dry-run',\n    });\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-clean-extraneous';\n    logger.level = argv.logLevel;\n\n    bootstrap(['couchdbNpm', 'couchdbNpms'])\n    .spread((npmNano, npmsNano) => {\n        // Stats\n        stats.process();\n\n        // The strategy below loads all packages in memory.. we can do this because the total packages is around ~250k\n        // which fit well in memory and is much faster than doing manual iteration (~20sec vs ~3min)\n\n        // Fetch npm packages\n        return fetchNpmPackages(npmNano)\n        // Fetch npms packages & clean extraneous\n        .tap((npmPackages) => (\n            fetchNpmsPackages(npmsNano)\n            .then((npmsPackages) => cleanExtraneousNpmsPackages(npmPackages, npmsPackages, npmsNano, argv.dryRun))\n        ))\n        // Fetch npms observed packages & clean extraneous\n        .then((npmPackages) => (\n            fetchNpmsObservedPackages(npmsNano)\n            .then((npmsObservedPackages) => cleanExtraneousNpmsObservedPackages(npmPackages, npmsObservedPackages, npmsNano, argv.dryRun))\n        ));\n    })\n    .then(() => process.exit())\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks/enqueue-missing.js",
    "content": "'use strict';\n\nconst difference = require('lodash/difference');\nconst bootstrap = require('../util/bootstrap');\nconst stats = require('../util/stats');\n\nconst log = logger.child({ module: 'cli/enqueue-missing' });\n\n/**\n * Fetches the npm packages.\n *\n * @param {Nano} npmNano - The npm nano instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction fetchNpmPackages(npmNano) {\n    log.info('Fetching npm packages, this might take a while..');\n\n    return npmNano.listAsync()\n    .then((response) => (\n        response.rows\n        .map((row) => row.id)\n        .filter((id) => id.indexOf('_design/') !== 0)\n    ));\n}\n\n/**\n * Fetches the npms packages.\n *\n * @param {Nano} npmsNano - The npms nano instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction fetchNpmsPackages(npmsNano) {\n    log.info('Fetching npms packages, this might take a while..');\n\n    return npmsNano.listAsync({ startkey: 'package!', endkey: 'package!\\ufff0' })\n    .then((response) => response.rows.map((row) => row.id.split('!')[1]));\n}\n\n/**\n * Calculates which packages are missing and enqueues them.\n *\n * @param {Array}   npmPackages  - All npm packages.\n * @param {Array}   npmsPackages - All npms packages.\n * @param {Queue}   queue        - The analysis queue instance.\n * @param {Boolean} dryRun       - True to do a dry-run, false otherwise.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction enqueueMissingPackages(npmPackages, npmsPackages, queue, dryRun) {\n    const missingPackages = difference(npmPackages, npmsPackages);\n\n    log.info(`There's a total of ${missingPackages.length} missing packages`);\n    missingPackages.forEach((name) => log.debug(name));\n\n    if (!missingPackages.length) {\n        return;\n    }\n\n    if (dryRun) {\n        log.info('This is a dry-run, skipping..');\n\n        return;\n    }\n\n    let count = 0;\n\n    return Promise.map(missingPackages, (name) => {\n        count += 1;\n        count % 1000 === 0 && log.info(`Enqueued ${count} packages`);\n\n        return queue.push(name);\n    }, { concurrency: 15 })\n    .then(() => log.info('Missing packages were enqueued!'));\n}\n\n// --------------------------------------------------\n\nexports.command = 'enqueue-missing [options]';\nexports.describe = 'Finds packages that were not analyzed and enqueues them';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 tasks enqueue-missing [options]\\n\\n\\\nFinds packages that were not analyzed and enqueues them.\\nThis command is useful if packages were lost due to repeated transient \\\nerrors, e.g.: internet connection was lot or GitHub was down.')\n\n    .option('dry-run', {\n        alias: 'dr',\n        type: 'boolean',\n        default: false,\n        describe: 'Enables dry-run',\n    });\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-enqueue-missing';\n    logger.level = argv.logLevel;\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpm', 'couchdbNpms', 'queue'])\n    .spread((npmNano, npmsNano, queue) => {\n        // Stats\n        stats.process();\n\n        // The strategy below loads all packages in memory.. we can do this because the total packages is around ~250k\n        // which fit well in memory and is much faster than doing manual iteration (~20sec vs ~3min)\n\n        return Promise.all([\n            fetchNpmPackages(npmNano),\n            fetchNpmsPackages(npmsNano),\n        ])\n        .spread((npmPackages, npmsPackages) => enqueueMissingPackages(npmPackages, npmsPackages, queue, argv.dryRun));\n    })\n    .then(() => process.exit())\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks/enqueue-outdated.js",
    "content": "'use strict';\n\nconst bootstrap = require('../util/bootstrap');\nconst stats = require('../util/stats');\n\nconst log = logger.child({ module: 'cli/enqueue-outdated' });\n\n/**\n * Fetches the npm packages.\n *\n * @param {Nano} npmNano - The npm nano instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction fetchNpmPackages(npmNano) {\n    log.info('Fetching npm packages, this might take a while..');\n\n    return npmNano.viewAsync('npms-analyzer', 'packages-version')\n    .then((response) => (\n        response.rows\n        .map((row) => ({ name: row.key, version: row.value }))\n    ));\n}\n\n/**\n * Fetches the npms packages.\n *\n * @param {Nano} npmsNano - The npms nano instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction fetchNpmsPackages(npmsNano) {\n    log.info('Fetching npms packages, this might take a while..');\n\n    return npmsNano.viewAsync('npms-analyzer', 'packages-version')\n    .then((response) => (\n        response.rows\n        .map((row) => ({ name: row.key, version: row.value }))\n    ));\n}\n\n/**\n * Calculates which packages are outdated (missing or version mismatch) and enqueues them.\n *\n * @param {Array}   npmPackages  - All npm packages.\n * @param {Array}   npmsPackages - All npms packages.\n * @param {Queue}   queue        - The analysis queue instance.\n * @param {Boolean} dryRun       - True to do a dry-run, false otherwise.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction enqueueOutdated(npmPackages, npmsPackages, queue, dryRun) {\n    log.info(\n        { npmPackagesCount: npmPackages.length, npmsPackagesCount: npmsPackages.length },\n        'Calculating outdated packages, this might take a while..'\n    );\n\n    const npmsPackagesMap = npmsPackages.reduce((npmsPackagesMap, pkg) => npmsPackagesMap.set(pkg.name, pkg.version), new Map());\n    const outdatedPackages = npmPackages.filter((pkg) => npmsPackagesMap.get(pkg.name) !== pkg.version);\n\n    log.info(`There's a total of ${outdatedPackages.length} outdated packages`);\n    outdatedPackages.forEach((pkg) => log.debug(pkg.name));\n\n    if (!outdatedPackages.length) {\n        return;\n    }\n\n    if (dryRun) {\n        log.info('This is a dry-run, skipping..');\n\n        return;\n    }\n\n    let count = 0;\n\n    return Promise.map(outdatedPackages, (pkg) => {\n        count += 1;\n        count % 1000 === 0 && log.info(`Enqueued ${count} packages`);\n\n        return queue.push(pkg.name);\n    }, { concurrency: 15 })\n    .then(() => log.info('Outdated packages were enqueued!'));\n}\n\n// --------------------------------------------------\n\nexports.command = 'enqueue-outdated [options]';\nexports.describe = 'Finds packages that are outdated and enqueues them';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 tasks enqueue-outdated [options]\\n\\n\\\nFinds packages that are outdated and enqueues them.\\nThis command is useful if packages were lost due to repeated transient \\\nerrors, e.g.: internet connection was lot or GitHub was down.')\n\n    .option('dry-run', {\n        alias: 'dr',\n        type: 'boolean',\n        default: false,\n        describe: 'Enables dry-run',\n    });\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-enqueue-outdated';\n    logger.level = argv.logLevel;\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpm', 'couchdbNpms', 'queue'])\n    .spread((npmNano, npmsNano, queue) => {\n        // Stats\n        stats.process();\n\n        // The strategy below loads all packages in memory.. we can do this because the total packages is around ~250k\n        // which fit well in memory and is much faster than doing manual iteration (~20sec vs ~3min)\n\n        return Promise.all([\n            fetchNpmPackages(npmNano),\n            fetchNpmsPackages(npmsNano),\n        ])\n        .spread((npmPackages, npmsPackages) => enqueueOutdated(npmPackages, npmsPackages, queue, argv.dryRun));\n    })\n    .then(() => process.exit())\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks/enqueue-view.js",
    "content": "'use strict';\n\nconst assert = require('assert');\nconst bootstrap = require('../util/bootstrap');\nconst stats = require('../util/stats');\n\nconst log = logger.child({ module: 'cli/enqueue-view' });\n\n/**\n * Fetches packages of a view.\n *\n * @param {String} view    - The view in the form of design-doc/view-name.\n * @param {Nano}   npmNano - The npm nano instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction fetchView(view, npmNano) {\n    log.info(`Fetching view ${view}`);\n\n    const split = view.split('/');\n\n    return npmNano.viewAsync(split[0], split[1])\n    .then((response) => (\n        response.rows\n        .map((row) => row.key.replace(/^package!/, ''))\n    ));\n}\n\n/**\n * Enqueues packages to be analyzed.\n *\n * @param {Array}   packages - The package names to be enqueued.\n * @param {Queue}   queue    - The analysis queue instance.\n * @param {Boolean} dryRun   - True to do a dry-run, false otherwise.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction enqueueViewPackages(packages, queue, dryRun) {\n    log.info(`There's a total of ${packages.length} packages in the view`);\n    packages.forEach((name) => log.debug(name));\n\n    if (!packages.length) {\n        return;\n    }\n\n    if (dryRun) {\n        log.info('This is a dry-run, skipping..');\n\n        return;\n    }\n\n    let count = 0;\n\n    return Promise.map(packages, (name) => {\n        count += 1;\n        count % 5000 === 0 && log.info(`Enqueued ${count} packages`);\n\n        return queue.push(name);\n    }, { concurrency: 15 })\n    .then(() => log.info('View packages were enqueued!'));\n}\n\n// --------------------------------------------------\n\nexports.command = 'enqueue-view <view> [options]';\nexports.describe = 'Enqueues all packages contained in a npms view';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 tasks enqueue-view <design-doc/view-name> [options]\\n\\n\\\nEnqueues all packages contained in the npms database view.\\n\\nNOTE: The view must be in the npms database and the key must be the package \\\nname (may be prefixed with `package!`)')\n    .example('$0 tasks enqueue-view npms-analyzer/docs-to-be-fixed')\n\n    .option('dry-run', {\n        alias: 'dr',\n        type: 'boolean',\n        default: false,\n        describe: 'Enables dry-run',\n    })\n\n    .check((argv) => {\n        assert(/^[a-z0-9_-]+\\/[a-z0-9_-]+$/.test(argv.view), 'The view argument must match the following format: <design-doc/view-name>');\n\n        return true;\n    });\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-enqueue-view';\n    logger.level = argv.logLevel;\n\n    const view = argv.view;\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpm', 'couchdbNpms', 'queue'])\n    .spread((npmNano, npmsNano, queue) => {\n        // Stats\n        stats.process();\n\n        // The strategy below loads all packages in memory.. we can do this because the total packages is around ~250k\n        // which fit well in memory and is much faster than doing manual iteration (~20sec vs ~3min)\n\n        return fetchView(view, npmsNano)\n        .then((packages) => enqueueViewPackages(packages, queue, argv.dryRun));\n    })\n    .then(() => process.exit())\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks/migrate.js",
    "content": "'use strict';\n\nconst couchdbIterator = require('couchdb-iterator');\nconst analyze = require('../../lib/analyze');\nconst bootstrap = require('../util/bootstrap');\nconst stats = require('../util/stats');\n\nconst log = logger.child({ module: 'cli/migrate' });\n\nfunction extractScope(name) {\n    const match = name.match(/^@([^/]+)\\/.+$/);\n\n    return match ? match[1] : 'unscoped';\n}\n\n// --------------------------------------------------------------\n\nexports.command = 'migrate [options]';\nexports.describe = 'Run the latest migration';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 tasks migrate [options]\\n\\n\\\nRun the latest migration.');\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-migrate';\n    logger.level = argv.logLevel;\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpm', 'couchdbNpms'])\n    .spread((npmNano, npmsNano) => {\n        log.info('Starting migration');\n\n        // Stats\n        stats.process();\n\n        // Iterate over all packages\n        return couchdbIterator(npmsNano, (row) => {\n            row.index && row.index % 2500 === 0 && log.info(`Processed ${row.index} rows`);\n\n            if (!row.doc) {\n                return;\n            }\n\n            const name = row.doc.collected.metadata.name;\n\n            row.doc.collected.metadata.scope = extractScope(name);\n\n            return analyze.save(row.doc, npmsNano)\n            .catch((err) => {\n                log.error({ err }, `Failed to process ${name}`);\n                throw err;\n            });\n        }, {\n            startkey: 'package!',\n            endkey: 'package!\\ufff0',\n            concurrency: 25,\n            limit: 2500,\n            includeDocs: true,\n        })\n        .then((count) => log.info(`Completed, processed a total of ${count} rows`));\n    })\n    .then(() => process.exit())\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks/process-package.js",
    "content": "'use strict';\n\nconst config = require('config');\nconst analyze = require('../../lib/analyze');\nconst score = require('../../lib/scoring/score');\nconst bootstrap = require('../util/bootstrap');\n\nconst log = logger.child({ module: 'cli/process-package' });\n\nexports.command = 'process-package <package> [options]';\nexports.describe = 'Processes a single package, analyzing and scoring it';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 tasks process-package <package> [options]\\n\\n\\\nProcesses a single package, analyzing and scoring it.')\n    .example('$0 tasks process-package analyze cross-spawn')\n    .example('$0 tasks process-package analyze cross-spawn --no-analyze', 'Just score the package, do not analyze')\n\n    .option('analyze', {\n        type: 'boolean',\n        default: true,\n        describe: 'Either to analyze and score or just score',\n    });\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-process-package';\n    logger.level = argv.logLevel;\n\n    const name = argv.package.toString(); // Package 0 evaluates to number so we must cast to a string\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpm', 'couchdbNpms', 'elasticsearch'])\n    .spread((npmNano, npmsNano, esClient) => (\n        // Analyze the package\n        Promise.try(() => {\n            if (!argv.analyze) {\n                return analyze.get(name, npmsNano);\n            }\n\n            return analyze(name, npmNano, npmsNano, {\n                githubTokens: config.get('githubTokens'),\n            });\n        })\n        .tap((analysis) => log.info({ analysis }, 'Analyze data'))\n        // Score the package\n        .then((analysis) => (\n            score(analysis, npmsNano, esClient)\n            .tap((score) => log.info({ score }, 'Score data'))\n            .catch({ code: 'SCORE_INDEX_NOT_FOUND' }, () => {})\n        ))\n        .catch({ code: 'PACKAGE_NOT_FOUND' }, (err) => score.remove(name, esClient).finally(() => { throw err; }))\n    ))\n    .then(() => process.exit())\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks/re-evaluate.js",
    "content": "'use strict';\n\nconst couchdbIterator = require('couchdb-iterator');\nconst evaluate = require('../../lib/analyze/evaluate');\nconst save = require('../../lib/analyze').save;\nconst bootstrap = require('../util/bootstrap');\nconst stats = require('../util/stats');\n\nconst log = logger.child({ module: 'cli/re-evaluate' });\n\nexports.command = 're-evaluate [options]';\nexports.describe = 'Iterates over all analyzed packages, evaluating them again';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 tasks re-evaluate [options]\\n\\n\\\nIterates over all analyzed packages, evaluating them again.\\nThis command is useful if the evaluation algorithm has changed and \\\nthe evaluation needs to be re-calculated for all packages. Note that the packages score won\\'t be updated.');\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-re-evaluate';\n    logger.level = argv.logLevel;\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpms'])\n    .spread((npmsNano) => {\n        log.info('Starting packages re-evaluation');\n\n        // Stats\n        stats.process();\n\n        // Iterate over all packages, re-evaluating them\n        return couchdbIterator(npmsNano, (row) => {\n            row.index && row.index % 10000 === 0 && log.info(`Processed ${row.index} rows`);\n\n            const doc = row.doc;\n\n            if (!doc) {\n                return;\n            }\n\n            const name = doc.collected.metadata.name;\n\n            log.debug(`Evaluating ${name}..`);\n\n            return Promise.try(() => {\n                doc.evaluation = evaluate(doc.collected);\n\n                return save(doc, npmsNano);\n            })\n            .catch((err) => {\n                log.error({ err }, `Failed to evaluate ${name}`);\n                throw err;\n            });\n        }, {\n            startkey: 'package!',\n            endkey: 'package!\\ufff0',\n            concurrency: 25,\n            limit: 2500,\n            includeDocs: true,\n        })\n        .then((count) => log.info(`Completed, processed a total of ${count} rows`));\n    })\n    .then(() => process.exit())\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks/re-metadata.js",
    "content": "'use strict';\n\nconst couchdbIterator = require('couchdb-iterator');\nconst metadata = require('../../lib/analyze/collect/metadata');\nconst packageJsonFromData = require('../../lib/analyze/util/packageJsonFromData');\nconst analyze = require('../../lib/analyze');\nconst bootstrap = require('../util/bootstrap');\nconst stats = require('../util/stats');\n\nconst log = logger.child({ module: 'cli/re-metadata' });\n\nexports.command = 're-metadata [options]';\nexports.describe = 'Iterates over all analyzed packages, running the metadata collector again';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Usage: $0 tasks re-metadata [options]\\n\\n\\\nIterates over all analyzed packages, running the metadata collector again.\\nThis command is useful if there was a bug in the \\\nmetadata collector. Note that the packages score won\\'t be updated.');\n\nexports.handler = (argv) => {\n    process.title = 'npms-analyzer-re-metadata';\n    logger.level = argv.logLevel;\n\n    // Bootstrap dependencies on external services\n    bootstrap(['couchdbNpm', 'couchdbNpms'])\n    .spread((npmNano, npmsNano) => {\n        log.info('Starting packages re-metadata');\n\n        // Stats\n        stats.process();\n\n        // Iterate over all packages\n        return couchdbIterator(npmsNano, (row) => {\n            row.index && row.index % 2500 === 0 && log.info(`Processed ${row.index} rows`);\n\n            if (!row.doc) {\n                return;\n            }\n\n            const name = row.id\n            .split('!')\n            .slice(1)\n            .join('!');\n\n            // Grab package data\n            return npmNano.getAsync(name)\n            .then((data) => {\n                let packageJson;\n\n                // Extract package json\n                try {\n                    packageJson = packageJsonFromData(name, data);\n                } catch (err) {\n                    if (!err.unrecoverable) {\n                        throw err;\n                    }\n\n                    // Remove the package if an unrecoverable error happened\n                    // We do this to prevent old metadata to stay around, which will probably cause issues further ahead\n                    return analyze.remove(name, npmsNano);\n                }\n\n                // Re-run metadata\n                return metadata(data, packageJson)\n                // Save it!\n                .then((metadata) => {\n                    row.doc.collected.metadata = metadata;\n\n                    return analyze.save(row.doc, npmsNano);\n                })\n                .catch((err) => {\n                    log.error({ err }, `Failed to process ${name}`);\n                    throw err;\n                });\n            })\n            // Delete the analisis if the package does not exist in npm (e.g.: was deleted)\n            .catch({ error: 'not_found' }, () => analyze.remove(name, npmsNano));\n        }, {\n            startkey: 'package!',\n            endkey: 'package!\\ufff0',\n            concurrency: 25,\n            limit: 2500,\n            includeDocs: true,\n        })\n        .then((count) => log.info(`Completed, processed a total of ${count} rows`));\n    })\n    .then(() => process.exit())\n    .done();\n};\n"
  },
  {
    "path": "cmd/tasks.js",
    "content": "'use strict';\n\nexports.command = 'tasks';\nexports.describe = 'Execute a task';\n\nexports.builder = (yargs) =>\n    yargs\n    .usage('Group of task commands, choose one of the available commands.\\n\\nUsage: $0 tasks <command> [options]')\n\n    .default('log-level', 'info')\n\n    .commandDir('./tasks')\n    .demandCommand(1, 'Please supply a valid command');\n"
  },
  {
    "path": "cmd/util/bootstrap.js",
    "content": "'use strict';\n\nconst config = require('config');\nconst nano = require('nano');\nconst elasticsearch = require('elasticsearch');\nconst promiseRetry = require('promise-retry');\nconst get = require('lodash/get');\nconst queue = require('../../lib/queue');\n\nconst retriesOption = { minTimeout: 2500, retries: 5 };\nconst log = logger.child({ module: 'bootstrap' });\n\n/**\n * Bootstrap several dependencies, waiting for them to be ready: CouchDB, Elasticsearch and Queue.\n * Tries several times before failing.\n *\n * @param {Object} deps      - The dependencies to setup.\n * @param {Object} [options] - The options; read bellow to get to know each available option.\n *\n * @returns {Promise} The promise that resolves when they are ready.\n */\nfunction bootstrap(deps, options) {\n    options = Object.assign({\n        wait: false, // True to wait for the dependencies to be ready (in case they are unavailable)\n    }, options);\n\n    // Log uncaught exceptions\n    process.on('uncaughtException', (err) => {\n        log.fatal({ err }, `Uncaught exception: ${err.message}`);\n        throw err;\n    });\n\n    return Promise.map(deps, (dep) => {\n        switch (dep) {\n        case 'couchdbNpm':\n        case 'couchdbNpms':\n            return bootstrapCouchdb(config.get(dep), options);\n        case 'elasticsearch':\n            return bootstrapElasticsearch(config.get('elasticsearch'), options);\n        case 'queue':\n            return bootstrapQueue(config.get('queue'), options);\n        default:\n            throw new Error(`Unknown dependency: ${dep}`);\n        }\n    });\n}\n\n// ----------------------------------------------------------------------------\n\n/**\n * Bootstraps a CouchDB database client, returning a nano instance.\n *\n * @param {Object}  config  - The CouchDB config.\n * @param {Object} options - The options inferred from bootstrap().\n *\n * @returns {Promise} The promise that resolves when done.\n */\nfunction bootstrapCouchdb(config, options) {\n    const nanoClient = Promise.promisifyAll(nano(config));\n\n    if (!nanoClient.config.db) {\n        throw new Error('Expected CouchDB URL to point to a DB');\n    }\n\n    nanoClient.serverScope = Promise.promisifyAll(nano(Object.assign({}, config, { url: nanoClient.config.url })));\n\n    return promiseRetry((retry) => (\n        nanoClient.getAsync('somedocthatwillneverexist')\n        .catch({ error: 'not_found' }, () => {})\n        .catch((err) => {\n            log.warn({ err }, `Check of ${nanoClient.config.db} failed`);\n            retry(err);\n        })\n    ), options.wait ? retriesOption : { retries: 0 })\n    .then(() => log.debug(`CouchDB for ${nanoClient.config.db} is ready`))\n    .return(nanoClient);\n}\n\n/**\n * Bootstraps a Elasticsearch client.\n *\n * @param {Object}  config  - The Elasticsearch config.\n * @param {Object} options - The options inferred from bootstrap().\n *\n * @returns {Promise} The promise that resolves when done.\n */\nfunction bootstrapElasticsearch(config, options) {\n    const esClient = new elasticsearch.Client(config);\n\n    return promiseRetry((retry) => (\n        Promise.resolve(esClient.get({\n            index: 'someindexthatwillneverexist',\n            type: 'sometypethatwillneverexist',\n            id: 'someidthatwillneverexist',\n            maxRetries: 0,\n        }))\n        .catch((err) => get(err, 'body.error.type') === 'index_not_found_exception', () => {})\n        .catch((err) => {\n            log.warn({ err }, 'Check of Elasticsearch failed');\n            retry(err);\n        })\n    ), options.wait ? retriesOption : { retries: 0 })\n    .then(() => log.debug('Elasticsearch is ready'))\n    .return(esClient);\n}\n\n/**\n * Bootstraps the analysis queue.\n *\n * @param {Object}  config  - The queue config.\n * @param {Object} options - The options inferred from bootstrap().\n *\n * @returns {Promise} The promise that resolves when done.\n */\nfunction bootstrapQueue(config, options) {\n    const analysisQueue = queue(config.name, config.addr, config.options);\n\n    return promiseRetry((retry) => (\n        analysisQueue.stat()\n        .catch((err) => {\n            log.warn({ err }, 'Check of Queue failed');\n            retry(err);\n        })\n    ), options.wait ? retriesOption : { retries: 0 })\n    .then(() => log.debug('Queue is ready'))\n    .return(analysisQueue);\n}\n\nmodule.exports = bootstrap;\n"
  },
  {
    "path": "cmd/util/stats/index.js",
    "content": "'use strict';\n\nmodule.exports = require('require-directory')(module, './', { recurse: false });\n"
  },
  {
    "path": "cmd/util/stats/process.js",
    "content": "'use strict';\n\nconst pino = require('pino');\nconst humanizeDuration = require('humanize-duration');\n\nconst log = logger.child({ module: 'stats/process' });\n\n/**\n * Continuously monitor the process, printing metrics such as the memory and uptime.\n */\nfunction statProcess() {\n    // Do nothing if loglevel is higher than info\n    if (log.levelVal > pino.levels.values.info) {\n        return;\n    }\n\n    const pid = process.pid;\n\n    setInterval(() => {\n        const memoryUsage = (process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2);\n        const uptime = humanizeDuration(Math.round(process.uptime()) * 1000, { largest: 1 });\n\n        log.info(`pid: ${pid}; memory: ${memoryUsage} MB; uptime: ${uptime}`);\n    }, 15000)\n    .unref();\n}\n\nmodule.exports = statProcess;\n"
  },
  {
    "path": "cmd/util/stats/progress.js",
    "content": "'use strict';\n\nconst pino = require('pino');\n\nconst log = logger.child({ module: 'stats/progress' });\n\n// TODO: Add status for replication and other stuff?\n\n/**\n * Continuously monitor the analyzer progress, printing information such as the analysis %.\n *\n * @param {Nano} npmNano  - The npm nano client instance.\n * @param {Nano} npmsNano - The npms nano client instance.\n */\nfunction statProgress(npmNano, npmsNano) {\n    // Do nothing if loglevel is higher than info\n    if (log.levelVal > pino.levels.values.info) {\n        return;\n    }\n\n    let pending = false;\n\n    setInterval(() => {\n        if (pending) {\n            log.info('Progress stat is still being retrieved..');\n\n            return;\n        }\n\n        pending = true;\n\n        Promise.props({\n            npmDocsCount: npmNano.infoAsync().then((res) => res.doc_count),\n            npmDesignDocsCount: npmNano.listAsync({ startkey: '_design/', endkey: '_design0' }).then((res) => res.rows.length),\n            npmsPackagesCount: npmsNano.viewAsync('npms-analyzer', 'packages-evaluation', { reduce: true })\n            .then((res) => res.rows[0] ? res.rows[0].value : 0),\n        })\n        .finally(() => { pending = false; })\n        .then((result) => {\n            const analysis = `${(result.npmsPackagesCount / (result.npmDocsCount - result.npmDesignDocsCount) * 100).toFixed(4)}%`;\n\n            log.info({ analysis }, 'Progress stat');\n        }, (err) => {\n            log.error({ err }, 'Progress stat failed');\n        })\n        .done();\n    }, 15000)\n    .unref();\n}\n\nmodule.exports = statProgress;\n"
  },
  {
    "path": "cmd/util/stats/queue.js",
    "content": "'use strict';\n\nconst pino = require('pino');\n\nconst log = logger.child({ module: 'stats/queue' });\n\n/**\n * Continuously monitor the queue, printing information such as the number of enqueued messages.\n *\n * @param {Queue} queue - The queue instance.\n */\nfunction statQueue(queue) {\n    // Do nothing if loglevel is higher than info\n    if (log.levelVal > pino.levels.values.info) {\n        return;\n    }\n\n    let pending = false;\n\n    setInterval(() => {\n        if (pending) {\n            log.info('Queue stat is still being retrieved..');\n\n            return;\n        }\n\n        pending = true;\n\n        queue.stat()\n        .finally(() => { pending = false; })\n        .then((stat) => {\n            log.info({ stat }, 'Queue stat');\n        }, (err) => {\n            log.error({ err }, 'Queue stat failed');\n        })\n        .done();\n    }, 15000)\n    .unref();\n}\n\nmodule.exports = statQueue;\n"
  },
  {
    "path": "cmd/util/stats/tokens.js",
    "content": "'use strict';\n\nconst pino = require('pino');\nconst tokenDealer = require('token-dealer');\nconst minBy = require('lodash/minBy');\n\nconst log = logger.child({ module: 'stats/tokens' });\n\n/**\n * Monitors the API tokens managed by token-dealer of a given group.\n *\n * @param {Array}  tokens  - The array of tokens.\n * @param {String} [group] - The token's group (e.g.: Github).\n */\nfunction statTokens(tokens, group) {\n    // Do nothing if loglevel is higher than info\n    if (log.levelVal > pino.levels.values.info) {\n        return;\n    }\n\n    setInterval(() => {\n        const tokensUsage = Object.values(tokenDealer.getTokensUsage(tokens, { group }));\n        const usableTokensUsage = tokensUsage.filter((entry) => !entry.exhausted);\n\n        if (usableTokensUsage.length) {\n            log.info(`${usableTokensUsage.length} out of ${tokensUsage.length} tokens are usable (${group})`);\n\n            return;\n        }\n        if (tokensUsage.length < 1) {\n            log.info(`No tokens (${group})`);\n\n            return;\n        }\n\n        const nextResettingToken = minBy(tokensUsage, 'reset');\n        const remainingMins = Math.ceil((nextResettingToken.reset - Date.now()) / 1000 / 60);\n\n        log.info(`All tokens are exhausted, next one will reset in ${remainingMins} minutes (${group})`);\n    }, 15000)\n    .unref();\n}\n\nmodule.exports = statTokens;\n"
  },
  {
    "path": "config/couchdb/npms-analyzer-npm.json",
    "content": "{\n    \"_id\": \"_design/npms-analyzer\",\n    \"language\": \"javascript\",\n    \"views\": {\n        \"packages-version\": {\n            \"map\": \"function (doc) {\\n    if (doc['dist-tags'] && doc['dist-tags'].latest) {\\n        emit(doc._id, doc['dist-tags'].latest);\\n    }\\n}\"\n        }\n    }\n}\n"
  },
  {
    "path": "config/couchdb/npms-analyzer-npms.json",
    "content": "{\n    \"_id\": \"_design/npms-analyzer\",\n    \"language\": \"javascript\",\n    \"views\": {\n        \"packages-evaluation\": {\n            \"map\": \"function (doc) {\\n    if (doc._id.indexOf('package!') === 0) {\\n        emit(doc._id.split('!').slice(1).join('!'), doc.evaluation);\\n    }\\n}\",\n            \"reduce\": \"_count\"\n        },\n        \"packages-stale\": {\n            \"map\": \"function (doc) {\\n    if (doc._id.indexOf('package!') === 0) {\\n        if (doc.error) {\\n            if (!doc.error.unrecoverable) {\\n                emit(['failed', Date.parse(doc.error.caughtAt), doc._id.split('!').slice(1).join('!')]);\\n            }\\n        } else {\\n            emit(['normal', Date.parse(doc.finishedAt), doc._id.split('!').slice(1).join('!')]);\\n        }\\n    }\\n}\"\n        },\n        \"packages-version\": {\n            \"map\": \"function (doc) {\\n    if (doc._id.indexOf('package!') === 0) {\\n        emit(doc._id.split('!').slice(1).join('!'), doc.collected.metadata.version);\\n    }\\n}\"\n        }\n    }\n}\n"
  },
  {
    "path": "config/default.json5",
    "content": "{\n    // Databases & similar stuff\n    couchdbNpm: {\n        url: 'http://admin:admin@127.0.0.1:5984/npm',\n        requestDefaults: { timeout: 15000 },\n    },\n    couchdbNpms: {\n        url: 'http://admin:admin@127.0.0.1:5984/npms',\n        requestDefaults: { timeout: 15000 },\n    },\n    elasticsearch: {\n        host: 'http://127.0.0.1:9200',\n        requestTimeout: 15000,\n        apiVersion: '6.3',\n        log: null,\n    },\n    queue: {\n        name: 'npms',\n        addr: 'amqp://guest:guest@127.0.0.1',\n        options: { maxPriority: 1 },\n    },\n\n    // List of packages that will be ignored by the CLI consume command (analysis process)\n    blacklist: {\n        'hownpm': 'Invalid version: 1.01',\n        'zachtestproject1': 'Test project that makes registry return 500 internal',\n        'zachtestproject2': 'Test project that makes registry return 500 internal',\n        'zachtestproject3': 'Test project that makes registry return 500 internal',\n        'zachtestproject4': 'Test project that makes registry return 500 internal',\n        'broken-package-truncated-tar-header': 'Broken tarball',\n    },\n\n    // Github tokens to be used by token-dealer\n    githubTokens: [],\n\n    // Enabled observers.\n    observers: {\n        realtime: true,\n        stale: false,\n    }\n}\n"
  },
  {
    "path": "config/elasticsearch/npms.json5",
    "content": "{\n    // ------------------------------------------------------------------------------\n    // Index settings\n    // ------------------------------------------------------------------------------\n    \"settings\" : {\n        \"number_of_shards\" : 1,\n        \"number_of_replicas\": 0,\n\n        \"analysis\": {\n            // Custom tokenizers\n            \"tokenizer\": {\n                // Exclusive tokenizer used for autocompletion highlight so that it correctly highlights partial words..\n                // See: https://github.com/elastic/elasticsearch/issues/3137#issuecomment-22116469\n                \"autocomplete\": {\n                    \"type\": \"edgeNGram\",\n                    \"min_gram\": \"1\",\n                    \"max_gram\": \"15\",\n                    \"token_chars\": [\"letter\", \"digit\"],\n                },\n            },\n\n            // Custom filters\n            \"filter\": {\n                \"non_alfanum_to_space\": {\n                    \"type\": \"pattern_replace\",\n                    \"pattern\": \"(?i)[^a-z0-9]+\",\n                    \"replacement\": \" \",\n                },\n\n                // Split word filter, which takes tokens, such as es6_promise or lodash.foreach, and splits them\n                // into several other tokens\n                \"split_word\": {\n                    \"type\": \"word_delimiter\",\n                    \"generate_word_parts\": true,\n                    \"generate_number_parts\": true,\n                    \"catenate_words\": false,\n                    \"catenate_numbers\": false,\n                    \"catenate_all\": false,\n                    \"split_on_case_change\": true,\n                    \"preserve_original\": true,\n                    \"split_on_numerics\": true,\n                    \"stem_english_possessive\": true,\n                },\n\n                // Edge ngram to provide fallback to stemming\n                \"edge_ngram\": {\n                    \"type\": \"edgeNGram\",\n                    \"min_gram\": \"4\",\n                    \"max_gram\": \"15\",\n                },\n\n                // Dedicated filter for autocompletion\n                \"autocomplete\": {\n                    \"type\": \"edgeNGram\",\n                    \"min_gram\": \"1\",\n                    \"max_gram\": \"15\",\n                },\n\n                // Remove duplicate tokens\n                \"unique_on_same_position\": {\n                   \"type\": \"unique\",\n                   \"only_on_same_position\": false,\n                },\n            },\n\n            // Custom analyzers\n            \"analyzer\": {\n                // The packages_* series produces good results for the `name` and `keywords` fields\n                \"package\": {\n                    \"tokenizer\": \"standard\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"split_word\",\n                        \"lowercase\",\n                        \"unique_on_same_position\",\n                    ],\n                },\n\n                \"package_english\": {\n                    \"tokenizer\": \"standard\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"split_word\",\n                        \"lowercase\",\n                        \"kstem\",        // Non-aggressive english stemmer\n                        \"unique_on_same_position\",\n                    ],\n                },\n\n                \"package_english_aggressive\": {\n                    \"tokenizer\": \"standard\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"split_word\",\n                        \"lowercase\",\n                        \"porter_stem\",  // Aggressive english stemmer\n                        \"unique_on_same_position\",\n                    ],\n                },\n\n                \"package_edge_ngram\": {\n                    // This analyzer provides fallbacks in which the stemmer is not efficient, e.g.: searching for \"glob\" should match \"globby\"\n                    \"tokenizer\": \"standard\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"split_word\",\n                        \"lowercase\",\n                        \"edge_ngram\",\n                        \"unique_on_same_position\",\n                    ],\n                },\n\n                // The package_autocomplete_* series produces good results for autocompletion\n                \"package_autocomplete\": {\n                    \"tokenizer\": \"standard\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"split_word\",\n                        \"lowercase\",\n                        \"autocomplete\",\n                        \"unique_on_same_position\",\n                    ],\n                },\n\n                \"package_autocomplete_keyword\": {\n                    // This analyzer emits the whole string but replaces non-alfanum with spaces\n                    // so that we can use it boost exact prefix matches higher\n                    \"tokenizer\": \"keyword\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"non_alfanum_to_space\",\n                        \"lowercase\",\n                        \"autocomplete\",\n                        \"trim\",\n                        \"unique_on_same_position\",\n                    ],\n                },\n\n                \"package_autocomplete_keyword_search\": {\n                    // This analyzer is the \"search_analyzer\" for \"package_autocomplete_keyword\"\n                    \"tokenizer\": \"keyword\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"non_alfanum_to_space\",\n                        \"lowercase\",\n                        \"trim\",\n                    ],\n                },\n\n                \"package_autocomplete_highlight\": {\n                    // This analyzer is necessary to perform proper highlighting\n                    // See: https://github.com/elastic/elasticsearch/issues/3137#issuecomment-22116469\n                    // Can't use split_word which may lead to \"strange\" highlighting in some edge cases :(\n                    \"tokenizer\": \"autocomplete\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"non_alfanum_to_space\",\n                        \"lowercase\",\n                        \"trim\",\n                    ],\n                },\n\n                // The raw analyzer does very small normalizations\n                \"raw\": {\n                    \"tokenizer\": \"keyword\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"lowercase\",\n                        \"trim\",\n                    ],\n                },\n            },\n\n            // Custom normalizers\n            \"normalizer\": {\n                // The raw analyzer does very small normalizations\n                \"raw\": {\n                    \"type\": \"custom\",\n                    \"filter\": [\n                        \"asciifolding\",\n                        \"lowercase\",\n                        \"trim\",\n                    ],\n                },\n            },\n        },\n    },\n\n    // ------------------------------------------------------------------------------\n    // Mappings\n    // ------------------------------------------------------------------------------\n    \"mappings\" : {\n        \"score\" : {\n            \"dynamic\": false,\n            \"_all\": {\n                \"enabled\": false,\n            },\n\n            \"properties\" : {\n                \"package\": {\n                    \"type\": \"object\",\n                    \"properties\": {\n                        // The `name`, `description` and `keywords` fields all have `norms` disabled because we don't care about the fields length\n                        // Also they have additional fields beyond the `standard` analyzer, such as `package_english`, `package_english` etc\n                        \"name\": {\n                            \"type\": \"text\",\n                            \"fields\": {\n                                \"standard\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"standard\",\n                                },\n                                \"english\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_english\",\n                                },\n                                \"english_aggressive\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_english_aggressive\",\n                                },\n                                \"edge_ngram\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_edge_ngram\",\n                                    \"search_analyzer\": \"package\",\n                                },\n                                \"autocomplete\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_autocomplete\",\n                                    \"search_analyzer\": \"package\",\n                                },\n                                \"autocomplete_highlight\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_autocomplete_highlight\",\n                                    \"search_analyzer\": \"package\",\n                                    \"index_options\": \"offsets\",\n                                },\n                                \"autocomplete_keyword\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_autocomplete_keyword\",\n                                    \"search_analyzer\": \"package_autocomplete_keyword_search\",\n                                },\n                                \"raw\": {\n                                    \"type\": \"keyword\",\n                                    \"normalizer\": \"raw\",\n                                },\n                            },\n                        },\n                        \"description\": {\n                            \"type\": \"text\",\n                            \"fields\": {\n                                \"standard\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"standard\",\n                                },\n                                \"english\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_english\",\n                                },\n                                \"english_aggressive\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_english_aggressive\",\n                                },\n                                \"edge_ngram\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_edge_ngram\",\n                                    \"search_analyzer\": \"package\",\n                                },\n                            },\n                        },\n                        \"keywords\": {\n                            \"type\": \"text\",\n                            \"fields\": {\n                                \"standard\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"standard\",\n                                },\n                                \"english\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_english\",\n                                },\n                                \"english_aggressive\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_english_aggressive\",\n                                },\n                                \"edge_ngram\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"package_edge_ngram\",\n                                    \"search_analyzer\": \"package\",\n                                },\n                                \"raw\": {\n                                    \"type\": \"text\",\n                                    \"analyzer\": \"raw\",\n                                }\n                            },\n                        },\n                        \"version\": {\n                            \"type\": \"text\",\n                            \"index\": false,\n                        },\n                        \"date\": {\n                            \"type\": \"date\",\n                            \"index\": false,\n                        },\n                        \"links\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                                \"npm\": { \"type\": \"text\", \"index\": false },\n                                \"homepage\": { \"type\": \"text\", \"index\": false },\n                                \"repository\": { \"type\": \"text\", \"index\": false },\n                                \"bugs\": { \"type\": \"text\", \"index\": false },\n                            },\n                        },\n                        \"author\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                                \"name\": {\n                                    \"type\": \"keyword\",\n                                    \"normalizer\": \"raw\",\n                                },\n                                \"username\": {\n                                    \"type\": \"keyword\",\n                                    \"normalizer\": \"raw\",\n                                },\n                                \"email\": {\n                                    \"type\": \"keyword\",\n                                    \"normalizer\": \"raw\",\n                                },\n                                \"url\": { \"type\": \"text\", \"index\": false },\n                            },\n                        },\n                        \"publisher\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                                \"username\": { \"type\": \"text\", \"index\": false },\n                                \"email\": { \"type\": \"text\", \"index\": false },\n                            },\n                        },\n                        \"maintainers\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                                \"username\": {\n                                    \"type\": \"keyword\",\n                                    \"normalizer\": \"raw\",\n                                },\n                                \"email\": {\n                                    \"type\": \"keyword\",\n                                    \"normalizer\": \"raw\",\n                                },\n                            },\n                        },\n                        \"scope\": {\n                            \"type\": \"keyword\",\n                            \"normalizer\": \"raw\",\n                        },\n                    },\n                },\n                \"flags\": {\n                    \"type\": \"object\",\n                    \"properties\": {\n                        \"deprecated\": { \"type\": \"text\", \"index_options\": \"docs\" },\n                        \"insecure\": { \"type\": \"integer\" },\n                        \"unstable\": { \"type\": \"boolean\" },\n                    },\n                },\n                \"evaluation\": {\n                    \"type\": \"object\",\n                    \"properties\": {\n                        \"quality\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                                \"carefulness\": { \"type\": \"double\", \"index\": false },\n                                \"tests\": { \"type\": \"double\", \"index\": false },\n                                \"health\": { \"type\": \"double\", \"index\": false },\n                                \"branding\": { \"type\": \"double\", \"index\": false },\n                            },\n                        },\n                        \"popularity\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                                \"communityInterest\": { \"type\": \"double\", \"index\": false },\n                                \"downloadsCount\": { \"type\": \"double\", \"index\": false },\n                                \"downloadsAcceleration\": { \"type\": \"double\", \"index\": false },\n                                \"dependentsCount\": { \"type\": \"double\", \"index\": false },\n                            },\n                        },\n                        \"maintenance\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                                \"releasesFrequency\": { \"type\": \"double\", \"index\": false },\n                                \"commitsFrequency\": { \"type\": \"double\", \"index\": false },\n                                \"openIssues\": { \"type\": \"double\", \"index\": false },\n                                \"issuesDistribution\": { \"type\": \"double\", \"index\": false },\n                            },\n                        },\n                    },\n                },\n                \"score\": {\n                    \"type\": \"object\",\n                    \"properties\": {\n                        \"final\": { \"type\": \"double\" },\n                        \"detail\": {\n                            \"type\": \"object\",\n                            \"properties\": {\n                                \"quality\": { \"type\": \"double\" },\n                                \"popularity\": { \"type\": \"double\" },\n                                \"maintenance\": { \"type\": \"double\" },\n                            },\n                        },\n                    },\n                },\n            },\n        },\n    },\n}\n"
  },
  {
    "path": "docs/architecture.md",
    "content": "# Architecture\n\nThe `npms-analyzer` runs two continuous and distinct processes. One is the `analysis` process where each package gets inspected and evaluated. The other one is the `continuous scoring` process where all packages get a score based on the aggregated evaluation results.\n\n- [Analysis](#analysis)\n- [Continuous scoring](#continuous-scoring)\n\n\n## Analysis\n\nThe analysis process analyzes the `npm` packages, producing a result and a score.\n\n![analysis](./diagrams/analysis.png)\n\nBy looking at the diagram above, you get an idea of how the analysis process works. Below you may find a more detailed description for the most complex components. The `grey` components are present in `lib`.\n\n### Observers\n\nObservers continuously push packages to the queue whenever they see fit.\n\n- realtime - Observes the replicated `npm` registry for changes, pushing new or updated packages into the analyze queue.\n- stale - Fetches packages that were not analyzed for some time, pushing them to the queue.\n\nThe packages reported by the `realtime` have priority over the other observers, so that recently published packages are analyzed first.  \n\n\n### Queue\n\nThe queue holds all packages that are waiting to be analyzed. This component gives us:\n\n- Burst protection\n- No loss of packages on crashes or failures\n- Automatic retries\n\n### Analyze\n\nThe analyze is a simple pipeline that produces an analysis result:\n\n1. Fetches the package data\n2. Downloads the source code\n3. Runs the collectors\n4. Runs the evaluators\n5. Stores the result in CouchDB and Elasticsearch\n\nBelow you may find additional information on the collectors and evaluators.\n\n#### Collectors\n\nThe collectors are responsible for gathering useful information about each package from a variety of sources:\n\n- metadata\n- source\n- github\n- npm\n\n##### metadata\n\nThe metadata collector extracts basic data and attributes of a package.\n\n- Extract package name, scope, description and keywords\n- Extract package author, maintainers and contributors\n- Extract the license\n- Get releases timing information\n- Extract repository and homepage\n- Extract README\n- Extract the package dependencies\n- Check if the package is deprecated\n- Check if the package has a test script\n\n##### source\n\nThe source collector digs into the source code.\n\n- Check certain files: `.npmignore`, `.gitignore`, `.gitattributes`, README size, tests size, etc\n- Detect linters, such as `eslint`, `jshint`, `jslint` and `jscs`\n- Detect badges in the README\n- Compute code complexity *\n- Grab the code coverage %\n- Get repository file size\n- Get dependencies insight, including if they are outdated\n- Search for tech debts: TODOs, FIXMEs, etc *\n- Get security insight with node security project\n\nItems signaled with * are not yet done.\n\n##### github\n\nThe github collector uses GitHub to collect useful data and statistics present there.\n\n- Get number of stars, subscribers and forks\n- Fetch the repository activity in terms of commits\n- Fetch the number of issues and their distribution over time\n- Extract the homepage\n- Fetch contributors\n- Check the build status\n\nThis collector is susceptible to the GitHub [rate limit](https://developer.github.com/v3/rate_limit/) policy. To fight against this limit, you may define several GitHub keys in the config to be used in a round-robin fashion.\n\n##### npm\n\nThe npm collector uses the replicated CouchDB views and the npm [download-counts](https://github.com/npm/download-counts) API to extract useful information present there.\n\n- Get number of stars\n- Get number of downloads over time\n- Get number of dependents\n\n#### Evaluators\n\nThe evaluators take the information that was previously collected and evaluate different aspects of the package. These aspects are divide in four categories:\n\n- quality\n- popularity\n- maintenance\n- personalities\n\nEvaluators may further divide each of these aspects into more granular ones, but their values are always scalars.\n\n##### quality\n\nQuality attributes are easy to calculate because they are self contained. These are the kind of attributes that a person looks first when looking at the package.\n\nBelow are some of the points taken into consideration:\n\n- Has README? Has license? Has .gitignore and friends?\n- Is the version stable (> 1.x.x)? Is it deprecated?\n- Has tests? Whats their coverage %? Is build passing?\n- Has outdated dependencies? Do they have vulnerabilities?\n- Has custom website? Has badges?\n- Does the project have linters configured?\n- What's the code complexity score?\n\n##### maintenance\n\nMaintenance attributes allows us to understand if the package is active & healthy or if it is abandoned. These are typically the second kind of attributes that a person looks when looking at the package.\n\nBelow follows some of the points taken into consideration:\n\n- Ratio of open issues vs the total issues\n- The time it takes to close issues\n- Most recent commit\n- Commit frequency\n\n##### popularity\n\nPopularity attributes allows us to understand the package adoption and community size. These are the kind of attributes that a person looks when they are undecided on the package choice.\n\nBelow follows some of the points taken into consideration:\n\n- Number of stars\n- Number of forks\n- Number of subscribers\n- Number of contributors\n- Number of dependents\n- Number of downloads\n- Downloads acceleration\n\n##### personalities\n\nIf two packages are similar, one tend to choose the one in which the author is well known in the community. While this doesn't directly translate to quality, it's still a strong factor that we should account.\n\nRelationships between people are also important. When an user follows another, there's a bound between them. We can infer that people prefer packages from the users they follow.\n\nI will not elaborate on this because this evaluator will NOT be developed nor used in the initial release.\n\n### Scoring\n\nCalculates the package score based on the current aggregation if any. If there's no aggregation, the package won't be scored at the moment, but it will be later in the `continuous scoring` process.\n\n\n## Continuous scoring\n\nThe continuous scoring process runs once in a while to score all `npm` packages, indexing the score data in `Elasticsearch` to be searchable.\n\n![continuous-scoring](./diagrams/continuous-scoring.png)\n\nBy looking at the diagram above, you get an idea of how the continuous scoring process works. Below you may find a more detailed description for each component. The `grey` components are present in `lib`.\n\nOne important detail is that the continuous scoring process creates and maintains two [aliases](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html):\n\n- `npms-current`: The index with the full data from the last completed scoring process\n- `npms-new`: The index that the current scoring process is writing to\n\n### Prepare\n\nThe prepare step creates a new index and updates the `npms-new` alias to point to that index. It also removes extraneous indices from previous failed cycles (if any).\n\n### Aggregate\n\nThe aggregation step iterates all the packages evaluations, calculating the `min`, `max` and `mean` values for each evaluation. The aggregation is stored in CouchDB to also be used by the `analysis` process.\n\n### Score packages\n\nAfter having the aggregation done, all packages are iterated again to produce a score based on the previously calculated aggregation.\n\nThe package evaluation and aggregation `mean` are normalized ([0, 1]), using the aggregation `min` and `max` values, and a Bezier Curve is computed using 4 control points: (0, 0), (normalizedAggregationMean, 0.75), (normalizedAggregationMean, 0.75), (1, 1). The package score is the Y value that corresponds, in this curve, to the package evaluation (X axis).\n\n![bezier](./diagrams/bezier.png)\n\nThe score data for each package are stored in `Elasticsearch` into both `npms-current` and `npms-new` indices.\n\n### Finalize\n\nThe finalize step updates the `npms-current` alias to point to the newly populated index and deletes the `npms-new` alias and previous index.\n"
  },
  {
    "path": "docs/deploys.md",
    "content": "# Deploys\n\nWe use `pm2` to deploy `npms-analyzer`, install it by running `$ npm install -g pm2`. You may find the pm2 configuration file in `ecosystem.json5`.\n\n\n## Setting up\n\nBefore doing the first deploy, you need to setup the server. All commands executed in the server are expected to be run with `analyzer` user.\n\n- Create the `analyzer` user on server\n- Add `analyzer` user to the list of sudoers\n- Install pm2 in the server\n- Setup the deploy environment by running `$ pm2 deploy ecosystem.json5 production setup` in your local machine\n- Create `~/npms-analyzer/local.json5` in the server with the custom configuration (databases, GitHub API tokens, etc)\n- Do your first deploy by running `$ pm2 deploy ecosystem.json5 production` in your local machine\n- Setup logrotate by running `$ sudo pm2 logrotate -u analyzer` on the server and then edit `/etc/logrotate.d/pm2-www` to change change `/root` to `/home/analyzer`, weekly to daily, and from 12 days to 14 days)\n- Setup pm2 to run at start by running `$ sudo pm2 startup -u analyzer --hp \"/home/analyzer\"` on the server\n- Finally run `$ pm2 save` to store the running processes\n\n\n## Deploying\n\nDeployment is easy, just run `$ pm2 deploy ecosystem.json5 production` in your local machine.\n"
  },
  {
    "path": "docs/diagrams/analysis.xml",
    "content": "<mxfile type=\"device\" userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36\" version=\"5.3.4.1\" editor=\"www.draw.io\"><diagram>7Vxbc+K4Ev41qZrzkBRgLsljmElmHnZrZzcPe/bplMAC+0RYHtmEZH79tOxuX2UwQSY7E0MV2EKS5e5PfTcXzsfN82fFQu936XJxMRq4zxfOp4vRaDaZwKdueEkbxsObtGGtfDdtGuYND/53jo0DbN36Lo9KHWMpReyH5calDAK+jEttTCm5K3dbSVG+asjWdMW84WHJRL31b9+NvbT1ejTN279wf+3RlYdTvL8FWz6uldwGeL2LkbNKXunPG0ZzJTfq3AENlZQwjT7aPH/kQtORaJRS477h12yRige4kAMDHBzyxMQW7zRtiOIXuvWd58f8IWRLfb4D7l44cy/eCDgbwmEUK/nIP0ohFbQEMoBu85UvBDXBHd990m/dLoMYmQtLS88L/ab349E1LDbth0ugJXIVc4ST4UaTJrzLz1xueKxeoAsOmA7xvhB+zhRxtcuZOURiDbwiIwfYyBBA62zunK5wgKRtIPPo+qchc42mBso3ktlBYiGVafMWiDw2EpnGnUbk2bskskPnBSpPJiYq31igMsq7Eo2nAq4wd/0nOFzrQ2paqGoLTG/oV2jigkWxv2zdP+JMLb2m7hXuRx4L9eHyRfiBy4FR8wOASAQ31/euOQzjXbnDkzWsVBMy+aGEG2D+8Fa/6+C5T156tGKuDxioYg2wcs82vtDM/cLFEwdisDLYhk4dbGPYWGPAzJwJfx3oW4S5kxu0ALgZ7WPa1gbhOTMAzgbehuMaF7kLmhlPpYo9uZYBE3d5a4VrBXYCDdTLf7E9OflHn1xNqszlgXurrQY4XQi5fEyb7oGZONP/eRy/IEPYNpbQlK/lNykBRwaJUkRG+gsZE7pvWx43sjSSW5UAWRMfjSSm1px6oTzUBNzLdwW7MPafyqaPiYvJUCAU06OoQyj9II5qTM7mb8d3tBfbCZpC04fIh+3DQPKAgdhajAThRl88WMn/7B9zQMLAjtLtRQnCI/87WyQdNLKQOtB7Mr+YaD1i2rV6c8LGF7f4w8Z33QTagi24mGc2pUF8VBHUKE5aQgs3oMH8Qlsbb65kwprEyOXgajBDtpIXkJ4dh7fN81dNw8LE0/Ksl6T9aAq5WkWwCU5DJG6oAiDBydnCrYNTw2J2rKnRaxZtu6BdnDmFBqucDPCiZhlb0CxkyljSLM9+rBULHed65R3pHFIwJaWDLLasdGpCwBmi+U9YqvoU6aJwVA6TbrQXEqIgLD7JXSAkc3OSaQHqwlcvN46WG8OKxD+r4CBEF5gL9y1AE0qVAuddsdOTyv8OnZm+Jb1WC/wd3VTCNaTRC/wl3VFycckzOYm/dU0Pc7Beyb9WyVcDFgZmkqtoXcnX45uJqd+z8WQ2jsnlPwcb6/p07cfedtFz0gYnDRHErjjpOI1+fRSyoMTM6betToTMIVjHL2kht9BleKUH4a9ZJBCtqsxPT+drcNR7nLxCcBMozoCTGWr3Pu6Xj2zlg5FULvpgaNCcLe5n9tAqUWSCSZab3N+dhFSOn/T6r3XRiE5NAUaDHNLBvUvcaFoM4V6rSaIs/UENf245XCOXTNkPLaOKsHLIc2uEdyS2BslrT67LstjKIF0TW/vjmzZcx2scQjAkN/FQJvjaglS7oQ1rWarlgaZErv2CUs2QzqAdbE+stVZOdQ/xL86gGGWjozpyEXEFgKxnQT8IP4p5ADISClB0hiLgO10DksSRobVNfiMZB7NHvkwmcn0FkQfYgDCnkjqLsZTbpecuTktknFnQdGUfNQsaG/ZROeI4QSelKEhMaVErgqRe2nCCIPnFhAVJ+H+HsKDVFITFAwTLTJKimMYMOX/U+zsTDoPYY9o82nGlxwZgcsDCgOQvEfCUJAqEqAawdwVv3P79Rj8+HDlDr/UtdrrJYa7WtdT2U3lzJ0Uvm2cgeehdrYTcLT2m4isWAIgA7DL4X9GFFHylkdKS8+fmrwV2jq/L2QNDPNJUP5UVXp0UXB7YNQENaceSaZid0C+/gKzvPJV4g6lhinvMUNHTFKmyqaUSj5+oISf5mowjZaX6gEk+snF3wPFXrsBcT1TE/qxVOcGN0riU4aaY5hvHV6bkyZojJsf2L0dY6qOnZT86K+w9dpPMKsvIZG8Hm2RQd9zslq9aimXXV6B4KEBRxompR9VqubPXGPZueyd9pawNy2JK1XJkWaC8P0ehLMVLO8M2oE67IRGUOeiHZXogdQikCRUyvEXJtaEA4k4fs77AxVaBy5iU3J6aCEqj2S9wIVVdYPC3Ldx3nE7T50mPZCbtuj3MpFCA9WI0Q4VLCNFhbV37sa8DRz1HT+aoqdalO47Wi102DIxfHrBAFzj0/Dydn4aKl+742VnJSyjDLTzqksjtvuylM3FuKHvpDiwYmjxTeLCSOf65AoRHhXG6DhpWLfba8wdt4yGTm3J0ust4SP8MjJVnYA5iiyQLDWjCyGGYVR0He4+51C91aLUNiH4VEA8E5lpUYyVpq5qK/ANTrFl1xdEPcB78TwBsqqTPGp/gNKlgCb11Xg5aPOjHYUDr/NupCTXrf09QznmQr1l6MgejZKXsmg3tSQi1DqNbnWcHWvYgehMQOWRbnQdFdQfMDooelhBKCtY9itqj6LR//SE4ZPnXOozIbLOPInpwfk/hRsfG1psZ91n1z6nZ/4pldThBS7nYYoI2kSVnqPTKLl4s9YItr8u10jKu9+qPn7iLy9VXXT7sC6f5v6+lhmz+d3bO3Q8=</diagram></mxfile>"
  },
  {
    "path": "docs/diagrams/continuous-scoring.xml",
    "content": "<mxfile type=\"device\" userAgent=\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36\" version=\"5.3.4.1\" editor=\"www.draw.io\"><diagram>7VpZb+M2EP41fkxgHT7yaGfj3YcWWCAF2j4VtERLbCjRpehrf/0OqaF1+zqSAhsbMMTRkCLn++Yg5Z73nGy/SrKMfxch5T23H2573pee645GffjVgl0uGHgoiCQLc5FTCF7ZD4pCq7ZiIc0qikoIrtiyKgxEmtJAVWRESrGpqi0Erz51SSL7xELwGhDelP7JQhXn0rE7LOTfKIti+2Rn+JTfmZPgLZJileLzeq63MJ/8dkLsWGah3gvYUAoBw+irZPtMubajtVFujVnH3f0kJU1xIkc6uKO8y5rwFa40F2RqZ5e+iZmir0sS6PYG0O1501glHFoOXGZKijf6LLiQIElFCmrTBePcimDFL1/0V8tFqhBcmFreLukNZ747hsnmejiFllWhaE2losgwI8JVfqUioUruQAXvWrYh+zzb3hRY+k8oi8s49lFIkD/RfujCrHCBlm23MnKkYuMhhydMQ7aGy0hfWtFc1iUwfIteSUQ5yRQLTtbPKJFB3KVeQz+LyVJfBjvO0pACUNMjhDBkp3rtGmHoH4oNNiKYqTakuVHhDYDvTPS3SZ6Z+ejekoQMOFDnGnBlRhLGNbjfKF9TMAapks3xmmTzXf0FOeEsSvUSYWyzwBsQzn0aVxjn+E3G2ZhYJpwl4TV8c/wGijSEaIZNIVUsIpES/lJIa6iV4AQbyN1fKDeNv3XjcVAHl6bhREdaaM65CN5y0QzAxJH+pUrtEBCyUgJExVx+EwJ41BJRyszI79gArHVPxbgT0kyspCGyNj4mFiIjarUwHmoDHsRdghcqtq6mizYUTVcwFNG9rMJSsFRlDZD345+EO06/FGe+S6qXfG5I//RgnSOqDuyNmw68zw5lD7aOfo0H25RxIw/eMqUd2F4X/vsL+bZ15Ipze2jnG3t3sv2u/bmcDfDpSCa/Xlbks8JeBU/uEiasJUpxYhJFkkZEfUaKSyKFMxx8XKhw+pbsd4sVlSpg37B3/vdxYt+zE+p7u7/3hHHGEmSE2y47RB6oGu5//kAdceSSKGF33nfbtqTLBEIZ8FZIvfn+3I7cM0SNvI/bjtjNdheTSvgO/1vps48pLEs9oCEmoMHpAght71p2vAZCsjQ6kTp6zDOPLlBkETGz8Kba7AApn6A4YWFoomobEwVoL7ihXAx6FDqcSslLmVQw99anKLXo00Iip4+bzzKL8BTqShbhwIeOqu5SJL9Tguubz1UJrj1J56tozXTHq2YPE0y5bDYsuHmSHLnVEOXbsHF2kvSr5ZgzwvbFxXb7cwaW/rWivmtedX1nnM+rcIB8BhdnbA8PAH6BXeMNnOVSh8AYWN1HGi+5wiVOj4LNw2SdBaF86iciXHF4R/KLbuEaaawFywPHtbUXBO+6hbNBtgTqjIEHaGN8onk+mr7du3wImjb9HCpUmmGrXJbiHifZgtGX8aMuH4OYSPVI0lQoiCgi/adsO6xLTy0r3wfhPaMkThnED+Bmt/FXH13G5tJhE+FBC8D7F4HXIdz2Rq9jo2pBnC+T9JGblHYLfz2UADvevd4L3xoLb+G/9WMOu4Eooevi8XwFXSyArgJ30DweNbDpp8PDYXT9NwZI7DDsFcchRzenkmbsB5kbBQ00lqOgPZj2BhpQXTGBTr67O7pLVYZ6GWQO2DL/YUqrB78D5k4+dBdS1wHer52g2uBcDtg2qJcRv8CdoVn8wSIvs4t/rHgvPwE=</diagram></mxfile>"
  },
  {
    "path": "docs/setup.md",
    "content": "# Setup\n\nBelow you will find a list of items that you must do to get the project working on your local machine. The production setup document is not present in the repository for security reasons.\n\n\n## Config file\n\nThis project uses [config](https://www.npmjs.com/package/config) for configuration. You may create `config/local.json5` file to override the configuration as necessary, especially to define `githubTokens`.\n\n\n## Programs & utilities\n\n- `node` must be installed and available in `$PATH` (`>= v8`)\n- `git` must be installed and available in the `$PATH`.\n- GNU coreutils (`rm`, `mkdir`, `chmod`, `wc`) must be available.\n- `tar` or `bsdtar` must be available (BSD version is preferred.. on Debian install with `$ aptitude install bsdtar`)\n- Install the `pino` CLI to prettify logging output by running `$ npm install -g pino-pretty`\n\n\n## CouchDB\n\n- Install [CouchDB](http://couchdb.apache.org/) and run it (tested with `v2.2`).\n- Create database named `npms` by executing `curl -X PUT http://admin:admin@localhost:5984/npms`\n- Setup npm replication from `https://replicate.npmjs.com/registry` to `npm` database in `continuous` mode.\n- Setup the necessary views by creating the document `_design/npms-analyzer-npm` in the `npm` database with the contents of `https://github.com/npms-io/npms-analyzer/blob/master/config/couchdb/npm-analyzer.json`\n- Setup the necessary views by creating the document `_design/npms-analyzer-npms` in the `npms` database with the contents of `https://github.com/npms-io/npms-analyzer/blob/master/config/couchdb/npms-analyzer.json`\n\nNote: for the replication to work, you might need to [tweak](https://github.com/apache/couchdb/issues/1550#issuecomment-411751809) `auth-plugins` in the CouchDB config:\n\n```\n[replicator]\nauth_plugins = couch_replicator_auth_noop\n```\n\n\n## RabbitMQ\n\n**NOTE**: You may put `RabbitMQ standalone` into the gitignored `dev` folder while developing!\n\n- Install [RabbitMQ](https://www.rabbitmq.com/download.html) and run it (tested with `v3.6.1`).\n- Install the [management](https://www.rabbitmq.com/management.html) plugin which is very useful by running `rabbitmq-plugins enable rabbitmq_management`\n- Head to `http://localhost:15672` and login with `guest/guest` and see if everything is ok.\n\n\n## Elasticsearch\n\n**NOTE**: You may put the `Elasticsearch` app into the gitignored `dev` folder while developing!\n\n- Install [Elasticsearch](https://www.elastic.co/downloads/elasticsearch) (tested with `v6.4`)\n- Install the [head](https://github.com/mobz/elasticsearch-head) to perform various manual operations in a web GUI\n- Add these configurations to the `elasticsearch.yml`:\n  - `action.auto_create_index: -npms-current,-npms-new,+*`\n\n\n## Crontab\n\nIf you plan to run this in production, you should add `$ npms-analyzer tasks enqueue-missing` and `$ npms-analyzer tasks clean-extraneous` to crontab. These tasks ensure that, in case of errors, the `npms` packages are in sync with the packages from the `npm` registry.\n"
  },
  {
    "path": "ecosystem.json5",
    "content": "// This is the pm2 configuration file for npms-analyzer\n{\n    apps: [\n        {\n            name: 'npms-analyzer-observe',\n            script: './cli.js',\n            args: 'observe',\n            instances: 1,\n            env : { NODE_ENV: 'production' },\n            max_memory_restart: '2018M',  // Restart if it's getting close to the limit\n            node_args: '--max_old_space_size=2048',\n        },\n        {\n            name: 'npms-analyzer-consume',\n            script: './cli.js',\n            args: 'consume --concurrency 5',\n            instances: 2,\n            env : { NODE_ENV: 'production' },\n            max_memory_restart: '2018M',  // Restart if it's getting close to the limit\n            node_args: '--max_old_space_size=2048',\n        },\n        {\n            name: 'npms-analyzer-scoring',\n            script: './cli.js',\n            args: 'scoring',\n            instances: 1,\n            env : { NODE_ENV: 'production' },\n            max_memory_restart: '4066M',  // Restart if it's getting close to the limit\n            node_args: '--max_old_space_size=4096',\n        },\n    ],\n    deploy: {\n        production: {\n            user: 'analyzer',\n            host: '212.47.252.55',\n            ref: 'origin/master',\n            repo: 'https://github.com/npms-io/npms-analyzer.git',\n            path: '/home/analyzer/npms-analyzer',\n            'post-deploy': '\\\ncp ../local.json5 ./config/ && \\\nnpm update --loglevel http --production && \\\npm2 startOrRestart ecosystem.json5 --env production',\n        },\n    },\n}\n"
  },
  {
    "path": "lib/analyze/collect/bin/david-json",
    "content": "#!/usr/bin/env node\n\n'use strict';\n\nglobal.Promise = require('bluebird');\n\n// Some packages have a .npmrc to integrate with CI systems which require NPM_TOKEN env var to be defined\n// See: https://github.com/alanshaw/david/issues/109\nprocess.env.NPM_TOKEN = '';\nprocess.env.AUTH_TOKEN = '';\nprocess.env.NPM_AUTH_TOKEN = '';\nprocess.env.SOCIALTABLES_NPM_TOKEN = ''; // https://github.com/socialtables/react-table-sorter/blob/master/.npmrc\n\nconst path = require('path');\nconst yargs = require('yargs');\nconst loadJsonFile = require('load-json-file');\nconst david = Promise.promisifyAll(require('david'));\n\nconst argv = yargs\n.strict()\n.wrap(Math.min(120, yargs.terminalWidth()))\n.help()\n.alias('help', 'h')\n.usage('Usage: $0 --registry [registry-url]')\n.option('registry', {\n    type: 'string',\n    alias: 'r',\n    describe: 'The registry URL',\n    default: 'https://registry.npmjs.org',\n})\n.argv;\n\n// ---------------------------------------\n\nconst packageJsonPath = path.join(process.cwd(), 'package.json');\n\nloadJsonFile(packageJsonPath)\n.then((packageJson) => (\n    david.getUpdatedDependenciesAsync(packageJson, {\n        npm: {\n            'fetch-retries': 0, // No need for retries, the registry is local\n            registry: argv.registry,\n        },\n        loose: true, // Enable loose semver, there's some really strange versions that got into the registry somehow\n        stable: true,\n    })\n))\n.then((deps) => {\n    process.stdout.write(JSON.stringify(deps, null, 2));\n    process.stdout.write('\\n');\n})\n.done();\n"
  },
  {
    "path": "lib/analyze/collect/github.js",
    "content": "'use strict';\n\nconst got = require('got');\nconst moment = require('moment');\nconst ghIssuesStats = require('gh-issues-stats');\nconst tokenDealer = require('token-dealer');\nconst deepCompact = require('deep-compact');\nconst promiseRetry = require('promise-retry');\nconst uniqBy = require('lodash/uniqBy');\nconst pick = require('lodash/pick');\nconst promisePropsSettled = require('./util/promisePropsSettled');\nconst pointsToRanges = require('./util/pointsToRanges');\nconst hostedGitInfo = require('../util/hostedGitInfo');\nconst gotRetry = require('../util/gotRetry');\n\nconst unavailableStatusCodes = [404, 400, 403, 451]; // 404 - not found; 400 - invalid repo name; 403/451 - dmca takedown\nconst log = logger.child({ module: 'collect/github' });\n\n/**\n * Extract commits frequency based on the /stats/commit_activity response.\n *\n * @param {Object} commitActivity - The commit activity response.\n *\n * @returns {Array} The commits.\n */\nfunction extractCommits(commitActivity) {\n    // Aggregate the commit activity into ranges\n    const points = commitActivity.map((entry) => ({ date: moment.unix(entry.week).utc(), count: entry.total }));\n    const ranges = pointsToRanges(points, pointsToRanges.bucketsFromBreakpoints([7, 30, 90, 180, 365]));\n\n    // Finally map to a prettier array based on the ranges\n    return ranges.map((range) => ({\n        from: range.from,\n        to: range.to,\n        count: range.points.reduce((sum, point) => sum + point.count, 0),\n    }));\n}\n\n/**\n * Utility function to do a request to the GitHub API.\n *\n * @param {String} resource - The resource path.\n * @param {Object} options  - The options inferred from github() options.\n *\n * @returns {Promise} The promise for GitHub response.\n */\nfunction githubRequest(resource, options) {\n    const url = `https://api.github.com${resource}`;\n\n    return promiseRetry((retry) => (\n        // Use token dealer to circumvent rate limit issues\n        tokenDealer(options.tokens, (token, exhaust) => {\n            const handleRateLimit = (response, err) => {\n                if (response.headers['x-ratelimit-remaining'] === '0') {\n                    const isRateLimitError = err && err.statusCode === 403 && /rate limit/i.test(response.body.message);\n\n                    exhaust(Number(response.headers['x-ratelimit-reset']) * 1000, isRateLimitError);\n                }\n            };\n\n            return got(url, {\n                json: true,\n                timeout: 30000,\n                headers: Object.assign({ accept: 'application/vnd.github.v3+json' }, token ? { authorization: `token ${token}` } : null),\n                retry: gotRetry,\n            })\n            .then((response) => {\n                handleRateLimit(response);\n\n                return response;\n            }, (err) => {\n                err.response && handleRateLimit(err.response, err);\n                throw err;\n            });\n        }, {\n            group: 'github',\n            wait: options.waitRateLimit,\n            onExhausted: (token, reset) => log.error(`Token ${token ? token.substr(0, 10) : '<empty>'}.. exhausted`, { reset }),\n        })\n        .then((response) => {\n            // If response is 202, it means that there's no cached result so we must wait a bit and try again\n            if (response.statusCode === 202) {\n                log.debug(`Got 202 response for ${url} (not cached), retrying..`);\n                retry(Object.assign(new Error(`Empty response for ${url}`), { code: 'NO_CACHED_RESPONSE' }));\n            }\n\n            // If response is 204, it means that there's no content.. e.g.: there's no commits yet\n            if (response.statusCode === 204) {\n                return null;\n            }\n\n            return response.body;\n        })\n    ), { minTimeout: 2500, retries: 5 })\n    // If after all the retries there's still no content, return an empty array\n    .catch({ code: 'NO_CACHED_RESPONSE' }, (err) => {\n        log.warn({ err }, err.message);\n\n        return [];\n    })\n    // Check if the repository is unavailable\n    .catch((err) => unavailableStatusCodes.indexOf(err.statusCode) !== -1, (err) => {\n        log.info({ err }, `GitHub request to ${url} failed with ${err.statusCode}`);\n\n        return null;\n    })\n    .catch((err) => {\n        /* istanbul ignore next */\n        log.error({ err }, `GitHub request to ${url} failed`);\n        /* istanbul ignore next */\n        throw err;\n    });\n}\n\n/**\n * Fetches statistical information for a repository.\n *\n * @param {String} repository - The {user}/{project}.\n * @param {Object} options    - The options inferred from github() options.\n *\n * @returns {Promise} The promise for the stats.\n */\nfunction fetchIssuesStats(repository, options) {\n    return ghIssuesStats(repository, {\n        tokens: options.tokens,\n        concurrency: 5,\n        got: { retry: gotRetry },\n        tokenDealer: {\n            wait: options.waitRateLimit,\n            lru: tokenDealer.defaultLru,\n            onExhausted: (token, reset) => log.error(`Token ${token ? token.substr(0, 10) : '<empty>'}.. exhausted`, { reset }),\n        },\n    })\n    // Sum up the issues with the pull requests\n    .then((stats) => ({\n        count: stats.issues.count + stats.pullRequests.count,\n        openCount: stats.issues.openCount + stats.pullRequests.openCount,\n        distribution: Object.keys(stats.issues.distribution).reduce((accumulated, range) => {\n            accumulated[range] = stats.issues.distribution[range] + stats.pullRequests.distribution[range];\n\n            return accumulated;\n        }, {}),\n    }))\n    // Check if the repository is unavailable\n    .catch((err) => unavailableStatusCodes.indexOf(err.statusCode) !== -1, (err) => {\n        log.warn({ err }, `Fetch of issues stats for ${repository} failed with ${err.statusCode}`);\n\n        return null;\n    })\n    .catch((err) => {\n        /* istanbul ignore next */\n        log.error({ err }, `Fetch of issues stats for ${repository} failed`);\n        /* istanbul ignore next */\n        throw err;\n    });\n}\n\n// ----------------------------------------------------------------------------\n\n/**\n * Runs the github analyzer.\n * If the repository is not hosted in GitHub, the promise resolves to `null`.\n *\n * @param {Object} packageJson - The latest package.json data (normalized).\n * @param {Object} downloaded  - The downloaded info (`dir`, `packageJson`, ...).\n * @param {Object} [options]   - The options; read below to get to know each available option.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction github(packageJson, downloaded, options) {\n    let repository = packageJson.repository;\n\n    if (!repository) {\n        log.debug(`No repository field present for ${packageJson.name}, ignoring..`);\n\n        return Promise.resolve(null);\n    }\n\n    const gitInfo = hostedGitInfo(repository.url);\n\n    if (!gitInfo || gitInfo.type !== 'github') {\n        log.debug({ repository }, `Repository for ${packageJson.name} is not hosted on GitHub, ignoring..`);\n\n        return Promise.resolve(null);\n    }\n\n    options = Object.assign({\n        tokens: null, // The GitHub API tokens to use\n        waitRateLimit: false, // True to wait if rate limit for all tokens were exceeded,\n    }, options);\n\n    repository = `${gitInfo.user}/${gitInfo.project}`;\n\n    return promisePropsSettled({\n        info: githubRequest(`/repos/${repository}`, options),\n        contributors: githubRequest(`/repos/${repository}/stats/contributors`, options),\n        commitActivity: githubRequest(`/repos/${repository}/stats/commit_activity`, options),\n        issuesStats: fetchIssuesStats(repository, options),\n        statuses: githubRequest(`/repos/${repository}/commits/${downloaded.gitRef || 'master'}/statuses`, options),\n    })\n    .then((props) => {\n        if (!props.info) {\n            log.info(`The GitHub repository ${repository} is unavailable`);\n\n            return null;\n        }\n\n        if (!props.contributors || !props.commitActivity || !props.issuesStats) {\n            log.info(`It seems that the GitHub repository ${repository} is empty`);\n\n            return null;\n        }\n\n        return deepCompact({\n            homepage: props.info.homepage,\n            forkOf: (props.info.fork && props.info.parent && props.info.parent.full_name) || null,\n\n            starsCount: props.info.stargazers_count,\n            forksCount: props.info.forks_count,\n            subscribersCount: props.info.subscribers_count,\n\n            issues: Object.assign(props.issuesStats, { isDisabled: !props.info.has_issues }),\n\n            // Contributors (top 100)\n            contributors: props.contributors\n            .map((contributor) => {\n                const author = contributor.author;\n\n                // Empty entries will be stripped by deepCompact\n                return author && { username: contributor.author.login, commitsCount: contributor.total };\n            })\n            .reverse(),\n\n            // Commit activity\n            commits: extractCommits(props.commitActivity),\n\n            // Statuses\n            statuses: uniqBy(props.statuses, (status) => status.context)\n            .map((status) => pick(status, 'context', 'state')),\n        });\n    })\n    .tap(() => log.debug(`The github collector for ${packageJson.name} completed successfully`));\n}\n\nmodule.exports = github;\n"
  },
  {
    "path": "lib/analyze/collect/index.js",
    "content": "'use strict';\n\nconst pickBy = require('lodash/pickBy');\nconst intersectionWith = require('lodash/intersectionWith');\nconst isEmpty = require('lodash/isEmpty');\nconst collectors = require('require-directory')(module, './', { recurse: false });\nconst promisePropsSettled = require('./util/promisePropsSettled');\n\nconst log = logger.child({ module: 'collect' });\n\n/**\n * Checks if a package matches the downloaded repository.\n *\n * Unfortunately many people try to trick the system by pointing their repositories to popular repositories,\n * such as `jQuery`.\n *\n * @param {String} data        - The package data.\n * @param {Object} packageJson - The latest package.json data (normalized).\n * @param {Object} downloaded  - The downloaded info (`dir`, `packageJson`, ...).\n * @param {Nano}   npmNano     - The npm nano client instance.\n *\n * @returns {Promise} A promise that resolves to true if publisher is the owner, false if in doubt.\n */\nfunction checkRepositoryOwnership(data, packageJson, downloaded, npmNano) {\n    // If name is equal, then the publisher is the owner.. no further checks required\n    if (packageJson.name === downloaded.packageJson.name) {\n        return Promise.resolve(true);\n    }\n\n    const repositoryUrl = packageJson.repository && packageJson.repository.url;\n    const downloadedRepositoryUrl = downloaded.packageJson.repository && downloaded.packageJson.repository.url;\n\n    // Check if both have no repository\n    if (!repositoryUrl && !downloadedRepositoryUrl) {\n        return Promise.resolve(true);\n    }\n\n    // Check if download actually failed (e.g.: does not exist)\n    if (isEmpty(downloaded.packageJson)) {\n        return Promise.resolve(false);\n    }\n\n    // Do a final check against the maintainers of the downloaded package\n    return npmNano.getAsync(downloaded.packageJson.name)\n    .then((downloadedData) => (\n        intersectionWith(data.maintainers, downloadedData.maintainers, (maintainer, downloadedMaintainer) =>\n            maintainer.name === downloadedMaintainer.name || maintainer.email === downloadedMaintainer.email).length > 0)\n    )\n    .tap((isMaintainer) => {\n        !isMaintainer && log.warn({ packageJson, downloaded },\n            `Publisher of package ${packageJson.name} does not own the repository`);\n    })\n    .catch({ error: 'not_found' }, () => false);\n}\n\n// ----------------------------------------------------------------------------\n\n/**\n * Generates an empty collected data.\n *\n * @param  {name} name - The package name.\n *\n * @returns {Object} The empty collected data.\n */\nfunction empty(name) {\n    return {\n        metadata: collectors.metadata.empty(name),\n    };\n}\n\n/**\n * Runs all the collectors.\n *\n * @param {String} data        - The package data.\n * @param {Object} packageJson - The latest package.json data (normalized).\n * @param {Object} downloaded  - The downloaded info (`dir`, `packageJson`).\n * @param {Nano}   npmNano     - The npm nano client instance.\n * @param {Object} [options]   - The options; read below to get to know each available option.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction collect(data, packageJson, downloaded, npmNano, options) {\n    options = Object.assign({\n        githubTokens: null, // The GitHub API tokens to use\n        waitRateLimit: false, // True to wait if rate limit for all tokens were exceeded\n    }, options);\n\n    return checkRepositoryOwnership(data, packageJson, downloaded, npmNano)\n    .then((isRepositoryOwner) => {\n        const isSourceOwner = downloaded.downloader === 'npm' || isRepositoryOwner;\n\n        return promisePropsSettled({\n            metadata: collectors.metadata(data, packageJson),\n            npm: collectors.npm(data, packageJson, npmNano),\n            github: isRepositoryOwner && collectors.github(packageJson, downloaded, {\n                tokens: options.githubTokens,\n                waitRateLimit: options.waitRateLimit,\n            }),\n            source: isSourceOwner && collectors.source(data, packageJson, downloaded, {\n                npmRegistry: `${npmNano.config.url}/${npmNano.config.db}`,\n            }),\n        })\n        .then((collected) => pickBy(collected));\n    });\n}\n\nmodule.exports = collect;\nmodule.exports.empty = empty;\nmodule.exports.collectors = collectors;\n"
  },
  {
    "path": "lib/analyze/collect/metadata.js",
    "content": "'use strict';\n\nconst moment = require('moment');\nconst spdx = require('spdx');\nconst spdxCorrect = require('spdx-correct');\nconst deepCompact = require('deep-compact');\nconst isLinkWorking = require('is-link-working');\nconst get = require('lodash/get');\nconst find = require('lodash/find');\nconst pickBy = require('lodash/pickBy');\nconst mapValues = require('lodash/mapValues');\nconst size = require('lodash/size');\nconst hostedGitInfo = require('../util/hostedGitInfo');\nconst pointsToRanges = require('./util/pointsToRanges');\nconst promisePropsSettled = require('./util/promisePropsSettled');\n\nconst log = logger.child({ module: 'collect/metadata' });\n\n/**\n * Extracts the releases frequency.\n *\n * @param {Object} data - The package data.\n *\n * @returns {Array} An array of ranges with the release count for each entry.\n */\nfunction extractReleases(data) {\n    // Aggregate the releases into ranges\n    const time = data.time || {};\n    const points = Object.keys(time).map((version) => ({ date: moment.utc(time[version]), version }));\n    const ranges = pointsToRanges(points, pointsToRanges.bucketsFromBreakpoints([30, 90, 180, 365, 730]));\n\n    // Build the releases frequency array based on the releases ranges\n    return ranges.map((range) => ({\n        from: range.from,\n        to: range.to,\n        count: range.points.length,\n    }));\n}\n\n/**\n * Normalizes a single license value to a SPDX identifier.\n *\n * @param {String}        name    - The package name.\n * @param {String|Object} license - The license value, which can be a string or an object (deprecated).\n *\n * @returns {String} The normalized license, which is a SPDX identifier.\n */\nfunction normalizeLicense(name, license) {\n    // Handle { type: 'MIT', url: 'http://..' }\n    if (license && license.type) {\n        license = license.type;\n    }\n\n    // Ensure that the license is a non-empty string\n    // Note that `spdx-correct` throws on strings with empty chars, so we must use trim()\n    // e.g.: webjs-cli\n    if (typeof license !== 'string' || !license.trim()) {\n        log.warn({ license }, `Invalid license for package ${name} was found`);\n\n        return null;\n    }\n\n    // Try to correct licenses that are not valid SPDX identifiers\n    if (!spdx.valid(license)) {\n        const correctedLicense = spdxCorrect(license);\n\n        if (correctedLicense) {\n            log.debug(`Package ${name} license was corrected from ${license} to ${correctedLicense}`);\n            license = correctedLicense;\n        } else {\n            log.warn({ license }, `License for package ${name} is not a valid SPDX indentifier`);\n            license = null;\n        }\n    }\n\n    return license;\n}\n\n/**\n * Extracts the license from the package data.\n * Attempts to normalize any license to valid SPDX identifiers.\n *\n * @param {Object} packageJson - The latest package.json object (normalized).\n *\n * @returns {String} The license or null if unable to extract it.\n */\nfunction extractLicense(packageJson) {\n    const originalLicense = packageJson.license || packageJson.licenses;\n    let license = originalLicense;\n\n    // Short-circuit for packages without a license\n    if (license == null) {\n        log.trace(`No license for package ${packageJson.name} is set`);\n\n        return null;\n    }\n\n    // Some old packages used objects or an array of objects to specify licenses\n    // We do some effort to normalize them into SPDX license expressions\n    if (Array.isArray(license)) {\n        license = license\n        .map((license) => normalizeLicense(packageJson.name, license))\n        .reduce((str, license) => str + (str ? ' OR ' : '') + license, '');\n    } else {\n        license = normalizeLicense(packageJson.name, license);\n    }\n\n    return license;\n}\n\n/**\n * Extracts useful links of the package (homepage, repository, etc).\n *\n * @param {Object} packageJson - The latest package.json object (normalized).\n *\n * @returns {Object} The links.\n */\nfunction extractLinks(packageJson) {\n    const gitInfo = hostedGitInfo(packageJson.repository && packageJson.repository.url);\n\n    const links = pickBy({\n        npm: `https://www.npmjs.com/package/${encodeURIComponent(packageJson.name)}`,\n        homepage: packageJson.homepage,\n        repository: gitInfo && gitInfo.browse(),\n        bugs: (packageJson.bugs && packageJson.bugs.url) || (gitInfo && gitInfo.bugs()),\n    });\n\n    // Filter only good links, removing broken ones\n    // Avoid checking the npm link because we are sure it works..\n    const linksBeingChecked = [];\n    const isLinkWorkingCache = { [links.npm]: true };\n    const areLinksWorking = mapValues(links, (link) => {\n        const normalizedLink = link.split('#')[0]; // Remove trailing # (e.g.: #readme)\n\n        if (!isLinkWorkingCache[normalizedLink]) {\n            isLinkWorkingCache[normalizedLink] = isLinkWorking(normalizedLink);\n            linksBeingChecked.push(normalizedLink);\n        }\n\n        return isLinkWorkingCache[normalizedLink];\n    });\n\n    log.debug({ linksBeingChecked }, 'Checking for broken links');\n\n    return Promise.props(areLinksWorking)\n    .then((result) => {\n        let finalLinks = mapValues(links, (link, name) => result[name] ? link : null);\n\n        // If the homepage is broken, fallback to the repository docs\n        if (!finalLinks.homepage && finalLinks.repository) {\n            finalLinks.homepage = gitInfo.docs();\n        }\n\n        finalLinks = pickBy(finalLinks);\n\n        // Log the broken links\n        const brokenLinks = pickBy(links, (link, name) => !result[name]);\n        const brokenLinksCount = size(brokenLinks);\n\n        brokenLinksCount && log.info({ links, brokenLinks, finalLinks },\n            `Detected ${brokenLinksCount} broken links on ${packageJson.name}`);\n\n        return finalLinks;\n    });\n}\n\n/**\n * Extracts the author of the the package.\n * Tries to match against the maintainers to guess its `npm` username.\n *\n * @param {Object} packageJson - The latest package.json object (normalized).\n * @param {Array}  maintainers - The package maintainers.\n *\n * @returns {Object} The author (name + [username] + [email] + [url]) or null if unable to extract it.\n */\nfunction extractAuthor(packageJson, maintainers) {\n    if (!packageJson.author) {\n        return null;\n    }\n\n    const author = Object.assign({}, packageJson.author);\n    const maintainer = maintainers && find(maintainers, (maintainer) => maintainer.email === packageJson.author.email);\n\n    if (maintainer) {\n        author.username = maintainer.name;\n    }\n\n    return author;\n}\n\n/**\n * Extracts the person who published the package.\n * For older packages, it might be unavailable so a best-effort to guess it is made.\n *\n * @param {Object} packageJson - The latest package.json object (normalized).\n * @param {Array}  maintainers - The package maintainers.\n *\n * @returns {Object} The publisher (username + email) or null if unable to extract it.\n */\nfunction extractPublisher(packageJson, maintainers) {\n    let npmUser;\n\n    // Assume the _npmUser if exists\n    npmUser = packageJson._npmUser;\n\n    // Fallback to find the author within the maintainers\n    // If it doesn't exist, fallback to the first maintainer\n    if (!npmUser && maintainers) {\n        npmUser = packageJson.author && find(maintainers, (maintainer) => maintainer.email === packageJson.author.email);\n        npmUser = npmUser || maintainers[0];\n    }\n\n    return npmUser ? { username: npmUser.name, email: npmUser.email } : null;\n}\n\n/**\n * Extract the scope from the package name.\n *\n * @param {Object} packageJson - The latest package.json data (normalized).\n *\n * @returns {String} The scope, or \"unscoped\" if no scope is found.\n */\nfunction extractScope(packageJson) {\n    const match = packageJson.name.match(/^@([^/]+)\\/.+$/);\n\n    return match ? match[1] : 'unscoped';\n}\n\n/**\n * Extracts the package maintainers.\n *\n * This solves various issues with data consistency:\n * - Some packages have the maintainers in the data, others in the package.json.\n * - The top-level maintainers were empty but the package.json ones were correct, e.g.: `graphql-shorthand-parser`.\n * - The maintainers was not an array but a string e.g.: `connect-composer-stats.`.\n *\n * @param {Object} data        - The package data.\n * @param {Object} packageJson - The latest package.json data (normalized).\n *\n * @returns {Array} The maintainers or null if unable to extract them.\n */\nfunction extractMaintainers(data, packageJson) {\n    if (Array.isArray(data.maintainers) && data.maintainers.length) {\n        return data.maintainers;\n    }\n\n    if (Array.isArray(packageJson.maintainers) && packageJson.maintainers.length) {\n        return packageJson.maintainers;\n    }\n\n    log.warn({ packageJsonMaintainers: packageJson.maintainers, dataMaintainers: data.maintainers },\n        `Failed to extract maintainers of ${packageJson.name}`);\n\n    return null;\n}\n\n// ----------------------------------------------------------------------------\n\n/**\n * Generates an empty metadata objet.\n *\n * @param  {name} name - The package name.\n *\n * @returns {Object} The empty collected data.\n */\nfunction empty(name) {\n    return {\n        name,\n        version: '0.0.0',\n        links: {\n            npm: `https://www.npmjs.com/package/${encodeURIComponent(name)}`,\n        },\n    };\n}\n\n/**\n * Runs the metadata analyzer.\n *\n * @param {Object} data        - The package data.\n * @param {Object} packageJson - The latest package.json data (normalized).\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction metadata(data, packageJson) {\n    return promisePropsSettled({\n        links: extractLinks(packageJson),\n    })\n    .then((props) => {\n        const maintainers = extractMaintainers(data, packageJson);\n\n        return deepCompact({\n            name: packageJson.name,\n            scope: extractScope(packageJson),\n            version: packageJson.version,\n            description: packageJson.description,\n            keywords: packageJson.keywords,\n            date: data.time && (data.time[packageJson.version] || data.time.modified),\n\n            author: extractAuthor(packageJson, maintainers),\n            publisher: extractPublisher(packageJson, maintainers),\n            maintainers: maintainers && maintainers.map((maintainer) =>\n                ({ username: maintainer.name, email: maintainer.email })\n            ),\n            contributors: packageJson.contributors,\n\n            repository: packageJson.repository,\n            links: props.links,\n            license: extractLicense(packageJson),\n\n            dependencies: packageJson.dependencies,\n            devDependencies: packageJson.devDependencies,\n            peerDependencies: packageJson.peerDependencies,\n            bundledDependencies: packageJson.bundledDependencies || packageJson.bundleDependencies,\n            optionalDependencies: packageJson.optionalDependencies,\n\n            releases: extractReleases(data),\n\n            // There's some packages such as oh-flex that have an invalid deprecated field\n            // that was manually written in the package.json...\n            deprecated: typeof packageJson.deprecated === 'string' ? packageJson.deprecated : null,\n            hasTestScript: get(packageJson, 'scripts.test', 'no test specified').indexOf('no test specified') === -1 ? true : null,\n            hasSelectiveFiles: Array.isArray(packageJson.files) && packageJson.files.length > 0 ? true : null,\n\n            // Need to use typeof because there's some old packages in which the README is an object, e.g.: `flatsite`\n            readme: (typeof data.readme === 'string' && data.readme) ? data.readme : null,\n        });\n    })\n    .tap(() => log.debug(`The metadata collector for ${packageJson.name} completed successfully`));\n}\n\nmodule.exports = metadata;\nmodule.exports.empty = empty;\n"
  },
  {
    "path": "lib/analyze/collect/npm.js",
    "content": "'use strict';\n\nconst got = require('got');\nconst moment = require('moment');\nconst size = require('lodash/size');\nconst pointsToRanges = require('./util/pointsToRanges');\nconst promisePropsSettled = require('./util/promisePropsSettled');\nconst gotRetry = require('../util/gotRetry');\n\nconst log = logger.child({ module: 'collect/npm' });\n\n/**\n * Fetches the download count from https://api.npmsjs.org/downloads.\n *\n * @see https://github.com/npm/download-counts\n *\n * @param {String} name - The package name.\n *\n * @returns {Promise} The promise for the downloads object.\n */\nfunction fetchDownloads(name) {\n    const requestRange = {\n        from:\n            moment.utc()\n            .subtract(1, 'd')\n            .startOf('day')\n            .subtract(365, 'd')\n            .format('YYYY-MM-DD'),\n        to:\n            moment.utc()\n            .subtract(1, 'd')\n            .startOf('day')\n            .format('YYYY-MM-DD'),\n    };\n    const url = `https://api.npmjs.org/downloads/range/${requestRange.from}:${requestRange.to}/${encodeURIComponent(name)}`;\n\n    return got(url, {\n        json: true,\n        timeout: 30000,\n        retry: gotRetry,\n    })\n    .then((res) => res.body.downloads)\n    // Check if there is no stats yet\n    .catch({ statusCode: 404 }, () => [])\n    .then((downloads) => {\n        // Aggregate the data into ranges\n        const points = downloads.map((entry) => ({ date: moment.utc(entry.day), count: entry.downloads }));\n        const ranges = pointsToRanges(points, pointsToRanges.bucketsFromBreakpoints([1, 7, 30, 90, 180, 365]));\n\n        // Finally map to a prettier array based on the ranges, calculating the mean and count for each range\n        return ranges.map((range) => {\n            const downloadsCount = range.points.reduce((sum, point) => sum + point.count, 0);\n\n            return {\n                from: range.from,\n                to: range.to,\n                count: downloadsCount,\n            };\n        });\n    })\n    .catch((err) => {\n        log.error({ err, url }, `Failed to fetch ${name} downloads`);\n        throw err;\n    });\n}\n\n/**\n * Fetches the dependents count.\n *\n * @param {String} name    - The package name.\n * @param {Nano}   npmNano - The client nano instance for npm.\n *\n * @returns {Promise} The promise for the dependents count.\n */\n// function fetchDependentsCount(name, npmNano) {\n//     return npmNano.viewAsync('app', 'dependedUpon', {\n//         startkey: [name],\n//         endkey: [name, '\\ufff0'],\n//         limit: 1,\n//         reduce: true,\n//         stale: 'update_after',\n//     })\n//     .then((response) => !response.rows.length ? 0 : response.rows[0].value)\n//     .catch((err) => {\n//         /* istanbul ignore next */\n//         log.error({ err }, `Failed to fetch ${name} dependents count from CouchDB`);\n//         /* istanbul ignore next */\n//         throw err;\n//     });\n// }\n\n/**\n * Extract the stars count.\n *\n * @param {Object} data - The package data.\n *\n * @returns {Number} The number of stars.\n */\nfunction extractStarsCount(data) {\n    // The users that starred are stored in the package data itself under the `users` property\n    return size(data.users);\n}\n\n// ----------------------------------------------------------------------------\n\n/**\n * Runs the npm analyzer.\n *\n * @param {Object} data        - The package data.\n * @param {Object} packageJson - The latest package.json data (normalized).\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction npm(data, packageJson) {\n    return promisePropsSettled({\n        downloads: fetchDownloads(packageJson.name, { timeout: 30000 }),\n        // TODO: The couchdb view was deprecated, find an alternative\n        // dependentsCount: fetchDependentsCount(packageJson.name, npmNano),\n        starsCount: extractStarsCount(data),\n    })\n    .tap(() => log.debug(`The npm collector for ${packageJson.name} completed successfully`));\n}\n\nmodule.exports = npm;\n"
  },
  {
    "path": "lib/analyze/collect/source.js",
    "content": "'use strict';\n\nconst path = require('path');\nconst detectRepoLinters = require('detect-repo-linters');\nconst detectRepoTestFiles = require('detect-repo-test-files');\nconst detectReadmeBadges = require('detect-readme-badges');\nconst detectRepoChangelog = require('detect-repo-changelog');\nconst fetchCoverage = require('fetch-coverage');\nconst loadJsonFile = require('load-json-file');\nconst deepCompact = require('deep-compact');\nconst isRegularFile = require('is-regular-file');\nconst got = require('got');\nconst fileSize = require('./util/fileSize');\nconst promisePropsSettled = require('./util/promisePropsSettled');\nconst exec = require('../util/exec');\nconst gotRetry = require('../util/gotRetry');\nconst fileContents = require('./util/fileContents');\nconst uniqWith = require('lodash/uniqWith');\nconst isEqual = require('lodash/isEqual');\nconst { uniq } = require('lodash');\n\nconst davidBin = path.normalize(`${__dirname}/bin/david-json`);\nconst log = logger.child({ module: 'collect/source' });\n\n/**\n * Inspects important files, such as the tests and README file sizes.\n *\n * @param {Object} data - The package data.\n * @param {Object} downloaded - The downloaded info (`dir`, `packageDir`, ...).\n *\n * @returns {Promise} The promise for the inspection result.\n */\nfunction inspectFiles(data, downloaded) {\n    // Sum readme file sizes of the one in the package dir with the root\n    const readmeSize = fileSize([\n        `${downloaded.packageDir}/${data.readmeFilename || 'README.md'}`,\n        downloaded.dir !== downloaded.packageDir ? `${downloaded.DIR}/${data.readmeFilename || 'README.md'}` : '',\n    ].filter((path) => path));\n    // Prefer tests located in the package dir and fallback to the root\n    const testsSize = (\n        detectRepoTestFiles(downloaded.packageDir)\n        .then((files) => !files.length && downloaded.dir !== downloaded.packageDir ? detectRepoTestFiles(downloaded.dir) : files)\n        .then((files) => fileSize(files))\n    );\n    // .npmignore must be located inside the package dir\n    // TODO: Improve npmignore detection because it can be in sub-directories too\n    const hasNpmIgnore = isRegularFile(`${downloaded.packageDir}/.npmignore`).then((is) => is || null);\n    // npm-shrinkwrap must be located inside the package dir\n    const hasShrinkwrap = isRegularFile(`${downloaded.packageDir}/npm-shrinkwrap.json`).then((is) => is || null);\n    // Usually changelogs are at the root directory, still we prefer the package dir one if it exists\n    const hasChangelog = detectRepoChangelog(downloaded.packageDir)\n    .then((file) => !file && downloaded.dir !== downloaded.packageDir ? detectRepoChangelog(downloaded.dir) : file)\n    .then((file) => file ? true : null);\n\n    return Promise.props({\n        readmeSize,\n        testsSize,\n        hasNpmIgnore,\n        hasShrinkwrap,\n        hasChangelog,\n    });\n}\n\n/**\n * Gets the readme badges.\n\n * @param {Object} data - The package data.\n * @param {Object} downloaded - The downloaded info (`dir`, `packageDir`, ...).\n *\n * @returns {Promise} The promise for the badges result.\n */\nfunction getReadmeBadges(data, downloaded) {\n    // Use badges from both the package dir and root README\n    return Promise.props({\n        onPackageDir: typeof data.readme === 'string' && data.readme ? data.readme : fileContents(`${downloaded.packageDir}/${data.readmeFilename || 'README.md'}`),\n        onRoot: downloaded.dir !== downloaded.packageDir ? fileContents(`${downloaded.dir}/${data.readmeFilename || 'README.md'}`) : '',\n    })\n    .then((readmes) => Promise.props({\n        onRoot: detectReadmeBadges(readmes.onRoot || ''),\n        onPackageDir: detectReadmeBadges(readmes.onPackageDir || ''),\n    }))\n    // Cleanup duplicates\n    .then((badges) => uniqWith([...badges.onPackageDir, ...badges.onRoot], isEqual));\n}\n\n/**\n * Gets the repository linters.\n *\n * @param {Object} downloaded  - The downloaded info (`dir`, `packageDir`, ...).\n *\n * @returns {Promise} The promise for the linters result.\n */\nfunction getRepoLinters(downloaded) {\n    // Linters usually are at the root but we consider both just in case..\n    return Promise.props({\n        onPackageDir: detectRepoLinters(downloaded.packageDir),\n        onRootDir: downloaded.dir !== downloaded.packageDir ?\n            detectRepoLinters(downloaded.dir)\n            // A JSON error might occur if `detect-repo-linters`fails to parse `package.json` as JSON\n            // Since the `package.json` at the root was not validated, it can have errors\n            // If that's the case, we want to skip them here\n            .catch({ name: 'JSONError' }, () => {\n                log.warn({ dir: downloaded.dir }, 'Error reading downloaded package.json when scanning for linters');\n\n                return [];\n            }) :\n            [],\n    })\n    .then((linters) => uniq([...linters.onPackageDir, ...linters.onRootDir]));\n}\n\n/**\n * Fetches the code coverage.\n *\n * @param {Object} packageJson - The latest package.json data (normalized).\n * @param {Array}  badges      - The badges detected by the detect-readme-badges package to speed up the process.\n *\n * @returns {Promise} The promise for the code coverage, a number from 0 to 1.\n */\nfunction fetchCodeCoverage(packageJson, badges) {\n    const repository = packageJson.repository;\n\n    if (!repository) {\n        return Promise.resolve();\n    }\n\n    return fetchCoverage(repository.url, {\n        badges,\n        got: { retry: gotRetry },\n    })\n    .catch((err) => {\n        const name = packageJson.name;\n\n        /* istanbul ignore next */\n        if (err.errors) {\n            err.errors.forEach((err, index) => log.warn({ err }, `Error #${index} while fetching ${name} code coverage of`));\n        }\n\n        /* istanbul ignore next  */\n        log.error({ err }, `Failed to fetch ${name} code coverage`);\n        /* istanbul ignore next */\n        throw err;\n    });\n}\n\n/**\n * Checks the package looking for known vulnerabilities.\n * Uses https://github.com/nodesecurity/nsp under the hood.\n *\n * @param {Object} packageJson - The latest package.json data (normalized).\n *\n * @returns {Promise} The promise for the vulnerabilities or false if package is totally broken.\n */\nfunction checkVulnerabilities(packageJson) {\n    const url = 'https://registry.npmjs.org/-/npm/v1/security/advisories/search';\n\n    return got(url, {\n        json: true,\n        retry: gotRetry,\n        query: {\n            module: packageJson.name,\n            version: packageJson.version,\n        },\n    })\n    .then((res) => res.body.objects)\n    .map((vulnerability) => ({\n        id: vulnerability.id,\n        title: vulnerability.title,\n        overview: vulnerability.overview,\n        recommendation: vulnerability.recommendation,\n        createdAt: vulnerability.created,\n        updatedAt: vulnerability.updated,\n        severity: vulnerability.severity,\n        module: vulnerability.module_name,\n        vulnerableVersions: vulnerability.vulnerable_versions,\n        patchedVersions: vulnerability.patched_versions,\n        advisory: vulnerability.url,\n    }))\n    .catch({ statusCode: 404 }, () => {\n        log.warn({ url }, `The npm security API returned 404 when fetching ${packageJson.name}@${packageJson.version} vulnerabilities`);\n\n        return [];\n    })\n    .catch((err) => {\n        /* istanbul ignore next */\n        log.error({ err }, `Failed to scan ${packageJson.name}@${packageJson.version} vulnerabilities`);\n        /* istanbul ignore next */\n        throw err;\n    });\n}\n\n/**\n * Checks the package dependencies looking for outdated versions.\n * Uses https://github.com/alanshaw/david under the hood, the package that powers https://david-dm.org/.\n *\n * @param {String} name    - The package name.\n * @param {String} dir     - The package directory.\n * @param {Object} options - The options inferred from source() options.\n *\n * @returns {Promise} The promise for the outdated dependencies, indexed by name or false if deps are totally broken.\n */\nfunction checkOutdatedDeps(name, dir, options) {\n    const jsonFile = `${dir}/.npms-david.json`;\n\n    // Need to pipe stdout to a file due to a NodeJS bug where the output was being truncated\n    // See: https://github.com/nodejs/node/issues/784\n    // We also run a binary wrapper around the david package because it had memory leaks, causing the memory of this\n    // process to grow over time\n    return exec(exec.escape`${davidBin} --registry ${options.npmRegistry} > ${jsonFile}`, {\n        cwd: dir,\n        timeout: 60 * 1000,\n    })\n    .then(() => loadJsonFile(jsonFile))\n    // Ignore broken deps (e.g.: ccbuild@1.8.1)\n    .catch((err) => /failed to get versions/i.test(err.stderr), (err) => {\n        log.warn({ err }, `Some of ${name} dependencies are broken, skipping check outdated..`);\n\n        return false;\n    })\n    // Ignore broken package data (e.g.: gqformemail)\n    .catch((err) => /versions.sort is not a function/i.test(err.stderr), (err) => {\n        log.warn({ err }, `The package data of ${name} is broken, skipping check outdated..`);\n\n        return false;\n    })\n    // Ignore broken package name (e.g.: @~lisfan/vue-image-placeholder)\n    .catch((err) => /\\[ERR_ASSERTION\\]/i.test(err.stderr), (err) => {\n        log.warn({ err }, `The package data of ${name} is broken (probably the name), skipping check outdated..`);\n\n        return false;\n    })\n    // Many packages have a `.npmrc` with a custom registry that require authentication\n    // Those packages are broken, in the sense that they can't be installed by the outside world (e.g.: webhint-hint-chisel)\n    .catch((err) => /requires auth credentials/i.test(err.message), (err) => {\n        err.unrecoverable = true;\n        throw err;\n    })\n    .catch((err) => {\n        /* istanbul ignore next */\n        log.error({ err }, `Failed to check outdated dependencies of ${name}`);\n        /* istanbul ignore next */\n        throw err;\n    });\n}\n\n// ----------------------------------------------------------------------------\n\n// TODO: code complexity? https://www.npmjs.com/package/escomplex\n// TODO: technical debts, such as TODO's and FIXME's?\n\n/**\n * Runs the source analyzer.\n *\n * @param {String} data        - The package data.\n * @param {Object} packageJson - The latest package.json data (normalized).\n * @param {Object} downloaded  - The downloaded info (`dir`, `packageJson`, ...).\n * @param {Object} [options]   - The options; read below to get to know each available option.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction source(data, packageJson, downloaded, options) {\n    options = Object.assign({\n        npmRegistry: 'https://registry.npmjs.org', // The registry url to be used\n    }, options);\n\n    // Analyze source first because the external cli tools add files to the directory\n    return Promise.try(() => (\n        promisePropsSettled({\n            files: inspectFiles(data, downloaded),\n            badges: getReadmeBadges(data, downloaded),\n            linters: getRepoLinters(downloaded),\n        })\n        .tap((props) =>\n            // Only now we got badges..\n            fetchCodeCoverage(packageJson, props.badges)\n            .then((coverage) => { props.coverage = coverage; })\n        )\n    ))\n    // Finally use external cli tools\n    .then((props) => (\n        promisePropsSettled({\n            outdatedDependencies: checkOutdatedDeps(packageJson.name, downloaded.packageDir, options),\n            vulnerabilities: checkVulnerabilities(packageJson),\n        })\n        .then((props_) => Object.assign(props, props_))\n    ))\n    .then((result) => deepCompact(result))\n    .tap(() => log.debug(`The source collector for ${packageJson.name} completed successfully`));\n}\n\nmodule.exports = source;\n"
  },
  {
    "path": "lib/analyze/collect/util/fileContents.js",
    "content": "'use strict';\n\nconst readFile = Promise.promisify(require('fs').readFile);\n\nconst log = logger.child({ module: 'util/file-contents' });\n\n/**\n * Gets the file contents of a file.\n *\n * @param {String} path - The path.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction fileContents(path) {\n    return readFile(path)\n    .then((buffer) => buffer.toString())\n    // Return 0 if path does not exist\n    .catch({ code: 'ENOENT' }, () => null)\n    // Return 0 if path is directory\n    .catch({ code: 'EISDIR' }, () => null)\n    // Return 0 if too many symlinks are being followed, e.g.: `condensation`\n    .catch({ code: 'ELOOP' }, (err) => {\n        log.warn({ err }, `ELOOP while getting file size of ${path}, returning 0..`);\n\n        return null;\n    })\n    // Ignore errors of packages that have large nested paths.. e.g.: `cordova-plugin-forcetouch`\n    .catch({ code: 'ENAMETOOLONG' }, (err) => {\n        /* istanbul ignore next */\n        log.warn({ err }, `ENAMETOOLONG while getting file size of ${path}, returning 0..`);\n        /* istanbul ignore next */\n\n        return null;\n    });\n}\n\nmodule.exports = fileContents;\n"
  },
  {
    "path": "lib/analyze/collect/util/fileSize.js",
    "content": "'use strict';\n\nconst stat = Promise.promisify(require('fs').stat);\nconst globby = require('globby');\n\nconst log = logger.child({ module: 'util/file-size' });\n\n/**\n * Gets the size of a regular file(s).\n *\n * @param {String|Array} path - The path(s).\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction fileSize(path) {\n    const paths = Array.isArray(path) ? path : [path];\n\n    return Promise.map(paths, (path) => (\n        stat(path)\n        .then((stat) => stat.isFile() ? stat.size : 0)\n        // Return 0 if path does not exist\n        .catch({ code: 'ENOENT' }, () => 0)\n        // Return 0 if too many symlinks are being followed, e.g.: `condensation`\n        .catch({ code: 'ELOOP' }, (err) => {\n            log.warn({ err }, `ELOOP while getting file size of ${path}, returning 0..`);\n\n            return 0;\n        })\n        // Ignore errors of packages that have large nested paths.. e.g.: `cordova-plugin-forcetouch`\n        .catch({ code: 'ENAMETOOLONG' }, (err) => {\n            /* istanbul ignore next */\n            log.warn({ err }, `ENAMETOOLONG while getting file size of ${path}, returning 0..`);\n            /* istanbul ignore next */\n\n            return 0;\n        })\n    ), { concurrency: 50 })\n    .then((sizes) => sizes.reduce((sum, size) => sum + size, 0));\n}\n\n/**\n * Gets the size of a directory.\n *\n * @param {String} dir - The directory path.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction fileSizeDir(dir) {\n    return globby('**/*', {\n        cwd: dir,\n        // Only return files\n        onlyFiles: true,\n        // Include files starting with a dot\n        dot: true,\n        // Ignore symlinks to avoid loops\n        followSymlinkedDirectories: false,\n        // Return absolute paths\n        absolute: true,\n    })\n    .then((paths) => fileSize(paths));\n}\n\nmodule.exports = fileSize;\nmodule.exports.dir = fileSizeDir;\n"
  },
  {
    "path": "lib/analyze/collect/util/pointsToRanges.js",
    "content": "'use strict';\n\nconst moment = require('moment');\n\n/**\n * Aggregates an array of points into buckets of date ranges.\n *\n * The array of points must have a `date` property with a moment's date.\n *\n * @param {Array} points  - The array of points.\n * @param {Array} buckets - An array of buckets, see bucketsFromBreakpoints().\n *\n * @returns {Array} An array of ranges, which are objects with `from`, `to` and `points` properties.\n */\nfunction pointsToRanges(points, buckets) {\n    return buckets.map((bucket) => {\n        const filteredPoints = points.filter((point) => moment.utc(point.date).isBetween(bucket.start, bucket.end, null, '[)'));\n\n        return {\n            from: moment.utc(bucket.start).toISOString(),\n            to: moment.utc(bucket.end).toISOString(),\n            points: filteredPoints,\n        };\n    });\n}\n\n/**\n * Utility function that builds a buckets array from breakpoints expressed in days.\n * Useful to use in conjunction with `pointsToRanges()`.\n *\n * @param {Array} breakpoints - The breakpoints (order must be ASC).\n *\n * @returns {Array} An array of objects containaing `start` and `end` moment dates to be used in pointsToRanges.\n */\nfunction bucketsFromBreakpoints(breakpoints) {\n    const referenceDate = moment.utc().startOf('day');\n\n    return breakpoints\n    .map((breakpoint) => ({\n        start: referenceDate.clone().subtract(breakpoint, 'd'),\n        end: referenceDate,\n    }));\n}\n\nmodule.exports = pointsToRanges;\nmodule.exports.bucketsFromBreakpoints = bucketsFromBreakpoints;\n"
  },
  {
    "path": "lib/analyze/collect/util/promisePropsSettled.js",
    "content": "'use strict';\n\nconst mapValues = require('lodash/mapValues');\n\n/**\n * Promise utility similar to bluebird's .props() but only fulfills when all promises are fulfilled,\n * even rejections.\n *\n * @param {Object} object - The object that contain the promises.\n *\n * @returns {Promise} A promise that only fulfills after all the promises have fulfilled.\n */\nfunction promisePropsSettled(object) {\n    object = mapValues(object, (promise) => Promise.resolve(promise).reflect());\n\n    return Promise.props(object)\n    .then((results) => (\n        mapValues(results, (inspection) => {\n            if (inspection.isRejected()) {\n                throw inspection.reason();\n            }\n\n            return inspection.value();\n        })\n    ));\n}\n\nmodule.exports = promisePropsSettled;\n"
  },
  {
    "path": "lib/analyze/download/git.js",
    "content": "'use strict';\n\nconst urlLib = require('url');\nconst exec = require('../util/exec');\nconst hostedGitInfo = require('../util/hostedGitInfo');\nconst findPackageDir = require('./util/findPackageDir');\nconst mergePackageJson = require('./util/mergePackageJson');\nconst assertFilesCount = require('./util/assertFilesCount');\n\nconst log = logger.child({ module: 'download/git' });\n\n/**\n * Downloads the package using git.\n *\n * @param {String} url     - The repository clone URL.\n * @param {String} ref     - The ref to download (null to download the default branch).\n * @param {String} tmpDir  - The temporary dir path to download to.\n * @param {Object} options - The options inferred from github() options.\n *\n * @returns {Promise} The promise that resolves with the downloaded ref.\n */\nfunction download(url, ref, tmpDir, options) {\n    let downloadedRef = ref;\n\n    log.debug(`Will now clone ${url}`);\n\n    // Clone repository\n    return exec(exec.escape`git clone -q ${url} .`, { cwd: tmpDir })\n    // Checkout the ref if any\n    .then(() => ref && exec(exec.escape`git checkout -q ${ref}`, { cwd: tmpDir }))\n    // Wait a maximum of X time\n    .timeout(options.maxTime)\n    // Clear out the ref if any error occurred\n    .catch((err) => {\n        downloadedRef = null;\n        throw err;\n    })\n    // Finally remove the .git folder if it exists\n    .finally(() => exec(exec.escape`rm -rf ${tmpDir}/.git`))\n    // Repository does not exist, is invalid, or we have no permission?\n    //   https://foo:bar@github.com/something/thatwillneverexist.git  -> authentication failed\n    //   https://foo:bar@github.com/some/privaterepo.git  -> authentication failed\n    //   https://foo:bar@github.com/org/foo+foo.git -> not found\n    //   https://foo:bar@github.com/org/foo%foo.git -> unable to access (400)\n    //   https://foo:bar@bitbucket.org/something/thatwillneverexist.git -> not found\n    //   https://foo:bar@bitbucket.org/some/privaterepo.git  -> authentication failed\n    //   https://foo:bar@bitbucket.org/org/foo+foo.git -> not found\n    //   https://foo:bar@bitbucket.org/org/foo%foo.git -> unable to access (400)\n    //   https://foo:bar@gitlab.com/something/thatwillneverexist.git -> authenticated failed\n    //   https://foo:bar@gitlab.com/some/privaterepo.git  -> authentication failed\n    //   https://foo:bar@gitlab.com/org/foo+foo.git -> unable to access (500)\n    //   https://foo:bar@gitlab.com/org/foo%foo.git -> unable to access (400)\n    //   https://foo:bar@gitlab.com/upe-consulting/npm%2Flogger.git/info/refs -> not valid: is this a git repository?\n    .catch((err) => /not found|authentication failed/i.test(err.stderr), (err) => {\n        log.warn({ err }, `Repository ${url} does not exist or is private`);\n    })\n    .catch((err) => /unable to access|is this a git repository/i.test(err.stderr), (err) => {\n        log.warn({ err }, `Repository ${url} seems to be invalid`);\n    })\n    // Check if ref no longer exists\n    //   did not match any file -> if branch or tag does not exist\n    //   reference is not a tree -> if sha does not exist\n    .catch((err) => /did not match any file|reference is not a tree/i.test(err.stderr), (err) => {\n        log.warn({ err }, `Failed to checkout ref ${ref} for ${url}, using default branch..`);\n    })\n    // Finally return the ref\n    .then(() => downloadedRef);\n}\n\n/**\n * Gets the clone URL from `gitInfo` (https).\n *\n * @param {Object} gitInfo - The git info object.\n *\n * @returns {String} The https clone URL.\n */\nfunction getCloneUrl(gitInfo) {\n    let url;\n\n    // Use https:// protocol to avoid having to setup ssh keys in GitHub, Bitbucket and GitLab\n    // Also, foo@bar is added as username & password to prevent git clone from prompting for credentials\n    // Even if foo@bar does not exist or is invalid, public repositories are still cloned correctly\n    url = gitInfo.https().substr(4);\n    url = Object.assign(urlLib.parse(url), { auth: 'foo:bar' });\n    url = urlLib.format(url);\n\n    return url;\n}\n\n// ------------------------------------------------------------------\n\n/**\n * Checks if this package should be downloaded using git.\n *\n * If it does, the promise results with a function that will download the package.\n * If it does not, the promise will resolve to null.\n *\n * @param {Object} packageJson - The latest package.json data (normalized).\n * @param {Object} [options]   - The options; read below to get to know each available option.\n *\n * @returns {Function} The download function or null.\n */\nfunction git(packageJson, options) {\n    const repository = packageJson.repository;\n\n    if (!repository) {\n        return null;\n    }\n\n    const gitInfo = hostedGitInfo(repository.url);\n\n    if (!gitInfo) {\n        return null;\n    }\n\n    options = Object.assign({\n        maxTime: 600000, // Max allowed download time (10m)\n        maxFiles: 32000, // Max allowed files to download\n    }, options);\n\n    return (tmpDir) => {\n        const url = getCloneUrl(gitInfo);\n        const ref = packageJson.gitHead || null;\n\n        return download(url, ref, tmpDir, options)\n        .then((gitRef) => ({\n            downloader: 'git',\n            dir: tmpDir,\n            gitRef,\n        }))\n        // Assert that the number of downloaded files is not too big to be processed\n        .tap(() => assertFilesCount(tmpDir, options.maxFiles))\n        // Find package dir within the repository\n        // The package is usually in the root for regular repositories, but not for mono-repositories\n        .tap((downloaded) => (\n            findPackageDir(packageJson, tmpDir)\n            .then((packageDir) => { downloaded.packageDir = packageDir; })\n        ))\n        // Merge the downloaded repository package.json with the one from the registry\n        // See mergePackageJson() to know why we do this\n        .tap((downloaded) => (\n            mergePackageJson(packageJson, downloaded.packageDir)\n            .then((downloadedPackageJson) => { downloaded.packageJson = downloadedPackageJson; })\n        ))\n        // Remove package-lock.json file if any.\n        // People often forgot to update the package-lock, which is not published, and messes up\n        // with collectors, such as `nodesecurity`.\n        .tap((downloaded) => exec(exec.escape`rm -rf ${downloaded.packageDir}/package-lock.json`));\n    };\n}\n\nmodule.exports = git;\n"
  },
  {
    "path": "lib/analyze/download/github.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst tokenDealer = require('token-dealer');\nconst got = require('got');\nconst untar = require('./util/untar');\nconst hostedGitInfo = require('../util/hostedGitInfo');\nconst findPackageDir = require('./util/findPackageDir');\nconst gotRetry = require('../util/gotRetry');\nconst exec = require('../util/exec');\nconst mergePackageJson = require('./util/mergePackageJson');\n\nconst log = logger.child({ module: 'download/github' });\nconst unavailableStatusCodes = [404, 400, 403, 451]; // 404 - not found; 400 - invalid repo name; 403/451 - dmca takedown\n\n/**\n * Downloads the package from GitHub.\n *\n * @param {String} shorthand - The <org>/<repo>.\n * @param {String} ref       - The ref to download (null to download the default branch).\n * @param {String} tmpDir    - The temporary dir path to download to.\n * @param {Object} options   - The options inferred from github() options.\n *\n * @returns {Promise} The promise that resolves with the downloaded ref.\n */\nfunction download(shorthand, ref, tmpDir, options) {\n    const url = `https://api.github.com/repos/${shorthand}/tarball/${ref || ''}`;\n    const tarballFile = `${tmpDir}/tarball.tar.gz`;\n    let downloadedRef = ref;\n\n    log.trace(`Will download tarball of ${shorthand}@${ref || 'default'}..`);\n\n    // Download tarball\n    // Use token dealer to circumvent rate limit issues\n    return tokenDealer(options.tokens, (token, exhaust) => (\n        new Promise((resolve, reject) => {\n            let request;\n            const handleRateLimit = (response, err) => {\n                if (response.headers['x-ratelimit-remaining'] === '0') {\n                    const isRateLimitError = err && err.statusCode === 403;\n\n                    exhaust(Number(response.headers['x-ratelimit-reset']) * 1000, isRateLimitError);\n                }\n            };\n\n            got.stream(url, {\n                timeout: 30000,\n                headers: Object.assign({ accept: 'application/vnd.github.v3+json' }, token ? { authorization: `token ${token}` } : null),\n                retry: gotRetry,\n            })\n            .on('request', (request_) => { request = request_; })\n            .on('response', (response) => {\n                // Handle rate limit stuff\n                handleRateLimit(response);\n\n                // Check if the file is too big..\n                const contentLength = Number(response.headers['content-length']);\n\n                if (contentLength > options.maxSize) {\n                    request.abort();\n                    reject(Object.assign(new Error(`${shorthand} tarball is too large (~${Math.round(contentLength / 1024 / 1024)}MB)`), {\n                        unrecoverable: true,\n                    }));\n                }\n            })\n            .on('error', (err, details, response) => {\n                // Handle rate limit stuff\n                try {\n                    response && handleRateLimit(response, err);\n                } catch (exhaustedErr) {\n                    err = exhaustedErr || err;\n                }\n\n                reject(err);\n            })\n            .pipe(fs.createWriteStream(tarballFile))\n            .on('error', reject)\n            .on('finish', resolve);\n        })\n    ), {\n        group: 'github',\n        wait: options.waitRateLimit,\n        onExhausted: (token, reset) => log.error(`Token ${token ? token.substr(0, 10) : '<empty>'}.. exhausted`, { reset }),\n    })\n    // Extract tarball\n    .then(() => {\n        log.debug({ tarballFile }, `Successfully downloaded ${shorthand} tarball, will now extract ..`);\n\n        return untar(tarballFile, { maxFiles: options.maxFiles });\n    })\n    // Clear out the ref if any error occurred; also delete downloaded archive if any\n    .catch((err) => {\n        downloadedRef = null;\n\n        return exec(exec.escape`rm -rf ${tarballFile}`)\n        .finally(() => { throw err; });\n    })\n    // If we got a 404 either the repository or the specified ref does not exist (devs usually forget to push or do push -f)\n    // If a specific ref was requested, attempt to download the default branch\n    .catch((err) => err.statusCode === 404 && ref, () => {\n        log.warn(`Download of ${shorthand}@${ref} tarball failed with 404, trying default branch..`);\n\n        return download(shorthand, null, tmpDir, options);\n    })\n    // Check if the repository is unavailable\n    .catch((err) => unavailableStatusCodes.indexOf(err.statusCode) !== -1, (err) => {\n        log.warn({ err }, `Download of ${shorthand} tarball failed with ${err.statusCode}`);\n    })\n    // Check if the ref is malformed to mark this error as unrecoverable\n    // e.g.: generator-hold\n    .catch((err) => /request path contains unescaped characters/i.test(err.message), (err) => {\n        err.unrecoverable = true;\n        throw err;\n    })\n    .catch((err) => {\n        log.error({ err }, `Download of ${shorthand} tarball failed`);\n        throw err;\n    })\n    // Finally return the ref\n    .then(() => downloadedRef);\n}\n\n// ------------------------------------------------------------------\n\n/**\n * Checks if this package should be downloaded from GitHub.\n *\n * If it does, the promise results with a function that will download the package.\n * If it does not, the promise will resolve to null.\n *\n * @param {Object} packageJson - The latest package.json data (normalized).\n * @param {Object} [options]   - The options; read below to get to know each available option.\n *\n * @returns {Function} The download function or null.\n */\nfunction github(packageJson, options) {\n    const repository = packageJson.repository;\n\n    if (!repository) {\n        return null;\n    }\n\n    const gitInfo = hostedGitInfo(repository.url);\n\n    if (!gitInfo || gitInfo.type !== 'github') {\n        return null;\n    }\n\n    options = Object.assign({\n        tokens: null, // The GitHub API tokens to use\n        waitRateLimit: false, // True to wait if rate limit for all tokens were exceeded\n        maxSize: 262144000, // Max allowed download size (250MB)\n        maxFiles: 32000, // Max allowed files to download (extract)\n    }, options);\n\n    return (tmpDir) => {\n        const shorthand = `${gitInfo.user}/${gitInfo.project}`;\n        const ref = packageJson.gitHead || null;\n\n        return download(shorthand, ref, tmpDir, options)\n        .then((gitRef) => ({\n            downloader: 'github',\n            dir: tmpDir,\n            gitRef,\n        }))\n        // Find package dir within the repository\n        // The package is usually in the root for regular repositories, but not for mono-repositories\n        .tap((downloaded) => (\n            findPackageDir(packageJson, tmpDir)\n            .then((packageDir) => { downloaded.packageDir = packageDir; })\n        ))\n        // Merge the downloaded repository package.json with the one from the registry\n        // See mergePackageJson() to know why we do this\n        .tap((downloaded) => (\n            mergePackageJson(packageJson, downloaded.packageDir)\n            .then((downloadedPackageJson) => { downloaded.packageJson = downloadedPackageJson; })\n        ))\n        // Remove package-lock.json file if any.\n        // People often forgot to update the package-lock, which is not published, and messes up\n        // with collectors, such as `nodesecurity`.\n        .tap((downloaded) => exec(exec.escape`rm -rf ${downloaded.packageDir}/package-lock.json`));\n    };\n}\n\nmodule.exports = github;\n"
  },
  {
    "path": "lib/analyze/download/index.js",
    "content": "'use strict';\n\nconst os = require('os');\nconst stat = Promise.promisify(require('fs').stat);\nconst downloaders = require('require-directory')(module, './', { recurse: false });\nconst kebabCase = require('lodash/kebabCase');\nconst exec = require('../util/exec');\n\nconst downloadersOrder = [\n    (packageJson, options) => downloaders.github(packageJson, { tokens: options.githubTokens, waitRateLimit: options.waitRateLimit }),\n    (packageJson) => downloaders.git(packageJson),\n    (packageJson) => downloaders.npm(packageJson),\n];\n\n/**\n * Generates a random string.\n * This is a very fast but naive algorithm.\n *\n * @returns {String} The random string.\n */\nfunction getRandomStr() {\n    return Math.random()\n    .toString(36)\n    .slice(2);\n}\n\n/**\n * Creates a temporary folder for a package to be downloaded to.\n *\n * @param {String} name - The package name.\n *\n * @returns {Promise} The promise that resolves with the temporary folder path.\n */\nfunction createTmpDir(name) {\n    // Suffix the folder with a random string to make it more unique\n    // Additionally, transform any special chars such as `/` to avoid having recursive directories\n    const dir = `${os.tmpdir()}/npms-analyzer/${kebabCase(name)}-${getRandomStr()}`;\n\n    return exec(exec.escape`rm -rf ${dir}`)\n    .then(() => exec(exec.escape`mkdir -p ${dir}`))\n    .then(() => dir);\n}\n\n/**\n * Cleans old packages from the temporary folder.\n *\n * @returns {Promise} The promise that resolves when odne.\n */\nfunction cleanTmpDir() {\n    const dir = `${os.tmpdir()}/npms-analyzer`;\n\n    return stat(dir)\n    .catch({ code: 'ENOENT' }, () => false)\n    .return(true)\n    .then((exists) => exists && exec(exec.escape`find ${dir} -mindepth 1 -maxdepth 1 -type d -mtime +1 -print0 | xargs -0 rm -rf`));\n}\n\n// -------------------------------------------------------------\n\n/**\n * Downloads a package into a temporary folder.\n *\n * @param {Object} packageJson - The latest package.json data (normalized).\n * @param {Object} [options]   - The options; read below to get to know each available option.\n *\n * @returns {Promise} A promise that resolves with the downloaded info (`dir`, `packageJson`, ...).\n */\nfunction download(packageJson, options) {\n    let downloadFn;\n\n    options = Object.assign({\n        githubTokens: null, // The GitHub API tokens to use\n        waitRateLimit: false, // True to wait if rate limit for all tokens were exceeded\n    }, options);\n\n    downloadersOrder.some((downloader) => {\n        downloadFn = downloader(packageJson, options);\n\n        return !!downloadFn;\n    });\n\n    /* istanbul ignore if */\n    if (!downloadFn) {\n        return Promise.reject(Object.assign(new Error(`Could not find suitable downloader for ${packageJson.name}`),\n            { unrecoverable: false }));\n    }\n\n    // Create temporary directory\n    return createTmpDir(packageJson.name)\n    // Download the package into the temporary directory\n    .then((tmpDir) => (\n        downloadFn(tmpDir)\n        // Cleanup the directory if download failed\n        .catch((err) => (\n            exec(exec.escape`rm -rf ${tmpDir}`)\n            .finally(() => { throw err; })\n        ))\n    ));\n}\n\nmodule.exports = download;\nmodule.exports.downloaders = downloaders;\nmodule.exports.cleanTmpDir = cleanTmpDir;\n"
  },
  {
    "path": "lib/analyze/download/npm.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst got = require('got');\nconst untar = require('./util/untar');\nconst gotRetry = require('../util/gotRetry');\nconst exec = require('../util/exec');\nconst mergePackageJson = require('./util/mergePackageJson');\n\nconst log = logger.child({ module: 'download/npm' });\n\n/**\n * Downloads the package from the npm registry.\n *\n * @param {String} target  - The <name>@<version> to download.\n * @param {String} url     - The tarball URL.\n * @param {String} tmpDir  - The temporary dir path to download to.\n * @param {Object} options - The options inferred from npm() options.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction download(target, url, tmpDir, options) {\n    const tarballFile = `${tmpDir}/tarball.tar.gz`;\n\n    log.debug({ url }, `Will download tarball of ${target}..`);\n\n    // Download tarball\n    return new Promise((resolve, reject) => {\n        let request;\n\n        got.stream(url, { timeout: 30000, retry: gotRetry })\n        .on('error', reject)\n        .on('request', (request_) => { request = request_; })\n        .on('response', (response) => {\n            // Check if the file is too big..\n            const contentLength = Number(response.headers['content-length']);\n\n            if (contentLength > options.maxSize) {\n                request.abort();\n                reject(Object.assign(new Error(`Tarball is too large (~${Math.round(contentLength / 1024 / 1024)}MB)`), {\n                    unrecoverable: true,\n                }));\n            }\n        })\n        .pipe(fs.createWriteStream(tarballFile))\n        .on('error', reject)\n        .on('finish', resolve);\n    })\n    // Extract tarball\n    .then(() => {\n        log.debug({ tarballFile }, `Successfully downloaded ${target} tarball, will now extract ..`);\n\n        return untar(tarballFile, { maxFiles: options.maxFiles });\n    })\n    // Check if the repository does not exist\n    .catch({ statusCode: 404 }, (err) => {\n        log.warn({ err }, `Download of ${target} tarball failed with ${err.statusCode}`);\n\n        return exec(exec.escape`rm -rf ${tarballFile}`);\n    })\n    .catch((err) => {\n        log.error({ err }, `Download of ${target} tarball failed`);\n        throw err;\n    });\n}\n\n// ------------------------------------------------------------------\n\n/**\n * Checks if this package should be downloaded from the npm registry.\n *\n * If it does, the promise results with a function that will download the package.\n * If it does not, the promise will resolve to null.\n *\n * @param {Object} packageJson - The latest package.json data (normalized).\n * @param {Object} [options]   - The options; read below to get to know each available option.\n *\n * @returns {Function} The download function or null.\n */\nfunction npm(packageJson, options) {\n    options = Object.assign({\n        maxSize: 262144000, // Max allowed download size (250MB)\n        maxFiles: 32000, // Max allowed files to download (extract)\n    }, options);\n\n    return (tmpDir) => {\n        const url = packageJson.dist && packageJson.dist.tarball;\n        const target = `${packageJson.name}@${packageJson.version}`;\n\n        return Promise.try(() => {\n            // Protect against packages that don't have tarballs, e.g.: `roost-mongo@0.1.0`\n            if (url) {\n                return download(target, url, tmpDir, options);\n            }\n\n            log.warn(`No tarball url for ${target}`);\n        })\n        .then(() => ({\n            downloader: 'npm',\n            dir: tmpDir,\n            packageDir: tmpDir,\n        }))\n        // Merge the downloaded repository package.json with the one from the registry\n        // See mergePackageJson() to know why we do this\n        .tap((downloaded) => (\n            mergePackageJson(packageJson, downloaded.packageDir)\n            .then((downloadedPackageJson) => { downloaded.packageJson = downloadedPackageJson; })\n        ));\n    };\n}\n\nmodule.exports = npm;\n"
  },
  {
    "path": "lib/analyze/download/util/assertFilesCount.js",
    "content": "'use strict';\n\nconst exec = require('../../util/exec');\n\n/**\n * Asserts that the number of files in a directory is within a certain threshold.\n *\n * This should be used by downloaders if they can't pre-calculate the number of files\n * without actually starting populating a directory with files.\n *\n * @param {String} dir     - The dir.\n * @param {Number} maxFiles - The total number of files.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction assertFilesCount(dir, maxFiles) {\n    return exec(exec.escape`find ${dir} | wc -l`)\n    .spread((stdout) => parseInt(stdout, 10))\n    .tap((filesCount) => {\n        if (isNaN(filesCount)) {\n            throw Object.assign(new Error('Unable to retrieve the number of files within the directory'),\n                { unrecoverable: true, dir });\n        }\n\n        if (filesCount > maxFiles) {\n            throw Object.assign(new Error('Directory has too many files'), { unrecoverable: true, dir });\n        }\n    });\n}\n\nmodule.exports = assertFilesCount;\n"
  },
  {
    "path": "lib/analyze/download/util/findPackageDir.js",
    "content": "'use strict';\n\nconst path = require('path');\nconst loadJsonFile = require('load-json-file');\nconst globby = require('globby');\n\nconst log = logger.child({ module: 'util/find-package-dir' });\n\n/**\n * Searches for the real package dir after testing against the root one fails.\n *\n * @param {Object} packageJson - The package.json from the registry.\n * @param {String} dir - The folder in which the package was downloaded.\n *\n * @returns {Promise} A promise that resolves with the package dir or null.\n */\nfunction lookForPackageDir(packageJson, dir) {\n    // Gather all package json files\n    return globby('**/package.json', {\n        cwd: dir,\n        // Only return files\n        onlyFiles: true,\n        // Ignore symlinks to avoid loops\n        followSymlinkedDirectories: false,\n    })\n    // Transform them into directories, removing the root one\n    .then((files) => (\n        files\n        // Filter root one\n        .filter((file) => file !== 'package.json')\n        // Build dir arrays from matched files\n        .map((file) => path.join(dir, path.dirname(file)))\n    ))\n    // Find the one that matches the package\n    .reduce((packageDir, possiblePackageDir) => {\n        if (packageDir) {\n            return packageDir;\n        }\n\n        return isSamePackage(packageJson, possiblePackageDir)\n        .then((isSame) => isSame ? possiblePackageDir : null);\n    }, null);\n}\n\n/**\n * Tests if a directory matches the package we are looking for.\n *\n * @param {Object} packageJson - The package.json from the registry.\n * @param {String} dir - The folder we are testing against.\n *\n * @returns {Promise} A promise that resolves with true if it matched, false otherwise.\n */\nfunction isSamePackage(packageJson, dir) {\n    const file = `${dir}/package.json`;\n\n    return loadJsonFile(file)\n    // Ignore if the file doesn't exist\n    .catch({ code: 'ENOENT' }, () => ({}))\n    // Ignore any errors but log them\n    .catch((err) => {\n        log.debug({ err, file }, 'Error reading package.json');\n\n        return {};\n    })\n    .then((downloadedPackageJson) => packageJson.name === downloadedPackageJson.name);\n}\n\n// -----------------------------------------------------\n\n/**\n * Finds the real package directory.\n *\n * If the package.json file at the root matches, the `packageDir` will be the same as `dir`.\n * If not, this function will do a deep search for a package.json that matches.\n *\n * For standard repositories, `packageDir` will be equal to the `dir`.\n * For mono repositories, `packageDir` will be a sub-directory of `dir` pointing to where the package actually is.\n * If we couldn't find the `packageDir`, `dir` will be returned.\n *\n * @param {Object} packageJson - The package.json from the registry.\n * @param {String} dir - The folder in which the package was downloaded.\n *\n * @returns {Promise} A promise that resolves with the package directory.\n */\nfunction findPackageDir(packageJson, dir) {\n    // Short-circuit to check against the root\n    return isSamePackage(packageJson, dir)\n    // Find using glob\n    .then((isSame) => isSame ? dir : lookForPackageDir(packageJson, dir))\n    // Fallback to using the root dir\n    .then((packageDir) => packageDir || dir);\n}\n\nmodule.exports = findPackageDir;\n"
  },
  {
    "path": "lib/analyze/download/util/mergePackageJson.js",
    "content": "'use strict';\n\nconst writeFile = Promise.promisify(require('fs').writeFile);\nconst loadJsonFile = require('load-json-file');\nconst assignWith = require('lodash/assignWith');\nconst notEmpty = require('deep-compact').notEmpty;\nconst normalizePackageJson = require('../../util/normalizePackageJson');\n\nconst log = logger.child({ module: 'util/merge-package-json' });\n\n/**\n * Merges the package json with the downloaded one.\n *\n * The published package.json has higher priority than the one downloaded from the source code since it's more exact.\n * Though, some packages have pre-publish scripts that mutate the package.json hiding important stuff: One good example is\n * `bower`, which bundles dependencies in the package itself to speed up installation.\n *\n * The passed in `packageJson` will be mutated and it will be written out to the downloaded folder, overwriting the downloaded one.\n * The promise will be resolved with the original downloaded package json.\n *\n * @param {Object} packageJson - The package.json from the registry.\n * @param {String} packageDir  - The temporary folder in which the package was downloaded.\n *\n * @returns {Promise} A promise that resolves with the downloaded package json.\n */\nfunction mergePackageJson(packageJson, packageDir) {\n    const file = `${packageDir}/package.json`;\n\n    // Read json file & normalize it\n    return loadJsonFile(file)\n    .then((downloadedPackageJson) => normalizePackageJson(downloadedPackageJson))\n    // Ignore if the file doesn't exist\n    .catch({ code: 'ENOENT' }, () => ({}))\n    // Ignore any errors but log them\n    .catch((err) => {\n        log.warn({ err, file }, 'Error reading downloaded package.json');\n\n        return {};\n    })\n    // Merge\n    .tap((downloadedPackageJson) => {\n        assignWith(packageJson, downloadedPackageJson,\n            (objValue, srcValue, key, obj) => notEmpty(objValue, key, obj) ? objValue : srcValue);\n    })\n    // Write to disk\n    .tap(() => writeFile(file, JSON.stringify(packageJson, null, 2)));\n}\n\nmodule.exports = mergePackageJson;\n"
  },
  {
    "path": "lib/analyze/download/util/untar.js",
    "content": "'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst unlink = Promise.promisify(require('fs').unlink);\nconst exec = require('../../util/exec');\n\n// Prefer bsdtar over the installed tar.. bsdtar is more benevolent when dealing with certain errors\n// See: http://comments.gmane.org/gmane.comp.gnu.mingw.msys/4816\n/* eslint-disable max-statements-per-line, max-len */\nconst tarExec = (() => { try { return which.sync('bsdtar'); } catch (err) { return 'tar'; } })();\nconst malformedRegExp = /unrecognized archive format|does not look like a tar archive|not in gzip format|unknown compression format|remove already-existing dir/i;\n/* eslint-enable max-statements-per-line, max-len */\n\n/**\n * Asserts that the number of files in the tar archive is below a certain threshold.\n *\n * @param {String} file     - The file path.\n * @param {Number} maxFiles - The total number of files.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction assertFilesCount(file, maxFiles) {\n    // Ignore \"unknown extended header XX\" because there might be a lot of them, e.g.: pickles2-contents-editor\n    // This only happens when using gnu tar, see: http://lee.greens.io/blog/2014/05/06/fix-tar-errors-on-os-x/\n    // e.g.: http://registry.npmjs.org/pickles2-contents-editor/-/pickles2-contents-editor-2.0.0-alpha.1.tgz\n    return exec(exec.escape`\nlistFiles() {\n    ${tarExec} -ztf ${file}\n}\nfilter() {\n    (grep -v \"unknown extended header\"; exit 0)\n}\n\nset -o pipefail\n{ listFiles 2>&1 1>&3 | filter 1>&2; } 3>&1 | wc -l\n`, { shell: '/bin/bash' })\n    .spread((stdout) => parseInt(stdout, 10))\n    .tap((filesCount) => {\n        if (isNaN(filesCount)) {\n            throw Object.assign(new Error('Unable to retrieve the number of files within the tarball'),\n                { unrecoverable: true, tarballFile: file });\n        }\n\n        if (filesCount > maxFiles) {\n            throw Object.assign(new Error('Tarball has too many files'), { unrecoverable: true, tarballFile: file });\n        }\n    });\n}\n\n/**\n * Decompresses a tar file to a directory.\n *\n * @param {String} file    - The file path.\n * @param {String} destDir - The destination directory.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction decompress(file, destDir) {\n    // Ignore \"unknown extended header XX\" because there might be a lot of them, e.g.: pickles2-contents-editor\n    // This only happens when using gnu tar, see: http://lee.greens.io/blog/2014/05/06/fix-tar-errors-on-os-x/\n    // e.g.: http://registry.npmjs.org/pickles2-contents-editor/-/pickles2-contents-editor-2.0.0-alpha.1.tgz\n    return exec(exec.escape`\ndecompress() {\n    ${tarExec} -xf ${file} -C ${destDir} --strip-components=1\n}\nfilter() {\n    (grep -v \"unknown extended header\"; exit 0)\n}\n\nset -o pipefail\n{ decompress 2>&1 1>&3 | filter 1>&2; } 3>&1\n`, { shell: '/bin/bash' })\n    .then(() => exec(exec.escape`chmod -R 0777 ${destDir}`));\n}\n\n// --------------------------------------------------\n\n/**\n * Small utility to untar a file.\n * Malformed tar errors are ignored.\n *\n * @param {String} file      - The file path.\n * @param {Object} [options] - He options; read below to get to know each available option.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction untar(file, options) {\n    options = Object.assign({ maxFiles: 32000 }, options);\n\n    const destDir = path.dirname(file);\n\n    // Check the number of files\n    return assertFilesCount(file, options.maxFiles)\n    // Proceed with decompressing\n    .then(() => decompress(file, destDir))\n    // Delete tar file\n    .then(() => unlink(file))\n    // Ignore invalid tar files.. sometimes services respond with JSON\n    // e.g.: http://registry.npmjs.org/n-pubsub/-/n-pubsub-1.0.0.tgz\n    // e.g.: testing233 package, that somehow was able to set dist to http://example.com\n    // e.g.: cb-never-called\n    .catch((err) => malformedRegExp.test(err.stderr), (err) => {\n        throw Object.assign(new Error('Tarball is malformed'), { tarballFile: file, stderr: err.stderr });\n    })\n    .return(destDir);\n}\n\nmodule.exports = untar;\n"
  },
  {
    "path": "lib/analyze/evaluate/index.js",
    "content": "'use strict';\n\nconst evaluators = require('require-directory')(module, './', { recurse: false });\n\n/**\n * Runs all the evaluators.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Object} The evaluation result.\n */\nfunction evaluate(collected) {\n    return {\n        quality: evaluators.quality(collected),\n        popularity: evaluators.popularity(collected),\n        maintenance: evaluators.maintenance(collected),\n    };\n}\n\nmodule.exports = evaluate;\n"
  },
  {
    "path": "lib/analyze/evaluate/maintenance.js",
    "content": "'use strict';\n\nconst moment = require('moment');\nconst find = require('lodash/find');\nconst get = require('lodash/get');\nconst mapValues = require('lodash/mapValues');\nconst semver = require('semver');\nconst normalizeValue = require('normalize-value');\n\nconst log = logger.child({ module: 'evaluate/maintenance' });\n\n/**\n * Evaluates the releases frequency.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The releases frequency evaluation (from 0 to 1).\n */\nfunction evaluateReleasesFrequency(collected) {\n    const releases = collected.metadata.releases;\n\n    if (!releases) {\n        return 0;\n    }\n\n    const range30 = find(releases, (range) => moment.utc(range.to).diff(range.from, 'd') === 30);\n    const range180 = find(releases, (range) => moment.utc(range.to).diff(range.from, 'd') === 180);\n    const range365 = find(releases, (range) => moment.utc(range.to).diff(range.from, 'd') === 365);\n    const range730 = find(releases, (range) => moment.utc(range.to).diff(range.from, 'd') === 730);\n\n    if (!range30 || !range180 || !range365 || !range730) {\n        throw new Error('Could not find entry in releases');\n    }\n\n    const mean30 = range30.count / (30 / 90);\n    const mean180 = range180.count / (180 / 90);\n    const mean365 = range365.count / (365 / 90);\n    const mean730 = range730.count / (730 / 90);\n\n    const quarterMean = (mean30 * 0.25) +\n                        (mean180 * 0.45) +\n                        (mean365 * 0.2) +\n                        (mean730 * 0.1);\n\n    return normalizeValue(quarterMean, [\n        { value: 0, norm: 0 },\n        { value: 0.5, norm: 0.5 },\n        { value: 1, norm: 0.75 },\n        { value: 2, norm: 1 },\n    ]);\n}\n\n/**\n * Evaluates the commits frequency.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The commits frequency evaluation (from 0 to 1).\n */\nfunction evaluateCommitsFrequency(collected) {\n    const commits = collected.github && collected.github.commits;\n\n    if (!commits) {\n        return 0;\n    }\n\n    const range30 = find(commits, (range) => moment.utc(range.to).diff(range.from, 'd') === 30);\n    const range180 = find(commits, (range) => moment.utc(range.to).diff(range.from, 'd') === 180);\n    const range365 = find(commits, (range) => moment.utc(range.to).diff(range.from, 'd') === 365);\n\n    if (!range30 || !range180 || !range365) {\n        throw new Error('Could not find entry in commits');\n    }\n\n    const mean30 = range30.count / (30 / 30);\n    const mean180 = range180.count / (180 / 30);\n    const mean365 = range365.count / (365 / 30);\n\n    const monthlyMean = (mean30 * 0.35) +\n                        (mean180 * 0.45) +\n                        (mean365 * 0.2);\n\n    return normalizeValue(monthlyMean, [\n        { value: 0, norm: 0 },\n        { value: 1, norm: 0.7 },\n        { value: 5, norm: 0.9 },\n        { value: 10, norm: 1 },\n    ]);\n}\n\n/**\n * Evaluates the open issues health.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The open issues health evaluation (from 0 to 1).\n */\nfunction evaluateOpenIssues(collected) {\n    const issues = collected.github && collected.github.issues;\n\n    // If unable to get issues, evaluation is 0\n    if (!issues) {\n        return 0;\n    }\n\n    // If issues are disabled, return 0.5..\n    // We can't really evaluate something we don't know; if this value causes troubles find a better strategy\n    if (issues.isDisabled) {\n        return collected.github.forkOf ? 0.7 : 0.5; // Forks have issues disabled by default, don't be so harsh\n    }\n\n    // If the repository has 0 issues, evaluation is 0.7\n    if (!issues.count) {\n        return 0.7;\n    }\n\n    const openIssuesRatio = issues.openCount / issues.count;\n\n    return normalizeValue(openIssuesRatio, [\n        { value: 0.2, norm: 1 },\n        { value: 0.5, norm: 0.5 },\n        { value: 1, norm: 0 },\n    ]);\n}\n\n/**\n * Evaluates the issues distribution evaluation.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The issues distribution evaluation (from 0 to 1).\n */\nfunction evaluateIssuesDistribution(collected) {\n    const issues = collected.github && collected.github.issues;\n\n    // If unable to get issues, evaluation is 0\n    if (!issues) {\n        return 0;\n    }\n\n    // If issues are disabled, return 0.5..\n    // We can't really evaluate something we don't know; if this value causes troubles find a better strategy\n    if (issues.isDisabled) {\n        return collected.github.forkOf ? 0.7 : 0.5; // Forks have issues disabled by default, don't be so harsh\n    }\n\n    const ranges = Object.keys(issues.distribution).map(Number);\n    const totalCount = ranges.reduce((sum, range) => sum + issues.distribution[range], 0);\n\n    // If the repository has 0 issues, evaluation is 0.7\n    if (!totalCount) {\n        return 0.7;\n    }\n\n    const weights = ranges.map((range) => {\n        const weight = issues.distribution[range] / totalCount;\n        const conditioning = normalizeValue(range / 24 / 60 / 60, [\n            { value: 29, norm: 1 },\n            { value: 365, norm: 5 }, // An issue open for more than 1 year, weights 5x more than a normal one\n        ]);\n\n        return weight * conditioning;\n    });\n\n    const mean = ranges.reduce((sum, range, index) => sum + (range * weights[index])) / (ranges.length || 1);\n    const issuesOpenMeanDays = mean / 60 / 60 / 24;\n\n    return normalizeValue(issuesOpenMeanDays, [\n        { value: 5, norm: 1 },\n        { value: 30, norm: 0.7 },\n        { value: 90, norm: 0 },\n    ]);\n}\n\n/**\n * Checks if a package is finished, that is, it's stable enough that doesn't require a lot of maintenance.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Boolean} True if finished, false otherwise.\n */\nfunction isPackageFinished(collected) {\n    const isStable = semver.gte(collected.metadata.version, '1.0.0', true); // `true` = loose semver\n    const isNotDeprecated = !collected.metadata.deprecated;\n    const hasFewIssues = get(collected, 'github.issues.openCount', Infinity) < 15;\n    const hasREADME = !!collected.metadata.readme || get(collected, 'source.files.readmeSize', 0) > 0;\n    const hasTests = !!collected.metadata.hasTestScript;\n\n    const isFinished = isStable && isNotDeprecated && hasFewIssues && hasREADME && hasTests;\n\n    log.debug({ isStable, isNotDeprecated, hasFewIssues, hasREADME, hasTests },\n        `Package is considered ${isFinished ? 'finished' : 'unfinished'}`);\n\n    return isFinished;\n}\n\n// ----------------------------------------------------------------------------\n\n/**\n * Evaluates the package maintenance.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Object} The evaluation result.\n */\nfunction maintenance(collected) {\n    let evaluation = {\n        releasesFrequency: evaluateReleasesFrequency(collected),\n        commitsFrequency: evaluateCommitsFrequency(collected),\n        openIssues: evaluateOpenIssues(collected),\n        issuesDistribution: evaluateIssuesDistribution(collected),\n    };\n\n    // If the package is finished, it doesn't require a lot of maintenance\n    if (isPackageFinished(collected)) {\n        evaluation = mapValues(evaluation, (evaluation) => Math.max(evaluation, 0.9));\n    }\n\n    return evaluation;\n}\n\nmodule.exports = maintenance;\n"
  },
  {
    "path": "lib/analyze/evaluate/popularity.js",
    "content": "'use strict';\n\nconst moment = require('moment');\nconst find = require('lodash/find');\n\n/**\n * Evaluates the downloads count.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The monthly downloads mean (from 0 to Infinity).\n */\nfunction evaluateDownloadsCount(collected) {\n    const downloads = collected.npm && collected.npm.downloads;\n\n    if (!downloads) {\n        return 0;\n    }\n\n    const index = downloads.findIndex((range) => moment.utc(range.to).diff(range.from, 'd') === 90);\n\n    if (index === -1) {\n        throw new Error('Could not find entry in downloads');\n    }\n\n    const count90 = downloads[index].count;\n    const count30 = count90 / 3;\n\n    return count30;\n}\n\n/**\n * Evaluates the downloads acceleration.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The downloads acceleration (from -Infinity to Infinity).\n */\nfunction evaluateDownloadsAcceleration(collected) {\n    const downloads = collected.npm && collected.npm.downloads;\n\n    if (!downloads) {\n        return 0;\n    }\n\n    const range30 = find(downloads, (range) => moment.utc(range.to).diff(range.from, 'd') === 30);\n    const range90 = find(downloads, (range) => moment.utc(range.to).diff(range.from, 'd') === 90);\n    const range180 = find(downloads, (range) => moment.utc(range.to).diff(range.from, 'd') === 180);\n    const range365 = find(downloads, (range) => moment.utc(range.to).diff(range.from, 'd') === 365);\n\n    if (!range30 || !range90 || !range180 || !range365) {\n        throw new Error('Could not find entry in downloads');\n    }\n\n    const mean30 = range30.count / 30;\n    const mean90 = range90.count / 90;\n    const mean180 = range180.count / 180;\n    const mean365 = range365.count / 365;\n\n    return ((mean30 - mean90) * 0.25) +\n           ((mean90 - mean180) * 0.25) +\n           ((mean180 - mean365) * 0.5);\n}\n\n/**\n * Evaluates the community interest on the package, using its stars, forks, subscribers and contributors count.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The community interest (from 0 to Infinity).\n */\nfunction evaluateCommunityInterest(collected) {\n    const starsCount = (collected.github ? collected.github.starsCount : 0) + (collected.npm ? collected.npm.starsCount : 0);\n    const forksCount = collected.github ? collected.github.forksCount : 0;\n    const subscribersCount = collected.github ? collected.github.subscribersCount : 0;\n    const contributorsCount = collected.github ? (collected.github.contributors || []).length : 0;\n\n    return starsCount + forksCount + subscribersCount + contributorsCount;\n}\n\n// ----------------------------------------------------------------------------\n\n/**\n * Evaluates the package popularity.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Object} The evaluation result.\n */\nfunction popularity(collected) {\n    return {\n        communityInterest: evaluateCommunityInterest(collected),\n        downloadsCount: evaluateDownloadsCount(collected),\n        downloadsAcceleration: evaluateDownloadsAcceleration(collected),\n        dependentsCount: collected.npm ? collected.npm.dependentsCount || 0 : 0,\n    };\n}\n\nmodule.exports = popularity;\n"
  },
  {
    "path": "lib/analyze/evaluate/quality.js",
    "content": "/* eslint no-nested-ternary: 0 */\n\n'use strict';\n\nconst url = require('url');\nconst semver = require('semver');\nconst get = require('lodash/get');\nconst normalizeValue = require('normalize-value');\n\nconst log = logger.child({ module: 'evaluate/quality' });\n\n/**\n * Evaluates the author's carefulness with the package.\n * It evaluates the basics of a package, such as the README, license, stability, etc.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The carefulness evaluation (from 0 to 1).\n */\nfunction evaluateCarefulness(collected) {\n    const licenseEvaluation = Number(!!collected.metadata.license);\n    const readmeEvaluation = normalizeValue(get(collected, 'source.files.readmeSize', 0), [\n        { value: 0, norm: 0 },\n        { value: 400, norm: 1 },\n    ]);\n    const lintersEvaluation = Number(!!get(collected, 'source.linters', null));\n    const ignoreEvaluation = Number(get(collected, 'source.files.hasNpmIgnore') || collected.metadata.hasSelectiveFiles || false);\n    const changelogEvaluation = Number(get(collected, 'source.files.hasChangelog', false));\n\n    const isDeprecated = !!collected.metadata.deprecated;\n    const isStable = semver.gte(collected.metadata.version, '1.0.0', true); // `true` = loose semver\n    const finalWeightConditioning = isDeprecated ? 0 : (!isStable ? 0.5 : 1);\n\n    return (\n        (licenseEvaluation * 0.33) +\n        (readmeEvaluation * 0.38) +\n        (lintersEvaluation * 0.13) +\n        (ignoreEvaluation * 0.08) +\n        (changelogEvaluation * 0.08)\n    ) * finalWeightConditioning;\n}\n\n/**\n * Evaluates the package tests.\n * Takes into the consideration the tests size, coverage % and build status.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The tests evaluation (from 0 to 1).\n */\nfunction evaluateTests(collected) {\n    if (!collected.source) {\n        return 0;\n    }\n\n    const testsEvaluation = normalizeValue(collected.source.files.testsSize, [\n        { value: 0, norm: 0 },\n        { value: 400, norm: collected.metadata.hasTestScript ? 1 : 0.5 },\n    ]);\n    const coverageEvaluation = collected.source.coverage || 0;\n    const statusEvaluation = ((collected.github && collected.github.statuses) || [])\n    .reduce((sum, status, index, arr) => {\n        switch (status.state) {\n        case 'success':\n            return sum + (1 / arr.length);\n        case 'pending':\n            return sum + (0.3 / arr.length);\n        case 'error':\n        case 'failure':\n            return sum;\n        default:\n            log.warn(`Unknown github status state: ${status}`);\n\n            return sum;\n        }\n    }, 0);\n\n    return (testsEvaluation * 0.6) +\n           (statusEvaluation * 0.25) +\n           (coverageEvaluation * 0.15);\n}\n\n/**\n * Evaluates the package health.\n * Takes into consideration vulnerabilities, outdated dependencies and unlocked dependencies (ones with * or >= 0.0.0).\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The dependencies health evaluation (from 0 to 1).\n */\nfunction evaluateHealth(collected) {\n    if (!collected.source) {\n        return 0;\n    }\n\n    const dependencies = collected.metadata.dependencies || {};\n    const dependenciesCount = Object.keys(dependencies).length;\n\n    if (!dependenciesCount) {\n        return 1;\n    }\n\n    // Calculate outdated count\n    const outdatedCount = collected.source.outdatedDependencies ?\n        Object.keys(collected.source.outdatedDependencies).length :\n        (collected.source.outdatedDependencies === false ? dependenciesCount : 0);\n\n    // Calculate vulnerabilities count\n    const vulnerabilitiesCount = collected.source.vulnerabilities ?\n        collected.source.vulnerabilities.length :\n        (collected.source.vulnerabilities === false ? dependenciesCount : 0);\n\n    // Calculate unlocked count - packages that have loose locking of versions, e.g.: '*' or >= 1.6.0\n    // Note that if the package has npm-shrinkwrap.json, then it actually has its versions locked down\n    const unlockedCount = collected.source.files.hasShrinkwrap ? 0 :\n        Object.values(dependencies).reduce((count, value) => {\n            const range = semver.validRange(value, true);\n\n            return range && !semver.gtr('1000000.0.0', range, true) ? count + 1 : count;\n        }, 0);\n\n    const outdatedEvaluation = normalizeValue(outdatedCount, [\n        { value: 0, norm: 1 },\n        { value: Math.max(2, dependenciesCount / 4), norm: 0 },\n    ]);\n    const vulnerabilitiesEvaluation = normalizeValue(vulnerabilitiesCount, [\n        { value: 0, norm: 1 },\n        { value: Math.max(2, dependenciesCount / 4), norm: 0 },\n    ]);\n\n    const finalWeightConditioning = !unlockedCount ? 1 : 1 / (unlockedCount + 1);\n\n    return (\n        (outdatedEvaluation * 0.5) +\n        (vulnerabilitiesEvaluation * 0.5)\n    ) * finalWeightConditioning;\n}\n\n/**\n * Evaluates the package branding.\n * Takes into consideration if the package has badges, custom homepage, etc.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Number} The branding evaluation (from 0 to 1).\n */\nfunction evaluateBranding(collected) {\n    const parsedRepository = url.parse(get(collected.metadata, 'repository.url', ''));\n    const parsedHomepage = url.parse(get(collected.metadata, 'links.homepage', get(collected, 'github.homepage', '')));\n    const hasCustomHomepage = !!(parsedRepository.host && parsedHomepage.host &&\n                                parsedRepository.host !== parsedHomepage.host);\n    const badgesCount = get(collected, 'source.badges.length', 0);\n\n    const homepageEvaluation = Number(hasCustomHomepage);\n    const badgesEvaluation = normalizeValue(badgesCount, [\n        { value: 0, norm: 0 },\n        { value: 4, norm: 1 },\n    ]);\n\n    return (homepageEvaluation * 0.4) +\n           (badgesEvaluation * 0.6);\n}\n\n// ----------------------------------------------------------------------------\n\n/**\n * Evaluates the package quality.\n *\n * @param {Object} collected - The collected information.\n *\n * @returns {Object} The evaluation result.\n */\nfunction quality(collected) {\n    return {\n        carefulness: evaluateCarefulness(collected),\n        tests: evaluateTests(collected),\n        health: evaluateHealth(collected),\n        branding: evaluateBranding(collected),\n    };\n}\n\nmodule.exports = quality;\n"
  },
  {
    "path": "lib/analyze/index.js",
    "content": "'use strict';\n\nconst promiseRetry = require('promise-retry');\nconst serializeError = require('serialize-error');\nconst omit = require('lodash/omit');\nconst collect = require('./collect');\nconst evaluate = require('./evaluate');\nconst download = require('./download');\nconst exec = require('./util/exec');\nconst packageJsonFromData = require('./util/packageJsonFromData');\n\nconst log = logger.child({ module: 'analyze' });\n\n/**\n * Gets a package analysis.\n *\n * @param {String} name     - The package name.\n * @param {Nano}   npmsNano - The client nano instance for npms.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction get(name, npmsNano) {\n    return npmsNano.getAsync(`package!${name}`)\n    .catch({ error: 'not_found' }, () => {\n        throw Object.assign(new Error(`Analysis for package ${name} does not exist`), { code: 'ANALYSIS_NOT_FOUND' });\n    });\n}\n\n/**\n * Removes a package analysis.\n *\n * @param {String} name     - The package name.\n * @param {Nano}   npmsNano - The client nano instance for npms.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction remove(name, npmsNano) {\n    return promiseRetry((retry) => (\n        get(name, npmsNano)\n        .then((doc) => (\n            npmsNano.destroyAsync(doc._id, doc._rev)\n            .catch({ error: 'conflict' }, (err) => {\n                err = new Error(`Conflict while removing ${name} analysis`);\n                log.warn({ err }, err.message);\n                retry(err);\n            })\n        ))\n    ))\n    .catch({ code: 'ANALYSIS_NOT_FOUND' }, () => {})\n    .then(() => log.trace(`Removed analysis of ${name}`));\n}\n\n/**\n * Saves a package analysis.\n * Contains the collected info and the evaluation result.\n *\n * @param {Object} analysis - The analysis (can be the full doc to avoid having to fetch it).\n * @param {Nano}   npmsNano - The client nano instance for npms.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction save(analysis, npmsNano) {\n    const name = analysis.collected.metadata.name;\n\n    return promiseRetry((retry) =>\n        // Fetch the doc if necessary to obtain its rev\n        Promise.try(() => {\n            if (analysis._rev) {\n                return;\n            }\n\n            return get(name, npmsNano)\n            .then((doc) => { analysis._rev = doc._rev; })\n            .catch({ code: 'ANALYSIS_NOT_FOUND' }, () => {});\n        })\n        // Save it\n        .then(() => {\n            analysis._id = `package!${name}`;\n\n            return npmsNano.insertAsync(analysis)\n            .tap((response) => { analysis._rev = response.rev; })\n            .catch({ error: 'conflict' }, (err) => {\n                err = new Error(`Conflict while storing ${name} analysis`);\n                log.warn({ err }, err.message);\n\n                delete analysis._rev;\n                retry(err);\n            });\n        })\n    )\n    .return(analysis)\n    .tap((analysis) => log.trace({ analysis }, `Saved analysis of ${name}`));\n}\n\n/**\n * Saves a failed analysis of a package.\n *\n * @param {String} name     - The package name.\n * @param {Error}  err      - The analysis error.\n * @param {Nano}   npmsNano - The npms nano client instance.\n *\n * @returns {Promise} The promise for the saved analysis document.\n */\nfunction saveFailed(name, err, npmsNano) {\n    return get(name, npmsNano)\n    .catch({ code: 'ANALYSIS_NOT_FOUND' }, () => ({}))\n    .tap((analysis) => {\n        analysis.error = omit(\n            serializeError(err),\n            'gotOptions' // Please note gotOptions might contain sensitive information such as tokens.\n        );\n        analysis.error.caughtAt = (new Date()).toISOString();\n        analysis.startedAt = analysis.startedAt || (new Date()).toISOString();\n        analysis.finishedAt = analysis.finishedAt || (new Date()).toISOString();\n        analysis.collected = analysis.collected || collect.empty(name);\n        analysis.evaluation = analysis.evaluation || evaluate(analysis.collected);\n    })\n    .then((analysis) => save(analysis, npmsNano))\n    .then((analysis) => {\n        log.debug({ analysis }, `Saved failed analysis of ${name}`);\n\n        return analysis;\n    }, (err) => {\n        log.error({ err }, `Error while saving failed analysis of ${name}`);\n        throw err;\n    });\n}\n\n/**\n * Analyses a package, running the collectors & evaluators and then saving the result.\n *\n * @param {String} name      - The package name.\n * @param {Nano}   npmNano   - The npm nano client instance.\n * @param {Nano}   npmsNano  - The npms nano client instance.\n * @param {Object} [options] - The options; read below to get to know each available option.\n *\n * @returns {Promise} The promise for the saved analysis document.\n */\nfunction analyze(name, npmNano, npmsNano, options) {\n    options = Object.assign({\n        githubTokens: null, // The GitHub API tokens to use\n        waitRateLimit: false, // True to wait if rate limit for all tokens were exceeded\n        rev: null, // Pass the previous analysis revision if any\n    }, options);\n\n    log.trace(`Starting ${name} analysis`);\n\n    const startedAt = (new Date()).toISOString();\n\n    // Fetch package data & grab its package.json\n    return npmNano.getAsync(name)\n    // If it doesn't exist, attempt to delete the analysis and then fail\n    .catch({ error: 'not_found' }, () => (\n        remove(name, npmsNano)\n        .finally(() => {\n            throw Object.assign(new Error(`Package ${name} does not exist`), { code: 'PACKAGE_NOT_FOUND', unrecoverable: true });\n        })\n    ))\n    // Otherwise, analyze it!\n    .then((data) => {\n        const packageJson = packageJsonFromData(name, data);\n\n        // Download\n        return download(packageJson, options)\n        // Collect + evaluate\n        .then((downloaded) => (\n            collect(data, packageJson, downloaded, npmNano, options)\n            .then((collected) => {\n                const evaluation = evaluate(collected);\n\n                return {\n                    startedAt,\n                    finishedAt: (new Date()).toISOString(),\n                    collected,\n                    evaluation,\n                    _rev: options.rev || undefined,\n                };\n            })\n            // Get rid of download folder\n            .then((analysis) => (\n                exec(exec.escape`rm -rf ${downloaded.dir}`)\n                .return(analysis)\n            ), (err) => (\n                exec(exec.escape`rm -rf ${downloaded.dir}`)\n                .finally(() => { throw err; })\n            ))\n        ));\n    })\n    // Finally, save the analysis\n    .tap((analysis) => save(analysis, npmsNano))\n    .then((analysis) => {\n        log.debug({ analysis }, `Analysis of ${name} completed`);\n\n        return analysis;\n    }, (err) => {\n        log[err.unrecoverable ? 'info' : 'error']({ err }, `Analysis of ${name} failed`);\n        throw err;\n    });\n}\n\nmodule.exports = analyze;\nmodule.exports.get = get;\nmodule.exports.save = save;\nmodule.exports.saveFailed = saveFailed;\nmodule.exports.remove = remove;\nmodule.exports.cleanTmpDir = download.cleanTmpDir;\n"
  },
  {
    "path": "lib/analyze/util/exec.js",
    "content": "'use strict';\n\nconst cp = require('child_process');\nconst escapeshellarg = require('php-escape-shell').php_escapeshellarg;\n\n/**\n * Es6 tagged template to be used to automatically escape placeholders.\n *\n * @param {Array}     pieces        - The pieces array.\n * @param {...String} substitutions - The substitutions.\n *\n * @returns {String} The interpolated string.\n */\nfunction escape(pieces, ...substitutions) {\n    let result = pieces[0];\n\n    substitutions.forEach((substitution, index) => {\n        result += escapeshellarg(substitution) + pieces[index + 1];\n    });\n\n    return result;\n}\n\n/**\n * Wrapper around `child_process#exec` that returns a promise.\n *\n * @param {String} command - The shell command.\n * @param {Object} options - The options to pass to `child_process#exec`.\n *\n * @returns {Promise} The promise to exec.\n */\nfunction exec(command, options) {\n    return new Promise((resolve, reject) => {\n        cp.exec(command, options, (err, stdout, stderr) => {\n            if (err) {\n                err.stdout = stdout;\n                err.stderr = stderr;\n\n                // Change `code` property to `exitCode` to be consistent with our errors (code are strings)\n                err.exitCode = err.code;\n                delete err.code;\n\n                reject(err);\n            } else {\n                resolve([stdout, stderr]);\n            }\n        });\n    });\n}\n\nmodule.exports = exec;\nmodule.exports.escape = escape;\n"
  },
  {
    "path": "lib/analyze/util/gotRetry.js",
    "content": "/* eslint no-bitwise: 0 */\n\n'use strict';\n\nconst got = require('got');\nconst normalize = require('got/source/normalize-arguments');\n\nconst log = logger.child({ module: 'util/got-retry' });\n\nconst normalizedDefaults = normalize('', {}, got.defaults);\n\nconst defaultRetries = normalizedDefaults.retry.retries;\n\nconst retries = (iteration, error) => {\n    const delay = defaultRetries(iteration, error);\n\n    if (delay > 0) {\n        log.warn({ url: error.href, error, iteration }, 'Retrying request..');\n    }\n\n    return delay;\n};\n\nmodule.exports = { retries };\n"
  },
  {
    "path": "lib/analyze/util/hostedGitInfo.js",
    "content": "'use strict';\n\nconst hostedGitInfoFromUrl = require('hosted-git-info').fromUrl;\n\nconst log = logger.child({ module: 'util/hosted-git-info' });\n\n/**\n * Wrapper around hostedGitInfo.fromUrl that returns null on exceptions.\n * See: Https://github.com/npm/hosted-git-info/issues/15.\n *\n * @param {String} repositoryUrl - The repository URL.\n *\n * @returns {Object} The git info object or undefined.\n */\nfunction hostedGitInfo(repositoryUrl) {\n    try {\n        return hostedGitInfoFromUrl(repositoryUrl);\n    } catch (err) {\n        log.warn({ err }, `Error while parsing ${repositoryUrl}, returning null..`);\n    }\n}\n\nmodule.exports = hostedGitInfo;\n"
  },
  {
    "path": "lib/analyze/util/normalizePackageJson.js",
    "content": "'use strict';\n\nconst normalizePackageData = require('normalize-package-data');\n\nconst log = logger.child({ module: 'util/normalize-package-json' });\n\n/**\n * Remove tree/<branch>/<path> from the repository URL.\n *\n * Some developers assume that repository is a simple URL and not a cloneable URL.\n * See: Https://github.com/babel/babel/issues/5574.\n *\n * @param {String} url - The repository URL.\n *\n * @returns {String} The URL with any path removed.\n */\nfunction removePathFromRepositoryUrl(url) {\n    const newUrl = url.replace(/(\\/[^/.]+\\/[^/.]+)\\/tree\\/.+$/, '$1');\n\n    newUrl !== url && logger.info({ url, newUrl }, 'Removed path from repository URL');\n\n    return newUrl;\n}\n\n/**\n * Normalizes a package.json.\n *\n * Wrapper around normalize-package-data module that handles extra stuff, see code below.\n *\n * @param {Object} packageJson - The package package.json.\n *\n * @returns {Object} The normalized package.json.\n */\nfunction normalizePackageJson(packageJson) {\n    // Remove tree/<target> from urls because some devs put branches in the URL\n    // See: https://github.com/babel/babel/issues/5574\n    if (packageJson.repository) {\n        if (typeof packageJson.repository === 'string') {\n            packageJson.repository = removePathFromRepositoryUrl(packageJson.repository);\n        } else if (typeof packageJson.repository.url === 'string') {\n            packageJson.repository.url = removePathFromRepositoryUrl(packageJson.repository.url);\n        }\n    }\n\n    // Some packages error out while being normalized, for instance, when they contain malformed\n    // URIs in the repository.url (e.g.: `sails-sparql@0.10.0`)\n    try {\n        normalizePackageData(packageJson);\n    } catch (err) {\n        log.warn({ err, packageJson }, `Error normalizing ${packageJson.name} package.json`);\n        err.unrecoverable = true;\n        throw err;\n    }\n\n    // The `name` property must be set because it's used to query the npm registry.\n    // This is always set for packageJson inferred from the package data but might be nullish from the\n    // downloaded packageJson\n    if (!packageJson.name) {\n        throw Object.assign(new Error('Missing name from package.json'), { unrecoverable: true });\n    }\n\n    // Remove duplicate .git.git until it gets fixed on normalize-package-data\n    // See: https://github.com/npm/normalize-package-data/issues/84\n    if (packageJson.repository && packageJson.repository.url) {\n        packageJson.repository.url = packageJson.repository.url.replace(/\\.git\\.git$/i, '.git');\n    }\n\n    return packageJson;\n}\n\nmodule.exports = normalizePackageJson;\n"
  },
  {
    "path": "lib/analyze/util/packageJsonFromData.js",
    "content": "'use strict';\n\nconst normalizePackageJson = require('./normalizePackageJson');\n\nconst log = logger.child({ module: 'util/package-json-from-data' });\n\n/**\n * Grab the latest package.json from the package data, normalizing it.\n *\n * @param {String} name - The package name.\n * @param {Object} data - The package data.\n *\n * @returns {Object} The normalized package.json.\n */\nfunction packageJsonFromData(name, data) {\n    const version = (data['dist-tags'] && data['dist-tags'].latest) || '0.0.1';\n    let packageJson = data.versions && data.versions[version];\n\n    // Some packages in npm are corrupt and don't have a latest version, e.g.: `node-gr`\n    if (!packageJson) {\n        log.warn(`No latest version information for ${name}, mocking package.json..`);\n        packageJson = { name: data.name, version };\n    }\n\n    // Fail if the names mismatch\n    if (data.name !== name || packageJson.name !== name) {\n        throw Object.assign(new Error(`Package name mismatch detected in ${name}`),\n            { name, dataName: data.name, packageJsonName: packageJson.name, unrecoverable: true });\n    }\n\n    // Check if the version is correct\n    if (packageJson.version !== version) {\n        log.warn(`Version mismatch for ${name}, fixing it..`);\n        packageJson.version = version;\n    }\n\n    return normalizePackageJson(packageJson);\n}\n\nmodule.exports = packageJsonFromData;\n"
  },
  {
    "path": "lib/configure.js",
    "content": "'use strict';\n\nconst Promise = require('bluebird');\nconst pino = require('pino');\nconst forIn = require('lodash/forIn');\nconst wrap = require('lodash/wrap');\n\n// Configure bluebird\n// ----------------------------------------------------\n\n// Make bluebird global\nglobal.Promise = Promise;\n\n// Improve debugging by enabling long stack traces.. it has minimal impact in production\nPromise.config({ longStackTraces: true, warnings: false });\n\n// Configure global logger (pino)\n// ----------------------------------------------------\n\nconst logger = global.logger = pino({ name: 'npms-analyzer' }, process.stdout);\n\nlogger.children = {};\n\n// Make sure that changing the level, affects all children\n/* eslint-disable no-invalid-this */\nlogger[pino.symbols.setLevelSym] = wrap(logger[pino.symbols.setLevelSym], function (setLevel, level) {\n    setLevel.call(this, level);\n\n    if (this === logger) {\n        forIn(logger.children, (child) => { child.level = level; });\n    }\n});\n/* eslint-enable no-invalid-this */\n\n// Make some restrictions on the usage of .child()\nlogger.child = wrap(logger.child, (createChild, bindings) => {\n    if (!bindings || !bindings.module) {\n        throw new Error('Expected logger.child to have a module property');\n    }\n    if (logger.children[bindings.module]) {\n        throw new Error(`A logger named ${bindings.module} already exists`);\n    }\n\n    const child = createChild.call(logger, bindings);\n\n    logger.children[bindings.module] = child;\n    child.child = () => { throw new Error('Unable to use child() on a non-root logger'); };\n\n    return child;\n});\n\n// Ensure logs are flushed when the process terminates\nprocess.on('exit', () => logger[pino.symbols.streamSym].flushSync());\nprocess.on('uncaughtException', (err) => {\n    logger[pino.symbols.streamSym].flushSync();\n    throw err;\n});\n"
  },
  {
    "path": "lib/observers/realtime.js",
    "content": "'use strict';\n\nconst couchdbForce = require('couchdb-force');\nconst get = require('lodash/get');\nconst uniq = require('lodash/uniq');\n\nconst log = logger.child({ module: 'observer/realtime' });\n\nclass RealtimeObserver {\n    /**\n     * Constructor.\n     *\n     * Note that the `onPackage` function may return a promise that will be waited before resuming the observe process.\n     * If the `onPackage` function fails, the observing process will be restarted and resumed at the same package.\n     *\n     * @param {Nano}     npmNano   - The npm nano client instance.\n     * @param {Nano}     npmsNano  - The npms nano client instance.\n     * @param {function} onPackage - The function to be called to notify packages.\n     * @param {Object}   [options] - The options; read below to get to know each available option.\n     */\n    constructor(npmNano, npmsNano, onPackage, options) {\n        if (typeof options === 'function') {\n            onPackage = options;\n            options = null;\n        }\n\n        this._npmNano = npmNano;\n        this._npmsNano = npmsNano;\n        this._onPackage = onPackage;\n        this._options = Object.assign({\n            concurrency: 25, // The maximum concurrency in which to call `onPackage`\n            defaultSeq: null, // Default seq to be used in the first run (null means from now on)\n            restartDelay: 5000, // Time to wait before restarting on CouchDB errors\n        }, options);\n\n        // Start the thingy!\n        this._start();\n    }\n\n    /**\n     * Destroys the instance.\n     */\n    destroy() {\n        this._stop();\n    }\n\n    // -----------------------------------------------------\n\n    /**\n     * Little utility to halt the flow of promises if `_stop() was called in the middle\n     * of a complex promise flow.\n     *\n     * @param {function} fn - A function that returns a promise.\n     *\n     * @returns {function} A function that returns a wrapped promise that never fulfills if stopped.\n     */\n    _ignoreIfStopped(fn) {\n        return function (...args) {\n            if (!this._started) {\n                return new Promise(() => {});\n            }\n\n            return fn(...args);\n        }.bind(this);\n    }\n\n    /**\n     * Starts observing.\n     *\n     * This process is infinite until `destroy()` is called.\n     * Errors will be automatically retried.\n     */\n    _start() {\n        this._started = true;\n\n        log.info('Starting realtime observer..');\n\n        // Fetch the last followed sequence\n        this._fetchLastSeq()\n        // Follow changes since the last sequence\n        .then(this._ignoreIfStopped(() => this._followChanges()))\n        // If anything goes wrong, retry!\n        .catch(this._ignoreIfStopped((err) => {\n            log.error({ err }, 'Realtime observer failed, restarting in a few moments..');\n\n            this._stop();\n            this._restartTimeout = setTimeout(() => {\n                this._restartTimeout = null;\n                this._start();\n            }, this._options.restartDelay);\n        }))\n        .done();\n    }\n\n    /**\n     * Stops observing.\n     */\n    _stop() {\n        this._started = false;\n\n        if (this._follower) {\n            this._follower.stop();\n            this._follower = null;\n        }\n\n        if (this._restartTimeout) {\n            clearTimeout(this._restartTimeout);\n            this._restartTimeout = null;\n        }\n\n        if (this._flushBufferTimeout) {\n            clearTimeout(this._flushBufferTimeout);\n            this._flushBufferTimeout = null;\n        }\n    }\n\n    /**\n     * Fetches the last followed CouchDB seq.\n     *\n     * @returns {Promise} A promise that resolves to the seq.\n     */\n    _fetchLastSeq() {\n        return this._npmsNano.getAsync('observer!realtime!last_followed_seq')\n        .then(this._ignoreIfStopped((doc) => {\n            this._lastSeq = doc;\n        }))\n        .catch({ error: 'not_found' }, this._ignoreIfStopped(() => {\n            this._lastSeq = {\n                _id: 'observer!realtime!last_followed_seq',\n                value: this._options.defaultSeq === 'number' ? this._options.defaultSeq : null,\n            };\n        }));\n    }\n\n    /**\n     * Updates the last followed CouchDB seq.\n     * If it fails due to a conflict, the last followed seq is refetched.\n     *\n     * @param {Number} seq - The sequence.\n     *\n     * @returns {Promise} A promise that resolves to the seq.\n     */\n    _updateLastSeq(seq) {\n        return this._npmsNano.insertAsync({\n            value: seq,\n            _rev: this._lastSeq._rev,\n        }, 'observer!realtime!last_followed_seq')\n        // Set last seq with the update result\n        .then(this._ignoreIfStopped((inserted) => {\n            log.debug({ seq }, `Last followed seq updated to ${seq}`);\n\n            this._lastSeq.value = seq;\n            this._lastSeq._rev = inserted.rev;\n        }))\n        .catch({ error: 'conflict' }, this._ignoreIfStopped(() => {\n            log.warn('Are two realtime instances running simultaneously?');\n\n            // Attempt to re-fetch the seq, it might have changed somehow..\n            return this._fetchLastSeq().catch(() => {});\n        }));\n    }\n\n    /**\n     * Starts following CouchDB changes in realtime.\n     * Each change is buffered and flushed when appropriate.\n     *\n     * @returns {Promise} A promise that is rejected on error.\n     */\n    _followChanges() {\n        return new Promise((resolve, reject) => {\n            const since = this._lastSeq.value == null ? 'now' : this._lastSeq.value;\n\n            log.info({ since }, `Will now start to follow changes since ${since}`);\n\n            this._buffer = [];\n\n            this._follower = this._npmNano.follow({ since });\n            this._follower\n            // Buffer each change\n            .on('change', this._ignoreIfStopped((change) => this._addToBuffer(change)))\n            // The follow functionality is resilient to errors.. if an error happens,\n            // it must be really serious\n            .on('error', reject)\n            .follow();\n        });\n    }\n\n    /**\n     * Adds a change to the buffer.\n     * The buffer will be flushed if full or after a certain delay.\n     *\n     * @param {Object} change - The CouchDB change object.\n     */\n    _addToBuffer(change) {\n        // Ignore design documents and other stuff that are not actually packages\n        if (change.id[0] === '_') {\n            return;\n        }\n\n        this._buffer.push(change);\n\n        // Cancel previous flush timeout if any\n        if (this._flushBufferTimeout) {\n            clearTimeout(this._flushBufferTimeout);\n            this._flushBufferTimeout = null;\n        }\n\n        // Flush if buffer is full\n        if (this._buffer.length >= this._options.concurrency * 10) {\n            this._flushBuffer();\n        // Flush if there are no more changes within a certain timeframe\n        } else {\n            this._flushBufferTimeout = setTimeout(() => {\n                this._flushBufferTimeout = null;\n                this._buffer.length && this._flushBuffer();\n            }, 2500);\n        }\n    }\n\n    /**\n     * Flushes the buffer, pausing the follow feed until the flush is completed.\n     * The `onPackage()` function will be called for each buffered package.\n     * Once done, the followed seq will be updated and the feed will be resumed.\n     */\n    _flushBuffer() {\n        if (!this._buffer.length) {\n            return;\n        }\n\n        log.debug(`Flushing changes buffer with a total of ${this._buffer.length} changes..`);\n\n        // Pause the follower\n        this._follower.pause();\n\n        const seq = this._buffer[this._buffer.length - 1].seq;\n        const names = uniq(this._buffer.map((change) => change.id)); // Might contain duplicates\n\n        this._buffer = [];\n\n        // Filter names to only contain the ones that have new versions\n        this._filterModified(names)\n        // Notify packages, updating the observer doc for successful ones\n        .spread(this._ignoreIfStopped((filteredNames, bulkUpdate) => {\n            const ignoredCount = names.length - filteredNames.length;\n            const successfulNames = [];\n\n            filteredNames && log.debug(`Notifying ${filteredNames.length} changed packages`);\n            ignoredCount && log.info(`Ignored ${ignoredCount} packages because they have the same version`);\n\n            return Promise.map(filteredNames, this._ignoreIfStopped((name) => (\n                this._onPackage(name)\n                .then(() => { successfulNames.push(name); })\n            )), { concurrency: this._options.concurrency })\n            .finally(this._ignoreIfStopped(() => bulkUpdate(successfulNames)));\n        }))\n        // Update the last followed seq id\n        .then(this._ignoreIfStopped(() => (\n            this._updateLastSeq(seq)\n            .catch((err) => log.error({ seq, err }, 'Failed to update last followed seq, ignoring..')))\n        ))\n        // If all was good, simply resume the follower\n        // Otherwise stop the process and restart in a few moments\n        .then(this._ignoreIfStopped(() => (\n            this._follower.resume()\n        )), this._ignoreIfStopped((err) => {\n            log.error({ err }, 'Realtime failed when notifying packages, restarting in a few moments..');\n\n            this._stop();\n            this._restartTimeout = setTimeout(() => {\n                this._restartTimeout = null;\n                this._start();\n            }, this._options.restartDelay);\n        }))\n        .done();\n    }\n\n    /**\n     * Filters packages that actually got their version changed or were removed.\n     *\n     * When a user stars a package, a change is produced. Also, the `npm` usually perform\n     * maintenance fixes on documents that also trigger a change.\n     * Though, we are only interested in changes that were produced by a publish or similar actions.\n     *\n     * This function resolves with an array where the first element is the filtered packages\n     * and the second element is function to internally update - - - - - - - - - The package names.\n     *\n     * @param {Array} names - The package names.\n     *\n     * @returns {Promise} A promise that resolves with [filteredNames, bulkUpdate].\n     */\n    _filterModified(names) {\n        return Promise.all([\n            this._npmNano.fetchAsync({ keys: names }).get('rows'),\n            this._npmsNano.fetchAsync({ keys: names.map((name) => `observer!package!${name}`) }).get('rows'),\n        ])\n        .spread(this._ignoreIfStopped((npmRows, observerRows) => {\n            // Filter only the ones that were actually modified, aggregating the docs and patches for each one\n            const docsHash = {};\n            const patchesHash = {};\n\n            const filteredNames = names.filter((name, index) => {\n                const npmModifiedAt = get(npmRows[index], 'doc.time.modified', null);\n                const observerModifiedAt = get(observerRows[index], 'doc.realtime.modifiedAt');\n                const wasModified = !npmModifiedAt || !observerModifiedAt || npmModifiedAt !== observerModifiedAt;\n\n                if (!wasModified) {\n                    return false;\n                }\n\n                docsHash[name] = observerRows[index].doc;\n                patchesHash[name] = { _id: `observer!package!${name}`, realtime: { modifiedAt: npmModifiedAt } };\n\n                return true;\n            });\n\n            // Resolve with the filtered names and a bulkUpdate function to update the observer docs\n            return [filteredNames, (successfulNames) => {\n                const docs = successfulNames.map((name) => docsHash[name]);\n                const patches = successfulNames.map((name) => patchesHash[name]);\n\n                return couchdbForce.bulkPatch(this._npmsNano, patches, { docs });\n            }];\n        }));\n    }\n}\n\nfunction realtime(npmAddr, npmsAddr, onPackage, options) {\n    return new RealtimeObserver(npmAddr, npmsAddr, onPackage, options);\n}\n\nmodule.exports = realtime;\n"
  },
  {
    "path": "lib/observers/stale.js",
    "content": "'use strict';\n\nconst couchdbIterator = require('couchdb-iterator');\nconst couchdbForce = require('couchdb-force');\nconst get = require('lodash/get');\n\nconst log = logger.child({ module: 'observer/stale' });\n\nclass StaleObserver {\n    /**\n     * Constructor.\n     *\n     * Note that the `onPackage` function may return a promise that will be waited\n     * before resuming the observe process. If the `onPackage` function fails, the process will be restarted and resumed\n     * at the same package.\n     *\n     * @param {Nano}     npmsNano  - The npms nano client instance.\n     * @param {function} onPackage - The function to be called to notify packages.\n     * @param {Object}   [options] - The options; read below to get to know each available option.\n     */\n    constructor(npmsNano, onPackage, options) {\n        if (typeof options === 'function') {\n            onPackage = options;\n            options = null;\n        }\n\n        this._npmsNano = npmsNano;\n        this._onPackage = onPackage;\n        this._options = Object.assign({\n            concurrency: 25, // The maximum concurrency in which to call `onPackage`\n            staleThreshold: {\n                normal: 25 * 24 * 60 * 60 * 1000, // Threshold in which a package analysis is considered stale (defaults to 25d)\n                failed: 12 * 60 * 60 * 1000, // Threshold in which a failed package analysis is considered stale (defaults to 12h)\n            },\n            checkDelay: 5 * 60 * 1000, // Time to wait before checking for stale package analysis (defaults to 5m)\n        }, options);\n\n        // Start the thingy!\n        this._start();\n    }\n\n    /**\n     * Destroys the instance.\n     */\n    destroy() {\n        this._stop();\n    }\n\n    // -----------------------------------------------------\n\n    /**\n     * Little utility to halt the flow of promises if `_stop()` was called in the middle\n     * of a complex promise flow.\n     *\n     * @param {function} fn - A function that returns a promise.\n     *\n     * @returns {function} A function that returns a wrapped promise that never fulfills if stopped.\n     */\n    _ignoreIfStopped(fn) {\n        return function (...args) {\n            if (!this._started) {\n                return new Promise(() => {});\n            }\n\n            return fn(...args);\n        }.bind(this);\n    }\n\n    /**\n     * Starts observing.\n     *\n     * This process is infinite until `destroy()` is called.\n     */\n    _start() {\n        this._started = true;\n\n        log.info('Starting stale observer..');\n\n        this._check();\n    }\n\n    /**\n     * Stops observing.\n     */\n    _stop() {\n        this._started = false;\n\n        if (this._checkTimeout) {\n            clearTimeout(this._checkTimeout);\n            this._checkTimeout = null;\n        }\n    }\n\n    /**\n     * Searches the database, looking for stale packages.\n     *\n     * Schedules a new check once done.\n     */\n    _check() {\n        // Check for normal stale packages\n        this._checkType('failed')\n        // Check for stale packages which analysis have failed\n        .then(() => this._checkType('normal'))\n        // Schedule the next check\n        .then(this._ignoreIfStopped(() => {\n            this._checkTimeout = setTimeout(() => {\n                this._checkTimeout = null;\n                this._check();\n            }, this._options.checkDelay);\n        }));\n    }\n\n    /**\n     * Searches the database, looking for stale packages of a specific type.\n     *\n     * @param {String} type - The staleness type (normal or failed).\n     *\n     * @returns {Promise} A promise that fullfills when done.\n     */\n    _checkType(type) {\n        log.debug(`Looking for stale packages (${type})..`);\n\n        // Fetch stale packages by querying the `packages-stale` view\n        return couchdbIterator.bulk(this._npmsNano, 'npms-analyzer/packages-stale', this._ignoreIfStopped((rows) => {\n            const names = rows.filter((row) => row.doc).map((row) => row.doc.collected.metadata.name);\n\n            log.debug(`Got ${rows.length} packages that are considered stale (${type}), filtering..`);\n\n            // Filter names to only contain the ones that have new versions\n            return this._filterNotNotified(names, type)\n            // Notify packages, updating the observer doc for successful ones\n            .spread(this._ignoreIfStopped((filteredNames, bulkUpdate) => {\n                const filteredCount = filteredNames.length;\n                const ignoredCount = names.length - filteredCount;\n                const successfulNames = [];\n\n                filteredCount && log.debug(`Notifying ${filteredNames.length} stale packages (${type})`);\n                ignoredCount && log.info(`Ignored ${ignoredCount} stale packages (${type}) because they were already notified`);\n\n                return Promise.map(filteredNames, this._ignoreIfStopped((name) => this._onPackage(name)\n                .then(() => { successfulNames.push(name); })))\n                .finally(this._ignoreIfStopped(() => bulkUpdate(successfulNames)));\n            }));\n        }), {\n            startkey: [type, 0, null],\n            endkey: [type, Date.now() - this._options.staleThreshold[type], '\\ufff0'],\n            includeDocs: true,\n            bulkSize: this._options.concurrency,\n        })\n        .catch(this._ignoreIfStopped((err) => {\n            log.error({ err }, `Stale observer failed when notifying stale packages (${type})`);\n        }));\n    }\n\n    /**\n     * Filters packages that were not yet notified.\n     *\n     * It might take some time for a package to be analyzed. Having that said, we must ensure\n     * that packages that were previously notified are filtered to avoid repetition.\n     *\n     * @param {Array}  names - The package names.\n     * @param {String} type  - The stale type (normal or failed).\n     *\n     * @returns {Promise} A promise that resolves with [filteredNames, bulkUpdate].\n     */\n    _filterNotNotified(names, type) {\n        return this._npmsNano.fetchAsync({ keys: names.map((key) => `observer!package!${key}`) })\n        .get('rows')\n        .then(this._ignoreIfStopped((observerRows) => {\n            // Filter only the ones that were not notified or enough time has passed, aggregating the docs for each one\n            const docsHash = {};\n\n            const filteredNames = names.filter((name, index) => {\n                const notifiedAt = get(observerRows[index], 'doc.stale.notifiedAt');\n\n                if (notifiedAt && Date.now() - Date.parse(notifiedAt) <= this._options.staleThreshold[type]) {\n                    return false;\n                }\n\n                docsHash[name] = observerRows[index].doc;\n\n                return true;\n            });\n\n            // Resolve with the filtered names and a bulkUpdate function to update the observer docs\n            return [filteredNames, (successfulNames) => {\n                const now = (new Date()).toISOString();\n                const docs = successfulNames.map((name) => docsHash[name]);\n                const patches = successfulNames.map((name) => ({\n                    _id: `observer!package!${name}`,\n                    stale: { notifiedAt: now },\n                }));\n\n                return couchdbForce.bulkPatch(this._npmsNano, patches, { docs });\n            }];\n        }));\n    }\n}\n\nfunction stale(npmsAddr, onPackage, options) {\n    return new StaleObserver(npmsAddr, onPackage, options);\n}\n\nmodule.exports = stale;\n"
  },
  {
    "path": "lib/queue.js",
    "content": "'use strict';\n\nconst EventEmitter = require('events').EventEmitter;\nconst assert = require('assert');\nconst amqp = require('amqplib');\nconst pick = require('lodash/pick');\n\nconst log = logger.child({ module: 'queue' });\n\n/**\n * Simple yet powerful queue implementation based on RabbitMQ, with support for priorities.\n *\n * The implementation has reliability and resilience, which means that a lot of errors are handled automatically for you,\n * including connection issues. If something goes really wrong, the instance will be automatically destroyed and a `error` event will\n * be emitted.\n *\n * The `error` listeners will receive an error object with a `reason` property which can be:\n * - blocked: RabbitMQ blocked the connection, which usually means a service outage\n * - canceled: RabbitMQ canceled the consumer, which usually means a service outage (or the queue was deleted)\n *\n * Additionally the following events are emitted:\n * - reconnect: Emitted each time a reconnect is attempted, with the number of attempts\n */\nclass Queue extends EventEmitter {\n    /**\n     * Constructor.\n     *\n     * @param {String} name      - The queue name.\n     * @param {String} addr      - The RabbitMQ address (connection string).\n     * @param {Object} [options] - The options; read below to get to know each available option.\n     */\n    constructor(name, addr, options) {\n        super();\n\n        this._name = name;\n        this._addr = addr;\n        this._options = Object.assign({\n            maxPriority: null, // The maximum priority to use if this queue is a priority queue\n            socket: { heartbeat: 30 }, // The socket options, see: http://goo.gl/lL9SSB\n            reconnectDelay: 5000, // Time to wait before reconnecting on connection errors\n        }, options);\n\n        this._reconnectCount = 0;\n    }\n\n    /**\n     * Pushes the specified data into the queue.\n     * An error will be thrown if the instance is destroyed.\n     *\n     * @param {Mixed}  data       - The data.\n     * @param {Number} [priority] - The message priority.\n     *\n     * @returns {Promise} A promise that fulfills when done.\n     */\n    push(data, priority) {\n        assert(!this._destroyed, 'Queue is destroyed');\n\n        log.trace({ data }, 'Pushing into the queue');\n\n        // Ensure we are connected\n        return this._connect()\n        // Add it to the queue\n        .then(() => this._sendToQueue({ data, pushedAt: (new Date()).toISOString(), retryCount: 0, priority }))\n        .then(() => {\n            log.trace({ data }, 'Successfully pushed into the queue');\n        }, (err) => {\n            log.error({ data, err }, 'Failed to push data into the queue');\n            throw err;\n        });\n    }\n\n    /**\n     * Registers the consumer for this queue.\n     *\n     * The consumer function will be called with one argument - a message object that contains\n     * `data`, `pushedAt` and `retryCount` properties - and is expected to return a promise.\n     * Resolving the promise signals that the message was consumed successfully, rejecting the promise\n     * signals that an error occurred which causes the message to be re-queued.\n     *\n     * One note on consumers: In error scenarios the message might be redelivered several times therefore your\n     * consumer function must be coded having that in mind.\n     *\n     * Only one consumer is allowed as well as only one inflight attempt to register it. In both cases\n     * an error will be thrown. Also, an error will be thrown if the instance has been destroyed.\n     *\n     * @param {function} fn        - The consumer function.\n     * @param {Object}   [options] - The options; read below to get to know each available option.\n     *\n     * @returns {Promise} A promise that fulfills once registered.\n     */\n    consume(fn, options) {\n        assert(!this._destroyed, 'Queue is destroyed');\n        assert(!this._consumer, 'Consumer is already registered');\n        assert(!this._registeringConsumer, 'A consumer is being registered');\n\n        if (typeof options === 'function') {\n            fn = options;\n            options = null;\n        }\n\n        options = Object.assign({\n            concurrency: 1, // Concurrency at which `fn` will be run\n            maxRetries: 5, // Maximum number of retries allowed for the same message\n            onRetriesExceeded: null, // Called when all retries where exhausted when consuming the message\n        }, options);\n\n        const consumer = Object.assign({ fn }, options);\n\n        this._registeringConsumer = true;\n\n        return this._connect()\n        .then(() => this._registerConsumer(consumer))\n        .finally(() => { this._registeringConsumer = false; });\n    }\n\n    /**\n     * Stats the queue.\n     *\n     * Returns a promise that resolves with an object with `messageCount` and\n     * `consumerCount` properties.\n     *\n     * An error will be thrown if the instance is destroyed.\n     *\n     * @returns {Promise} A promise that fulfills when done.\n     */\n    stat() {\n        assert(!this._destroyed, 'Queue is destroyed');\n\n        return this._connect()\n        .then(() => this._channel.checkQueue(this._name))\n        .then((response) => pick(response, 'messageCount', 'consumerCount'))\n        .catch({ code: 404 }, () => ({ messageCount: 0, consumerCount: 0 }));\n    }\n\n    /**\n     * Destroys the instance.\n     * Any on going jobs will be automatically re-queued by RabbitMQ.\n     */\n    destroy() {\n        this._destroyed = true;\n        this._disconnect();\n\n        if (this._reconnectTimeout) {\n            clearTimeout(this._reconnectTimeout);\n            this._reconnectTimeout = null;\n        }\n    }\n\n    // -----------------------------------------------------\n\n    /**\n     * Connects to RabbitMQ.\n     *\n     * Sets up the connection, the channel and the consumers.\n     * Returns a promise that is resolved once connected. If already connected, the promise resolves immediately.\n     *\n     * The connection is handled carefully which means that automatic retries will be attempted on errors.\n     *\n     * @returns {Promise} A promise that is resolved once connected.\n     */\n    _connect() {\n        if (this._connectPromise) {\n            return this._connectPromise;\n        }\n\n        // Wait for the reconnect delay if any\n        this._connectPromise = Promise.resolve(this._reconnectDelayPromise)\n        // Connect to RabbitMQ!\n        .then(() => (\n            Promise.resolve(amqp.connect(this._addr, this._options.socket))\n            .tap((connection) => { this._connection = connection; })\n        ))\n        // Configure channel & queue\n        .then((connection) => (\n            Promise.resolve(connection.createConfirmChannel())\n            .tap((channel) => { this._channel = channel; })\n            .then((channel) => channel.assertQueue(this._name, {\n                durable: true,\n                maxPriority: this._options.maxPriority,\n            }))\n        ))\n        // Register consumer\n        .then(() => {\n            this._assertConnected();\n\n            return this._consumer && this._registerConsumer(this._consumer);\n        })\n        // Final handling\n        .then(() => {\n            this._assertConnected();\n            this._reconnectCount = 0;\n\n            this._connection\n            .once('error', (err) => this._reconnect(err))\n            .once('close', (err) => this._reconnect(err))\n            .once('blocked', (reason) => {\n                log.error({ reason }, `RabbitMQ is blocking the connection, reason being ${reason}`);\n                this.destroy();\n                this.emit('error', Object.assign(new Error('Fatal error'), { code: 'FATAL', reason: 'blocked' }));\n            });\n\n            this._channel\n            .once('error', (err) => this._reconnect(err))\n            .once('close', (err) => this._reconnect(err))\n            .once('return', () => log.error('A message could not be queued and was returned back'));\n\n            log.info('RabbitMQ connect and setup done successfully');\n        })\n        // On error, try to reconnect\n        .catch((err) => {\n            this._connectPromise = null;\n            setImmediate(() => this._reconnect(err));\n            throw err;\n        });\n\n        return this._connectPromise;\n    }\n\n    /**\n     * Reconnects to RabbitMQ on error.\n     *\n     * The client we are using does not have built-in reconnection so we handle it ourselves.\n     *\n     * @param {Error} [err] - The error.\n     */\n    _reconnect(err) {\n        // Since this function is called in various asynchronous contexts, ensure that\n        // we don't do anything if the instance has been destroyed\n        if (this._destroyed) {\n            log.trace('Reconnect ignored because instance is already destroyed');\n\n            return;\n        }\n\n        // Do not reconnect if already reconnecting..\n        if (this._reconnectDelayPromise) {\n            log.error({ err, attemptCount: this._reconnectCount }, 'RabbitMQ connection errored, already retrying to reconnect to..');\n\n            return;\n        }\n\n        log.error({ err, attemptCount: this._reconnectCount }, 'RabbitMQ connection errored, reconnecting in a few moments..');\n\n        // Emit the reconnect event and check if the listener have decided to destroy the instance\n        this.emit('reconnect', this._reconnectCount);\n        if (this._destroyed) {\n            return;\n        }\n\n        this._reconnectCount += 1;\n        this._reconnectDelayPromise = new Promise((resolve) => {\n            this._reconnectTimeout = setTimeout(() => {\n                this._reconnectTimeout = this._reconnectDelayPromise = null;\n                resolve();\n            }, this._options.reconnectDelay);\n        });\n\n        this._disconnect();\n        this._connect().catch(() => {});\n    }\n\n    /**\n     * Disconnects from RabbitMQ.\n     */\n    _disconnect() {\n        this._connectPromise = null;\n\n        if (this._connection) {\n            this._connection.removeAllListeners();\n            this._connection.on('error', () => {});\n            this._connection.close().catch(() => { /* Do nothing */ });\n            this._connection = null;\n        }\n\n        if (this._channel) {\n            this._channel.removeAllListeners();\n            this._channel.on('error', () => {});\n            this._channel.close().catch(() => { /* Do nothing */ });\n            this._channel = null;\n        }\n    }\n\n    /**\n     * Registers the consumer of the queue.\n     *\n     * @param {Object} consumer - An object containing the actual function and additional options.\n     *\n     * @returns {Promise} A promise that fulfills once done.\n     */\n    _registerConsumer(consumer) {\n        this._consumer = consumer;\n        this._channel.prefetch(this._consumer.concurrency);\n\n        return Promise.resolve(this._channel.consume(this._name, (queueMessage) => {\n            // According to http://www.squaremobius.net/amqp.node/channel_api.html#channel_consume, if RabbitMQ\n            // cancels this consumer then `queueMessage` will be null\n            if (!queueMessage) {\n                log.error('Consumer function got canceled remotely..');\n                this.destroy();\n                this.emit('error', Object.assign(new Error('Fatal error'), { code: 'FATAL', reason: 'canceled' }));\n\n                return;\n            }\n\n            const message = JSON.parse(queueMessage.content.toString());\n\n            // Call the consumer function\n            Promise.try(() => this._consumer.fn(message))\n            // Handle consumer success/error\n            .then(() => {\n                this._handleConsumerSuccess(message, queueMessage);\n            }, (err) => {\n                this._handleConsumerError(err, message, queueMessage);\n            })\n            .done();\n        }))\n        .then(() => {\n            log.info('Consumer was registered successfully, will now receive messages..');\n        }, (err) => {\n            this._consumer = null;\n            log.error({ err }, 'Failed to register consumer');\n            throw err;\n        });\n    }\n\n    /**\n     * Handles consumer success for a specific message.\n     *\n     * @param {Object} message      - The message that the consumer received.\n     * @param {Object} queueMessage - The original consumed RabbitMQ message.\n     */\n    _handleConsumerSuccess(message, queueMessage) {\n        // Handle the fact that we might no longer be connected.. consumers might take a while to handle the message\n        if (!this._isConnected()) {\n            log.warn({ message }, 'Consumer handled the message but we are no longer connected');\n\n            return;\n        }\n\n        log.debug({ message }, 'Consumer successfully handled message, ack\\'ing..');\n        this._channel.ack(queueMessage);\n    }\n\n    /**\n     * Handles consumer error for a specific message.\n     *\n     * The message will be retried if the max retries were not reached.\n     * Otherwise, it will simply be discarded form the queue (dead lettered).\n     *\n     * Retried messages are put into the end of the queue to avoid congestion.\n     *\n     * @param {Error}  err          - The consumer error.\n     * @param {Object} message      - The message that the consumer received.\n     * @param {Object} queueMessage - The original consumed RabbitMQ message.\n     */\n    _handleConsumerError(err, message, queueMessage) {\n        // Handle the fact that we might no longer be connected.. consumers might take a while to handle the message\n        if (!this._isConnected()) {\n            log.warn({ message }, 'Consumer failed to handle the message but we are no longer connected');\n\n            return;\n        }\n\n        // Did we reach the max allowed retries?\n        if (message.retryCount >= this._consumer.maxRetries) {\n            log.fatal({ err, message }, `Failed to consume message, NOT re-queueing after ${message.retryCount} failed attempts`);\n            Promise.try(() => this._consumer.onRetriesExceeded && this._consumer.onRetriesExceeded(message, err))\n            .finally(() => this._channel.nack(queueMessage, false, false));\n\n            return;\n        }\n\n        log.warn({ err, message }, 'Failed to consume message, re-queueing..');\n        message.retryCount += 1;\n\n        // Send the updated message to the tail of the queue with the updated retries count\n        this._sendToQueue(message)\n        // Ack the previous message only after we are sure the updated one was added to the queue\n        // This is necessary to avoid loosing messages\n        .then(() => {\n            this._assertConnected();\n            this._channel.ack(queueMessage);\n        })\n        .catch((err) => log.error({ err }, 'Error trying to re-queue the message, duplicates will occur!'))\n        .done();\n    }\n\n    /**\n     * Little utility function to enqueue a message.\n     *\n     * @param {Object} message - The message.\n     *\n     * @returns {Promise} A promise that fulfills when done.\n     */\n    _sendToQueue(message) {\n        const content = Buffer.from(JSON.stringify(message));\n\n        // No promise support for sendToQueue(), see: https://github.com/squaremo/amqp.node/issues/286\n        return new Promise((resolve, reject) => {\n            this._channel.sendToQueue(this._name, content, { persistent: true, priority: message.priority }, (err) => {\n                if (err) {\n                    reject(err);\n                } else {\n                    resolve();\n                }\n            });\n        });\n    }\n\n    /**\n     * Little utility function that checks if we are connected.\n     *\n     * @returns {Boolean} True if connected, false otherwise.\n     */\n    _isConnected() {\n        return this._connection && this._channel;\n    }\n\n    /**\n     * Little utility function that asserts that we are connected.\n     */\n    _assertConnected() {\n        assert(this._isConnected(), 'Not connected to RabbitMQ');\n    }\n}\n\nfunction queue(name, addr, options) {\n    return new Queue(name, addr, options);\n}\n\nmodule.exports = queue;\n"
  },
  {
    "path": "lib/scoring/aggregate.js",
    "content": "'use strict';\n\nconst couchdbIterator = require('couchdb-iterator');\nconst promiseRetry = require('promise-retry');\nconst flattenObject = require('obj-flatten');\nconst unflattenObject = require('obj-unflatten');\nconst mapValues = require('lodash/mapValues');\nconst mean = require('lodash/mean');\nconst objGet = require('lodash/get');\n\nconst trimPercentage = 0.01; // Trim evaluations % to normalize skewness of values when aggregating\nconst log = logger.child({ module: 'scoring/aggregate' });\n\n/**\n * Calculates the aggregation based on the accumulated evaluations.\n *\n * @param {Array} evaluations - The accumulated evaluations.\n *\n * @returns {Object} The aggregation object.\n */\nfunction calculateAggregation(evaluations) {\n    const shape = flattenObject(evaluations[0] || {});\n\n    const grouped = mapValues(shape, (value, key) => (\n        evaluations\n        .map((evaluation) => objGet(evaluation, key))\n        // All the packages with negative values will have a score of 0 (e.g.: downloads acceleration)\n        // So, we must remove all negative values from the aggregation in order to have a better score curve\n        .filter((evaluation) => evaluation >= 0)\n        .sort((a, b) => a - b)\n    ));\n\n    const aggregation = mapValues(grouped, (evaluations) => {\n        const trimmedLength = Math.round(evaluations.length * trimPercentage);\n\n        return {\n            min: evaluations[0],\n            max: evaluations[evaluations.length - 1],\n            mean: mean(evaluations),\n            truncatedMean: mean(evaluations.slice(trimmedLength, -trimmedLength)),\n            median: evaluations[Math.round(evaluations.length / 2)],\n        };\n    });\n\n    return unflattenObject(aggregation);\n}\n\n// ---------------------------------------------------------\n\n/**\n * Gets the last aggregation.\n *\n * @param {Nano} npmsNano - The npms nano client instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction get(npmsNano) {\n    log.trace('Getting aggregation');\n\n    return npmsNano.getAsync('scoring!aggregation')\n    .catch({ error: 'not_found' }, () => {\n        throw Object.assign(new Error('Aggregation not found, it appears that the first scoring cycle has not yet run'),\n            { code: 'AGGREGATION_NOT_FOUND' });\n    });\n}\n\n/**\n * Removes a last aggregation.\n *\n * @param {Nano} npmsNano - The client nano instance for npms.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction remove(npmsNano) {\n    return promiseRetry((retry) => (\n        get(npmsNano)\n        .then((doc) => (\n            npmsNano.destroyAsync(doc._id, doc._rev)\n            .catch({ error: 'conflict' }, (err) => {\n                err = new Error('Conflict while removing aggregation');\n                log.warn({ err }, err.message);\n                retry(err);\n            })\n        ))\n    ))\n    .catch({ code: 'AGGREGATION_NOT_FOUND' }, () => {})\n    .then(() => log.trace('Aggregation removed'));\n}\n\n/**\n * Saves aggregation.\n *\n * @param {Object} aggregation - The aggregation (can be the full doc to avoid having to fetch it).\n * @param {Nano}   npmsNano    - The client nano instance for npms.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction save(aggregation, npmsNano) {\n    return promiseRetry((retry) => (\n        // Fetch the doc if necessary to obtain its rev\n        Promise.try(() => {\n            if (aggregation._rev) {\n                return;\n            }\n\n            return get(npmsNano)\n            .then((doc) => { aggregation._rev = doc._rev; })\n            .catch({ code: 'AGGREGATION_NOT_FOUND' }, () => {});\n        })\n        // Save it\n        .then(() => {\n            aggregation._id = 'scoring!aggregation';\n\n            return npmsNano.insertAsync(aggregation)\n            .tap((response) => { aggregation._rev = response.rev; })\n            .catch({ error: 'conflict' }, (err) => {\n                err = new Error('Conflict while storing aggregation');\n                log.warn({ err }, err.message);\n\n                delete aggregation._rev;\n                retry(err);\n            });\n        })\n    ))\n    .return(aggregation)\n    .tap(() => log.trace({ aggregation }, 'Saved aggregation'));\n}\n\n/**\n * Iterates over all packages evaluations, producing an aggregation (aka reduce) of all scalar values in it,\n * including the min, max and mean values for each metric.\n *\n * @param {Nano} npmsNano - The npms nano client instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction aggregate(npmsNano) {\n    const evaluations = [];\n\n    log.info('Starting aggregation');\n\n    // Iterate over all packages evaluation\n    return couchdbIterator(npmsNano, 'npms-analyzer/packages-evaluation', (row) => {\n        row.index && row.index % 25000 === 0 && log.info(`Accumulated a total of ${row.index} evaluations`);\n        evaluations.push(row.value);\n    }, { concurrency: 100, limit: 10000 })\n    // Calculate the aggregation & save it\n    .then((evaluationsCount) => {\n        if (!evaluationsCount) {\n            log.debug('There are no evaluations yet');\n\n            return null;\n        }\n\n        log.info(`Accumulated a total of ${evaluationsCount} evaluations, calculating aggregation..`);\n\n        const aggregation = calculateAggregation(evaluations);\n\n        log.info({ aggregation }, 'Aggregation calculated, saving it..');\n\n        return save(aggregation, npmsNano);\n    })\n    // We are done!\n    .then((aggregation) => {\n        log.info({ aggregation }, `Aggregation successful, processed a total of ${evaluations.length} evaluations`);\n\n        return aggregation;\n    }, (err) => {\n        log.error({ err }, 'Aggregation failed');\n        throw err;\n    });\n}\n\nmodule.exports = aggregate;\nmodule.exports.get = get;\nmodule.exports.save = save;\nmodule.exports.remove = remove;\n"
  },
  {
    "path": "lib/scoring/finalize.js",
    "content": "'use strict';\n\nconst log = logger.child({ module: 'scoring/finalize' });\n\n/**\n * Finalizes the scoring cycle.\n * Updates the `npms-current` alias to point to the new index and removes all the old indices and aliases.\n *\n * @param {Object}  esInfo   - The object with the Elasticsearch information (returned by prepare()).\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction finalize(esInfo, esClient) {\n    log.info('Finalizing scoring');\n\n    // Update `npms-current` alias to point to the new index and removes `npms-new` alias\n    return Promise.try(() => {\n        // Remove any `npms-current` alias\n        const actions = esInfo.aliases.current.map((index) => ({ remove: { index, alias: 'npms-current' } }));\n\n        // Remove `npms-new` and add the new `npms-current` aliases\n        actions.push({ remove: { index: esInfo.newIndex, alias: 'npms-new' } });\n        actions.push({ add: { index: esInfo.newIndex, alias: 'npms-current' } });\n\n        return esClient.indices.updateAliases({ body: { actions } })\n        .then(() => log.debug({ actions }, 'Updated npms-read alias'));\n    })\n    // Remove old indices\n    .then(() => {\n        const indices = esInfo.aliases.current;\n\n        return indices.length && esClient.indices.delete({ index: indices })\n        .then(() => log.debug({ indices }, 'Removed old indices pointing to npms-read'));\n    })\n    .return();\n}\n\nmodule.exports = finalize;\n"
  },
  {
    "path": "lib/scoring/prepare.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst JSON5 = require('json5');\nconst difference = require('lodash/difference');\n\nconst esIndexConfig = JSON5.parse(fs.readFileSync(`${__dirname}/../../config/elasticsearch/npms.json5`));\nconst log = logger.child({ module: 'scoring/prepare' });\n\n/**\n * Prepares the start of a scoring cycle.\n * Collects information about the current indices and aliases, creates a new index for the\n * scores to be written and updates the `npms-new` alias to point to it.\n *\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} A promise that resolves with the Elasticsearch information.\n */\nfunction prepare(esClient) {\n    const esInfo = {};\n\n    log.info('Preparing scoring..');\n\n    // Get current indices and aliases\n    return Promise.try(() => Promise.all([\n        esClient.cat.indices({ h: ['index'] }),\n        esClient.cat.aliases({ h: ['alias', 'index'] }),\n    ])\n    .spread((indicesCat, aliasesCat) => {\n        esInfo.indices = [];\n        esInfo.aliases = { current: [], new: [] };\n\n        (indicesCat || '').split(/\\s*\\n\\s*/).forEach((lines) => {\n            const split = lines.split(/\\s+/);\n            const index = split[0];\n\n            /^npms-\\d+$/.test(index) && esInfo.indices.push(index);\n        });\n\n        (aliasesCat || '').split(/\\s*\\n\\s*/).forEach((lines) => {\n            const split = lines.split(/\\s+/);\n            const alias = split[0];\n            const index = split[1];\n            const match = alias.match(/^npms-(current|new)$/);\n\n            match && esInfo.aliases[match[1]].push(index);\n        });\n    })\n    .then(() => log.debug({ esInfo }, 'Gathered Elasticsearch info..')))\n    // Create a new index in which the scores will be written\n    .then(() => {\n        esInfo.newIndex = `npms-${Date.now()}`;\n\n        return esClient.indices.create({ index: esInfo.newIndex, body: esIndexConfig })\n        .then(() => log.debug({ index: esInfo.newIndex }, 'Created new index'));\n    })\n    // Update the `npms-new` alias to point to the previously created index\n    .then(() => {\n        // Remove any `npms-new` alias\n        const actions = esInfo.aliases.new.map((index) => ({ remove: { index, alias: 'npms-new' } }));\n\n        // Add the new `npms-new` alias\n        actions.push({ add: { index: esInfo.newIndex, alias: 'npms-new' } });\n\n        return esClient.indices.updateAliases({ body: { actions } })\n        .then(() => log.debug({ actions }, 'Updated npms-new alias'));\n    })\n    // Remove all indices except the ones pointing to `npms-current` (should be only 1)\n    .then(() => {\n        const indices = difference(esInfo.indices, esInfo.aliases.current);\n\n        return indices.length && esClient.indices.delete({ index: indices })\n        .then(() => log.debug({ indices }, 'Removed unnecessary indices'));\n    })\n    .return(esInfo);\n}\n\nmodule.exports = prepare;\n"
  },
  {
    "path": "lib/scoring/score.js",
    "content": "'use strict';\n\nconst couchdbIterator = require('couchdb-iterator');\nconst weightedMean = require('weighted-mean');\nconst semver = require('semver');\nconst deepCompact = require('deep-compact');\nconst clamp = require('lodash/clamp');\nconst pick = require('lodash/pick');\nconst aggregate = require('./aggregate');\nconst { solveCubic } = require('./util/paperNumerical');\n\nconst log = logger.child({ module: 'scoring/score' });\n\n/**\n * Computes the quality score.\n *\n * @param {Object} quality     - The quality evaluation.\n * @param {Object} aggregation - The quality aggregation.\n *\n * @returns {Number} The score.\n */\nfunction scoreQuality(quality, aggregation) {\n    const scores = {\n        carefulness: calculateScore(quality.carefulness, aggregation.carefulness, 0.8),\n        tests: calculateScore(quality.tests, aggregation.tests, 0.7),\n        health: calculateScore(quality.health, aggregation.health, 1),\n        branding: calculateScore(quality.branding, aggregation.branding, 1),\n    };\n\n    return weightedMean([\n        [scores.carefulness, 7],\n        [scores.tests, 7],\n        [scores.health, 4],\n        [scores.branding, 2],\n    ]);\n}\n\n/**\n * Computes the popularity score.\n *\n * @param {Object} popularity  - The popularity evaluation.\n * @param {Object} aggregation - The popularity aggregation.\n *\n * @returns {Number} The score.\n */\nfunction scorePopularity(popularity, aggregation) {\n    const scores = {\n        communityInterest: calculateScore(popularity.communityInterest, aggregation.communityInterest, 1),\n        downloadsCount: calculateScore(popularity.downloadsCount, aggregation.downloadsCount, 1),\n        downloadsAcceleration: calculateScore(popularity.downloadsAcceleration, aggregation.downloadsAcceleration, 1),\n        // dependentsCount: calculateScore(popularity.dependentsCount, aggregation.dependentsCount, 1),\n    };\n\n    return weightedMean([\n        [scores.communityInterest, 2],\n        [scores.downloadsCount, 2],\n        [scores.downloadsAcceleration, 1],\n        // [scores.dependentsCount, 2],\n    ]);\n}\n\n/**\n * Computes the maintenance score.\n *\n * @param {Object} maintenance - The maintenance evaluation.\n * @param {Object} aggregation - The maintenance aggregation.\n *\n * @returns {Number} The score.\n */\nfunction scoreMaintenance(maintenance, aggregation) {\n    const scores = {\n        releasesFrequency: calculateScore(maintenance.releasesFrequency, aggregation.releasesFrequency, 1),\n        commitsFrequency: calculateScore(maintenance.commitsFrequency, aggregation.commitsFrequency, 1),\n        openIssues: calculateScore(maintenance.openIssues, aggregation.openIssues, 1),\n        issuesDistribution: calculateScore(maintenance.issuesDistribution, aggregation.issuesDistribution, 1),\n    };\n\n    return weightedMean([\n        [scores.releasesFrequency, 2],\n        [scores.commitsFrequency, 1],\n        [scores.openIssues, 1],\n        [scores.issuesDistribution, 2],\n    ]);\n}\n\n/**\n * Calculates the score of a value taking into the consideration its aggregation (min, max, mean).\n *\n * The mathematical formula can be \"previewed\" here: Https://github.com/npms-io/npms-analyzer/blob/master/docs/diagrams/bezier.png.\n * It's a bezier curve, with the following points: (0,0), (normValue, avgY), (normValue, avgY) and (1, 1).\n * Thanks @atduarte for this awesome equation.\n *\n * @param {Number} value       - The value.\n * @param {Object} aggregation - The aggregation for the value.\n * @param {Number} avgY        - The avgY value to use for the intermediate point.\n *\n * @returns {Number} The score.\n */\nfunction calculateScore(value, aggregation, avgY) {\n    // Normalize value and mean\n    const normValue = clamp((value - aggregation.min) / aggregation.max, 0, 1);\n    const normMean = clamp((aggregation.truncatedMean - aggregation.min) / aggregation.max, 0, 1);\n\n    // Calculate the cubic roots\n    const roots = [];\n\n    solveCubic(1, -3 * normMean, 3 * normMean, -1 * normValue, roots, 0, 1);\n\n    const t = roots[0];\n\n    if (t == null) {\n        throw Object.assign(new Error('Solving the cubic formula failed, probably aggregation is incorrect'),\n            { code: 'SCORE_CUBIC_MISMATCH', roots, normValue, normMean, value, aggregation });\n    }\n\n    // Calculate the point in the bezier curve\n    return (t ** 3) - (3 * avgY * (t ** 2)) + (3 * t * avgY);\n}\n\n/**\n * Calculates and builds the score data to be indexed in Elasticsearch.\n *\n * @param {Object} analysis    - The package analysis.\n * @param {Object} aggregation - The most up to date aggregation.\n *\n * @returns {Object} The score data.\n */\nfunction buildScore(analysis, aggregation) {\n    const collected = analysis.collected;\n    const evaluation = analysis.evaluation;\n\n    const scoreDetail = {\n        quality: scoreQuality(evaluation.quality, aggregation.quality),\n        popularity: scorePopularity(evaluation.popularity, aggregation.popularity),\n        maintenance: scoreMaintenance(evaluation.maintenance, aggregation.maintenance),\n    };\n\n    return deepCompact({\n        package: pick(collected.metadata, [\n            'name', 'scope', 'version', 'description', 'keywords', 'date', 'links',\n            'author', 'publisher', 'maintainers',\n        ]),\n        flags: analysis.error && collected.metadata.version === '0.0.0' ? null : {\n            deprecated: collected.metadata.deprecated,\n            insecure: collected.source && collected.source.vulnerabilities ? collected.source.vulnerabilities.length : null,\n            unstable: semver.lt(collected.metadata.version, '1.0.0', true) ? true : null,\n        },\n        evaluation,\n        score: {\n            final: (scoreDetail.quality * 0.3) +\n                   (scoreDetail.popularity * 0.35) +\n                   (scoreDetail.maintenance * 0.35),\n            detail: scoreDetail,\n        },\n    });\n}\n\n/**\n * Get the score indices that are currently available as an array.\n *\n * This function is necessary to avoid calling POST, DELETE or other document operations that attempt to\n * auto-create the index automatically. These operations will fail because we explicitly disabled index auto-creation.\n * A lot of errors are outputted to Elasticsearch error log and we want to avoid that.\n *\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction getLivingIndices(esClient) {\n    const indices = ['npms-current', 'npms-new'];\n\n    return Promise.map(indices, (index) => esClient.indices.exists({ index }))\n    .then((exists) => indices.filter((index, x) => exists[x]))\n    .tap((livingIndices) => log.trace({ livingIndices }, 'Got living score indices'));\n}\n\n/**\n * Stores a package score in `npms-current` and `npms-new` indices.\n *\n * If none of the indices exist, the operation fails.\n *\n * @param {Object}  score         - The score data.\n * @param {Object}  livingIndices - The array from getLivingIndices().\n * @param {Elastic} esClient      - The Elasticsearch instance.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction storeScore(score, livingIndices, esClient) {\n    // Fail if none exist\n    if (!livingIndices.length) {\n        return Promise.reject(Object.assign(new Error('There are no scoring indices'), { code: 'SCORE_INDEX_NOT_FOUND' }));\n    }\n\n    const name = score.package.name;\n\n    return Promise.map(livingIndices, (index) => (\n        esClient.index({ index, type: 'score', id: name, body: score })\n        .catch({ status: 404 }, () => {\n            throw Object.assign(new Error(`Index ${index} was deleted meanwhile`), { code: 'SCORE_INDEX_NOT_FOUND' });\n        })\n    ))\n    .return(score)\n    .tap(() => log.trace({ score, livingIndices }, `Stored score of ${name}`));\n}\n\n// -------------------------------------------------------------------\n\n/**\n * Gets a package score data.\n *\n * @param {String} name      - The package name.\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction get(name, esClient) {\n    // Need to use Promise.resolve() because Elasticsearch doesn't use the global promise\n    return Promise.resolve(esClient.get({ index: 'npms-current', type: 'score', id: name }))\n    .get('_source')\n    .catch({ status: 404 }, () => {\n        throw Object.assign(new Error(`Score for ${name} does not exist`), { code: 'SCORE_NOT_FOUND' });\n    });\n}\n\n/**\n * Removes a package score data.\n *\n * Removes score data from both `npms-current` and `npms-new` indices.\n *\n * @param {String} name      - The package name.\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction remove(name, esClient) {\n    // Check current indices\n    return getLivingIndices(esClient)\n    // Remove package from each of them\n    .tap((livingIndices) => (\n        Promise.map(livingIndices, (index) => (\n            // Need to use Promise.resolve() because Elasticsearch doesn't use the global promise\n            Promise.resolve(esClient.delete({ index, type: 'score', id: name }))\n            .catch({ status: 404 }, () => {}) // Just in case..\n        ))\n    )\n    .then(() => log.trace({ livingIndices }, `Removed score of ${name}`)));\n}\n\n/**\n * Saves a package score data.\n *\n * Stores score data in `npms-current` and `npms-new` indices.\n * If none of the indices exist, the operation fails.\n *\n * @param {Object} score     - The score data.\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction save(score, esClient) {\n    // Check the existence of `npms-current` and `npms-new` indices\n    return getLivingIndices(esClient)\n    // Store the score in the indices\n    .then((livingIndices) => storeScore(score, livingIndices, esClient));\n}\n\n/**\n * Scores all packages.\n *\n * Scores are stored only in the `npms-new` index.\n * If none of the indices exist, the operation fails.\n *\n * @param {Object}  aggregation - The most up to date aggregation.\n * @param {Nano}    npmsNano - The npm nano instance.\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} A promise that fulfills when done.\n */\nfunction all(aggregation, npmsNano, esClient) {\n    // Check if the `npms-new` index exists\n    return getLivingIndices(esClient)\n    .then((livingIndices) => {\n        if (livingIndices.indexOf('npms-new') === -1) {\n            throw Object.assign(new Error('There is no `npms-new` scoring index'), { code: 'SCORE_INDEX_NOT_FOUND' });\n        }\n\n        return ['npms-new'];\n    })\n    // Iterate over all packages and score them!\n    .then((livingIndices) => {\n        log.info({ aggregation }, 'Scoring packages..');\n\n        return couchdbIterator(npmsNano, (row) => {\n            row.index && row.index % 10000 === 0 && log.info(`Scored a total of ${row.index} packages`);\n\n            if (!row.doc) {\n                return;\n            }\n\n            const analysis = row.doc;\n            const name = analysis.collected.metadata.name;\n\n            // Store the score in the indices\n            return Promise.try(() => storeScore(buildScore(analysis, aggregation), livingIndices, esClient))\n            .then((score) => {\n                log.debug({ score, livingIndices }, `Score of ${name} completed`);\n            }, (err) => {\n                log.error({ err }, `Score of ${name} failed`);\n\n                // Surpress cubic errors\n                if (err.code !== 'SCORE_CUBIC_MISMATCH') {\n                    throw err;\n                }\n            });\n        }, {\n            startkey: 'package!',\n            endkey: 'package!\\ufff0',\n            concurrency: 50,\n            limit: 2500,\n            includeDocs: true,\n        })\n        .tap((count) => log.info(`Scoring packages completed, scored a total of ${count} packages`));\n    });\n}\n\n/**\n * Scores a package, indexing its result in Elasticsearch to be searchable.\n *\n * @param {objects} analysis - The package analysis.\n * @param {Nano}    npmsNano - The npms nano client instance.\n * @param {Elastic} esClient - The Elasticsearch instance.\n *\n * @returns {Promise} The promise that fulfills when done.\n */\nfunction score(analysis, npmsNano, esClient) {\n    const name = analysis.collected.metadata.name;\n\n    return aggregate.get(npmsNano)\n    .then((aggregation) => save(buildScore(analysis, aggregation), esClient))\n    .then((score) => {\n        log.debug({ score }, `Score of ${name} completed`);\n\n        return score;\n    }, (err) => {\n        log.error({ err }, `Score of ${name} failed`);\n        throw err;\n    });\n}\n\nmodule.exports = score;\nmodule.exports.get = get;\nmodule.exports.save = save;\nmodule.exports.remove = remove;\nmodule.exports.all = all;\n"
  },
  {
    "path": "lib/scoring/util/paperNumerical.js",
    "content": "/* eslint-disable */\n\n// This was copied from the https://raw.githubusercontent.com/paperjs/paper.js project\n// It's used by `solveCubic.js`\n\n/*\n * Paper.js - The Swiss Army Knife of Vector Graphics Scripting.\n * http://paperjs.org/\n *\n * Copyright (c) 2011 - 2016, Juerg Lehni & Jonathan Puckey\n * http://scratchdisk.com/ & http://jonathanpuckey.com/\n *\n * Distributed under the MIT license. See LICENSE file for details.\n *\n * All rights reserved.\n */\n\n/**\n * @name Numerical\n * @namespace\n * @private\n */\nvar Numerical = new function() {\n\n    // Lookup tables for abscissas and weights with values for n = 2 .. 16.\n    // As values are symmetric, only store half of them and adapt algorithm\n    // to factor in symmetry.\n    var abscissas = [\n        [  0.5773502691896257645091488],\n        [0,0.7745966692414833770358531],\n        [  0.3399810435848562648026658,0.8611363115940525752239465],\n        [0,0.5384693101056830910363144,0.9061798459386639927976269],\n        [  0.2386191860831969086305017,0.6612093864662645136613996,0.9324695142031520278123016],\n        [0,0.4058451513773971669066064,0.7415311855993944398638648,0.9491079123427585245261897],\n        [  0.1834346424956498049394761,0.5255324099163289858177390,0.7966664774136267395915539,0.9602898564975362316835609],\n        [0,0.3242534234038089290385380,0.6133714327005903973087020,0.8360311073266357942994298,0.9681602395076260898355762],\n        [  0.1488743389816312108848260,0.4333953941292471907992659,0.6794095682990244062343274,0.8650633666889845107320967,0.9739065285171717200779640],\n        [0,0.2695431559523449723315320,0.5190961292068118159257257,0.7301520055740493240934163,0.8870625997680952990751578,0.9782286581460569928039380],\n        [  0.1252334085114689154724414,0.3678314989981801937526915,0.5873179542866174472967024,0.7699026741943046870368938,0.9041172563704748566784659,0.9815606342467192506905491],\n        [0,0.2304583159551347940655281,0.4484927510364468528779129,0.6423493394403402206439846,0.8015780907333099127942065,0.9175983992229779652065478,0.9841830547185881494728294],\n        [  0.1080549487073436620662447,0.3191123689278897604356718,0.5152486363581540919652907,0.6872929048116854701480198,0.8272013150697649931897947,0.9284348836635735173363911,0.9862838086968123388415973],\n        [0,0.2011940939974345223006283,0.3941513470775633698972074,0.5709721726085388475372267,0.7244177313601700474161861,0.8482065834104272162006483,0.9372733924007059043077589,0.9879925180204854284895657],\n        [  0.0950125098376374401853193,0.2816035507792589132304605,0.4580167776572273863424194,0.6178762444026437484466718,0.7554044083550030338951012,0.8656312023878317438804679,0.9445750230732325760779884,0.9894009349916499325961542]\n    ];\n\n    var weights = [\n        [1],\n        [0.8888888888888888888888889,0.5555555555555555555555556],\n        [0.6521451548625461426269361,0.3478548451374538573730639],\n        [0.5688888888888888888888889,0.4786286704993664680412915,0.2369268850561890875142640],\n        [0.4679139345726910473898703,0.3607615730481386075698335,0.1713244923791703450402961],\n        [0.4179591836734693877551020,0.3818300505051189449503698,0.2797053914892766679014678,0.1294849661688696932706114],\n        [0.3626837833783619829651504,0.3137066458778872873379622,0.2223810344533744705443560,0.1012285362903762591525314],\n        [0.3302393550012597631645251,0.3123470770400028400686304,0.2606106964029354623187429,0.1806481606948574040584720,0.0812743883615744119718922],\n        [0.2955242247147528701738930,0.2692667193099963550912269,0.2190863625159820439955349,0.1494513491505805931457763,0.0666713443086881375935688],\n        [0.2729250867779006307144835,0.2628045445102466621806889,0.2331937645919904799185237,0.1862902109277342514260976,0.1255803694649046246346943,0.0556685671161736664827537],\n        [0.2491470458134027850005624,0.2334925365383548087608499,0.2031674267230659217490645,0.1600783285433462263346525,0.1069393259953184309602547,0.0471753363865118271946160],\n        [0.2325515532308739101945895,0.2262831802628972384120902,0.2078160475368885023125232,0.1781459807619457382800467,0.1388735102197872384636018,0.0921214998377284479144218,0.0404840047653158795200216],\n        [0.2152638534631577901958764,0.2051984637212956039659241,0.1855383974779378137417166,0.1572031671581935345696019,0.1215185706879031846894148,0.0801580871597602098056333,0.0351194603317518630318329],\n        [0.2025782419255612728806202,0.1984314853271115764561183,0.1861610000155622110268006,0.1662692058169939335532009,0.1395706779261543144478048,0.1071592204671719350118695,0.0703660474881081247092674,0.0307532419961172683546284],\n        [0.1894506104550684962853967,0.1826034150449235888667637,0.1691565193950025381893121,0.1495959888165767320815017,0.1246289712555338720524763,0.0951585116824927848099251,0.0622535239386478928628438,0.0271524594117540948517806]\n    ];\n\n    // Math short-cuts for often used methods and values\n    var abs = Math.abs,\n        sqrt = Math.sqrt,\n        pow = Math.pow,\n        // Fallback to polyfill:\n        log2 = Math.log2 || function(x) {\n            return Math.log(x) * Math.LOG2E;\n        },\n        // Constants\n        EPSILON = 1e-12,\n        MACHINE_EPSILON = 1.12e-16;\n\n    function clamp(value, min, max) {\n        return value < min ? min : value > max ? max : value;\n    }\n\n    function getDiscriminant(a, b, c) {\n        // d = b^2 - a * c  computed accurately enough by a tricky scheme.\n        // Ported from @hkrish's polysolve.c\n        function split(v) {\n            var x = v * 134217729,\n                y = v - x,\n                hi = y + x, // Don't optimize y away!\n                lo = v - hi;\n            return [hi, lo];\n        }\n\n        var D = b * b - a * c,\n            E = b * b + a * c;\n        if (abs(D) * 3 < E) {\n            var ad = split(a),\n                bd = split(b),\n                cd = split(c),\n                p = b * b,\n                dp = (bd[0] * bd[0] - p + 2 * bd[0] * bd[1]) + bd[1] * bd[1],\n                q = a * c,\n                dq = (ad[0] * cd[0] - q + ad[0] * cd[1] + ad[1] * cd[0])\n                        + ad[1] * cd[1];\n            D = (p - q) + (dp - dq); // Don’t omit parentheses!\n        }\n        return D;\n    }\n\n    function getNormalizationFactor() {\n        // Normalize coefficients à la Jenkins & Traub's RPOLY.\n        // Normalization is done by scaling coefficients with a power of 2, so\n        // that all the bits in the mantissa remain unchanged.\n        // Use the infinity norm (max(sum(abs(a)…)) to determine the appropriate\n        // scale factor. See @hkrish in #1087#issuecomment-231526156\n        var norm = Math.max.apply(Math, arguments);\n        return norm && (norm < 1e-8 || norm > 1e8)\n                ? pow(2, -Math.round(log2(norm)))\n                : 0;\n    }\n\n    return /** @lends Numerical */{\n        /**\n         * A very small absolute value used to check if a value is very close to\n         * zero. The value should be large enough to offset any floating point\n         * noise, but small enough to be meaningful in computation in a nominal\n         * range (see MACHINE_EPSILON).\n         *\n         * http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html\n         * http://www.cs.berkeley.edu/~wkahan/Math128/Cubic.pdf\n         */\n        EPSILON: EPSILON,\n        /**\n         * The machine epsilon for a double precision (Javascript Number) is\n         * 2.220446049250313e-16. (try this in the js console:\n         *     (function(){ for (var e = 1; 1 < 1+e/2;) e/=2; return e }())\n         *\n         * The constant MACHINE_EPSILON here refers to the constants δ and ε\n         * such that, the error introduced by addition, multiplication on a\n         * 64bit float (js Number) will be less than δ and ε. That is to say,\n         * for all X and Y representable by a js Number object, S and P be their\n         * 'exact' sum and product respectively, then\n         * |S - (x+y)| <= δ|S|, and |P - (x*y)| <= ε|P|.\n         * This amounts to about half of the actual machine epsilon.\n         */\n        MACHINE_EPSILON: MACHINE_EPSILON,\n        /**\n         * The epsilon to be used when handling curve-time parameters. This\n         * cannot be smaller, because errors add up to around 2e-7 in the bezier\n         * fat-line clipping code as a result of recursive sub-division.\n         */\n        CURVETIME_EPSILON: 1e-8,\n        /**\n         * The epsilon to be used when performing \"geometric\" checks, such as\n         * distances between points and lines.\n         */\n        GEOMETRIC_EPSILON: 1e-7,\n        /**\n         * The epsilon to be used when performing \"trigonometric\" checks, such\n         * as examining cross products to check for collinearity.\n         */\n        TRIGONOMETRIC_EPSILON: 1e-8,\n        /**\n         * Kappa is the value which which to scale the curve handles when\n         * drawing a circle with bezier curves.\n         *\n         * http://whizkidtech.redprince.net/bezier/circle/kappa/\n         */\n        KAPPA: 4 * (sqrt(2) - 1) / 3,\n\n        /**\n         * Checks if the value is 0, within a tolerance defined by\n         * Numerical.EPSILON.\n         */\n        isZero: function(val) {\n            return val >= -EPSILON && val <= EPSILON;\n        },\n\n        /**\n         * Returns a number whose value is clamped by the given range.\n         *\n         * @param {Number} value the value to be clamped\n         * @param {Number} min the lower boundary of the range\n         * @param {Number} max the upper boundary of the range\n         * @returns {Number} a number in the range of [min, max]\n         */\n        clamp: clamp,\n\n        /**\n         * Gauss-Legendre Numerical Integration.\n         */\n        integrate: function(f, a, b, n) {\n            var x = abscissas[n - 2],\n                w = weights[n - 2],\n                A = (b - a) * 0.5,\n                B = A + a,\n                i = 0,\n                m = (n + 1) >> 1,\n                sum = n & 1 ? w[i++] * f(B) : 0; // Handle odd n\n            while (i < m) {\n                var Ax = A * x[i];\n                sum += w[i++] * (f(B + Ax) + f(B - Ax));\n            }\n            return A * sum;\n        },\n\n        /**\n         * Root finding using Newton-Raphson Method combined with Bisection.\n         */\n        findRoot: function(f, df, x, a, b, n, tolerance) {\n            for (var i = 0; i < n; i++) {\n                var fx = f(x),\n                    // Calculate a new candidate with the Newton-Raphson method.\n                    dx = fx / df(x),\n                    nx = x - dx;\n                // See if we can trust the Newton-Raphson result. If not we use\n                // bisection to find another candidate for Newton's method.\n                if (abs(dx) < tolerance) {\n                    x = nx;\n                    break;\n                }\n                // Update the root-bounding interval and test for containment of\n                // the candidate. If candidate is outside the root-bounding\n                // interval, use bisection instead.\n                // There is no need to compare to lower / upper because the\n                // tangent line has positive slope, guaranteeing that the x-axis\n                // intercept is larger than lower / smaller than upper.\n                if (fx > 0) {\n                    b = x;\n                    x = nx <= a ? (a + b) * 0.5 : nx;\n                } else {\n                    a = x;\n                    x = nx >= b ? (a + b) * 0.5 : nx;\n                }\n            }\n            // Return the best result even though we haven't gotten close\n            // enough to the root... (In paper.js this never seems to happen).\n            // But make sure, that it actually is within the given range [a, b]\n            return clamp(x, a, b);\n        },\n\n        /**\n         * Solve a quadratic equation in a numerically robust manner;\n         * given a quadratic equation ax² + bx + c = 0, find the values of x.\n         *\n         * References:\n         *  Kahan W. - \"To Solve a Real Cubic Equation\"\n         *  http://www.cs.berkeley.edu/~wkahan/Math128/Cubic.pdf\n         *  Blinn J. - \"How to solve a Quadratic Equation\"\n         *  Harikrishnan G.\n         *  https://gist.github.com/hkrish/9e0de1f121971ee0fbab281f5c986de9\n         *\n         * @param {Number} a the quadratic term\n         * @param {Number} b the linear term\n         * @param {Number} c the constant term\n         * @param {Number[]} roots the array to store the roots in\n         * @param {Number} [min] the lower bound of the allowed roots\n         * @param {Number} [max] the upper bound of the allowed roots\n         * @returns {Number} the number of real roots found, or -1 if there are\n         * infinite solutions\n         *\n         * @author Harikrishnan Gopalakrishnan <hari.exeption@gmail.com>\n         */\n        solveQuadratic: function(a, b, c, roots, min, max) {\n            var x1, x2 = Infinity;\n            if (abs(a) < EPSILON) {\n                // This could just be a linear equation\n                if (abs(b) < EPSILON)\n                    return abs(c) < EPSILON ? -1 : 0;\n                x1 = -c / b;\n            } else {\n                // a, b, c are expected to be the coefficients of the equation:\n                // Ax² - 2Bx + C == 0, so we take b = -b/2:\n                b *= -0.5;\n                var D = getDiscriminant(a, b, c);\n                // If the discriminant is very small, we can try to normalize\n                // the coefficients, so that we may get better accuracy.\n                if (D && abs(D) < MACHINE_EPSILON) {\n                    var f = getNormalizationFactor(abs(a), abs(b), abs(c));\n                    if (f) {\n                        a *= f;\n                        b *= f;\n                        c *= f;\n                        D = getDiscriminant(a, b, c);\n                    }\n                }\n                if (D >= -MACHINE_EPSILON) { // No real roots if D < 0\n                    var Q = D < 0 ? 0 : sqrt(D),\n                        R = b + (b < 0 ? -Q : Q);\n                    // Try to minimize floating point noise.\n                    if (R === 0) {\n                        x1 = c / a;\n                        x2 = -x1;\n                    } else {\n                        x1 = R / a;\n                        x2 = c / R;\n                    }\n                }\n            }\n            var count = 0,\n                boundless = min == null,\n                minB = min - EPSILON,\n                maxB = max + EPSILON;\n            // We need to include EPSILON in the comparisons with min / max,\n            // as some solutions are ever so lightly out of bounds.\n            if (isFinite(x1) && (boundless || x1 > minB && x1 < maxB))\n                roots[count++] = boundless ? x1 : clamp(x1, min, max);\n            if (x2 !== x1\n                    && isFinite(x2) && (boundless || x2 > minB && x2 < maxB))\n                roots[count++] = boundless ? x2 : clamp(x2, min, max);\n            return count;\n        },\n\n        /**\n         * Solve a cubic equation, using numerically stable methods,\n         * given an equation of the form ax³ + bx² + cx + d = 0.\n         *\n         * This algorithm avoids the trigonometric/inverse trigonometric\n         * calculations required by the \"Italins\"' formula. Cardano's method\n         * works well enough for exact computations, this method takes a\n         * numerical approach where the double precision error bound is kept\n         * very low.\n         *\n         * References:\n         *  Kahan W. - \"To Solve a Real Cubic Equation\"\n         *   http://www.cs.berkeley.edu/~wkahan/Math128/Cubic.pdf\n         *  Harikrishnan G.\n         *  https://gist.github.com/hkrish/9e0de1f121971ee0fbab281f5c986de9\n         *\n         * W. Kahan's paper contains inferences on accuracy of cubic\n         * zero-finding methods. Also testing methods for robustness.\n         *\n         * @param {Number} a the cubic term (x³ term)\n         * @param {Number} b the quadratic term (x² term)\n         * @param {Number} c the linear term (x term)\n         * @param {Number} d the constant term\n         * @param {Number[]} roots the array to store the roots in\n         * @param {Number} [min] the lower bound of the allowed roots\n         * @param {Number} [max] the upper bound of the allowed roots\n         * @returns {Number} the number of real roots found, or -1 if there are\n         * infinite solutions\n         *\n         * @author Harikrishnan Gopalakrishnan <hari.exeption@gmail.com>\n         */\n        solveCubic: function(a, b, c, d, roots, min, max) {\n            var f = getNormalizationFactor(abs(a), abs(b), abs(c), abs(d)),\n                x, b1, c2, qd, q;\n            if (f) {\n                a *= f;\n                b *= f;\n                c *= f;\n                d *= f;\n            }\n\n            function evaluate(x0) {\n                x = x0;\n                // Evaluate q, q', b1 and c2 at x\n                var tmp = a * x;\n                b1 = tmp + b;\n                c2 = b1 * x + c;\n                qd = (tmp + b1) * x + c2;\n                q = c2 * x + d;\n            }\n\n            // If a or d is zero, we only need to solve a quadratic, so we set\n            // the coefficients appropriately.\n            if (abs(a) < EPSILON) {\n                a = b;\n                b1 = c;\n                c2 = d;\n                x = Infinity;\n            } else if (abs(d) < EPSILON) {\n                b1 = b;\n                c2 = c;\n                x = 0;\n            } else {\n                // Here onwards we iterate for the leftmost root. Proceed to\n                // deflate the cubic into a quadratic (as a side effect to the\n                // iteration) and solve the quadratic.\n                evaluate(-(b / a) / 3);\n                // Get a good initial approximation.\n                var t = q / a,\n                    r = pow(abs(t), 1/3),\n                    s = t < 0 ? -1 : 1,\n                    td = -qd / a,\n                    // See Kahan's notes on why 1.324718*... works.\n                    rd = td > 0 ? 1.324717957244746 * Math.max(r, sqrt(td)) : r,\n                    x0 = x - s * rd;\n                if (x0 !== x) {\n                    do {\n                        evaluate(x0);\n                        // Newton's. Divide by 1 + MACHINE_EPSILON (1.000...002)\n                        // to avoid x0 crossing over a root.\n                        x0 = qd === 0 ? x : x - q / qd / (1 + MACHINE_EPSILON);\n                    } while (s * x0 > s * x);\n                    // Adjust the coefficients for the quadratic.\n                    if (abs(a) * x * x > abs(d / x)) {\n                        c2 = -d / x;\n                        b1 = (c2 - c) / x;\n                    }\n                }\n            }\n            // The cubic has been deflated to a quadratic.\n            var count = Numerical.solveQuadratic(a, b1, c2, roots, min, max),\n                boundless = min == null;\n            if (isFinite(x) && (count === 0\n                    || count > 0 && x !== roots[0] && x !== roots[1])\n                    && (boundless || x > min - EPSILON && x < max + EPSILON))\n                roots[count++] = boundless ? x : clamp(x, min, max);\n            return count;\n        }\n    };\n};\n\nmodule.exports = Numerical;\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"npms-analyzer\",\n  \"version\": \"1.0.0\",\n  \"description\": \"The analyzer behind npms.io\",\n  \"main\": \"index.js\",\n  \"bin\": {\n    \"npms-analyzer\": \"cli.js\"\n  },\n  \"bugs\": \"https://github.com/npms-io/npms-analyzer/issues/\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git://github.com/npms-io/npms-analyzer.git\"\n  },\n  \"keywords\": [\n    \"npm\",\n    \"npms\",\n    \"npmsearch\",\n    \"npmsearch\",\n    \"search\",\n    \"node\",\n    \"module\",\n    \"package\"\n  ],\n  \"author\": \"André Cruz <amdfcruz@gmail.com>\",\n  \"license\": \"MIT\",\n  \"scripts\": {\n    \"lint\": \"eslint --ignore-path .gitignore .\",\n    \"test\": \"npm run download-test-fixtures && VCR_MODE=cache mocha\",\n    \"test-cov\": \"npm run download-test-fixtures && VCR_MODE=cache istanbul cover --dir test/coverage _mocha && echo Coverage lies in test/coverage/lcov-report/index.html\",\n    \"test-travis\": \"npm run download-test-fixtures && VCR_MODE=playback istanbul cover _mocha --report lcovonly\",\n    \"download-test-fixtures\": \"test/bin/download-fixtures\",\n    \"clean-test-fixtures\": \"date=\\\"$(date -R)\\\" && VCR_MODE=playback mocha && test/bin/clean-fixtures \\\"$date\\\"\"\n  },\n  \"dependencies\": {\n    \"amqplib\": \"^0.5.0\",\n    \"bluebird\": \"^3.1.1\",\n    \"camelcase-keys\": \"^5.0.0\",\n    \"config\": \"^2.0.1\",\n    \"couchdb-force\": \"^1.0.1\",\n    \"couchdb-iterator\": \"^2.0.0\",\n    \"david\": \"^11.0.0\",\n    \"deep-compact\": \"^1.1.0\",\n    \"detect-readme-badges\": \"^1.3.0\",\n    \"detect-repo-changelog\": \"^1.0.1\",\n    \"detect-repo-linters\": \"^3.1.1\",\n    \"detect-repo-test-files\": \"^1.2.2\",\n    \"elasticsearch\": \"^15.1.1\",\n    \"fetch-coverage\": \"^2.0.1\",\n    \"gh-issues-stats\": \"^3.0.0\",\n    \"globby\": \"^8.0.1\",\n    \"got\": \"^9.3.0\",\n    \"hosted-git-info\": \"^2.1.4\",\n    \"humanize-duration\": \"^3.6.1\",\n    \"is-link-working\": \"^2.1.0\",\n    \"is-regular-file\": \"^1.0.1\",\n    \"json5\": \"^2.0.0\",\n    \"load-json-file\": \"^5.1.0\",\n    \"lodash\": \"^4.17.11\",\n    \"moment\": \"^2.21.0\",\n    \"nano\": \"^7.1.0\",\n    \"normalize-package-data\": \"^2.3.6\",\n    \"normalize-value\": \"~1.0.0\",\n    \"obj-flatten\": \"^2.0.0\",\n    \"obj-unflatten\": \"^1.0.0\",\n    \"paper\": \"^0.11.5\",\n    \"php-escape-shell\": \"^1.0.0\",\n    \"pino\": \"^5.6.1\",\n    \"promise-retry\": \"^1.0.1\",\n    \"require-directory\": \"^2.1.1\",\n    \"semver\": \"^5.1.0\",\n    \"serialize-error\": \"^3.0.0\",\n    \"spdx\": \"^0.5.0\",\n    \"spdx-correct\": \"^3.0.0\",\n    \"token-dealer\": \"^3.0.0\",\n    \"weighted-mean\": \"^1.0.0\",\n    \"which\": \"^1.2.8\",\n    \"yargs\": \"^12.0.2\"\n  },\n  \"optionalDependencies\": {\n    \"heapdump\": \"^0.3.7\"\n  },\n  \"devDependencies\": {\n    \"@commitlint/cli\": \"^7.1.2\",\n    \"@commitlint/config-conventional\": \"^7.1.2\",\n    \"betray\": \"^1.3.0\",\n    \"chai\": \"^4.1.2\",\n    \"chronokinesis\": \"^2.0.0\",\n    \"eslint\": \"^5.6.0\",\n    \"eslint-config-moxy\": \"^6.1.1\",\n    \"husky\": \"^1.0.0\",\n    \"istanbul\": \"^0.4.2\",\n    \"lint-staged\": \"^8.0.4\",\n    \"mocha\": \"^5.2.0\",\n    \"mock-require\": \"^3.0.2\",\n    \"nock\": \"^10.0.0\",\n    \"sepia\": \"^2.0.1\"\n  },\n  \"husky\": {\n    \"hooks\": {\n      \"pre-commit\": \"lint-staged\",\n      \"commit-msg\": \"commitlint -E HUSKY_GIT_PARAMS\"\n    }\n  },\n  \"lint-staged\": {\n    \"*.js\": [\n      \"eslint --fix\",\n      \"git add\"\n    ]\n  },\n  \"commitlint\": {\n    \"extends\": [\n      \"@commitlint/config-conventional\"\n    ]\n  },\n  \"engines\": {\n    \"node\": \">=8.6\",\n    \"npm\": \">=6\"\n  }\n}\n"
  },
  {
    "path": "test/.eslintrc.json",
    "content": "{\n    \"env\": {\n        \"mocha\": true\n    }\n}\n"
  },
  {
    "path": "test/bin/download-fixtures",
    "content": "#!/bin/sh\n\n# Thanks Patrick Marques <patrickfmarques@gmail.com> for helping with bash\n\n# Travis runs on a old linux distribution which has an old `wget` and certificates\nif [ -z \"$TRAVIS\" ]; then\n    WGET_OPTS=\"--continue --timestamping --no-verbose --show-progress\"\nelse\n    WGET_OPTS=\"--no-check-certificate --progress=dot:mega\"\nfi\n\nDIR=test/fixtures/analyze/download/downloaded\nmkdir -p ${DIR} && cd ${DIR}\nwget ${WGET_OPTS} http://registry.npmjs.org/pickles2-contents-editor/-/pickles2-contents-editor-2.0.0-alpha.1.tgz\nwget ${WGET_OPTS} https://registry.npmjs.org/couchdb-iterator/-/couchdb-iterator-2.0.2.tgz\nwget ${WGET_OPTS} https://registry.npmjs.org/citong/-/citong-1.3.1.tgz\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/0/data.json",
    "content": "{\n   \"name\": \"0\",\n   \"dist-tags\": {\n       \"latest\": \"0.0.0\"\n   },\n   \"versions\": {\n       \"0.0.0\": {\n           \"name\": \"0\",\n           \"version\": \"0.0.0\",\n           \"description\": \"\",\n           \"main\": \"index.js\",\n           \"scripts\": {\n               \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n           },\n           \"author\": \"\",\n           \"license\": \"BSD-2-Clause\",\n           \"_id\": \"0@0.0.0\",\n           \"dist\": {\n               \"shasum\": \"beabacb0a099c1dd215eaec15bb201318db7de6a\",\n               \"tarball\": \"http://registry.npmjs.org/0/-/0-0.0.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.14\",\n           \"_npmUser\": {\n               \"name\": \"zolmeister\",\n               \"email\": \"zolikahan@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"zolmeister\",\n                   \"email\": \"zolikahan@gmail.com\"\n               }\n           ]\n       }\n   },\n   \"readme\": \"ERROR: No README data found!\",\n   \"maintainers\": [\n       {\n           \"name\": \"zolmeister\",\n           \"email\": \"zolikahan@gmail.com\"\n       }\n   ],\n   \"time\": {\n       \"modified\": \"2014-06-17T06:38:43.495Z\",\n       \"created\": \"2014-04-01T22:51:09.131Z\",\n       \"0.0.0\": \"2014-04-01T22:51:11.871Z\"\n   },\n   \"readmeFilename\": \"\",\n   \"license\": \"BSD-2-Clause\",\n   \"users\": {\n       \"zolmeister\": true\n   }\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/0/expected-source.json",
    "content": "{\n  \"files\": {\n    \"readmeSize\": 0,\n    \"testsSize\": 0\n  }\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/@bcoe%2fexpress-oauth-server/data.json",
    "content": "{\n  \"_id\": \"@bcoe/express-oauth-server\",\n  \"_rev\": \"2-1eafc256421b304557faf317e9b16b3c\",\n  \"name\": \"@bcoe/express-oauth-server\",\n  \"description\": \"OAuth provider for express\",\n  \"dist-tags\": {\n    \"latest\": \"1.0.0\"\n  },\n  \"versions\": {\n    \"1.0.0\": {\n      \"name\": \"@bcoe/express-oauth-server\",\n      \"version\": \"1.0.0\",\n      \"description\": \"OAuth provider for express\",\n      \"main\": \"index.js\",\n      \"scripts\": {\n        \"lint\": \"jshint .\",\n        \"test\": \"mocha --recursive test\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/seegno/express-oauth-server.git\"\n      },\n      \"keywords\": [\n        \"express\",\n        \"oauth\",\n        \"oauth2\"\n      ],\n      \"author\": {\n        \"name\": \"Nuno Sousa\",\n        \"email\": \"nfs@seegno.com\"\n      },\n      \"license\": \"SEE LICENSE IN LICENSE\",\n      \"dependencies\": {\n        \"bluebird\": \"^3.0.5\",\n        \"express\": \"^4.13.3\",\n        \"oauth2-server\": \"^3.0.0-b2\",\n        \"thenify\": \"^3.0.0\"\n      },\n      \"devDependencies\": {\n        \"body-parser\": \"^1.14.1\",\n        \"jshint\": \"^2.8.0\",\n        \"mocha\": \"^2.3.3\",\n        \"should\": \"^7.1.0\",\n        \"sinon\": \"^1.14.1\",\n        \"supertest\": \"^0.15.0\"\n      },\n      \"engines\": {\n        \"node\": \">=0.11\"\n      },\n      \"gitHead\": \"c5216f4c4d37dd4962d8553b6c9ba2cf7c47b739\",\n      \"bugs\": {\n        \"url\": \"https://github.com/seegno/express-oauth-server/issues\"\n      },\n      \"homepage\": \"https://github.com/seegno/express-oauth-server#readme\",\n      \"_id\": \"@bcoe/express-oauth-server@1.0.0\",\n      \"_shasum\": \"cd72c60a73533023ca397104274d6a7b6d7eecef\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.3.12\",\n      \"_nodeVersion\": \"5.1.0\",\n      \"_npmUser\": {\n        \"name\": \"bcoe\",\n        \"email\": \"ben@npmjs.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"cd72c60a73533023ca397104274d6a7b6d7eecef\",\n        \"tarball\": \"https://registry.npmjs.org/@bcoe/express-oauth-server/-/express-oauth-server-1.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"bcoe\",\n          \"email\": \"ben@npmjs.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/express-oauth-server-1.0.0.tgz_1459216830343_0.7240529225673527\"\n      },\n      \"directories\": {}\n    }\n  },\n  \"readme\": \"# Express OAuth Server [![Build Status](https://travis-ci.org/seegno/express-oauth-server.png?branch=master)](https://travis-ci.org/seegno/express-oauth-server)\\n\\nComplete, compliant and well tested module for implementing an OAuth2 Server/Provider with [express](https://github.com/strongloop/express) in [node.js](http://nodejs.org/).\\n\\nThis is the express wrapper for [oauth2-server](https://github.com/thomseddon/node-oauth2-server).\\n\\n## Installation\\n\\n    $ npm install @bcoe/express-oauth-server\\n\\n## Quick Start\\n\\nThe module provides two middlewares - one for granting tokens and another to authorise them. `@bcoe/express-oauth-server` and, consequently `oauth2-server`, expect the request body to be parsed already.\\nThe following example uses `body-parser` but you may opt for an alternative library.\\n\\n```js\\nvar bodyparser = require('body-parser');\\nvar express = require('express');\\nvar OAuthServer = require('@bcoe/express-oauth-server');\\n\\nvar app = express();\\n\\napp.oauth = new OAuthServer({\\n  model: {}, // See https://github.com/thomseddon/node-oauth2-server for specification\\n});\\n\\napp.use(bodyParser.json());\\napp.use(bodyparser.urlencoded({ extended: false }))\\napp.use(app.oauth.authorise());\\n\\napp.use(function(req, res) {\\n  res.send('Secret area');\\n});\\n\\napp.listen(3000);\\n```\\n\",\n  \"maintainers\": [\n    {\n      \"name\": \"bcoe\",\n      \"email\": \"ben@npmjs.com\"\n    }\n  ],\n  \"time\": {\n    \"modified\": \"2016-03-29T02:00:30.766Z\",\n    \"created\": \"2016-03-29T02:00:30.766Z\",\n    \"1.0.0\": \"2016-03-29T02:00:30.766Z\"\n  },\n  \"homepage\": \"https://github.com/seegno/express-oauth-server#readme\",\n  \"keywords\": [\n    \"express\",\n    \"oauth\",\n    \"oauth2\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git://github.com/seegno/express-oauth-server.git\"\n  },\n  \"author\": {\n    \"name\": \"Nuno Sousa\",\n    \"email\": \"nfs@seegno.com\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/seegno/express-oauth-server/issues\"\n  },\n  \"license\": \"SEE LICENSE IN LICENSE\",\n  \"readmeFilename\": \"Readme.md\",\n  \"users\": {\n    \"bcoe\": true\n  },\n  \"_attachments\": {}\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/@bcoe%2fexpress-oauth-server/expected-metadata.json",
    "content": "{\n  \"name\": \"@bcoe/express-oauth-server\",\n  \"scope\": \"bcoe\",\n  \"version\": \"1.0.0\",\n  \"description\": \"OAuth provider for express\",\n  \"keywords\": [\n    \"express\",\n    \"oauth\",\n    \"oauth2\"\n  ],\n  \"date\": \"2016-03-29T02:00:30.766Z\",\n  \"readme\": \"# Express OAuth Server [![Build Status](https://travis-ci.org/seegno/express-oauth-server.png?branch=master)](https://travis-ci.org/seegno/express-oauth-server)\\n\\nComplete, compliant and well tested module for implementing an OAuth2 Server/Provider with [express](https://github.com/strongloop/express) in [node.js](http://nodejs.org/).\\n\\nThis is the express wrapper for [oauth2-server](https://github.com/thomseddon/node-oauth2-server).\\n\\n## Installation\\n\\n    $ npm install @bcoe/express-oauth-server\\n\\n## Quick Start\\n\\nThe module provides two middlewares - one for granting tokens and another to authorise them. `@bcoe/express-oauth-server` and, consequently `oauth2-server`, expect the request body to be parsed already.\\nThe following example uses `body-parser` but you may opt for an alternative library.\\n\\n```js\\nvar bodyparser = require('body-parser');\\nvar express = require('express');\\nvar OAuthServer = require('@bcoe/express-oauth-server');\\n\\nvar app = express();\\n\\napp.oauth = new OAuthServer({\\n  model: {}, // See https://github.com/thomseddon/node-oauth2-server for specification\\n});\\n\\napp.use(bodyParser.json());\\napp.use(bodyparser.urlencoded({ extended: false }))\\napp.use(app.oauth.authorise());\\n\\napp.use(function(req, res) {\\n  res.send('Secret area');\\n});\\n\\napp.listen(3000);\\n```\",\n  \"publisher\": {\n    \"username\": \"bcoe\",\n    \"email\": \"ben@npmjs.com\"\n  },\n  \"maintainers\": [\n    {\n      \"username\": \"bcoe\",\n      \"email\": \"ben@npmjs.com\"\n    }\n  ],\n  \"author\": {\n    \"name\": \"Nuno Sousa\",\n    \"email\": \"nfs@seegno.com\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git://github.com/seegno/express-oauth-server.git\"\n  },\n  \"links\": {\n    \"bugs\": \"https://github.com/seegno/express-oauth-server/issues\",\n    \"homepage\": \"https://github.com/seegno/express-oauth-server#readme\",\n    \"npm\": \"https://www.npmjs.com/package/%40bcoe%2Fexpress-oauth-server\",\n    \"repository\": \"https://github.com/seegno/express-oauth-server\"\n  },\n  \"dependencies\": {\n    \"bluebird\": \"^3.0.5\",\n    \"express\": \"^4.13.3\",\n    \"oauth2-server\": \"^3.0.0-b2\",\n    \"thenify\": \"^3.0.0\"\n  },\n  \"devDependencies\": {\n    \"body-parser\": \"^1.14.1\",\n    \"jshint\": \"^2.8.0\",\n    \"mocha\": \"^2.3.3\",\n    \"should\": \"^7.1.0\",\n    \"sinon\": \"^1.14.1\",\n    \"supertest\": \"^0.15.0\"\n  },\n  \"releases\": [\n    {\n      \"from\": \"2016-04-08T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\",\n      \"count\": 0\n    },\n    {\n      \"count\": 3,\n      \"from\": \"2016-02-08T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\"\n    },\n    {\n      \"count\": 3,\n      \"from\": \"2015-11-10T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\"\n    },\n    {\n      \"count\": 3,\n      \"from\": \"2015-05-09T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\"\n    },\n    {\n      \"count\": 3,\n      \"from\": \"2014-05-09T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\"\n    }\n  ],\n  \"hasTestScript\": true\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/babel-jest/data.json",
    "content": "{\n  \"_id\": \"babel-jest\",\n  \"_rev\": \"25-ad9120705c652660c3dd2ad91893a4b5\",\n  \"name\": \"babel-jest\",\n  \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n  \"dist-tags\": {\n    \"latest\": \"19.0.0\",\n    \"test\": \"16.1.0-alpha.691b0e22\",\n    \"canary\": \"18.5.0-alpha.7da3df39\",\n    \"next\": \"19.1.0-alpha.eed82034\"\n  },\n  \"versions\": {\n    \"4.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"4.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/6to5/6to5-jest\"\n      },\n      \"dependencies\": {\n        \"babel-core\": \"^4.0.0\"\n      },\n      \"gitHead\": \"ba2baff42ea88a767406e468f56d503a38af4877\",\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/6to5/6to5-jest/issues\"\n      },\n      \"homepage\": \"https://github.com/6to5/6to5-jest\",\n      \"_id\": \"babel-jest@4.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"d0446db8535d0f338535a18a2f42384de745a10d\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.28\",\n      \"_npmUser\": {\n        \"name\": \"sebmck\",\n        \"email\": \"sebmck@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"d0446db8535d0f338535a18a2f42384de745a10d\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-4.0.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"5.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"5.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/babel/babel-jest\"\n      },\n      \"dependencies\": {\n        \"babel-core\": \"^5.0.0\"\n      },\n      \"gitHead\": \"d089380112f13a40f6fe60c7c679ac710f8c1711\",\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/babel/babel-jest/issues\"\n      },\n      \"homepage\": \"https://github.com/babel/babel-jest\",\n      \"_id\": \"babel-jest@5.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"42bada7e4929378b291b844b05a82214a368d073\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.7.1\",\n      \"_nodeVersion\": \"1.6.1\",\n      \"_npmUser\": {\n        \"name\": \"sebmck\",\n        \"email\": \"sebmck@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"42bada7e4929378b291b844b05a82214a368d073\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-5.0.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"5.0.1\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"5.0.1\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/babel/babel-jest\"\n      },\n      \"dependencies\": {\n        \"babel-core\": \"^5.0.0\"\n      },\n      \"gitHead\": \"7b4fb97ddba980ae729f1c1d2c6b43f8e7dedfff\",\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/babel/babel-jest/issues\"\n      },\n      \"homepage\": \"https://github.com/babel/babel-jest\",\n      \"_id\": \"babel-jest@5.0.1\",\n      \"scripts\": {},\n      \"_shasum\": \"0cb0e5198116f2e3ef69e76b44c484521b4cff33\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.7.1\",\n      \"_nodeVersion\": \"1.6.1\",\n      \"_npmUser\": {\n        \"name\": \"sebmck\",\n        \"email\": \"sebmck@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"0cb0e5198116f2e3ef69e76b44c484521b4cff33\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-5.0.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"5.2.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"5.2.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/babel/babel-jest.git\"\n      },\n      \"dependencies\": {\n        \"babel-core\": \"^5.2.9\"\n      },\n      \"gitHead\": \"6c603bec64ee2f199d667d73f622968b86d7f710\",\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/babel/babel-jest/issues\"\n      },\n      \"homepage\": \"https://github.com/babel/babel-jest#readme\",\n      \"_id\": \"babel-jest@5.2.0\",\n      \"scripts\": {},\n      \"_shasum\": \"e6c25d875ab9ebf07b622cf80d106b79ba10b3b0\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.9.0\",\n      \"_nodeVersion\": \"2.0.0\",\n      \"_npmUser\": {\n        \"name\": \"sebmck\",\n        \"email\": \"sebmck@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"e6c25d875ab9ebf07b622cf80d106b79ba10b3b0\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-5.2.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"5.2.1\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"5.2.1\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/babel/babel-jest.git\"\n      },\n      \"dependencies\": {\n        \"babel-core\": \"^5.2.9\"\n      },\n      \"gitHead\": \"803672241fbbe2b6dd2cb12dd808a2c584ca6aaa\",\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/babel/babel-jest/issues\"\n      },\n      \"homepage\": \"https://github.com/babel/babel-jest#readme\",\n      \"_id\": \"babel-jest@5.2.1\",\n      \"scripts\": {},\n      \"_shasum\": \"4bbcddda5f2e1336c0d56c91332078a1a09c7299\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.9.0\",\n      \"_nodeVersion\": \"2.0.0\",\n      \"_npmUser\": {\n        \"name\": \"sebmck\",\n        \"email\": \"sebmck@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"4bbcddda5f2e1336c0d56c91332078a1a09c7299\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-5.2.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"5.3.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"5.3.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/babel/babel-jest.git\"\n      },\n      \"dependencies\": {\n        \"babel-core\": \"^5.5.7\"\n      },\n      \"gitHead\": \"09e029f8d72147ec75e3331cd620604362edce06\",\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/babel/babel-jest/issues\"\n      },\n      \"homepage\": \"https://github.com/babel/babel-jest#readme\",\n      \"_id\": \"babel-jest@5.3.0\",\n      \"scripts\": {},\n      \"_shasum\": \"d7bc3dc2b6f2b0f577ef6cdf80c096f94f02facb\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.9.0\",\n      \"_nodeVersion\": \"2.0.0\",\n      \"_npmUser\": {\n        \"name\": \"sebmck\",\n        \"email\": \"sebmck@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"d7bc3dc2b6f2b0f577ef6cdf80c096f94f02facb\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-5.3.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"6.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"6.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/babel/babel-jest.git\"\n      },\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\"\n      },\n      \"gitHead\": \"2e300924482eacf8f73a52d4a20933506b03f454\",\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/babel/babel-jest/issues\"\n      },\n      \"homepage\": \"https://github.com/babel/babel-jest#readme\",\n      \"_id\": \"babel-jest@6.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"ada5653c0187fd8666a7801b94fca803b63ec12a\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.3.10\",\n      \"_nodeVersion\": \"4.1.0\",\n      \"_npmUser\": {\n        \"name\": \"sebmck\",\n        \"email\": \"sebmck@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"ada5653c0187fd8666a7801b94fca803b63ec12a\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-6.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"6.0.1\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"6.0.1\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/babel/babel-jest.git\"\n      },\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\"\n      },\n      \"gitHead\": \"7443a96c3b88005bebcb5b1a89af02f8e8f692b4\",\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/babel/babel-jest/issues\"\n      },\n      \"homepage\": \"https://github.com/babel/babel-jest#readme\",\n      \"_id\": \"babel-jest@6.0.1\",\n      \"scripts\": {},\n      \"_shasum\": \"313463ad2376d88e4b6b132644cbbcf7aa563221\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.3.10\",\n      \"_nodeVersion\": \"4.1.0\",\n      \"_npmUser\": {\n        \"name\": \"sebmck\",\n        \"email\": \"sebmck@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"313463ad2376d88e4b6b132644cbbcf7aa563221\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-6.0.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"9.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"9.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^1.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@9.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"98cfc048c56cec6a82cb4aeb9f25b0bb7e435d8e\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.14.7\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"98cfc048c56cec6a82cb4aeb9f25b0bb7e435d8e\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-9.0.0.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-13-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-9.0.0.tgz_1457138194296_0.7884515542536974\"\n      },\n      \"directories\": {}\n    },\n    \"9.0.1\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"9.0.1\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^1.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@9.0.1\",\n      \"scripts\": {},\n      \"_shasum\": \"9fc055322f7e324827c9b84d7984ef54a8370d2c\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.14.7\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"9fc055322f7e324827c9b84d7984ef54a8370d2c\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-9.0.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-9.0.1.tgz_1457294391640_0.9813627682160586\"\n      },\n      \"directories\": {}\n    },\n    \"9.0.2\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"9.0.2\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^1.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@9.0.2\",\n      \"scripts\": {},\n      \"_shasum\": \"324386c084b39957159fdea834efd282345632e4\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.14.7\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"324386c084b39957159fdea834efd282345632e4\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-9.0.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-9.0.2.tgz_1457486398031_0.671166701009497\"\n      },\n      \"directories\": {}\n    },\n    \"9.0.3\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"9.0.3\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^1.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@9.0.3\",\n      \"scripts\": {},\n      \"_shasum\": \"e9cb04620313672b6b589b612150dbedfd65002a\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.14.7\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"e9cb04620313672b6b589b612150dbedfd65002a\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-9.0.3.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-9.0.3.tgz_1457717498846_0.1265838195104152\"\n      },\n      \"directories\": {}\n    },\n    \"10.0.1\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"10.0.1\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^10.0.1\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@10.0.1\",\n      \"scripts\": {},\n      \"_shasum\": \"0428b8fef22eb86aef6b5fdf6e95e5681f61b3ff\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.14.7\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"0428b8fef22eb86aef6b5fdf6e95e5681f61b3ff\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-10.0.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-10.0.1.tgz_1459381457674_0.26688811648637056\"\n      },\n      \"directories\": {}\n    },\n    \"10.0.2\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"10.0.2\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^10.0.2\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@10.0.2\",\n      \"scripts\": {},\n      \"_shasum\": \"e957fab889413bb5ea93d145b2b72a95c6188cd9\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.14.7\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"e957fab889413bb5ea93d145b2b72a95c6188cd9\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-10.0.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-10.0.2.tgz_1460363058577_0.7996738702058792\"\n      },\n      \"directories\": {}\n    },\n    \"11.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"11.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^11.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@11.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"fd5983562fc4e63666f23981ac8d72b843bf8b90\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.14.7\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"fd5983562fc4e63666f23981ac8d72b843bf8b90\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-11.0.0.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-11.0.0.tgz_1460447786320_0.2524056036490947\"\n      },\n      \"directories\": {}\n    },\n    \"11.0.1\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"11.0.1\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^11.0.1\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@11.0.1\",\n      \"scripts\": {},\n      \"_shasum\": \"727c0cae13f2c646cf7c4a49e3f930ac5325cb5c\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.3\",\n      \"_nodeVersion\": \"5.10.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"727c0cae13f2c646cf7c4a49e3f930ac5325cb5c\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-11.0.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"sebmck\",\n          \"email\": \"sebmck@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-11.0.1.tgz_1460692946595_0.41531627788208425\"\n      },\n      \"directories\": {}\n    },\n    \"11.0.2\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"11.0.2\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^11.0.2\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@11.0.2\",\n      \"scripts\": {},\n      \"_shasum\": \"1a2f50deadfe3fc844dc4250c0f7df2bef756d6b\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.14.12\",\n      \"_nodeVersion\": \"4.3.1\",\n      \"_npmUser\": {\n        \"name\": \"kentaromiura\",\n        \"email\": \"kentaromiura@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"1a2f50deadfe3fc844dc4250c0f7df2bef756d6b\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-11.0.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-11.0.2.tgz_1460952198774_0.24902582098729908\"\n      },\n      \"directories\": {}\n    },\n    \"12.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"7a5dfc5f1672550af9ff144d931bf71dc526bfaa\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"5.11.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"7a5dfc5f1672550af9ff144d931bf71dc526bfaa\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.0.0.tgz_1461734650085_0.15937253506854177\"\n      },\n      \"directories\": {}\n    },\n    \"12.0.1\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.0.1\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.0.1\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.0.1\",\n      \"scripts\": {},\n      \"_shasum\": \"9b6d687368e4223c281295616dcc1dc0f4dd817d\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"5.11.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"9b6d687368e4223c281295616dcc1dc0f4dd817d\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.0.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.0.1.tgz_1461751775789_0.07597908494062722\"\n      },\n      \"directories\": {}\n    },\n    \"12.0.2\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.0.2\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.0.2\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.0.2\",\n      \"scripts\": {},\n      \"_shasum\": \"8eca2bf52a6865a7384f5b3343c19bff986987ad\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"8eca2bf52a6865a7384f5b3343c19bff986987ad\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.0.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.0.2.tgz_1461817899086_0.895658076973632\"\n      },\n      \"directories\": {}\n    },\n    \"12.1.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.1.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"src/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.1.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.1.0\",\n      \"scripts\": {},\n      \"_shasum\": \"a939e15b5343075c05efc17215f046848711aea8\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"a939e15b5343075c05efc17215f046848711aea8\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.1.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.1.0.tgz_1463767563210_0.46476168604567647\"\n      },\n      \"directories\": {}\n    },\n    \"12.1.1-alpha.2935e14d\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.1.1-alpha.2935e14d\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.1.1-alpha.2935e14d\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.1.1-alpha.2935e14d\",\n      \"scripts\": {},\n      \"_shasum\": \"74f09b79b16618ab8906833b7814723de534a8e4\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"74f09b79b16618ab8906833b7814723de534a8e4\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.1.1-alpha.2935e14d.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.1.1-alpha.2935e14d.tgz_1466141592428_0.01578390528447926\"\n      },\n      \"directories\": {}\n    },\n    \"12.1.2-alpha.a482b15c\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.1.2-alpha.a482b15c\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.1.2-alpha.a482b15c\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.1.2-alpha.a482b15c\",\n      \"scripts\": {},\n      \"_shasum\": \"3da996163abe255c5843d62c7fce3f5062440816\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"3da996163abe255c5843d62c7fce3f5062440816\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.1.2-alpha.a482b15c.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.1.2-alpha.a482b15c.tgz_1466150283093_0.668202371802181\"\n      },\n      \"directories\": {}\n    },\n    \"12.1.2-alpha.6230044c\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.1.2-alpha.6230044c\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.1.2-alpha.6230044c\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.1.2-alpha.6230044c\",\n      \"scripts\": {},\n      \"_shasum\": \"551b5283e69ac0e2d3de6fead18bbb0090c465e5\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"551b5283e69ac0e2d3de6fead18bbb0090c465e5\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.1.2-alpha.6230044c.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.1.2-alpha.6230044c.tgz_1466536514418_0.9165508339647204\"\n      },\n      \"directories\": {}\n    },\n    \"12.1.3-alpha.6230044c\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.1.3-alpha.6230044c\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.1.3-alpha.6230044c\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.1.3-alpha.6230044c\",\n      \"scripts\": {},\n      \"_shasum\": \"919ee14a959534910513be67464a00ed934af970\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"919ee14a959534910513be67464a00ed934af970\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.1.3-alpha.6230044c.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.1.3-alpha.6230044c.tgz_1466539907309_0.7573212264105678\"\n      },\n      \"directories\": {}\n    },\n    \"12.1.4-alpha.a737c6e5\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.1.4-alpha.a737c6e5\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.1.4-alpha.a737c6e5\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.1.4-alpha.a737c6e5\",\n      \"scripts\": {},\n      \"_shasum\": \"8ab588c5d957574de19ca5604cfa86030343b5f6\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"8ab588c5d957574de19ca5604cfa86030343b5f6\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.1.4-alpha.a737c6e5.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.1.4-alpha.a737c6e5.tgz_1466566601619_0.14762199693359435\"\n      },\n      \"directories\": {}\n    },\n    \"12.1.5-alpha.b5322422\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"12.1.5-alpha.b5322422\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^12.1.5-alpha.b5322422\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@12.1.5-alpha.b5322422\",\n      \"scripts\": {},\n      \"_shasum\": \"1885f148a0c27c85d14c8eb62b55f52a5aa7f6c9\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"1885f148a0c27c85d14c8eb62b55f52a5aa7f6c9\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-12.1.5-alpha.b5322422.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-12.1.5-alpha.b5322422.tgz_1466577948071_0.724343832116574\"\n      },\n      \"directories\": {}\n    },\n    \"13.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"f008f43b4b1c9429c4cea3507d2cea14a1c79157\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.6\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"f008f43b4b1c9429c4cea3507d2cea14a1c79157\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.0.0.tgz_1466626696133_0.14600875950418413\"\n      },\n      \"directories\": {}\n    },\n    \"13.2.1\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.2.1\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.2.1\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.2.1\",\n      \"scripts\": {},\n      \"_shasum\": \"ee3c2b9dca85a412c198839573aa0f68beae5867\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"ee3c2b9dca85a412c198839573aa0f68beae5867\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.2.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.2.1.tgz_1467856774761_0.8069158168509603\"\n      },\n      \"directories\": {}\n    },\n    \"13.2.2\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.2.2\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.2.2\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.2.2\",\n      \"scripts\": {},\n      \"_shasum\": \"ab408ffb6b195fa08c919793d273eb88f55ffb4e\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"ab408ffb6b195fa08c919793d273eb88f55ffb4e\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.2.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.2.2.tgz_1467857580035_0.6548712470103055\"\n      },\n      \"directories\": {}\n    },\n    \"13.3.0-alpha.a44f195f\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.3.0-alpha.a44f195f\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.3.0-alpha.a44f195f\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.3.0-alpha.a44f195f\",\n      \"scripts\": {},\n      \"_shasum\": \"5443dc3d861382a56b3a510cb29ca4c13ff2fd76\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"5443dc3d861382a56b3a510cb29ca4c13ff2fd76\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.3.0-alpha.a44f195f.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.3.0-alpha.a44f195f.tgz_1468231007547_0.6965432425495237\"\n      },\n      \"directories\": {}\n    },\n    \"13.3.0-alpha.4eb0c908\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.3.0-alpha.4eb0c908\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.3.0-alpha.4eb0c908\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.3.0-alpha.4eb0c908\",\n      \"scripts\": {},\n      \"_shasum\": \"e40ded2f5678ecb75ab02c1bdec87195260a25c6\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"e40ded2f5678ecb75ab02c1bdec87195260a25c6\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.3.0-alpha.4eb0c908.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.3.0-alpha.4eb0c908.tgz_1468231471274_0.17214104207232594\"\n      },\n      \"directories\": {}\n    },\n    \"13.2.3-alpha.ffc7404b\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.2.3-alpha.ffc7404b\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.2.3-alpha.ffc7404b\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.2.3-alpha.ffc7404b\",\n      \"scripts\": {},\n      \"_shasum\": \"d5295506360cc8ec9c8d3e66b4352e44f5915645\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"d5295506360cc8ec9c8d3e66b4352e44f5915645\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.2.3-alpha.ffc7404b.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.2.3-alpha.ffc7404b.tgz_1468232399050_0.014298353111371398\"\n      },\n      \"directories\": {}\n    },\n    \"13.3.0-alpha.ffc7404b\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.3.0-alpha.ffc7404b\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.3.0-alpha.ffc7404b\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.3.0-alpha.ffc7404b\",\n      \"scripts\": {},\n      \"_shasum\": \"0830b65f4746b4b9e3f48a9a2f4d16a48459de3f\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"0830b65f4746b4b9e3f48a9a2f4d16a48459de3f\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.3.0-alpha.ffc7404b.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.3.0-alpha.ffc7404b.tgz_1468232409677_0.6667009205557406\"\n      },\n      \"directories\": {}\n    },\n    \"13.3.0-alpha.8b48d59e\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.3.0-alpha.8b48d59e\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.3.0-alpha.8b48d59e\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.3.0-alpha.8b48d59e\",\n      \"scripts\": {},\n      \"_shasum\": \"68b939173977b2745aa6ff1d43613cc542de26d3\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"68b939173977b2745aa6ff1d43613cc542de26d3\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.3.0-alpha.8b48d59e.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.3.0-alpha.8b48d59e.tgz_1468390444860_0.8340013008564711\"\n      },\n      \"directories\": {}\n    },\n    \"13.3.0-alpha.g8b48d59\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.3.0-alpha.g8b48d59\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.3.0-alpha.g8b48d59\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.3.0-alpha.g8b48d59\",\n      \"scripts\": {},\n      \"_shasum\": \"c8d59edf21437acd27bc1bb0e8c2d4f436f71008\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"c8d59edf21437acd27bc1bb0e8c2d4f436f71008\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.3.0-alpha.g8b48d59.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.3.0-alpha.g8b48d59.tgz_1468391977753_0.480694244382903\"\n      },\n      \"directories\": {}\n    },\n    \"13.4.0-alpha.d2632006\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"13.4.0-alpha.d2632006\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^13.4.0-alpha.d2632006\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@13.4.0-alpha.d2632006\",\n      \"scripts\": {},\n      \"_shasum\": \"999326d66d12cf7fe73c0f6b7c6a74a6887808e3\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"999326d66d12cf7fe73c0f6b7c6a74a6887808e3\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-13.4.0-alpha.d2632006.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-13.4.0-alpha.d2632006.tgz_1469609830850_0.7020669202320278\"\n      },\n      \"directories\": {}\n    },\n    \"14.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^14.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"5d4a28c66ad84858d45fadad26ed5f0cc503c627\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"5d4a28c66ad84858d45fadad26ed5f0cc503c627\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.0.0.tgz_1469610876744_0.02645887969993055\"\n      },\n      \"directories\": {}\n    },\n    \"14.0.1\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.0.1\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^14.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.0.1\",\n      \"scripts\": {},\n      \"_shasum\": \"f61ef7283ca832145190b0410a481e080e722788\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"f61ef7283ca832145190b0410a481e080e722788\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.0.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.0.1.tgz_1469784939187_0.25041031278669834\"\n      },\n      \"directories\": {}\n    },\n    \"14.0.2\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.0.2\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^14.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.0.2\",\n      \"scripts\": {},\n      \"_shasum\": \"e330d8596e1bf6db01179e1e80876eab2817d7f7\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"e330d8596e1bf6db01179e1e80876eab2817d7f7\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.0.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.0.2.tgz_1469785707926_0.03387196711264551\"\n      },\n      \"directories\": {}\n    },\n    \"14.1.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.1.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-preset-jest\": \"^14.1.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.1.0\",\n      \"scripts\": {},\n      \"_shasum\": \"29a20bfe8b3c4789a620162a1c52e7db4fb500e9\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"29a20bfe8b3c4789a620162a1c52e7db4fb500e9\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.1.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.1.0.tgz_1470047189280_0.6144244994502515\"\n      },\n      \"directories\": {}\n    },\n    \"14.2.0-alpha.ca8bfb6e\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.2.0-alpha.ca8bfb6e\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^1.1.0\",\n        \"babel-preset-jest\": \"^14.2.0-alpha.ca8bfb6e\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.2.0-alpha.ca8bfb6e\",\n      \"scripts\": {},\n      \"_shasum\": \"59b9ba4a0493246802e9e15e2785f457b1e82c22\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"59b9ba4a0493246802e9e15e2785f457b1e82c22\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.2.0-alpha.ca8bfb6e.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.2.0-alpha.ca8bfb6e.tgz_1471287273543_0.34843858052045107\"\n      },\n      \"directories\": {}\n    },\n    \"14.2.1-alpha.e21d71a4\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.2.1-alpha.e21d71a4\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^1.1.0\",\n        \"babel-preset-jest\": \"^14.2.1-alpha.e21d71a4\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.2.1-alpha.e21d71a4\",\n      \"scripts\": {},\n      \"_shasum\": \"4cee0c1a537261d9ee663c1f2a3a100d0a4b0fb8\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"4cee0c1a537261d9ee663c1f2a3a100d0a4b0fb8\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.2.1-alpha.e21d71a4.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.2.1-alpha.e21d71a4.tgz_1471382314002_0.003589335596188903\"\n      },\n      \"directories\": {}\n    },\n    \"14.2.2-alpha.22bd3c33\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.2.2-alpha.22bd3c33\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^1.1.0\",\n        \"babel-preset-jest\": \"^14.2.2-alpha.22bd3c33\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.2.2-alpha.22bd3c33\",\n      \"scripts\": {},\n      \"_shasum\": \"760497ca86ea8f365efd83bceccc9ac4b4d7af6c\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"760497ca86ea8f365efd83bceccc9ac4b4d7af6c\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.2.2-alpha.22bd3c33.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.2.2-alpha.22bd3c33.tgz_1471388086069_0.864485016092658\"\n      },\n      \"directories\": {}\n    },\n    \"14.3.0-alpha.d13c163e\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.3.0-alpha.d13c163e\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^2.0.0\",\n        \"babel-preset-jest\": \"^14.3.0-alpha.d13c163e\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.3.0-alpha.d13c163e\",\n      \"scripts\": {},\n      \"_shasum\": \"da47291312c339ecc95acd4170b9ce083c10ed47\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"da47291312c339ecc95acd4170b9ce083c10ed47\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.3.0-alpha.d13c163e.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.3.0-alpha.d13c163e.tgz_1471552521738_0.557226562872529\"\n      },\n      \"directories\": {}\n    },\n    \"14.3.1-alpha.410cb91a\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.3.1-alpha.410cb91a\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^2.0.0\",\n        \"babel-preset-jest\": \"^14.3.1-alpha.410cb91a\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.3.1-alpha.410cb91a\",\n      \"scripts\": {},\n      \"_shasum\": \"4461e276a959be8cdf3b5d38076858028309aef3\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.5.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"4461e276a959be8cdf3b5d38076858028309aef3\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.3.1-alpha.410cb91a.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.3.1-alpha.410cb91a.tgz_1472593923251_0.5713954831007868\"\n      },\n      \"directories\": {}\n    },\n    \"14.3.2-alpha.83c25417\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"14.3.2-alpha.83c25417\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^2.0.0\",\n        \"babel-preset-jest\": \"^14.3.2-alpha.83c25417\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@14.3.2-alpha.83c25417\",\n      \"scripts\": {},\n      \"_shasum\": \"427341757b3758b54d24ea5d942cf5f8083d7303\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.5.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"427341757b3758b54d24ea5d942cf5f8083d7303\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-14.3.2-alpha.83c25417.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-14.3.2-alpha.83c25417.tgz_1472669431086_0.36772308428771794\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"15.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^2.0.0\",\n        \"babel-preset-jest\": \"^15.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@15.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"6a9e2e3999f241383db9ab1e2ef6704401d74242\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.5.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"6a9e2e3999f241383db9ab1e2ef6704401d74242\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-15.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-15.0.0.tgz_1472669723893_0.5474627567455173\"\n      },\n      \"directories\": {}\n    },\n    \"15.2.0-alpha.c681f819\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"15.2.0-alpha.c681f819\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^2.0.0\",\n        \"babel-preset-jest\": \"^15.2.0-alpha.c681f819\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@15.2.0-alpha.c681f819\",\n      \"scripts\": {},\n      \"_shasum\": \"3b4c63b7c3c86278e49a16e8887c1d91a62bc01e\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.7\",\n      \"_nodeVersion\": \"6.7.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"3b4c63b7c3c86278e49a16e8887c1d91a62bc01e\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-15.2.0-alpha.c681f819.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-15.2.0-alpha.c681f819.tgz_1475139733700_0.08679252048023045\"\n      },\n      \"directories\": {}\n    },\n    \"16.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"16.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^2.0.0\",\n        \"babel-preset-jest\": \"^16.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@16.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"348729aea6d624a4774b8a934d07a40dd2cfd640\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.7\",\n      \"_nodeVersion\": \"6.7.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"348729aea6d624a4774b8a934d07a40dd2cfd640\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-16.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-16.0.0.tgz_1475483907951_0.3470273388084024\"\n      },\n      \"directories\": {}\n    },\n    \"16.1.0-alpha.691b0e22\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"16.1.0-alpha.691b0e22\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^2.0.0\",\n        \"babel-preset-jest\": \"^16.1.0-alpha.691b0e22\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@16.1.0-alpha.691b0e22\",\n      \"scripts\": {},\n      \"_shasum\": \"1d1eba748a1c01e88a535685bf6320167c4f6b24\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.9.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"1d1eba748a1c01e88a535685bf6320167c4f6b24\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-16.1.0-alpha.691b0e22.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-16.1.0-alpha.691b0e22.tgz_1477639644625_0.3524253903888166\"\n      },\n      \"directories\": {}\n    },\n    \"17.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"17.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^2.0.0\",\n        \"babel-preset-jest\": \"^16.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@17.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"4dbee762eb2f2ca77c4dacc17eb61f38157b0f01\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.9.1\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"4dbee762eb2f2ca77c4dacc17eb61f38157b0f01\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-17.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-17.0.0.tgz_1478614341830_0.5385184471961111\"\n      },\n      \"directories\": {}\n    },\n    \"17.0.2\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"17.0.2\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^2.0.0\",\n        \"babel-preset-jest\": \"^17.0.2\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@17.0.2\",\n      \"scripts\": {},\n      \"_shasum\": \"8d51e0d03759713c331f108eb0b2eaa4c6efff74\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.9\",\n      \"_nodeVersion\": \"7.1.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"8d51e0d03759713c331f108eb0b2eaa4c6efff74\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-17.0.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-17.0.2.tgz_1479170355690_0.5522983237169683\"\n      },\n      \"directories\": {}\n    },\n    \"18.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"18.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^3.0.0\",\n        \"babel-preset-jest\": \"^18.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@18.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"17ebba8cb3285c906d859e8707e4e79795fb65e3\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.9\",\n      \"_nodeVersion\": \"7.2.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"17ebba8cb3285c906d859e8707e4e79795fb65e3\",\n        \"tarball\": \"http://registry.npmjs.org/babel-jest/-/babel-jest-18.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-18.0.0.tgz_1481801061886_0.42061222274787724\"\n      },\n      \"directories\": {}\n    },\n    \"18.5.0-alpha.7da3df39\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"18.5.0-alpha.7da3df39\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^4.0.0\",\n        \"babel-preset-jest\": \"^18.5.0-alpha.7da3df39\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@18.5.0-alpha.7da3df39\",\n      \"scripts\": {},\n      \"_shasum\": \"f69864a0ea3f99e81065845bf9b12ed12590f576\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.1.2\",\n      \"_nodeVersion\": \"7.5.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"f69864a0ea3f99e81065845bf9b12ed12590f576\",\n        \"tarball\": \"https://registry.npmjs.org/babel-jest/-/babel-jest-18.5.0-alpha.7da3df39.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-18.5.0-alpha.7da3df39.tgz_1487350649290_0.8689893304836005\"\n      },\n      \"directories\": {}\n    },\n    \"19.0.0\": {\n      \"name\": \"babel-jest\",\n      \"version\": \"19.0.0\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^4.0.0\",\n        \"babel-preset-jest\": \"^19.0.0\"\n      },\n      \"description\": \"[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@19.0.0\",\n      \"scripts\": {},\n      \"_shasum\": \"59323ced99a3a84d359da219ca881074ffc6ce3f\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.1.2\",\n      \"_nodeVersion\": \"7.5.0\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"59323ced99a3a84d359da219ca881074ffc6ce3f\",\n        \"tarball\": \"https://registry.npmjs.org/babel-jest/-/babel-jest-19.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"kentaromiura\",\n          \"email\": \"kentaromiura@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-19.0.0.tgz_1487669409076_0.22902131639420986\"\n      },\n      \"directories\": {}\n    },\n    \"19.1.0-alpha.eed82034\": {\n      \"name\": \"babel-jest\",\n      \"description\": \"Jest plugin to use babel for transformation.\",\n      \"version\": \"19.1.0-alpha.eed82034\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/jest.git\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"main\": \"build/index.js\",\n      \"dependencies\": {\n        \"babel-core\": \"^6.0.0\",\n        \"babel-plugin-istanbul\": \"^4.0.0\",\n        \"babel-preset-jest\": \"^19.1.0-alpha.eed82034\"\n      },\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/jest/issues\"\n      },\n      \"homepage\": \"https://github.com/facebook/jest#readme\",\n      \"_id\": \"babel-jest@19.1.0-alpha.eed82034\",\n      \"scripts\": {},\n      \"_shasum\": \"f830e6095a30555171f413d287942f2bc374e54f\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.1.2\",\n      \"_nodeVersion\": \"7.7.2\",\n      \"_npmUser\": {\n        \"name\": \"cpojer\",\n        \"email\": \"christoph.pojer@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"f830e6095a30555171f413d287942f2bc374e54f\",\n        \"tarball\": \"https://registry.npmjs.org/babel-jest/-/babel-jest-19.1.0-alpha.eed82034.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"cpojer\",\n          \"email\": \"christoph.pojer@gmail.com\"\n        },\n        {\n          \"name\": \"dmitriiabramov\",\n          \"email\": \"dmitrii@rheia.us\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/babel-jest-19.1.0-alpha.eed82034.tgz_1489711290717_0.018463894492015243\"\n      },\n      \"directories\": {}\n    }\n  },\n  \"readme\": \"# babel-jest\\n\\n[Babel](https://github.com/babel/babel) [jest](https://github.com/facebook/jest) plugin\\n\\n## Usage\\n\\nIf you are already using `jest-cli`, just add `babel-jest` and it will automatically compile JavaScript code using babel.\\n\\n```\\nnpm install --save babel-jest\\n```\\n\\nIf you would like to write your own preprocessor, uninstall and delete babel-jest and set the [config.scriptPreprocessor](http://facebook.github.io/jest/docs/api.html#scriptpreprocessor-string) option to your preprocessor.\\n\",\n  \"maintainers\": [\n    {\n      \"name\": \"cpojer\",\n      \"email\": \"christoph.pojer@gmail.com\"\n    },\n    {\n      \"name\": \"dmitriiabramov\",\n      \"email\": \"dmitrii@rheia.us\"\n    },\n    {\n      \"name\": \"fb\",\n      \"email\": \"opensource+npm@fb.com\"\n    }\n  ],\n  \"time\": {\n    \"modified\": \"2017-03-17T00:44:00.169Z\",\n    \"created\": \"2015-02-15T14:33:26.881Z\",\n    \"4.0.0\": \"2015-02-15T14:33:26.881Z\",\n    \"5.0.0\": \"2015-04-02T18:53:45.258Z\",\n    \"5.0.1\": \"2015-04-03T03:43:38.863Z\",\n    \"5.2.0\": \"2015-05-05T09:24:59.880Z\",\n    \"5.2.1\": \"2015-06-12T19:46:45.179Z\",\n    \"5.3.0\": \"2015-06-13T17:43:29.118Z\",\n    \"6.0.0\": \"2015-11-07T00:47:22.524Z\",\n    \"6.0.1\": \"2015-11-08T13:38:02.569Z\",\n    \"9.0.0\": \"2016-03-05T00:36:35.698Z\",\n    \"9.0.1\": \"2016-03-06T19:59:53.094Z\",\n    \"9.0.2\": \"2016-03-09T01:20:00.495Z\",\n    \"9.0.3\": \"2016-03-11T17:31:39.290Z\",\n    \"10.0.1\": \"2016-03-30T23:44:18.155Z\",\n    \"10.0.2\": \"2016-04-11T08:24:19.191Z\",\n    \"11.0.0\": \"2016-04-12T07:56:29.127Z\",\n    \"11.0.1\": \"2016-04-15T04:02:29.928Z\",\n    \"11.0.2\": \"2016-04-18T04:03:20.668Z\",\n    \"12.0.0\": \"2016-04-27T05:24:10.519Z\",\n    \"12.0.1\": \"2016-04-27T10:09:36.256Z\",\n    \"12.0.2\": \"2016-04-28T04:31:39.647Z\",\n    \"12.1.0\": \"2016-05-20T18:06:05.304Z\",\n    \"12.1.1-alpha.2935e14d\": \"2016-06-17T05:33:12.900Z\",\n    \"12.1.2-alpha.a482b15c\": \"2016-06-17T07:58:03.580Z\",\n    \"12.1.2-alpha.6230044c\": \"2016-06-21T19:15:17.344Z\",\n    \"12.1.3-alpha.6230044c\": \"2016-06-21T20:11:50.964Z\",\n    \"12.1.4-alpha.a737c6e5\": \"2016-06-22T03:36:44.652Z\",\n    \"12.1.5-alpha.b5322422\": \"2016-06-22T06:45:48.725Z\",\n    \"13.0.0\": \"2016-06-22T20:18:19.768Z\",\n    \"13.2.1\": \"2016-07-07T01:59:35.975Z\",\n    \"13.2.2\": \"2016-07-07T02:13:02.164Z\",\n    \"13.3.0-alpha.a44f195f\": \"2016-07-11T09:56:50.559Z\",\n    \"13.3.0-alpha.4eb0c908\": \"2016-07-11T10:04:34.484Z\",\n    \"13.2.3-alpha.ffc7404b\": \"2016-07-11T10:19:59.581Z\",\n    \"13.3.0-alpha.ffc7404b\": \"2016-07-11T10:20:10.344Z\",\n    \"13.3.0-alpha.8b48d59e\": \"2016-07-13T06:14:05.429Z\",\n    \"13.3.0-alpha.g8b48d59\": \"2016-07-13T06:39:38.666Z\",\n    \"13.4.0-alpha.d2632006\": \"2016-07-27T08:57:11.197Z\",\n    \"14.0.0\": \"2016-07-27T09:14:37.002Z\",\n    \"14.0.1\": \"2016-07-29T09:35:44.374Z\",\n    \"14.0.2\": \"2016-07-29T09:48:28.169Z\",\n    \"14.1.0\": \"2016-08-01T10:26:31.110Z\",\n    \"14.2.0-alpha.ca8bfb6e\": \"2016-08-15T18:54:35.424Z\",\n    \"14.2.1-alpha.e21d71a4\": \"2016-08-16T21:18:35.968Z\",\n    \"14.2.2-alpha.22bd3c33\": \"2016-08-16T22:54:51.851Z\",\n    \"14.3.0-alpha.d13c163e\": \"2016-08-18T20:35:23.562Z\",\n    \"14.3.1-alpha.410cb91a\": \"2016-08-30T21:52:04.834Z\",\n    \"14.3.2-alpha.83c25417\": \"2016-08-31T18:50:32.997Z\",\n    \"15.0.0\": \"2016-08-31T18:55:25.727Z\",\n    \"15.2.0-alpha.c681f819\": \"2016-09-29T09:02:13.949Z\",\n    \"16.0.0\": \"2016-10-03T08:38:28.166Z\",\n    \"16.1.0-alpha.691b0e22\": \"2016-10-28T07:27:24.873Z\",\n    \"17.0.0\": \"2016-11-08T14:12:23.784Z\",\n    \"17.0.2\": \"2016-11-15T00:39:15.916Z\",\n    \"18.0.0\": \"2016-12-15T11:24:22.637Z\",\n    \"18.5.0-alpha.7da3df39\": \"2017-02-17T16:57:29.902Z\",\n    \"19.0.0\": \"2017-02-21T09:30:10.899Z\",\n    \"19.1.0-alpha.eed82034\": \"2017-03-17T00:41:32.568Z\"\n  },\n  \"homepage\": \"https://github.com/facebook/jest#readme\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/facebook/jest.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/facebook/jest/issues\"\n  },\n  \"readmeFilename\": \"README.md\",\n  \"users\": {\n    \"junjiansyu\": true,\n    \"leonardorb\": true\n  },\n  \"license\": \"BSD-3-Clause\"\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/babel-jest/expected-source.json",
    "content": "{\n  \"files\": {\n    \"readmeSize\": 803,\n    \"testsSize\": 783379,\n    \"hasNpmIgnore\": true,\n    \"hasChangelog\": true\n  },\n  \"badges\": [\n    {\n      \"info\": {\n        \"service\": \"circleci\",\n        \"type\": \"build\"\n      },\n      \"urls\": {\n        \"content\": \"https://img.shields.io/circleci/project/github/facebook/jest.json\",\n        \"original\": \"https://circleci.com/gh/facebook/jest.svg?style=shield\",\n        \"service\": \"https://circleci.com/gh/facebook/jest.svg\",\n        \"shields\": \"https://img.shields.io/circleci/project/github/facebook/jest.svg\"\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://travis-ci.org/facebook/jest.svg?branch=master\",\n        \"service\": \"https://api.travis-ci.org/facebook/jest.svg?branch=master\",\n        \"shields\": \"https://img.shields.io/travis/facebook/jest/master.svg\",\n        \"content\": \"https://img.shields.io/travis/facebook/jest/master.json\"\n      },\n      \"info\": {\n        \"service\": \"travis\",\n        \"type\": \"build\",\n        \"modifiers\": {\n          \"branch\": \"master\"\n        }\n      }\n    },\n    {\n      \"info\": {\n        \"service\": \"appveyor\",\n        \"type\": \"build\"\n      },\n      \"urls\": {\n        \"content\": \"https://img.shields.io/appveyor/ci/8n38o44k585hhvhd/branch/master.json\",\n        \"original\": \"https://ci.appveyor.com/api/projects/status/8n38o44k585hhvhd/branch/master?svg=true\",\n        \"service\": \"https://ci.appveyor.com/api/projects/status/8n38o44k585hhvhd/branch/master\",\n        \"shields\": \"https://img.shields.io/appveyor/ci/8n38o44k585hhvhd/branch/master.svg\"\n      }\n    }\n  ],\n  \"linters\": [\n    \"eslint\",\n    \"prettier\"\n  ],\n  \"coverage\": 0.64\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/backoff/data.json",
    "content": "{\n   \"_id\": \"backoff\",\n   \"_rev\": \"2-c1f0bcee39d50baac252504546d7d13d\",\n   \"name\": \"backoff\",\n   \"description\": \"Fibonacci and exponential backoffs.\",\n   \"dist-tags\": {\n       \"latest\": \"2.5.0\"\n   },\n   \"versions\": {\n       \"0.0.1\": {\n           \"name\": \"backoff\",\n           \"description\": \"Exponential backoff implementation.\",\n           \"version\": \"0.0.1\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.3\",\n               \"nodeunit\": \"0.7\"\n           },\n           \"scripts\": {\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"main\": \"backoff.js\",\n           \"_npmUser\": {\n               \"name\": \"Mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"_id\": \"backoff@0.0.1\",\n           \"dependencies\": {\n           },\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.4\",\n           \"_nodeVersion\": \"v0.6.12\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"a2be0d56d658e9297090c4095763c3c6138aff08\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-0.0.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"Mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"0.0.2\": {\n           \"name\": \"backoff\",\n           \"description\": \"Exponential backoff implementation.\",\n           \"version\": \"0.0.2\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.3\",\n               \"nodeunit\": \"0.7\"\n           },\n           \"scripts\": {\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"main\": \"backoff.js\",\n           \"_npmUser\": {\n               \"name\": \"Mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"_id\": \"backoff@0.0.2\",\n           \"dependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.0-beta-4\",\n           \"_nodeVersion\": \"v0.6.6\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"08b4cb64931b0b069f3d5ca8f8e8504fb0058239\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-0.0.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"Mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"0.0.3\": {\n           \"name\": \"backoff\",\n           \"description\": \"Exponential backoff implementation.\",\n           \"version\": \"0.0.3\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.3\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.7\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint *.js tests/*.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"main\": \"backoff.js\",\n           \"_npmUser\": {\n               \"name\": \"Mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"_id\": \"backoff@0.0.3\",\n           \"dependencies\": {\n           },\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.21\",\n           \"_nodeVersion\": \"v0.6.17\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"8f66d0d5d4138a4a10b6db80e10d1265f93b97b6\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-0.0.3.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"Mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"0.1.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonnaci backoff implementation.\",\n           \"version\": \"0.1.0\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"fibonnaci\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.4\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.7\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint *.js tests/*.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"main\": \"backoff.js\",\n           \"_id\": \"backoff@0.1.0\",\n           \"dist\": {\n               \"shasum\": \"84a21e7c1c305743705a49981aec6b0f0d8bd8f2\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-0.1.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"Mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"0.2.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Exponential and Fibonnaci backoffs.\",\n           \"version\": \"0.2.0\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"fibonnaci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.4\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.7\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint lib/*.js lib/strategy/*.js tests/*.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@0.2.0\",\n           \"dist\": {\n               \"shasum\": \"1abbe9393a28dd35d55c5403ec132472136b21ce\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-0.2.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"Mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"0.2.1\": {\n           \"name\": \"backoff\",\n           \"description\": \"Exponential and Fibonacci backoffs.\",\n           \"version\": \"0.2.1\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.4\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.7\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint lib/*.js lib/strategy/*.js tests/*.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@0.2.1\",\n           \"dist\": {\n               \"shasum\": \"affea29debd29fe48680019b9967e84c636e799d\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-0.2.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"0.3.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"0.3.0\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.4\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.7\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint lib/*.js lib/strategy/*.js tests/*.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@0.3.0\",\n           \"dist\": {\n               \"shasum\": \"d63cbab90b0475d3ccf2fac929e11af963a96608\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-0.3.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"1.0.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"1.0.0\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.4\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.7\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint lib/*.js lib/strategy/*.js tests/*.js examples/*.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@1.0.0\",\n           \"dist\": {\n               \"shasum\": \"00982f78158ec6d03f99693ec0fb5f7b2ad1e28e\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-1.0.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"1.1.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"1.1.0\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.4\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.9\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint lib/ lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@1.1.0\",\n           \"dist\": {\n               \"shasum\": \"7160ba2416caab0b9ce4f36981283a0ac25a44fe\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-1.1.0.tgz\"\n           },\n           \"_npmVersion\": \"1.1.59\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"1.2.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"1.2.0\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.4\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.9.0\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint lib/ lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@1.2.0\",\n           \"dist\": {\n               \"shasum\": \"9e4935da1f42cb9d7c44184765c127f4602370d9\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-1.2.0.tgz\"\n           },\n           \"_npmVersion\": \"1.1.62\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"1.2.1\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"1.2.1\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"retry\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.4\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.9.0\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint lib/ lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@1.2.1\",\n           \"dist\": {\n               \"shasum\": \"06baefd31bef5624bd4223cb7beb73f92a8e1ba2\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-1.2.1.tgz\"\n           },\n           \"_npmVersion\": \"1.1.62\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"2.0.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"2.0.0\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"retry\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.5.2\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"0.9.0\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/hint lib/ lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@2.0.0\",\n           \"dist\": {\n               \"shasum\": \"b4394776f91c28a361049071dd891c00394fd805\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-2.0.0.tgz\"\n           },\n           \"_npmVersion\": \"1.1.62\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"2.1.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"2.1.0\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"retry\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.5.2\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"1.1.0\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/jshint lib/ lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@2.1.0\",\n           \"dist\": {\n               \"shasum\": \"19b4e9f9fb75c122ad7bb1c6c376d6085d43ea09\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-2.1.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.14\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"2.2.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"2.2.0\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"retry\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.5.2\",\n               \"nodeunit\": \"0.7\",\n               \"jshint\": \"1.1.0\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/jshint lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@2.2.0\",\n           \"dist\": {\n               \"shasum\": \"bae0026ef445580b582bffa7201068bf101691cb\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-2.2.0.tgz\"\n           },\n           \"_npmVersion\": \"1.1.62\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"2.3.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"2.3.0\",\n           \"license\": \"MIT\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"retry\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.7\",\n               \"nodeunit\": \"0.8\",\n               \"jshint\": \"2.0\"\n           },\n           \"scripts\": {\n               \"pretest\": \"node_modules/jshint/bin/jshint lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"_id\": \"backoff@2.3.0\",\n           \"dist\": {\n               \"shasum\": \"ee7c7e38093f92e472859db635e7652454fc21ea\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-2.3.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.14\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"2.4.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"2.4.0\",\n           \"license\": \"MIT\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"retry\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"dependencies\": {\n               \"precond\": \"0.2\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.10\",\n               \"nodeunit\": \"0.9\"\n           },\n           \"scripts\": {\n               \"docco\": \"docco lib/*.js lib/strategy/* index.js\",\n               \"pretest\": \"jshint lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"file\": [\n               \"index.js\",\n               \"lib\"\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff/issues\"\n           },\n           \"_id\": \"backoff@2.4.0\",\n           \"dist\": {\n               \"shasum\": \"c5a2888e784a61e18d5cba310ef0f521fb107d4f\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-2.4.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"2.4.1\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"2.4.1\",\n           \"license\": \"MIT\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"retry\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"dependencies\": {\n               \"precond\": \"0.2\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.10\",\n               \"nodeunit\": \"0.9\"\n           },\n           \"scripts\": {\n               \"docco\": \"docco lib/*.js lib/strategy/* index.js\",\n               \"pretest\": \"jshint lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"files\": [\n               \"index.js\",\n               \"lib\",\n               \"tests\"\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff/issues\"\n           },\n           \"_id\": \"backoff@2.4.1\",\n           \"dist\": {\n               \"shasum\": \"2f68c50e0dd789dbefe24200a62efb04d2456d68\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-2.4.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ]\n       },\n       \"2.5.0\": {\n           \"name\": \"backoff\",\n           \"description\": \"Fibonacci and exponential backoffs.\",\n           \"version\": \"2.5.0\",\n           \"license\": \"MIT\",\n           \"author\": {\n               \"name\": \"Mathieu Turcotte\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"keywords\": [\n               \"backoff\",\n               \"retry\",\n               \"fibonacci\",\n               \"exponential\"\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git+https://github.com/MathieuTurcotte/node-backoff.git\"\n           },\n           \"dependencies\": {\n               \"precond\": \"0.2\"\n           },\n           \"devDependencies\": {\n               \"sinon\": \"1.10\",\n               \"nodeunit\": \"0.9\"\n           },\n           \"scripts\": {\n               \"docco\": \"docco lib/*.js lib/strategy/* index.js\",\n               \"pretest\": \"jshint lib/ tests/ examples/ index.js\",\n               \"test\": \"node_modules/nodeunit/bin/nodeunit tests/\"\n           },\n           \"engines\": {\n               \"node\": \">= 0.6\"\n           },\n           \"files\": [\n               \"index.js\",\n               \"lib\",\n               \"tests\"\n           ],\n           \"gitHead\": \"811118fd1f89e9ca4e6b67292b9ef5da6c4f60e9\",\n           \"bugs\": {\n               \"url\": \"https://github.com/MathieuTurcotte/node-backoff/issues\"\n           },\n           \"homepage\": \"https://github.com/MathieuTurcotte/node-backoff#readme\",\n           \"_id\": \"backoff@2.5.0\",\n           \"_shasum\": \"f616eda9d3e4b66b8ca7fca79f695722c5f8e26f\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.12\",\n           \"_nodeVersion\": \"4.2.4\",\n           \"_npmUser\": {\n               \"name\": \"mathieu\",\n               \"email\": \"turcotte.mat@gmail.com\"\n           },\n           \"dist\": {\n               \"shasum\": \"f616eda9d3e4b66b8ca7fca79f695722c5f8e26f\",\n               \"tarball\": \"http://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"mathieu\",\n                   \"email\": \"turcotte.mat@gmail.com\"\n               }\n           ],\n           \"_npmOperationalInternal\": {\n               \"host\": \"packages-13-west.internal.npmjs.com\",\n               \"tmp\": \"tmp/backoff-2.5.0.tgz_1457796071422_0.5366517049260437\"\n           }\n       }\n   },\n   \"readme\": \"# Backoff for Node.js\\n[![Build Status](https://secure.travis-ci.org/MathieuTurcotte/node-backoff.png?branch=master)](http://travis-ci.org/MathieuTurcotte/node-backoff)\\n[![NPM version](https://badge.fury.io/js/backoff.png)](http://badge.fury.io/js/backoff)\\n\\nFibonacci and exponential backoffs for Node.js.\\n\\n## Installation\\n\\n```\\nnpm install backoff\\n```\\n\\n## Unit tests\\n\\n```\\nnpm test\\n```\\n\\n## Usage\\n\\n### Object Oriented\\n\\nThe usual way to instantiate a new `Backoff` object is to use one predefined\\nfactory method: `backoff.fibonacci([options])`, `backoff.exponential([options])`.\\n\\n`Backoff` inherits from `EventEmitter`. When a backoff starts, a `backoff`\\nevent is emitted and, when a backoff ends, a `ready` event is emitted.\\nHandlers for these two events are called with the current backoff number and\\ndelay.\\n\\n``` js\\nvar backoff = require('backoff');\\n\\nvar fibonacciBackoff = backoff.fibonacci({\\n    randomisationFactor: 0,\\n    initialDelay: 10,\\n    maxDelay: 300\\n});\\n\\nfibonacciBackoff.failAfter(10);\\n\\nfibonacciBackoff.on('backoff', function(number, delay) {\\n    // Do something when backoff starts, e.g. show to the\\n    // user the delay before next reconnection attempt.\\n    console.log(number + ' ' + delay + 'ms');\\n});\\n\\nfibonacciBackoff.on('ready', function(number, delay) {\\n    // Do something when backoff ends, e.g. retry a failed\\n    // operation (DNS lookup, API call, etc.). If it fails\\n    // again then backoff, otherwise reset the backoff\\n    // instance.\\n    fibonacciBackoff.backoff();\\n});\\n\\nfibonacciBackoff.on('fail', function() {\\n    // Do something when the maximum number of backoffs is\\n    // reached, e.g. ask the user to check its connection.\\n    console.log('fail');\\n});\\n\\nfibonacciBackoff.backoff();\\n```\\n\\nThe previous example would print the following.\\n\\n```\\n0 10ms\\n1 10ms\\n2 20ms\\n3 30ms\\n4 50ms\\n5 80ms\\n6 130ms\\n7 210ms\\n8 300ms\\n9 300ms\\nfail\\n```\\n\\nNote that `Backoff` objects are meant to be instantiated once and reused\\nseveral times by calling `reset` after a successful \\\"retry\\\".\\n\\n### Functional\\n\\nIt's also possible to avoid some boilerplate code when invoking an asynchronous\\nfunction in a backoff loop by using `backoff.call(fn, [args, ...], callback)`.\\n\\nTypical usage looks like the following.\\n\\n``` js\\nvar call = backoff.call(get, 'https://duplika.ca/', function(err, res) {\\n    console.log('Num retries: ' + call.getNumRetries());\\n\\n    if (err) {\\n        console.log('Error: ' + err.message);\\n    } else {\\n        console.log('Status: ' + res.statusCode);\\n    }\\n});\\n\\ncall.retryIf(function(err) { return err.status == 503; });\\ncall.setStrategy(new backoff.ExponentialStrategy());\\ncall.failAfter(10);\\ncall.start();\\n```\\n\\n## API\\n\\n### backoff.fibonacci([options])\\n\\nConstructs a Fibonacci backoff (10, 10, 20, 30, 50, etc.).\\n\\nThe options are the following.\\n\\n- randomisationFactor: defaults to 0, must be between 0 and 1\\n- initialDelay: defaults to 100 ms\\n- maxDelay: defaults to 10000 ms\\n\\nWith these values, the backoff delay will increase from 100 ms to 10000 ms. The\\nrandomisation factor controls the range of randomness and must be between 0\\nand 1. By default, no randomisation is applied on the backoff delay.\\n\\n### backoff.exponential([options])\\n\\nConstructs an exponential backoff (10, 20, 40, 80, etc.).\\n\\nThe options are the following.\\n\\n- randomisationFactor: defaults to 0, must be between 0 and 1\\n- initialDelay: defaults to 100 ms\\n- maxDelay: defaults to 10000 ms\\n- factor: defaults to 2, must be greater than 1\\n\\nWith these values, the backoff delay will increase from 100 ms to 10000 ms. The\\nrandomisation factor controls the range of randomness and must be between 0\\nand 1. By default, no randomisation is applied on the backoff delay.\\n\\n### backoff.call(fn, [args, ...], callback)\\n\\n- fn: function to call in a backoff handler, i.e. the wrapped function\\n- args: function's arguments\\n- callback: function's callback accepting an error as its first argument\\n\\nConstructs a `FunctionCall` instance for the given function. The wrapped\\nfunction will get retried until it succeds or reaches the maximum number\\nof backoffs. In both cases, the callback function will be invoked with the\\nlast result returned by the wrapped function.\\n\\nIt is the caller's responsability to initiate the call by invoking the\\n`start` method on the returned `FunctionCall` instance.\\n\\n### Class Backoff\\n\\n#### new Backoff(strategy)\\n\\n- strategy: the backoff strategy to use\\n\\nConstructs a new backoff object from a specific backoff strategy. The backoff\\nstrategy must implement the `BackoffStrategy`interface defined bellow.\\n\\n#### backoff.failAfter(numberOfBackoffs)\\n\\n- numberOfBackoffs: maximum number of backoffs before the fail event gets\\nemitted, must be greater than 0\\n\\nSets a limit on the maximum number of backoffs that can be performed before\\na fail event gets emitted and the backoff instance is reset. By default, there\\nis no limit on the number of backoffs that can be performed.\\n\\n#### backoff.backoff([err])\\n\\nStarts a backoff operation. If provided, the error parameter will be emitted\\nas the last argument of the `backoff` and `fail` events to let the listeners\\nknow why the backoff operation was attempted.\\n\\nAn error will be thrown if a backoff operation is already in progress.\\n\\nIn practice, this method should be called after a failed attempt to perform a\\nsensitive operation (connecting to a database, downloading a resource over the\\nnetwork, etc.).\\n\\n#### backoff.reset()\\n\\nResets the backoff delay to the initial backoff delay and stop any backoff\\noperation in progress. After reset, a backoff instance can and should be\\nreused.\\n\\nIn practice, this method should be called after having successfully completed\\nthe sensitive operation guarded by the backoff instance or if the client code\\nrequest to stop any reconnection attempt.\\n\\n#### Event: 'backoff'\\n\\n- number: number of backoffs since last reset, starting at 0\\n- delay: backoff delay in milliseconds\\n- err: optional error parameter passed to `backoff.backoff([err])`\\n\\nEmitted when a backoff operation is started. Signals to the client how long\\nthe next backoff delay will be.\\n\\n#### Event: 'ready'\\n\\n- number: number of backoffs since last reset, starting at 0\\n- delay: backoff delay in milliseconds\\n\\nEmitted when a backoff operation is done. Signals that the failing operation\\nshould be retried.\\n\\n#### Event: 'fail'\\n\\n- err: optional error parameter passed to `backoff.backoff([err])`\\n\\nEmitted when the maximum number of backoffs is reached. This event will only\\nbe emitted if the client has set a limit on the number of backoffs by calling\\n`backoff.failAfter(numberOfBackoffs)`. The backoff instance is automatically\\nreset after this event is emitted.\\n\\n### Interface BackoffStrategy\\n\\nA backoff strategy must provide the following methods.\\n\\n#### strategy.next()\\n\\nComputes and returns the next backoff delay.\\n\\n#### strategy.reset()\\n\\nResets the backoff delay to its initial value.\\n\\n### Class ExponentialStrategy\\n\\nExponential (10, 20, 40, 80, etc.) backoff strategy implementation.\\n\\n#### new ExponentialStrategy([options])\\n\\nThe options are the following.\\n\\n- randomisationFactor: defaults to 0, must be between 0 and 1\\n- initialDelay: defaults to 100 ms\\n- maxDelay: defaults to 10000 ms\\n- factor: defaults to 2, must be greater than 1\\n\\n### Class FibonacciStrategy\\n\\nFibonnaci (10, 10, 20, 30, 50, etc.) backoff strategy implementation.\\n\\n#### new FibonacciStrategy([options])\\n\\nThe options are the following.\\n\\n- randomisationFactor: defaults to 0, must be between 0 and 1\\n- initialDelay: defaults to 100 ms\\n- maxDelay: defaults to 10000 ms\\n\\n### Class FunctionCall\\n\\nThis class manages the calling of an asynchronous function within a backoff\\nloop.\\n\\nThis class should rarely be instantiated directly since the factory method\\n`backoff.call(fn, [args, ...], callback)` offers a more convenient and safer\\nway to create `FunctionCall` instances.\\n\\n#### new FunctionCall(fn, args, callback)\\n\\n- fn: asynchronous function to call\\n- args: an array containing fn's args\\n- callback: fn's callback\\n\\nConstructs a function handler for the given asynchronous function.\\n\\n#### call.isPending()\\n\\nReturns whether the call is pending, i.e. hasn't been started.\\n\\n#### call.isRunning()\\n\\nReturns whether the call is in progress.\\n\\n#### call.isCompleted()\\n\\nReturns whether the call is completed.\\n\\n#### call.isAborted()\\n\\nReturns whether the call is aborted.\\n\\n#### call.setStrategy(strategy)\\n\\n- strategy: strategy instance to use, defaults to `FibonacciStrategy`.\\n\\nSets the backoff strategy to use. This method should be called before\\n`call.start()` otherwise an exception will be thrown.\\n\\n#### call.failAfter(maxNumberOfBackoffs)\\n\\n- maxNumberOfBackoffs: maximum number of backoffs before the call is aborted\\n\\nSets the maximum number of backoffs before the call is aborted. By default,\\nthere is no limit on the number of backoffs that can be performed.\\n\\nThis method should be called before `call.start()` otherwise an exception will\\nbe thrown..\\n\\n#### call.retryIf(predicate)\\n\\n- predicate: a function which takes in as its argument the error returned\\nby the wrapped function and determines whether it is retriable.\\n\\nSets the predicate which will be invoked to determine whether a given error\\nshould be retried or not, e.g. a network error would be retriable while a type\\nerror would stop the function call. By default, all errors are considered to be\\nretriable.\\n\\nThis method should be called before `call.start()` otherwise an exception will\\nbe thrown.\\n\\n#### call.getLastResult()\\n\\nReturns an array containing the last arguments passed to the completion callback\\nof the wrapped function. For example, to get the error code returned by the last\\ncall, one would do the following.\\n\\n``` js\\nvar results = call.getLastResult();\\n// The error code is the first parameter of the callback.\\nvar error = results[0];\\n```\\n\\nNote that if the call was aborted, it will contain the abort error and not the\\nlast error returned by the wrapped function.\\n\\n#### call.getNumRetries()\\n\\nReturns the number of times the wrapped function call was retried. For a\\nwrapped function that succeeded immediately, this would return 0. This\\nmethod can be called at any point in time during the call life cycle, i.e.\\nbefore, during and after the wrapped function invocation.\\n\\n#### call.start()\\n\\nInitiates the call the wrapped function. This method should only be called\\nonce otherwise an exception will be thrown.\\n\\n#### call.abort()\\n\\nAborts the call and causes the completion callback to be invoked with an abort\\nerror if the call was pending or running; does nothing otherwise. This method\\ncan safely be called mutliple times.\\n\\n#### Event: 'call'\\n\\n- args: wrapped function's arguments\\n\\nEmitted each time the wrapped function is called.\\n\\n#### Event: 'callback'\\n\\n- results: wrapped function's return values\\n\\nEmitted each time the wrapped function invokes its callback.\\n\\n#### Event: 'backoff'\\n\\n- number: backoff number, starts at 0\\n- delay: backoff delay in milliseconds\\n- err: the error that triggered the backoff operation\\n\\nEmitted each time a backoff operation is started.\\n\\n#### Event: 'abort'\\n\\nEmitted when a call is aborted.\\n\\n## Annotated source code\\n\\nThe annotated source code can be found at [mathieuturcotte.github.io/node-backoff/docs](http://mathieuturcotte.github.io/node-backoff/docs/).\\n\\n## License\\n\\nThis code is free to use under the terms of the [MIT license](http://mturcotte.mit-license.org/).\\n\",\n   \"maintainers\": [\n       {\n           \"name\": \"mathieu\",\n           \"email\": \"turcotte.mat@gmail.com\"\n       }\n   ],\n   \"time\": {\n       \"modified\": \"2016-03-12T15:21:13.929Z\",\n       \"created\": \"2012-04-20T01:04:30.744Z\",\n       \"0.0.1\": \"2012-04-20T01:04:31.437Z\",\n       \"0.0.2\": \"2012-04-24T19:14:30.591Z\",\n       \"0.0.3\": \"2012-06-27T22:32:10.567Z\",\n       \"0.1.0\": \"2012-07-25T12:33:33.583Z\",\n       \"0.2.0\": \"2012-07-27T02:55:58.435Z\",\n       \"0.2.1\": \"2012-08-07T22:27:47.797Z\",\n       \"0.3.0\": \"2012-08-10T16:33:30.276Z\",\n       \"1.0.0\": \"2012-08-16T15:16:46.110Z\",\n       \"1.1.0\": \"2012-09-19T19:39:12.095Z\",\n       \"1.2.0\": \"2012-10-12T14:49:09.297Z\",\n       \"1.2.1\": \"2013-01-19T22:14:57.912Z\",\n       \"2.0.0\": \"2013-01-26T19:04:14.712Z\",\n       \"2.1.0\": \"2013-03-28T02:02:03.200Z\",\n       \"2.2.0\": \"2013-04-13T20:11:43.082Z\",\n       \"2.3.0\": \"2013-05-18T18:48:28.214Z\",\n       \"2.4.0\": \"2014-06-21T15:11:53.139Z\",\n       \"2.4.1\": \"2014-12-06T20:57:26.257Z\",\n       \"2.5.0\": \"2016-03-12T15:21:13.929Z\"\n   },\n   \"author\": {\n       \"name\": \"Mathieu Turcotte\",\n       \"email\": \"turcotte.mat@gmail.com\"\n   },\n   \"repository\": {\n       \"type\": \"git\",\n       \"url\": \"git+https://github.com/MathieuTurcotte/node-backoff.git\"\n   },\n   \"users\": {\n       \"fgribreau\": true,\n       \"dominictarr\": true,\n       \"klyngbaek\": true,\n       \"scull7\": true,\n       \"silas\": true,\n       \"ajohnstone\": true,\n       \"joshperry\": true,\n       \"animustechnology\": true,\n       \"bojand\": true,\n       \"guumaster\": true,\n       \"hugojosefson\": true,\n       \"moimikey\": true,\n       \"jzhang300\": true,\n       \"chriszs\": true\n   },\n   \"keywords\": [\n       \"backoff\",\n       \"retry\",\n       \"fibonacci\",\n       \"exponential\"\n   ],\n   \"license\": \"MIT\",\n   \"readmeFilename\": \"README.md\",\n   \"bugs\": {\n       \"url\": \"https://github.com/MathieuTurcotte/node-backoff/issues\"\n   },\n   \"homepage\": \"https://github.com/MathieuTurcotte/node-backoff#readme\"\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/backoff/expected-source.json",
    "content": "{\n  \"files\": {\n    \"readmeSize\": 11287,\n    \"testsSize\": 27463,\n    \"hasChangelog\": true\n  },\n  \"linters\": [\n    \"jshint\"\n  ],\n  \"badges\": [\n    {\n      \"urls\": {\n        \"original\": \"https://secure.travis-ci.org/MathieuTurcotte/node-backoff.png?branch=master\",\n        \"service\": \"https://api.travis-ci.org/MathieuTurcotte/node-backoff.svg?branch=master\",\n        \"shields\": \"https://img.shields.io/travis/MathieuTurcotte/node-backoff/master.svg\",\n        \"content\": \"https://img.shields.io/travis/MathieuTurcotte/node-backoff/master.json\"\n      },\n      \"info\": {\n        \"service\": \"travis\",\n        \"type\": \"build\",\n        \"modifiers\": {\n          \"branch\": \"master\"\n        }\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/cross-spawn/data.json",
    "content": "{\n\t\"name\": \"cross-spawn\",\n\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\"dist-tags\": {\n\t\t\"latest\": \"2.2.3\"\n\t},\n\t\"versions\": {\n\t\t\"0.1.0\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.1.0\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/npde-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/npde-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/npde-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.1.0\",\n\t\t\t\"_shasum\": \"804a4305ffe717f5f50598a855c08221a227c370\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"804a4305ffe717f5f50598a855c08221a227c370\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.0.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.1.1\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.1.1\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.1.1\",\n\t\t\t\"_shasum\": \"ec7d08cf044c1f349e7aa21738296f665f8d7b8a\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"ec7d08cf044c1f349e7aa21738296f665f8d7b8a\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.1.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.1.2\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.1.2\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.1.2\",\n\t\t\t\"_shasum\": \"83ba4d7f394d41683253684052e669d14a873f10\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"83ba4d7f394d41683253684052e669d14a873f10\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.2.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.1.3\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.1.3\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.1.3\",\n\t\t\t\"_shasum\": \"08705196268ee352d99edf03c53ce05bf218ae91\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"08705196268ee352d99edf03c53ce05bf218ae91\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.3.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.1.4\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.1.4\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.1.4\",\n\t\t\t\"_shasum\": \"216fbe401cce5c1fae8f4270367865f841585992\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"216fbe401cce5c1fae8f4270367865f841585992\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.4.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.1.5\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.1.5\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.1.5\",\n\t\t\t\"_shasum\": \"5578f122bebf8476a6b1846ab082adbea83d0a65\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"5578f122bebf8476a6b1846ab082adbea83d0a65\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.5.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.1.6\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.1.6\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.1.6\",\n\t\t\t\"_shasum\": \"73de1551529b5865ce0392456ea5491a708aa809\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"73de1551529b5865ce0392456ea5491a708aa809\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.6.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.1.7\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.1.7\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.1.7\",\n\t\t\t\"_shasum\": \"7e26c368953fd9618215f519056fca17c4c43d0e\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"7e26c368953fd9618215f519056fca17c4c43d0e\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.7.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.0\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.0\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.0\",\n\t\t\t\"_shasum\": \"adf1f68b6b0a1fc221e65446e075e06ba5e34072\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"adf1f68b6b0a1fc221e65446e075e06ba5e34072\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.0.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.1\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.1\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.1\",\n\t\t\t\"_shasum\": \"740c2be6ef07e4693fadc863438f33c633bedca4\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"740c2be6ef07e4693fadc863438f33c633bedca4\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.1.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.2\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.2\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.2\",\n\t\t\t\"_shasum\": \"e843220593b3bc6e7e7c96decb1dafec69024ecd\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"e843220593b3bc6e7e7c96decb1dafec69024ecd\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.2.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.3\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.3\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.3\",\n\t\t\t\"_shasum\": \"9b40ef3270fbdfba9a0ad42fec9db2c40027d08c\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"1.4.9\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"9b40ef3270fbdfba9a0ad42fec9db2c40027d08c\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.3.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.4\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.4\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha --bail -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"0021b10fbba574e727c92459ff0bfdcc1cc0fab2\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.4\",\n\t\t\t\"_shasum\": \"b28444c6b8da2d6b5aa99bd04f0af2e029e9f1a1\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.5.1\",\n\t\t\t\"_nodeVersion\": \"0.12.0\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"b28444c6b8da2d6b5aa99bd04f0af2e029e9f1a1\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.4.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.5\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.5\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha --bail -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"89edcfa212bb75d5e1afd3e140c3040683ae5502\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.5\",\n\t\t\t\"_shasum\": \"39b123afcceaf0218ff4c198bfcc665e7ca7879e\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.5.1\",\n\t\t\t\"_nodeVersion\": \"0.12.0\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"39b123afcceaf0218ff4c198bfcc665e7ca7879e\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.5.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.6\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.6\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha --bail -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"48f2c14382f20a6c9078edb6945be3ae7a4f550a\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.6\",\n\t\t\t\"_shasum\": \"1a3512dfc5671da621f0974f26ed3bfd1555ee91\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.5.1\",\n\t\t\t\"_nodeVersion\": \"0.12.0\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"1a3512dfc5671da621f0974f26ed3bfd1555ee91\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.6.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.7\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.7\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha --bail -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"a403c3d72d811226c3dfb6c3c408a01a4ad37022\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.7\",\n\t\t\t\"_shasum\": \"b2edc68f95413c35dc2a0bed8f0c981c50dc4f81\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.6.1\",\n\t\t\t\"_nodeVersion\": \"0.10.36\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"b2edc68f95413c35dc2a0bed8f0c981c50dc4f81\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.7.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.8\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.8\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha --bail -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"f41ba1a9758c1f43a1f0fd263ecd6795f80a5807\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.8\",\n\t\t\t\"_shasum\": \"0f042e792eaeb5fdb098c4524aecfd5553b8ea57\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.6.1\",\n\t\t\t\"_nodeVersion\": \"0.10.36\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"0f042e792eaeb5fdb098c4524aecfd5553b8ea57\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.8.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.2.9\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.2.9\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha --bail -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"6fececcbd8331f98b4cfd6560b925bc4d8e77f47\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.2.9\",\n\t\t\t\"_shasum\": \"bd67f96c07efb6303b7fe94c1e979f88478e0a39\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.6.1\",\n\t\t\t\"_nodeVersion\": \"0.10.36\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"bd67f96c07efb6303b7fe94c1e979f88478e0a39\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.9.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.3.0\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.3.0\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha --bail -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"a431cdc9e431ae59b994d3ac3dced552e90a4434\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.3.0\",\n\t\t\t\"_shasum\": \"586ca7abec0887ce0600a119990fb3a3c80ccee2\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.7.4\",\n\t\t\t\"_nodeVersion\": \"0.12.2\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"586ca7abec0887ce0600a119990fb3a3c80ccee2\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.3.0.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.4.0\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.4.0\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha --bail -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\",\n\t\t\t\t\"spawn-sync\": \"^1.0.6\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"b5e83a90ac4493aceb158b3b5d3274b087da5b10\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.4.0\",\n\t\t\t\"_shasum\": \"29e97f5098362d39245d795f63834e6aa9b2df15\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.7.4\",\n\t\t\t\"_nodeVersion\": \"0.12.2\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"29e97f5098362d39245d795f63834e6aa9b2df15\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.4.0.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"0.4.1\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"0.4.1\",\n\t\t\t\"description\": \"Cross platform child_process#spawn\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"mocha --bail -R spec\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"lru-cache\": \"^2.5.0\",\n\t\t\t\t\"spawn-sync\": \"^1.0.6\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"mocha\": \"^1.20.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"3679e6942768de5a61a7c2b5b8064ff4bbd78362\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@0.4.1\",\n\t\t\t\"_shasum\": \"05b2c16fca761350b492ad455802ea1bea3fadae\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.7.4\",\n\t\t\t\"_nodeVersion\": \"0.12.2\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"05b2c16fca761350b492ad455802ea1bea3fadae\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-0.4.1.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"1.0.0\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"1.0.0\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^0.1.0\",\n\t\t\t\t\"spawn-sync\": \"^1.0.6\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^5.0.12\",\n\t\t\t\t\"mocha\": \"^2.2.5\"\n\t\t\t},\n\t\t\t\"gitHead\": \"b5239f25c0274feba89242b77d8f0ce57dce83ad\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@1.0.0\",\n\t\t\t\"_shasum\": \"53e3c1e2d7a03206b226cd7c57807a5d4fb4282e\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.10.1\",\n\t\t\t\"_nodeVersion\": \"0.12.4\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"53e3c1e2d7a03206b226cd7c57807a5d4fb4282e\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-1.0.0.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"1.0.1\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"1.0.1\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^1.0.0\",\n\t\t\t\t\"spawn-sync\": \"^1.0.6\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^5.0.12\",\n\t\t\t\t\"mocha\": \"^2.2.5\"\n\t\t\t},\n\t\t\t\"gitHead\": \"7e354c58e4bc5b94f535c7d488c7d868dcb72dd0\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@1.0.1\",\n\t\t\t\"_shasum\": \"ec68b90d43d7eaf1ae602a5dce7d075b40c472ee\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.10.1\",\n\t\t\t\"_nodeVersion\": \"0.12.4\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"ec68b90d43d7eaf1ae602a5dce7d075b40c472ee\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-1.0.1.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"1.0.2\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"1.0.2\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^1.0.1\",\n\t\t\t\t\"spawn-sync\": \"^1.0.6\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^5.0.12\",\n\t\t\t\t\"mocha\": \"^2.2.5\"\n\t\t\t},\n\t\t\t\"gitHead\": \"bf0d22195571b06ccc882cd100fd7fb7c5a2ad86\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@1.0.2\",\n\t\t\t\"_shasum\": \"16405a46325fb3e0f4dd271f5d9618e02560d68d\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.10.1\",\n\t\t\t\"_nodeVersion\": \"0.12.4\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"16405a46325fb3e0f4dd271f5d9618e02560d68d\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-1.0.2.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"1.0.3\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"1.0.3\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^1.0.1\",\n\t\t\t\t\"spawn-sync\": \"^1.0.6\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^5.0.12\",\n\t\t\t\t\"mocha\": \"^2.2.5\"\n\t\t\t},\n\t\t\t\"gitHead\": \"3c02b4036eeb9df39004bfc3f0ad3d13b668d0e0\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@1.0.3\",\n\t\t\t\"_shasum\": \"eb4f604ee204c3c555dd9e4b39bf430b69e977a6\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.10.1\",\n\t\t\t\"_nodeVersion\": \"0.12.4\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"eb4f604ee204c3c555dd9e4b39bf430b69e977a6\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-1.0.3.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"1.0.4\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"1.0.4\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^1.0.1\",\n\t\t\t\t\"spawn-sync\": \"^1.0.13\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^5.0.12\",\n\t\t\t\t\"mocha\": \"^2.2.5\"\n\t\t\t},\n\t\t\t\"gitHead\": \"d27621d9ee8b81ee4913d9c8377e5e23add54828\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@1.0.4\",\n\t\t\t\"_shasum\": \"4b60d515f5d8723bb4cde0e8e3d0240517ebffca\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.13.1\",\n\t\t\t\"_nodeVersion\": \"0.12.7\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"4b60d515f5d8723bb4cde0e8e3d0240517ebffca\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-1.0.4.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"2.0.0\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.0.0\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.0.0\",\n\t\t\t\t\"spawn-sync\": \"^1.0.13\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^5.0.12\",\n\t\t\t\t\"mocha\": \"^2.2.5\"\n\t\t\t},\n\t\t\t\"gitHead\": \"65d41138e6b5161787df43d5f8de2442765e32d0\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.0.0\",\n\t\t\t\"_shasum\": \"32dc93907e8f80e39830aa3f0bd9f32538b3bcf1\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.11.3\",\n\t\t\t\"_nodeVersion\": \"0.12.7\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"32dc93907e8f80e39830aa3f0bd9f32538b3bcf1\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.0.0.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"2.0.1\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.0.1\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.0.0\",\n\t\t\t\t\"spawn-sync\": \"1.0.13\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^5.0.12\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^2.4.4\",\n\t\t\t\t\"which\": \"^1.2.0\"\n\t\t\t},\n\t\t\t\"gitHead\": \"22cae907b13de66edb5882aea6f1cb405740d283\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.0.1\",\n\t\t\t\"_shasum\": \"ab6fd893a099759d9b85220e3a64397de946b0f6\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.13.1\",\n\t\t\t\"_nodeVersion\": \"0.12.7\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"ab6fd893a099759d9b85220e3a64397de946b0f6\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.0.1.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"2.1.0\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.1.0\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.0.0\",\n\t\t\t\t\"spawn-sync\": \"1.0.13\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^5.0.12\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^1.0.9\",\n\t\t\t\t\"which\": \"^1.2.0\"\n\t\t\t},\n\t\t\t\"gitHead\": \"f2baa6dce3606daf543666ac1e5df6e4d29ed0cc\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.1.0\",\n\t\t\t\"_shasum\": \"9bc27f40423e98a445efe9269983e4f4055cde3a\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.13.1\",\n\t\t\t\"_nodeVersion\": \"0.12.7\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"9bc27f40423e98a445efe9269983e4f4055cde3a\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.1.0.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"2.1.1\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.1.1\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.0.0\",\n\t\t\t\t\"spawn-sync\": \"1.0.13\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^5.0.12\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^1.0.9\",\n\t\t\t\t\"which\": \"^1.2.0\"\n\t\t\t},\n\t\t\t\"gitHead\": \"a9b71dd09dd90b8423707b743ae9ced844a7ae21\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.1.1\",\n\t\t\t\"_shasum\": \"c3b85d6a88719068b2b27be55e2974f62d41b5c0\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.14.7\",\n\t\t\t\"_nodeVersion\": \"4.2.3\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"c3b85d6a88719068b2b27be55e2974f62d41b5c0\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.1.1.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"2.1.2\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.1.2\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.0.0\",\n\t\t\t\t\"spawn-sync\": \"1.0.13\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^6.0.3\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^2.5.0\",\n\t\t\t\t\"which\": \"^1.2.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"b701ac8cce3b8c21278018d0f2af60860a125c1e\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.1.2\",\n\t\t\t\"_shasum\": \"954ea0346437918e803e03c445cb5c3287abc2af\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.14.7\",\n\t\t\t\"_nodeVersion\": \"4.2.3\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"954ea0346437918e803e03c445cb5c3287abc2af\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.1.2.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"2.1.3\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.1.3\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.0.0\",\n\t\t\t\t\"spawn-sync\": \"1.0.13\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^6.0.3\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^2.5.0\",\n\t\t\t\t\"which\": \"^1.2.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"299efd1b11fe8bcc64cdb9cdf8f624b9e56e1bb9\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.1.3\",\n\t\t\t\"_shasum\": \"6b801df157e4328b63e3d4c2c9c00488745726e8\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.14.7\",\n\t\t\t\"_nodeVersion\": \"4.2.3\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"6b801df157e4328b63e3d4c2c9c00488745726e8\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.1.3.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"2.1.4\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.1.4\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail -R spec test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.0.0\",\n\t\t\t\t\"spawn-sync\": \"^1.0.15\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^6.0.3\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^2.5.0\",\n\t\t\t\t\"which\": \"^1.2.1\"\n\t\t\t},\n\t\t\t\"gitHead\": \"1831b3228a38722f431156485b01db3be6d199cc\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.1.4\",\n\t\t\t\"_shasum\": \"e64441b7a038e929ccc6e24e2aa7b72a96b26a27\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.14.7\",\n\t\t\t\"_nodeVersion\": \"4.2.3\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"e64441b7a038e929ccc6e24e2aa7b72a96b26a27\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.1.4.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"2.1.5\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.1.5\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.0.0\",\n\t\t\t\t\"spawn-sync\": \"^1.0.15\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^6.0.3\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^2.5.0\",\n\t\t\t\t\"which\": \"^1.2.4\"\n\t\t\t},\n\t\t\t\"gitHead\": \"a91440123d1d8ec2865cf7643351955e7ad48247\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn\",\n\t\t\t\"_id\": \"cross-spawn@2.1.5\",\n\t\t\t\"_shasum\": \"09e1eefb7617270f4f9cad41766e7fcbd2c6ae6c\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.14.12\",\n\t\t\t\"_nodeVersion\": \"4.2.4\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"09e1eefb7617270f4f9cad41766e7fcbd2c6ae6c\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.1.5.tgz\"\n\t\t\t}\n\t\t},\n\t\t\"2.2.0\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.2.0\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.2.0\",\n\t\t\t\t\"spawn-sync\": \"^1.0.15\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^7.0.0\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^2.5.0\",\n\t\t\t\t\"which\": \"^1.2.4\"\n\t\t\t},\n\t\t\t\"gitHead\": \"d55c6fd837ebc9bfb64ed73b7bc9e584547d97c2\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.2.0\",\n\t\t\t\"_shasum\": \"69a59997789571ccb64f399555a5169af79c9361\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.14.20\",\n\t\t\t\"_nodeVersion\": \"4.4.0\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"69a59997789571ccb64f399555a5169af79c9361\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.2.0.tgz\"\n\t\t\t},\n\t\t\t\"_npmOperationalInternal\": {\n\t\t\t\t\"host\": \"packages-12-west.internal.npmjs.com\",\n\t\t\t\t\"tmp\": \"tmp/cross-spawn-2.2.0.tgz_1459975736466_0.5801793539430946\"\n\t\t\t}\n\t\t},\n\t\t\"2.2.2\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.2.2\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.2.0\",\n\t\t\t\t\"spawn-sync\": \"^1.0.15\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^7.0.0\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^2.5.0\",\n\t\t\t\t\"which\": \"^1.2.4\"\n\t\t\t},\n\t\t\t\"gitHead\": \"34bb37ef65c431891f5cc4f033b418dbb24084ae\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.2.2\",\n\t\t\t\"_shasum\": \"745cba057f65fb13daca869e4c50cdbda173b45b\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.14.20\",\n\t\t\t\"_nodeVersion\": \"4.4.0\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"745cba057f65fb13daca869e4c50cdbda173b45b\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.2.2.tgz\"\n\t\t\t},\n\t\t\t\"_npmOperationalInternal\": {\n\t\t\t\t\"host\": \"packages-12-west.internal.npmjs.com\",\n\t\t\t\t\"tmp\": \"tmp/cross-spawn-2.2.2.tgz_1460152414353_0.8628160380758345\"\n\t\t\t}\n\t\t},\n\t\t\"2.2.3\": {\n\t\t\t\"name\": \"cross-spawn\",\n\t\t\t\"version\": \"2.2.3\",\n\t\t\t\"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n\t\t\t\"main\": \"index.js\",\n\t\t\t\"scripts\": {\n\t\t\t\t\"test\": \"node test/prepare && mocha --bail test/test\"\n\t\t\t},\n\t\t\t\"bugs\": {\n\t\t\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t\t\t},\n\t\t\t\"repository\": {\n\t\t\t\t\"type\": \"git\",\n\t\t\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t\t\t},\n\t\t\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\t\t\"author\": {\n\t\t\t\t\"name\": \"IndigoUnited\",\n\t\t\t\t\"email\": \"hello@indigounited.com\",\n\t\t\t\t\"url\": \"http://indigounited.com\"\n\t\t\t},\n\t\t\t\"license\": \"MIT\",\n\t\t\t\"dependencies\": {\n\t\t\t\t\"cross-spawn-async\": \"^2.2.2\",\n\t\t\t\t\"spawn-sync\": \"^1.0.15\"\n\t\t\t},\n\t\t\t\"devDependencies\": {\n\t\t\t\t\"expect.js\": \"^0.3.0\",\n\t\t\t\t\"glob\": \"^7.0.0\",\n\t\t\t\t\"mkdirp\": \"^0.5.1\",\n\t\t\t\t\"mocha\": \"^2.2.5\",\n\t\t\t\t\"rimraf\": \"^2.5.0\",\n\t\t\t\t\"which\": \"^1.2.4\"\n\t\t\t},\n\t\t\t\"gitHead\": \"7bc71932e517c974c80f54ae9f7687c9cd25db74\",\n\t\t\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\t\t\"_id\": \"cross-spawn@2.2.3\",\n\t\t\t\"_shasum\": \"fac56202dfd3d0dd861778f2da203bf434bb821c\",\n\t\t\t\"_from\": \".\",\n\t\t\t\"_npmVersion\": \"2.14.20\",\n\t\t\t\"_nodeVersion\": \"4.4.0\",\n\t\t\t\"_npmUser\": {\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t},\n\t\t\t\"maintainers\": [{\n\t\t\t\t\"name\": \"satazor\",\n\t\t\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t\t\t}],\n\t\t\t\"dist\": {\n\t\t\t\t\"shasum\": \"fac56202dfd3d0dd861778f2da203bf434bb821c\",\n\t\t\t\t\"tarball\": \"http://registry.npmjs.org/cross-spawn/-/cross-spawn-2.2.3.tgz\"\n\t\t\t},\n\t\t\t\"_npmOperationalInternal\": {\n\t\t\t\t\"host\": \"packages-12-west.internal.npmjs.com\",\n\t\t\t\t\"tmp\": \"tmp/cross-spawn-2.2.3.tgz_1460574403627_0.18620981369167566\"\n\t\t\t}\n\t\t}\n\t},\n\t\"readme\": \"# cross-spawn\\n\\n[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Build status][appveyor-image]][appveyor-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]\\n\\n[npm-url]:https://npmjs.org/package/cross-spawn\\n[downloads-image]:http://img.shields.io/npm/dm/cross-spawn.svg\\n[npm-image]:http://img.shields.io/npm/v/cross-spawn.svg\\n[travis-url]:https://travis-ci.org/IndigoUnited/node-cross-spawn\\n[travis-image]:http://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.svg\\n[appveyor-url]:https://ci.appveyor.com/project/satazor/node-cross-spawn\\n[appveyor-image]:https://img.shields.io/appveyor/ci/satazor/node-cross-spawn.svg\\n[david-dm-url]:https://david-dm.org/IndigoUnited/node-cross-spawn\\n[david-dm-image]:https://img.shields.io/david/IndigoUnited/node-cross-spawn.svg\\n[david-dm-dev-url]:https://david-dm.org/IndigoUnited/node-cross-spawn#info=devDependencies\\n[david-dm-dev-image]:https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.svg\\n\\nA cross platform solution to node's spawn and spawnSync.\\n\\n\\n## Installation\\n\\n`$ npm install cross-spawn`\\n\\nIf you're not using the `spawnSync`, you can use [cross-spawn-async](http://github.com/IndigoUnited/node-cross-spawn-async) which doesn't require a build toolchain, see [#18](https://github.com/IndigoUnited/node-cross-spawn/pull/18)\\n\\n\\n## Why\\n\\nNode has issues when using spawn on Windows:\\n\\n- It ignores [PATHEXT](https://github.com/joyent/node/issues/2318)\\n- It does not support [shebangs](http://pt.wikipedia.org/wiki/Shebang)\\n- It does not allow you to run `del` or `dir`\\n- It does not properly escape arguments with spaces or special characters\\n\\nAll these issues are handled correctly by `cross-spawn`.\\nThere are some known modules, such as [win-spawn](https://github.com/ForbesLindesay/win-spawn), that try to solve this but they are either broken or provide faulty escaping of shell arguments.\\n\\n\\n## Usage\\n\\nExactly the same way as node's [`spawn`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options) or [`spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options), so it's a drop in replacement.\\n\\n```javascript\\nvar spawn = require('cross-spawn');\\n\\n// Spawn NPM asynchronously\\nvar process = spawn('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });\\n\\n// Spawn NPM synchronously\\nvar results = spawn.sync('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });\\n```\\n\\n\\n## Tests\\n\\n`$ npm test`\\n\\n\\n## License\\n\\nReleased under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\\n\",\n\t\"maintainers\": [{\n\t\t\"name\": \"satazor\",\n\t\t\"email\": \"andremiguelcruz@msn.com\"\n\t}],\n\t\"time\": {\n\t\t\"modified\": \"2016-04-13T19:06:45.979Z\",\n\t\t\"created\": \"2014-06-30T01:04:42.962Z\",\n\t\t\"0.1.0\": \"2014-06-30T01:04:42.962Z\",\n\t\t\"0.1.1\": \"2014-06-30T13:22:52.138Z\",\n\t\t\"0.1.2\": \"2014-06-30T21:29:40.550Z\",\n\t\t\"0.1.3\": \"2014-06-30T21:49:21.933Z\",\n\t\t\"0.1.4\": \"2014-06-30T23:25:24.890Z\",\n\t\t\"0.1.5\": \"2014-07-02T11:30:53.833Z\",\n\t\t\"0.1.6\": \"2014-07-03T08:47:30.074Z\",\n\t\t\"0.1.7\": \"2014-07-11T16:28:05.858Z\",\n\t\t\"0.2.0\": \"2014-08-28T22:41:05.210Z\",\n\t\t\"0.2.1\": \"2014-08-28T22:50:35.426Z\",\n\t\t\"0.2.2\": \"2014-08-28T22:59:55.849Z\",\n\t\t\"0.2.3\": \"2014-08-29T08:12:24.369Z\",\n\t\t\"0.2.4\": \"2015-02-08T20:34:37.954Z\",\n\t\t\"0.2.5\": \"2015-02-08T20:35:35.977Z\",\n\t\t\"0.2.6\": \"2015-02-08T20:58:31.475Z\",\n\t\t\"0.2.7\": \"2015-03-28T00:03:44.626Z\",\n\t\t\"0.2.8\": \"2015-03-28T00:05:26.072Z\",\n\t\t\"0.2.9\": \"2015-04-08T16:18:38.840Z\",\n\t\t\"0.3.0\": \"2015-05-06T08:02:28.625Z\",\n\t\t\"0.4.0\": \"2015-05-06T22:21:11.441Z\",\n\t\t\"0.4.1\": \"2015-06-10T15:11:37.696Z\",\n\t\t\"1.0.0\": \"2015-07-02T19:01:47.896Z\",\n\t\t\"1.0.1\": \"2015-07-02T19:10:06.117Z\",\n\t\t\"1.0.2\": \"2015-07-02T20:15:01.537Z\",\n\t\t\"1.0.3\": \"2015-07-02T20:21:46.368Z\",\n\t\t\"1.0.4\": \"2015-07-16T16:57:22.820Z\",\n\t\t\"2.0.0\": \"2015-07-21T22:25:49.585Z\",\n\t\t\"2.0.1\": \"2015-11-29T17:30:31.442Z\",\n\t\t\"2.1.0\": \"2015-12-06T15:26:20.377Z\",\n\t\t\"2.1.1\": \"2016-01-02T09:57:15.369Z\",\n\t\t\"2.1.2\": \"2016-01-02T14:50:05.176Z\",\n\t\t\"2.1.3\": \"2016-01-02T15:27:58.166Z\",\n\t\t\"2.1.4\": \"2016-01-03T15:37:28.977Z\",\n\t\t\"2.1.5\": \"2016-01-27T01:15:02.454Z\",\n\t\t\"2.2.0\": \"2016-04-06T20:48:59.136Z\",\n\t\t\"2.2.2\": \"2016-04-08T21:53:36.565Z\",\n\t\t\"2.2.3\": \"2016-04-13T19:06:45.979Z\"\n\t},\n\t\"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n\t\"keywords\": [\"spawn\", \"spawnSync\", \"windows\", \"cross\", \"platform\", \"path\", \"ext\", \"path-ext\", \"path_ext\", \"shebang\", \"hashbang\", \"cmd\", \"execute\"],\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n\t},\n\t\"author\": {\n\t\t\"name\": \"IndigoUnited\",\n\t\t\"email\": \"hello@indigounited.com\",\n\t\t\"url\": \"http://indigounited.com\"\n\t},\n\t\"bugs\": {\n\t\t\"url\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\"\n\t},\n\t\"license\": \"MIT\",\n\t\"readmeFilename\": \"README.md\",\n\t\"users\": {\n\t\t\"itonyyo\": true,\n\t\t\"nubuck\": true,\n\t\t\"garthk\": true,\n\t\t\"antixrist\": true,\n\t\t\"pandao\": true,\n\t\t\"carsy\": true,\n\t\t\"m_gol\": true,\n\t\t\"crafterm\": true,\n\t\t\"satazor\": true,\n\t\t\"mysticatea\": true\n\t}\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/cross-spawn/expected-github.json",
    "content": "{\n  \"starsCount\": 74,\n  \"forksCount\": 11,\n  \"subscribersCount\": 12,\n  \"issues\": {\n    \"count\": 31,\n    \"openCount\": 2,\n    \"distribution\": {\n      \"3600\": 9,\n      \"10800\": 2,\n      \"32400\": 3,\n      \"97200\": 6,\n      \"291600\": 4,\n      \"874800\": 0,\n      \"2624400\": 4,\n      \"7873200\": 2,\n      \"23619600\": 1,\n      \"70858800\": 0,\n      \"212576400\": 0\n    },\n    \"isDisabled\": false\n  },\n  \"contributors\": [\n    {\n      \"username\": \"satazor\",\n      \"commitsCount\": 111\n    },\n    {\n      \"username\": \"BigstickCarpet\",\n      \"commitsCount\": 4\n    },\n    {\n      \"username\": \"kevva\",\n      \"commitsCount\": 1\n    },\n    {\n      \"username\": \"typicode\",\n      \"commitsCount\": 1\n    },\n    {\n      \"username\": \"greenkeeperio-bot\",\n      \"commitsCount\": 1\n    },\n    {\n      \"username\": \"knpwrs\",\n      \"commitsCount\": 1\n    }\n  ],\n  \"commits\": [\n    {\n      \"from\": \"2016-05-02T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 0\n    },\n    {\n      \"from\": \"2016-04-09T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 3\n    },\n    {\n      \"from\": \"2016-02-09T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 9\n    },\n    {\n      \"from\": \"2015-11-11T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 38\n    },\n    {\n      \"from\": \"2015-05-10T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 61\n    }\n  ],\n  \"statuses\": [\n    {\n      \"context\": \"continuous-integration/appveyor/branch\",\n      \"state\": \"success\"\n    },\n    {\n      \"context\": \"continuous-integration/travis-ci/push\",\n      \"state\": \"success\"\n    }\n  ]\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/cross-spawn/expected-metadata.json",
    "content": "{\n  \"name\": \"cross-spawn\",\n  \"scope\": \"unscoped\",\n  \"version\": \"2.2.3\",\n  \"description\": \"Cross platform child_process#spawn and child_process#spawnSync\",\n  \"keywords\": [\n    \"spawn\",\n    \"spawnSync\",\n    \"windows\",\n    \"cross\",\n    \"platform\",\n    \"path\",\n    \"ext\",\n    \"path-ext\",\n    \"path_ext\",\n    \"shebang\",\n    \"hashbang\",\n    \"cmd\",\n    \"execute\"\n  ],\n  \"date\": \"2016-04-13T19:06:45.979Z\",\n  \"readme\": \"# cross-spawn\\n\\n[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Build status][appveyor-image]][appveyor-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]\\n\\n[npm-url]:https://npmjs.org/package/cross-spawn\\n[downloads-image]:http://img.shields.io/npm/dm/cross-spawn.svg\\n[npm-image]:http://img.shields.io/npm/v/cross-spawn.svg\\n[travis-url]:https://travis-ci.org/IndigoUnited/node-cross-spawn\\n[travis-image]:http://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.svg\\n[appveyor-url]:https://ci.appveyor.com/project/satazor/node-cross-spawn\\n[appveyor-image]:https://img.shields.io/appveyor/ci/satazor/node-cross-spawn.svg\\n[david-dm-url]:https://david-dm.org/IndigoUnited/node-cross-spawn\\n[david-dm-image]:https://img.shields.io/david/IndigoUnited/node-cross-spawn.svg\\n[david-dm-dev-url]:https://david-dm.org/IndigoUnited/node-cross-spawn#info=devDependencies\\n[david-dm-dev-image]:https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.svg\\n\\nA cross platform solution to node's spawn and spawnSync.\\n\\n\\n## Installation\\n\\n`$ npm install cross-spawn`\\n\\nIf you're not using the `spawnSync`, you can use [cross-spawn-async](http://github.com/IndigoUnited/node-cross-spawn-async) which doesn't require a build toolchain, see [#18](https://github.com/IndigoUnited/node-cross-spawn/pull/18)\\n\\n\\n## Why\\n\\nNode has issues when using spawn on Windows:\\n\\n- It ignores [PATHEXT](https://github.com/joyent/node/issues/2318)\\n- It does not support [shebangs](http://pt.wikipedia.org/wiki/Shebang)\\n- It does not allow you to run `del` or `dir`\\n- It does not properly escape arguments with spaces or special characters\\n\\nAll these issues are handled correctly by `cross-spawn`.\\nThere are some known modules, such as [win-spawn](https://github.com/ForbesLindesay/win-spawn), that try to solve this but they are either broken or provide faulty escaping of shell arguments.\\n\\n\\n## Usage\\n\\nExactly the same way as node's [`spawn`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options) or [`spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options), so it's a drop in replacement.\\n\\n```javascript\\nvar spawn = require('cross-spawn');\\n\\n// Spawn NPM asynchronously\\nvar process = spawn('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });\\n\\n// Spawn NPM synchronously\\nvar results = spawn.sync('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });\\n```\\n\\n\\n## Tests\\n\\n`$ npm test`\\n\\n\\n## License\\n\\nReleased under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\",\n  \"publisher\": {\n    \"username\": \"satazor\",\n    \"email\": \"andremiguelcruz@msn.com\"\n  },\n  \"maintainers\": [\n    {\n      \"username\": \"satazor\",\n      \"email\": \"andremiguelcruz@msn.com\"\n    }\n  ],\n  \"author\": {\n    \"name\": \"IndigoUnited\",\n    \"email\": \"hello@indigounited.com\",\n    \"url\": \"http://indigounited.com\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git://github.com/IndigoUnited/node-cross-spawn.git\"\n  },\n  \"links\": {\n    \"bugs\": \"https://github.com/IndigoUnited/node-cross-spawn/issues/\",\n    \"homepage\": \"https://github.com/IndigoUnited/node-cross-spawn#readme\",\n    \"npm\": \"https://www.npmjs.com/package/cross-spawn\",\n    \"repository\": \"https://github.com/IndigoUnited/node-cross-spawn\"\n  },\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"cross-spawn-async\": \"^2.2.2\",\n    \"spawn-sync\": \"^1.0.15\"\n  },\n  \"devDependencies\": {\n    \"expect.js\": \"^0.3.0\",\n    \"glob\": \"^7.0.0\",\n    \"mkdirp\": \"^0.5.1\",\n    \"mocha\": \"^2.2.5\",\n    \"rimraf\": \"^2.5.0\",\n    \"which\": \"^1.2.4\"\n  },\n  \"releases\": [\n    {\n      \"from\": \"2016-04-08T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\",\n      \"count\": 3\n    },\n    {\n      \"from\": \"2016-02-08T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\",\n      \"count\": 4\n    },\n    {\n      \"from\": \"2015-11-10T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\",\n      \"count\": 11\n    },\n    {\n      \"from\": \"2015-05-09T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\",\n      \"count\": 18\n    },\n    {\n      \"from\": \"2014-05-09T00:00:00.000Z\",\n      \"to\": \"2016-05-08T00:00:00.000Z\",\n      \"count\": 39\n    }\n  ],\n  \"hasTestScript\": true\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/cross-spawn/expected-npm.json",
    "content": "{\n  \"downloads\": [\n    {\n      \"from\": \"2016-05-08T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 14211\n    },\n    {\n      \"from\": \"2016-05-02T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 243516\n    },\n    {\n      \"from\": \"2016-04-09T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 1616191\n    },\n    {\n      \"from\": \"2016-02-09T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 5178015\n    },\n    {\n      \"from\": \"2015-11-11T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 9602846\n    },\n    {\n      \"from\": \"2015-05-10T00:00:00.000Z\",\n      \"to\": \"2016-05-09T00:00:00.000Z\",\n      \"count\": 15119420\n    }\n  ],\n  \"starsCount\": 10\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/cross-spawn/expected-source.json",
    "content": "{\n  \"files\": {\n    \"readmeSize\": 2709,\n    \"testsSize\": 20813,\n    \"hasNpmIgnore\": true\n  },\n  \"linters\": [\n    \"editorconfig\",\n    \"jshint\"\n  ],\n  \"badges\": [\n    {\n      \"urls\": {\n        \"original\": \"http://img.shields.io/npm/dm/cross-spawn.svg\",\n        \"shields\": \"https://img.shields.io/npm/dm/cross-spawn.svg\",\n        \"content\": \"https://img.shields.io/npm/dm/cross-spawn.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"downloads\",\n        \"modifiers\": {\n          \"type\": \"dm\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"http://img.shields.io/npm/v/cross-spawn.svg\",\n        \"shields\": \"https://img.shields.io/npm/v/cross-spawn.svg\",\n        \"content\": \"https://img.shields.io/npm/v/cross-spawn.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"version\",\n        \"modifiers\": {\n          \"type\": \"v\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"http://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.svg\",\n        \"service\": \"https://api.travis-ci.org/IndigoUnited/node-cross-spawn.svg?branch=master\",\n        \"shields\": \"https://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.svg\",\n        \"content\": \"https://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.json\"\n      },\n      \"info\": {\n        \"service\": \"travis\",\n        \"type\": \"build\",\n        \"modifiers\": {\n          \"branch\": \"master\"\n        }\n      }\n    },\n    {\n      \"info\": {\n        \"service\": \"appveyor\",\n        \"type\": \"build\"\n      },\n      \"urls\": {\n        \"content\": \"https://img.shields.io/appveyor/ci/satazor/node-cross-spawn.json\",\n        \"original\": \"https://img.shields.io/appveyor/ci/satazor/node-cross-spawn.svg\",\n        \"service\": \"https://ci.appveyor.com/api/projects/status/satazor/node-cross-spawn\",\n        \"shields\": \"https://img.shields.io/appveyor/ci/satazor/node-cross-spawn.svg\"\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/david/IndigoUnited/node-cross-spawn.svg\",\n        \"service\": \"https://david-dm.org/IndigoUnited/node-cross-spawn.svg\",\n        \"shields\": \"https://img.shields.io/david/IndigoUnited/node-cross-spawn.svg\",\n        \"content\": \"https://img.shields.io/david/IndigoUnited/node-cross-spawn.json\"\n      },\n      \"info\": {\n        \"service\": \"david\",\n        \"type\": \"dependencies\",\n        \"modifiers\": {\n          \"statusType\": \"normal\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.svg\",\n        \"service\": \"https://david-dm.org/IndigoUnited/node-cross-spawn/dev-status.svg\",\n        \"shields\": \"https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.svg\",\n        \"content\": \"https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.json\"\n      },\n      \"info\": {\n        \"service\": \"david\",\n        \"type\": \"dependencies\",\n        \"modifiers\": {\n          \"statusType\": \"dev\"\n        }\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/hapi/data.json",
    "content": "{\n   \"name\": \"hapi\",\n   \"description\": \"HTTP Server framework\",\n   \"dist-tags\": {\n       \"latest\": \"13.4.0\",\n       \"lts\": \"9.5.1\"\n   },\n   \"versions\": {\n       \"0.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server based on Express with native OAuth 2.0 support\",\n           \"version\": \"0.0.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hueniverse/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.4.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n           },\n           \"_id\": \"hapi@0.0.1\",\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.0.6\",\n           \"_nodeVersion\": \"v0.5.0-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"fbf22dbb502824659ade93eee3e30cb72df97bee\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.0.1.tgz\"\n           },\n           \"scripts\": {\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.0.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server based on Express with native OAuth 2.0 support\",\n           \"version\": \"0.0.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hueniverse/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.0.2\",\n           \"devDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.0.105\",\n           \"_nodeVersion\": \"v0.6.1-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"582451da95ca4a650755f6d6f04d4e13539423b8\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.0.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.0.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server based on Express with native OAuth 2.0 support\",\n           \"version\": \"0.0.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hueniverse/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"sugar\": \"1.1.x\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.0.3\",\n           \"devDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.0.105\",\n           \"_nodeVersion\": \"v0.6.1-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"08d84a883e38a610d49f2c413e57cfe717411127\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.0.3.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.0.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server based on Express with native OAuth 2.0 support\",\n           \"version\": \"0.0.4\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hueniverse/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"sugar\": \"1.1.x\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.0.4\",\n           \"devDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.0.105\",\n           \"_nodeVersion\": \"v0.6.1-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"3a739045c3ad04b8747155d10ee544820bfab71f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.0.4.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.0.5\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server based on Express with native OAuth 2.0 support\",\n           \"version\": \"0.0.5\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hueniverse/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"sugar\": \"1.1.x\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.0.5\",\n           \"devDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.0.105\",\n           \"_nodeVersion\": \"v0.6.1-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"c461c3ced42ead36d8b69daa9b8d7ad0684a92b6\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.0.5.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.0.6\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server based on Express with native OAuth 2.0 support\",\n           \"version\": \"0.0.6\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hueniverse/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"sugar\": \"1.1.x\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.0.6\",\n           \"devDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.0.105\",\n           \"_nodeVersion\": \"v0.6.1-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"3b0fe1b9c1e728dd06347cde57bb7d46193e3012\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.0.6.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework based on Express\",\n           \"version\": \"0.1.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"express\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"sugar\": \"1.1.x\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.1.0\",\n           \"devDependencies\": {\n           },\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.0-3\",\n           \"_nodeVersion\": \"v0.6.9-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"e25a612fec92af8a1017eca405dc4e3832de867d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.1.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.1.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework based on Express\",\n           \"version\": \"0.1.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"express\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"sugar\": \"1.1.x\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.1.1\",\n           \"devDependencies\": {\n           },\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.0-3\",\n           \"_nodeVersion\": \"v0.6.9-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"5bfb5cd25efd2c6163a4db6819c90cc2675fb649\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.1.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.1.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework based on Express\",\n           \"version\": \"0.1.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"express\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"sugar\": \"1.1.x\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.1.2\",\n           \"devDependencies\": {\n           },\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.0-3\",\n           \"_nodeVersion\": \"v0.6.9-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"d9a85ce800a6b3e55981335e3800c8abb6cb7853\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.1.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.1.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework based on Express\",\n           \"version\": \"0.1.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"express\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"sugar\": \"1.1.x\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.1.3\",\n           \"devDependencies\": {\n           },\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.0-3\",\n           \"_nodeVersion\": \"v0.6.9-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"95fa64e4ecac897a2e397f183fc6184dfa0d1d26\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.1.3.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.2.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework based on Express\",\n           \"version\": \"0.2.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"express\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.2.0\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.0-3\",\n           \"_nodeVersion\": \"v0.6.9-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"82f62e416e62e28540fe1bb25bca5aec11181e94\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.2.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.2.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework based on Express\",\n           \"version\": \"0.2.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"express\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"express\": \"2.x.x\",\n               \"qs\": \"0.4.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.2.1\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.0-3\",\n           \"_nodeVersion\": \"v0.6.9-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"eb08fa2aeb0db71b65941f9adaf99ca74bf9b15c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.2.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.3.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.3.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"director\": \"1.0.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"jscoverage\": \"0.1.0\",\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.3.0\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.0-3\",\n           \"_nodeVersion\": \"v0.6.9-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"b3271bfc20bbf62131cb48e300caedd899e3f8b1\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.3.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.4.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.4.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.0.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\"\n           },\n           \"devDependencies\": {\n               \"jscoverage\": \"0.1.0\",\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.4.0\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.21\",\n           \"_nodeVersion\": \"v0.6.18-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"a05172cc02fd9199c8f856455ded9c6a87b77e0d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.4.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.4.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.4.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.0.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\"\n           },\n           \"devDependencies\": {\n               \"jscoverage\": \"0.1.0\",\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.4.1\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.21\",\n           \"_nodeVersion\": \"v0.6.18-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"bc9078be8cb2791987a5d282b31900dbe667bce6\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.4.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.4.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.4.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.0.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\"\n           },\n           \"devDependencies\": {\n               \"jscoverage\": \"0.1.0\",\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.4.2\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.21\",\n           \"_nodeVersion\": \"v0.6.18-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"2a5a23c597ea7d65b890a0d10d4ff1e355b9d2e2\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.4.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.4.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.4.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.0.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"sinon\": \"1.3.4\"\n           },\n           \"devDependencies\": {\n               \"jscoverage\": \"0.1.0\",\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.4.3\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.21\",\n           \"_nodeVersion\": \"v0.6.18-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"451f55fef70679905bfae068fdefbb879efd3831\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.4.3.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.4.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.4.4\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.0.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"sinon\": \"1.3.4\"\n           },\n           \"devDependencies\": {\n               \"jscoverage\": \"0.1.0\",\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.4.4\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.21\",\n           \"_nodeVersion\": \"v0.6.18-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"f4f978c05e02d0f91eec52e13e0c41ce8df30640\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.4.4.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.5.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.5.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.0.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"sinon\": \"1.3.4\",\n               \"joi\": \"0.3.x\"\n           },\n           \"devDependencies\": {\n               \"jscoverage\": \"0.1.0\",\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"_id\": \"hapi@0.5.0\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.21\",\n           \"_nodeVersion\": \"v0.6.18-pre\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"57dbb1174edb23d11140b90218720b162836b17d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.5.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.5.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.5.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi.git\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.0.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"sinon\": \"1.3.4\",\n               \"joi\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"jscoverage\": \"0.1.0\",\n               \"mocha\": \"0.x.x\",\n               \"request\": \"2.9.100\",\n               \"should\": \"0.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"_id\": \"hapi@0.5.1\",\n           \"optionalDependencies\": {\n           },\n           \"_engineSupported\": true,\n           \"_npmVersion\": \"1.1.21\",\n           \"_nodeVersion\": \"v0.8.0\",\n           \"_defaultsLoaded\": true,\n           \"dist\": {\n               \"shasum\": \"379735cd6b473561aa174466b7f57296887e4c21\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.5.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.6.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.6.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"redis\": \"0.x.x\",\n               \"ws\": \"0.4.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_id\": \"hapi@0.6.0\",\n           \"dist\": {\n               \"shasum\": \"9e984d1ad655ba3bba8e5c86b2ac50e1ac19e68c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.6.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.6.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.6.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"redis\": \"0.x.x\",\n               \"ws\": \"0.4.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_id\": \"hapi@0.6.1\",\n           \"dist\": {\n               \"shasum\": \"48453c9115429212feea5086c0c8294785d23ece\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.6.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.5.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.5.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.1.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"redis\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_id\": \"hapi@0.5.2\",\n           \"dist\": {\n               \"shasum\": \"6742519c7cc762dea9f551466355bdbc4e0b762c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.5.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.7.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.7.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"mac\": \"0.x.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"ws\": \"0.4.x\",\n               \"shot\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.7.0\",\n           \"dist\": {\n               \"shasum\": \"0a14226efc1a618be67bf819c3043b734fd7d76f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.7.0.tgz\"\n           },\n           \"_npmVersion\": \"1.1.61\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.7.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.7.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"mac\": \"0.x.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"ws\": \"0.4.x\",\n               \"shot\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.7.1\",\n           \"dist\": {\n               \"shasum\": \"2fc89d27ce4476cae21db8165313889c9bada703\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.7.1.tgz\"\n           },\n           \"_npmVersion\": \"1.1.61\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.8.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.8.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"mac\": \"0.x.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"ws\": \"0.4.x\",\n               \"shot\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"mongodb\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.8.0\",\n           \"dist\": {\n               \"shasum\": \"8db8f0edfcaa7d34b0f03c10ac9143b5302b532e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.8.0.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.8.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.8.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"mac\": \"0.x.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"ws\": \"0.4.x\",\n               \"shot\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"mongodb\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.8.1\",\n           \"dist\": {\n               \"shasum\": \"31fb85ebd5b35b96c53badcef14e4f22473d2f1d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.8.1.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.8.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.8.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"mac\": \"0.x.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"ws\": \"0.4.x\",\n               \"shot\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"mongodb\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.8.2\",\n           \"dist\": {\n               \"shasum\": \"99f84de82656135b200bc2c6fc705325aaea4e5c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.8.2.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.8.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.8.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"mac\": \"0.x.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"ws\": \"0.4.x\",\n               \"shot\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"mongodb\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.8.3\",\n           \"dist\": {\n               \"shasum\": \"2a736ad2d3e44e31dc440751e78394640b38d59f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.8.3.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.8.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.8.4\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"mac\": \"0.x.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"ws\": \"0.4.x\",\n               \"shot\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"mongodb\": \"1.1.x\",\n               \"multipart-parser\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.8.4\",\n           \"dist\": {\n               \"shasum\": \"c4d1864c6b6494b536927227f08e38241227bc0a\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.8.4.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.9.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.9.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"oz\": \"0.0.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"shot\": \"0.0.x\",\n               \"mongodb\": \"1.1.x\",\n               \"multipart-parser\": \"0.x.x\",\n               \"lout\": \"0.x.x\",\n               \"hapi-helmet\": \"0.x.x\",\n               \"mime\": \"~1.2.7\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.9.0\",\n           \"dist\": {\n               \"shasum\": \"d3fa6a579a267dfb7c2f2639b76d94e81dc6d00f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.9.0.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.9.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.9.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"oz\": \"0.0.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"shot\": \"0.0.x\",\n               \"mongodb\": \"1.1.x\",\n               \"multipart-parser\": \"0.x.x\",\n               \"lout\": \"0.x.x\",\n               \"hapi-helmet\": \"0.x.x\",\n               \"mime\": \"~1.2.7\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.9.1\",\n           \"dist\": {\n               \"shasum\": \"e54dd7c0cb931207ab3cda295163c1f6a82860ca\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.9.1.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.9.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.9.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"oz\": \"0.0.x\",\n               \"request\": \"2.11.x\",\n               \"redis\": \"0.8.x\",\n               \"shot\": \"0.0.x\",\n               \"mongodb\": \"1.1.x\",\n               \"formidable\": \"1.0.x\",\n               \"lout\": \"0.x.x\",\n               \"hapi-helmet\": \"0.x.x\",\n               \"mime\": \"~1.2.7\",\n               \"hawk\": \"0.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"sinon\": \"1.3.4\",\n               \"chai\": \"1.2.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.9.2\",\n           \"dist\": {\n               \"shasum\": \"b986c5413961df2425008a764e55e29cb73f8453\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.9.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.10.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.10.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.0.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.10.0\",\n           \"dist\": {\n               \"shasum\": \"f01b02faa48f40c8a3dcf05225c77fbea6578c42\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.10.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.10.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.10.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.0.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.10.1\",\n           \"dist\": {\n               \"shasum\": \"1dc7258487abc77ede83a556bed3cde436c23aed\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.10.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.11.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.11.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.3.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \"1.0.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.11.0\",\n           \"dist\": {\n               \"shasum\": \"57d0e73eea9302d28967bc7eeb169e21bc34ae1f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.11.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.11.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.11.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.3.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \"1.0.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.11.1\",\n           \"dist\": {\n               \"shasum\": \"a3f53a7d926a423e3681841b2790bb9a332cd9c3\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.11.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.11.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.11.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.3.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \"1.0.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.11.2\",\n           \"dist\": {\n               \"shasum\": \"0d563000ef2c11b980837966811ac9979d9a24e0\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.11.2.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.11.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.11.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"boom\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.5.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \"1.0.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.11.3\",\n           \"dist\": {\n               \"shasum\": \"487082db71a9f867c1e8c909fb42582c543e35ff\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.11.3.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.12.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.12.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.2.x\",\n               \"boom\": \"0.2.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.6.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.1.x\",\n               \"cryptiles\": \"0.0.x\",\n               \"iron\": \"0.1.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \">= 1.0.8\",\n               \"jade\": \"~0.28.1\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.12.0\",\n           \"dist\": {\n               \"shasum\": \"37428569ca26ce9915f76b14eed574ae7481d099\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.12.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.13.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.13.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.3.x\",\n               \"boom\": \"0.2.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.6.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.1.x\",\n               \"cryptiles\": \"0.0.x\",\n               \"iron\": \"0.1.x\",\n               \"semver\": \"1.1.0\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \">= 1.0.8\",\n               \"jade\": \"~0.28.1\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.13.0\",\n           \"dist\": {\n               \"shasum\": \"e19c4904afebe687399afaec0db582da9e1cfa53\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.13.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.13.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.13.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.3.x\",\n               \"boom\": \"0.2.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.6.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.1.x\",\n               \"cryptiles\": \"0.0.x\",\n               \"iron\": \"0.1.x\",\n               \"semver\": \"1.1.0\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \">= 1.0.8\",\n               \"jade\": \"~0.28.1\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.13.1\",\n           \"dist\": {\n               \"shasum\": \"bdaa1939b924a606aab41499c54117390db9486f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.13.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.13.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.13.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.3.x\",\n               \"boom\": \"0.2.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.6.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.1.x\",\n               \"cryptiles\": \"0.0.x\",\n               \"iron\": \"0.1.x\",\n               \"semver\": \"1.1.0\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \">= 1.0.8\",\n               \"jade\": \"~0.28.1\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.13.2\",\n           \"dist\": {\n               \"shasum\": \"75f15d0f4d3775fefda24e43dd82008a6b748b22\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.13.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.11.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.11.4\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.0.x\",\n               \"boom\": \"0.0.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.5.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.0.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \"1.0.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.11.4\",\n           \"dist\": {\n               \"shasum\": \"c21611aef46e8dba6d51962b038a05db531e5bae\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.11.4.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.13.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.13.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"authentication\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.8.0\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.3.x\",\n               \"boom\": \"0.2.x\",\n               \"joi\": \"0.0.x\",\n               \"lout\": \"0.0.x\",\n               \"hapi-helmet\": \"0.0.x\",\n               \"hapi-log\": \"0.0.x\",\n               \"hawk\": \"0.6.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.0.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.1.x\",\n               \"cryptiles\": \"0.0.x\",\n               \"iron\": \"0.1.x\",\n               \"semver\": \"1.1.0\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \">= 1.0.8\",\n               \"jade\": \"~0.28.1\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.13.3\",\n           \"dist\": {\n               \"shasum\": \"4ab9aa83b5d2ef7d4cdbe0953e6dd6d8e2d5e452\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.13.3.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.14.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.14.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.4.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.0.x\",\n               \"good\": \"0.0.x\",\n               \"hawk\": \"0.7.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.1.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"blanket\": \"1.0.x\",\n               \"travis-cov\": \"0.2.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"furball\": \"0.0.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make test-cov\",\n               \"blanket\": {\n                   \"pattern\": \"//^((?!/node_modules/)(?!/test/helpers/)(?!/test/unit/)(?!/test/integration/).)*$/ig\",\n                   \"onlyCwd\": true,\n                   \"data-cover-flags\": {\n                       \"branchTracking\": true\n                   }\n               },\n               \"travis-cov\": {\n                   \"threshold\": 100\n               }\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.14.0\",\n           \"dist\": {\n               \"shasum\": \"8b54d7b1b5f301284ba8b4c664fa88739c264aab\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.14.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.14.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.14.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.4.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.0.x\",\n               \"good\": \"0.0.x\",\n               \"hawk\": \"0.7.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.1.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"blanket\": \"1.0.x\",\n               \"travis-cov\": \"0.2.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"furball\": \"0.0.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make test-cov\",\n               \"blanket\": {\n                   \"pattern\": \"//^((?!/node_modules/)(?!/test/helpers/)(?!/test/unit/)(?!/test/integration/).)*$/ig\",\n                   \"onlyCwd\": true,\n                   \"data-cover-flags\": {\n                       \"branchTracking\": true\n                   }\n               },\n               \"travis-cov\": {\n                   \"threshold\": 100\n               }\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.14.1\",\n           \"dist\": {\n               \"shasum\": \"46277e2bb53042472288d564797654e62287ecdc\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.14.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.14.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.14.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.5.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.1.x\",\n               \"good\": \"0.0.x\",\n               \"hawk\": \"0.7.x\",\n               \"shot\": \"0.0.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.11.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.1.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"blanket\": \"1.0.x\",\n               \"travis-cov\": \"0.2.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"furball\": \"0.0.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make test-cov\",\n               \"blanket\": {\n                   \"pattern\": \"//^((?!/node_modules/)(?!/test/helpers/)(?!/test/unit/)(?!/test/integration/).)*$/ig\",\n                   \"onlyCwd\": true,\n                   \"data-cover-flags\": {\n                       \"branchTracking\": true\n                   }\n               },\n               \"travis-cov\": {\n                   \"threshold\": 100\n               }\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/walmartlabs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.14.2\",\n           \"dist\": {\n               \"shasum\": \"9a2d5039cbd70d8f93f6bbd1f67fe556d88bb1d7\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.14.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.6.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.14.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"chai\": \"1.x.x\",\n               \"sinon\": \"1.x.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"blanket\": \"1.0.x\",\n               \"travis-cov\": \"0.2.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make test-cov\",\n               \"blanket\": {\n                   \"pattern\": \"//^((?!/node_modules/)(?!/test/helpers/)(?!/test/unit/)(?!/test/integration/).)*$/ig\",\n                   \"onlyCwd\": true,\n                   \"data-cover-flags\": {\n                       \"branchTracking\": true\n                   }\n               },\n               \"travis-cov\": {\n                   \"threshold\": 100\n               }\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.0\",\n           \"dist\": {\n               \"shasum\": \"fcf7c945a64a52dc27e0ede49dcd5ba6b6ffac4b\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.6.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.14.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.1\",\n           \"dist\": {\n               \"shasum\": \"db1e556d4c29ccfd1d5922adc74d4653eb94d1fe\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.14\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.7.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.16.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.2\",\n           \"dist\": {\n               \"shasum\": \"8ad425e515a5a7142606db935d1ba59b7237154f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.14\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.7.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.16.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.3\",\n           \"dist\": {\n               \"shasum\": \"2d8ea344d60a824effabf07426e3e5110d5ac42f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.3.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.2\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.4\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.7.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.16.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.4\",\n           \"dist\": {\n               \"shasum\": \"deb4916116363241b41d464a5234b0b5090c7d0d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.4.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.5\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.5\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.6.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.16.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.5\",\n           \"dist\": {\n               \"shasum\": \"622fc4a6535f9cf7a773d0c2e5343605bba6915e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.5.tgz\"\n           },\n           \"_npmVersion\": \"1.1.65\",\n           \"_npmUser\": {\n               \"name\": \"thegoleffect\",\n               \"email\": \"thegoleffect@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.6\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.6\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.6.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.16.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.6\",\n           \"_from\": \".\",\n           \"dist\": {\n               \"shasum\": \"bb09a7c3092da7731bcccdf2fac8fdde1d51a253\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.6.tgz\"\n           },\n           \"_npmVersion\": \"1.2.14\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.7\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.7\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.6.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.16.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.7\",\n           \"_from\": \".\",\n           \"dist\": {\n               \"shasum\": \"869a499fcbc0d34f192934cac11b26d8c3ce75f7\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.7.tgz\"\n           },\n           \"_npmVersion\": \"1.2.14\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.8\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.8\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.6.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.16.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.8\",\n           \"_from\": \".\",\n           \"dist\": {\n               \"shasum\": \"006b6142f48552da30de0398479003fa91df38b8\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.8.tgz\"\n           },\n           \"_npmVersion\": \"1.2.14\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.15.9\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.15.9\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.6.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.10.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.16.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.2.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.15.9\",\n           \"_from\": \".\",\n           \"dist\": {\n               \"shasum\": \"f97bcfa29992669f88512b60eeeaba81f00c3eb0\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.15.9.tgz\"\n           },\n           \"_npmVersion\": \"1.2.11\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.16.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"0.16.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.8.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.7.x\",\n               \"boom\": \"0.3.x\",\n               \"joi\": \"0.2.x\",\n               \"hawk\": \"0.11.x\",\n               \"shot\": \"0.1.x\",\n               \"oz\": \"0.1.x\",\n               \"async\": \"0.1.x\",\n               \"request\": \"2.16.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"catbox\": \"0.4.x\",\n               \"json-stringify-safe\": \"3.0.x\",\n               \"cryptiles\": \"0.1.x\",\n               \"iron\": \"0.2.x\",\n               \"lru-cache\": \"2.2.x\",\n               \"optimist\": \"0.3.x\",\n               \"negotiator\": \"0.2.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.0.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.28.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@0.16.0\",\n           \"dist\": {\n               \"shasum\": \"fc8aca718572b3391cacf842ffc4d1160f322175\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.16.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.14\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.0.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.8.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.5.x\",\n               \"hawk\": \"0.13.x\",\n               \"shot\": \"0.2.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"request\": \"2.20.x\",\n               \"formidable\": \"1.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@1.0.0\",\n           \"dist\": {\n               \"shasum\": \"a39b490685faa6202a774f125b5511fdffa39172\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.0.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.18\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.0.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.8.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.5.x\",\n               \"hawk\": \"0.13.x\",\n               \"shot\": \"0.2.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"request\": \"2.21.x\",\n               \"formidable\": \"1.0.13\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@1.0.1\",\n           \"dist\": {\n               \"shasum\": \"ab38b4a71e28ee4d7ee2f625152ef8255b375ff4\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.0.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.18\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.0.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.0.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.8.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.5.x\",\n               \"hawk\": \"0.13.x\",\n               \"shot\": \"0.2.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"request\": \"2.21.x\",\n               \"formidable\": \"1.0.13\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.0.2\",\n           \"dist\": {\n               \"shasum\": \"9cc5c35435694b734f74d9456e98b11991780e9e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.0.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.19\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.0.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.0.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.8.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.5.x\",\n               \"hawk\": \"0.13.x\",\n               \"shot\": \"0.3.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"request\": \"2.21.x\",\n               \"formidable\": \"1.0.13\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.0.3\",\n           \"dist\": {\n               \"shasum\": \"db4ad59ae788c77c0d04f385b0802d83dd954db8\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.0.3.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.19\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.1.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.8.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.5.x\",\n               \"hawk\": \"0.13.x\",\n               \"shot\": \"0.3.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"request\": \"2.21.x\",\n               \"formidable\": \"1.0.13\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.1.0\",\n           \"dist\": {\n               \"shasum\": \"631a9558455317d5d1d31ac2d3476c34cef02023\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.1.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.19\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.2.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.2.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.5\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.8.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.13.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@1.2.0\",\n           \"dist\": {\n               \"shasum\": \"ffd90ee427a22f928c24b7ef943cc61693cc1bb7\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.2.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.18\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.3.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.3.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@1.3.0\",\n           \"dist\": {\n               \"shasum\": \"02a9a6c9b21a62b3ebbef05370adab954844bd6b\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.3.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.18\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.4.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.4.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.4.0\",\n           \"dist\": {\n               \"shasum\": \"d2951f2967e08274a3152703743f298da33b2033\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.4.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.5.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.5.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.5.0\",\n           \"dist\": {\n               \"shasum\": \"55beee98b2eb5def6357e3849124a3670b36dcfe\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.5.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.6.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.6.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@1.6.0\",\n           \"dist\": {\n               \"shasum\": \"d6b6432ae12e759685c7674dae4fa8e0df0d9c7c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.6.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.18\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.6.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.6.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.6.1\",\n           \"dist\": {\n               \"shasum\": \"b0a4c835fc9c60acaa3a026a2be2cba17f34d639\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.6.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.23\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.6.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.6.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"_id\": \"hapi@1.6.2\",\n           \"dist\": {\n               \"shasum\": \"fa5391bdd1a2077cdfd85ee3b0981b5ebca3868c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.6.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.18\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.7.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.7.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.7.0\",\n           \"dist\": {\n               \"shasum\": \"72adbff309b4f954f9173293d376c6dcb759fe63\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.7.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.24\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.7.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.7.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.7.1\",\n           \"dist\": {\n               \"shasum\": \"07412ce4813badc60e9efb85df1a814047549b57\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.7.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.24\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.7.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.7.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.7.2\",\n           \"dist\": {\n               \"shasum\": \"f1baca56aa4ac79150de6f2c4f5741ab520e1577\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.7.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.24\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.7.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.7.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.7.3\",\n           \"dist\": {\n               \"shasum\": \"6ad18e80832dd593b27e732f2782de05c638e81b\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.7.3.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.23\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.8.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.8.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.8.0\",\n           \"dist\": {\n               \"shasum\": \"2de30af1415b7f8cb17e9a4709b38956c56d2591\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.8.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.23\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.8.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.8.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.8.1\",\n           \"dist\": {\n               \"shasum\": \"ef818dbbce0e65a97ba24867edd18247f708c29f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.8.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.30\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.8.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.8.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.6\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"0.15.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.4.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"1.1.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.21.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.30.x\",\n               \"complexity-report\": \"0.x.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.8.2\",\n           \"dist\": {\n               \"shasum\": \"ed4940d0b1ed5a4ef9e9d2203da72766d4b00caa\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.8.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.32\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.8.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.8.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.8.3\",\n           \"dist\": {\n               \"shasum\": \"31077a025ecccb2e1e762dc86569297506e0bc51\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.8.3.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.32\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.9.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.9.0\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.3.x\",\n               \"catbox\": \"0.6.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.1.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.9.0\",\n           \"dist\": {\n               \"shasum\": \"b809278c36ed6e89489af5089a706a860887c9d2\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.9.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.2.32\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.9.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.9.1\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.4.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.9.1\",\n           \"dist\": {\n               \"shasum\": \"96cda90c339196e6113988a2f10998231c56e04d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.9.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.5\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.9.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.9.2\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.4.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.9.2\",\n           \"dist\": {\n               \"shasum\": \"22f8c09edfabec4976040ae34900a29d97d3165c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.9.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.5\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.9.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.9.3\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.4.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.9.3\",\n           \"dist\": {\n               \"shasum\": \"5ffdd19551ed1960c6724872e23a2fbdfc9fe568\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.9.3.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.5\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.9.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.9.4\",\n           \"author\": {\n               \"name\": \"Eran Hammer\",\n               \"email\": \"eran@hueniverse.com\",\n               \"url\": \"http://hueniverse.com\"\n           },\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"0.9.x\",\n               \"boom\": \"0.4.x\",\n               \"joi\": \"0.4.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"0.4.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.9.4\",\n           \"dist\": {\n               \"shasum\": \"5932774b9f4511d3e4c40a99e8c46ce633ea21b4\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.9.4.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.5\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.9.5\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.9.5\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.0.x\",\n               \"boom\": \"1.0.x\",\n               \"joi\": \"1.1.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.0.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.9.5\",\n           \"dist\": {\n               \"shasum\": \"eb851035f6ab06208f786b89b3aec51ff8fd78f4\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.9.5.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.5\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.9.6\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.9.6\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.0.x\",\n               \"boom\": \"1.0.x\",\n               \"joi\": \"1.1.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.0.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.9.6\",\n           \"dist\": {\n               \"shasum\": \"3b58fc341de7c61e1a77daba8226659e3e84f0e9\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.9.6.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.5\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.9.7\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.9.7\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.0.x\",\n               \"boom\": \"1.0.x\",\n               \"joi\": \"1.1.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.1.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.9.7\",\n           \"dist\": {\n               \"shasum\": \"b54eb8ed49fa6658839d8c9de6ed765de718f4f5\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.9.7.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.5\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.10.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.10.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.0.x\",\n               \"boom\": \"1.0.x\",\n               \"joi\": \"1.1.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.1.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.10.0\",\n           \"dist\": {\n               \"shasum\": \"f033274f9bec25e394f7b3665a48bf28ad40310c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.10.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.8\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.11.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.11.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.0.x\",\n               \"boom\": \"1.0.x\",\n               \"joi\": \"1.1.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.1.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.11.0\",\n           \"dist\": {\n               \"shasum\": \"6e0f5a744b2c9c4250d9e52e7662ddb72d592b1c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.11.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.5\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.11.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.11.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.0.x\",\n               \"boom\": \"1.0.x\",\n               \"joi\": \"1.1.x\",\n               \"catbox\": \"1.0.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.1.x\",\n               \"cryptiles\": \"0.2.x\",\n               \"iron\": \"0.3.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"0.2.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.11.1\",\n           \"dist\": {\n               \"shasum\": \"a11faa96fa069c2b582fca17e4002ee7297fa441\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.11.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.8\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.12.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.12.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.12.0\",\n           \"dist\": {\n               \"shasum\": \"b8c3f224ae7dfeb1bf406b57c58e6fb044748a1a\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.12.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.8\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.13.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.13.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.13.0\",\n           \"dist\": {\n               \"shasum\": \"3d83bf637706b1eeb8db55e4d8c82c37596a05c1\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.13.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"wyatt\",\n               \"email\": \"wpreul@gmail.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.14.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.14.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"2.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.14.0\",\n           \"dist\": {\n               \"shasum\": \"d15e59f9a4dd429653f938d40799beb57242e451\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.14.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.8\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.15.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.15.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.15.0\",\n           \"dist\": {\n               \"shasum\": \"27fcec6485cd79c332cba87eaed480ff6b2ab8ce\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.15.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.16.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.16.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.0.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.16.0\",\n           \"dist\": {\n               \"shasum\": \"f578b64860263f2333041294e124478f03593063\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.16.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.16.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.16.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.16.1\",\n           \"dist\": {\n               \"shasum\": \"e81cf98c1fd9bb46d2f96ec76de1f5cfe3dcfc4d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.16.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.17.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.17.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.17.0\",\n           \"dist\": {\n               \"shasum\": \"c3a7abfc9f121f8ad6016bed7b569fbaf3ada51a\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.17.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.18.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.18.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.18.0\",\n           \"dist\": {\n               \"shasum\": \"0ae1cd7a01a29fbac56abb54aa81c935507f70f9\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.18.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.19.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.19.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.19.0\",\n           \"dist\": {\n               \"shasum\": \"5866589093c77fc265f2f5499f63290460b4fe0f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.19.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.19.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.19.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.19.1\",\n           \"dist\": {\n               \"shasum\": \"f2585f1fa738d4fc8bf86afa0f4f8df0d94793b4\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.19.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.19.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.19.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.19.2\",\n           \"dist\": {\n               \"shasum\": \"91e57668c37b26b0b4425debf1f85d9d955372a6\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.19.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.19.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.19.3\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.19.3\",\n           \"dist\": {\n               \"shasum\": \"420996fac6139065187357e737c7f7e16d135b2d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.19.3.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.19.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.19.4\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.19.4\",\n           \"dist\": {\n               \"shasum\": \"d3928bc81fe8dac9db604fb4d8271c833883ba66\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.19.4.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.19.5\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.19.5\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.19.5\",\n           \"dist\": {\n               \"shasum\": \"e6c0584019bafc53a481ca03171b0a6133d37979\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.19.5.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.11\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"1.20.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"1.20.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"1.x.x\",\n               \"joi\": \"2.x.x\",\n               \"joi-v1\": \"1.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"hawk\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"cryptiles\": \"1.x.x\",\n               \"iron\": \"1.x.x\",\n               \"confidence\": \"0.8.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.0.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.3.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.0.x\",\n               \"alce\": \"1.0.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.22.x\",\n               \"handlebars\": \"1.1.x\",\n               \"jade\": \"0.33.x\",\n               \"hapi-plugin-test\": \"1.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@1.20.0\",\n           \"dist\": {\n               \"shasum\": \"c35b8ec66309249deae31c96127f0e55ca2b1828\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-1.20.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.14\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"2.0.0-preview\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.0.0-preview\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"2.x.x\",\n               \"joi\": \"2.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.30.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.0.0-preview\",\n           \"dist\": {\n               \"shasum\": \"1a94e59f782b81b501927e20c14ecc515b199352\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.0.0-preview.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.22\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.5.1-a\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.5.1-a\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.1.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"redis\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_id\": \"hapi@0.5.1-a\",\n           \"dist\": {\n               \"shasum\": \"b1ed7d988c720b3a5f033ddfa15f25e7caa3eb99\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.5.1a.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.5.1-b\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.5.1-b\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.1.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"redis\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_id\": \"hapi@0.5.1-b\",\n           \"dist\": {\n               \"shasum\": \"244171c78613402aa36fb0863e7d97aebbd826c1\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.5.1b.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.5.1-b2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.5.1-b2\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.1.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"redis\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_id\": \"hapi@0.5.1-b2\",\n           \"dist\": {\n               \"shasum\": \"fd8fadc6923dc091956ef3a30e17a1fb3e512bad\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.5.1b2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"0.5.1-c\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP API Server framework\",\n           \"version\": \"0.5.1-c\",\n           \"author\": {\n               \"name\": \"Eran Hammer-Lahav\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/walmartlabs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"http\",\n               \"mac\",\n               \"authentication\",\n               \"oauth\",\n               \"api\",\n               \"director\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.6.0\"\n           },\n           \"dependencies\": {\n               \"async\": \"0.1.18\",\n               \"director\": \"1.1.x\",\n               \"mac\": \"0.x.x\",\n               \"validator\": \"0.x.x\",\n               \"emailjs\": \"0.x.x\",\n               \"request\": \"2.9.x\",\n               \"redis\": \"0.x.x\"\n           },\n           \"devDependencies\": {\n               \"mocha\": \"1.x.x\",\n               \"should\": \"1.x.x\",\n               \"sinon\": \"1.3.4\"\n           },\n           \"scripts\": {\n               \"test\": \"make test && make unit\"\n           },\n           \"_id\": \"hapi@0.5.1-c\",\n           \"dist\": {\n               \"shasum\": \"0b56b505cb57d6293553c6d4156cf72a15c15048\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-0.5.1c.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"2.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"2.x.x\",\n               \"joi\": \"2.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"request\": \"2.30.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.0.0\",\n           \"dist\": {\n               \"shasum\": \"317e898487621efbc6ed7ffd3340456e6bfc13b4\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.0.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.23\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"2.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"2.x.x\",\n               \"joi\": \"2.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.1.0\",\n           \"dist\": {\n               \"shasum\": \"63ec72bd219d45b192738a731db22a8655106fe5\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.1.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.24\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"2.1.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.1.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"2.x.x\",\n               \"joi\": \"2.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.1.1\",\n           \"dist\": {\n               \"shasum\": \"161d01d22e7f5d102198bf85ad95b24bc7872f73\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.1.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.24\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"directories\": {\n           }\n       },\n       \"2.1.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.1.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"1.x.x\",\n               \"boom\": \"2.x.x\",\n               \"joi\": \"2.x.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.1.2\",\n           \"dist\": {\n               \"shasum\": \"66f60d74705da6f526519287aa7038c5c0ef1657\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.1.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"2.2.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.2.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^1.4.x\",\n               \"boom\": \"2.x.x\",\n               \"joi\": \"^2.7.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.2.0\",\n           \"dist\": {\n               \"shasum\": \"21703e73730768b22665bc33770fc25d84aa7e72\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.2.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"2.3.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.3.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^1.4.x\",\n               \"boom\": \"^2.2.x\",\n               \"joi\": \"^2.7.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.1.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.2.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.3.0\",\n           \"dist\": {\n               \"shasum\": \"3c579c5292593ccab174a847c690c539c9068e37\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.3.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"2.4.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.4.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^1.4.x\",\n               \"boom\": \"^2.2.x\",\n               \"joi\": \"^2.7.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.4.0\",\n           \"dist\": {\n               \"shasum\": \"bfe7c6792ec720ff0d187bf912f78275cd82bfd4\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.4.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.3.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"2.5.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.5.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^1.4.x\",\n               \"boom\": \"^2.2.x\",\n               \"joi\": \"^2.7.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.5.0\",\n           \"dist\": {\n               \"shasum\": \"6acb6e52775814a679184d5ffe85c74d9fe5cdeb\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.5.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"2.6.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"2.6.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \"0.10.x\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^1.5.x\",\n               \"boom\": \"^2.2.x\",\n               \"joi\": \"^2.7.x\",\n               \"catbox\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"2.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"dtrace-provider\": \"0.2.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@2.6.0\",\n           \"dist\": {\n               \"shasum\": \"0af9140df22dbe5c1728e97da565da015f068134\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-2.6.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.4\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"3.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"3.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^1.5.x\",\n               \"boom\": \"^2.2.x\",\n               \"joi\": \"^2.8.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@3.0.0\",\n           \"dist\": {\n               \"shasum\": \"9a4462e8a0fe8988e16d32313945dd946abced4b\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-3.0.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.4\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"3.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"3.0.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^1.5.x\",\n               \"boom\": \"^2.2.x\",\n               \"joi\": \"^2.8.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@3.0.1\",\n           \"dist\": {\n               \"shasum\": \"121fa3cf8fe95113e7bb5dd0707ada3dde598fc2\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-3.0.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.4\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"3.0.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"3.0.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^1.5.x\",\n               \"boom\": \"^2.2.x\",\n               \"joi\": \"^2.8.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@3.0.2\",\n           \"dist\": {\n               \"shasum\": \"fd2c0f0ac2655896d899d1b9ec9dfd8e3135aab7\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-3.0.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.4\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"3.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"3.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^1.5.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^2.9.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"1.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@3.1.0\",\n           \"dist\": {\n               \"shasum\": \"b4fad1719ef025789655d9b17f3bba81c9f2c496\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-3.1.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.3\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"4.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"4.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"3.x.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@4.0.0\",\n           \"dist\": {\n               \"shasum\": \"ec761412c986137e336aa666447d57987d74a74f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-4.0.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.3\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               },\n               {\n                   \"name\": \"thegoleffect\",\n                   \"email\": \"thegoleffect@gmail.com\"\n               },\n               {\n                   \"name\": \"wyatt\",\n                   \"email\": \"wpreul@gmail.com\"\n               }\n           ]\n       },\n       \"4.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"4.0.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^3.1.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@4.0.1\",\n           \"dist\": {\n               \"shasum\": \"f630331514aa247ea0cdc1de9bae8e5e53c4defe\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-4.0.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.3\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"4.0.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"4.0.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^3.1.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@4.0.2\",\n           \"dist\": {\n               \"shasum\": \"cdb390b6338d7a4a7df1c0ed2c190657ab343e03\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-4.0.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.3\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"4.0.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"4.0.3\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^3.1.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.2.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@4.0.3\",\n           \"dist\": {\n               \"shasum\": \"9a268ad107cd2b7b5bdda31bb3ed6f9fc35069a5\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-4.0.3.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.3\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"4.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"4.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^3.1.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@4.1.0\",\n           \"dist\": {\n               \"shasum\": \"d7a199fb0801e008f6b77896e37e71485a15d0f9\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-4.1.0.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.3\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"4.1.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"4.1.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^3.1.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@4.1.1\",\n           \"dist\": {\n               \"shasum\": \"01022fd5d728265be3f0db365bb56256b4e74676\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-4.1.1.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.3\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"4.1.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"4.1.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^3.1.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@4.1.2\",\n           \"dist\": {\n               \"shasum\": \"234668424e124a13d08fa32eeb01248820fe94fc\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-4.1.2.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.3\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"4.1.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"4.1.3\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^3.1.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@4.1.3\",\n           \"dist\": {\n               \"shasum\": \"437e4bdbf1256cb8197610b5931cba37d4c94a78\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-4.1.3.tgz\"\n           },\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.6\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"4.1.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"4.1.4\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^3.1.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.2.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@4.1.4\",\n           \"_shasum\": \"b5e999d7b26d75b8582fc91346bcf5b43a173300\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.9\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"b5e999d7b26d75b8582fc91346bcf5b43a173300\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-4.1.4.tgz\"\n           }\n       },\n       \"5.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"5.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.2.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@5.0.0\",\n           \"_shasum\": \"284cecc3e86f9aa1b3e25a513b5d2d7d20b0e42e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.9\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"284cecc3e86f9aa1b3e25a513b5d2d7d20b0e42e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-5.0.0.tgz\"\n           }\n       },\n       \"5.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"5.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"2.x.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"hapi-plugin-test\": \"2.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@5.1.0\",\n           \"_shasum\": \"9e09f2eabc8f4b6a59732d55c0fad369d32e7a21\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.9\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"9e09f2eabc8f4b6a59732d55c0fad369d32e7a21\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-5.1.0.tgz\"\n           }\n       },\n       \"6.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^2.3.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.0.0\",\n           \"_shasum\": \"7c8d65947d0273a35efc702e352b57a062f2c69b\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.9\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"7c8d65947d0273a35efc702e352b57a062f2c69b\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.0.0.tgz\"\n           }\n       },\n       \"6.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.0.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^2.3.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.0.1\",\n           \"_shasum\": \"4c1dd0b1f20a1be3fd741bbf33fe72d567c3d3c3\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.9\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"4c1dd0b1f20a1be3fd741bbf33fe72d567c3d3c3\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.0.1.tgz\"\n           }\n       },\n       \"6.0.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.0.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^2.3.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.0.2\",\n           \"_shasum\": \"172b00f35c3f4b0d8cc28bbba118114c7065e5f7\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.9\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"172b00f35c3f4b0d8cc28bbba118114c7065e5f7\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.0.2.tgz\"\n           }\n       },\n       \"6.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^2.3.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.1.0\",\n           \"_shasum\": \"37ccdc1126f6a86b3dfc060e5f0c1a4356e7e4f5\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.9\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"37ccdc1126f6a86b3dfc060e5f0c1a4356e7e4f5\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.1.0.tgz\"\n           }\n       },\n       \"6.2.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.2.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^2.3.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"^2.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"async\": \"0.8.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.2.0\",\n           \"_shasum\": \"70724851ffc12394535b8e3b90a97461091450de\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.9\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"70724851ffc12394535b8e3b90a97461091450de\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.2.0.tgz\"\n           }\n       },\n       \"6.2.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.2.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/spumko/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.22\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^2.3.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"3.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"async\": \"0.9.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/spumko/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hueniverse.com\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"bugs\": {\n               \"url\": \"https://github.com/spumko/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.2.1\",\n           \"_shasum\": \"b86f2abb07023e7af0b81a4e8ddd4ac79662f89a\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.9\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"b86f2abb07023e7af0b81a4e8ddd4ac79662f89a\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.2.1.tgz\"\n           }\n       },\n       \"6.2.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.2.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^2.3.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"3.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"async\": \"0.9.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"16a4b30306134a20a0c486bf3865da923289985a\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.2.2\",\n           \"_shasum\": \"74ea181cca9cb4492465bec2125debf0c96a1ec3\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.14\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"74ea181cca9cb4492465bec2125debf0c96a1ec3\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.2.2.tgz\"\n           }\n       },\n       \"6.3.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.3.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^2.3.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"^3.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"async\": \"0.9.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"0.6.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"84bc2bf137e625e0e27f088bc74bcdd022c53735\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.3.0\",\n           \"_shasum\": \"d720ddba724f98a521d4af90e2df52672838d24e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"d720ddba724f98a521d4af90e2df52672838d24e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.3.0.tgz\"\n           }\n       },\n       \"6.4.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.4.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"hoek\": \"^2.3.x\",\n               \"boom\": \"^2.4.x\",\n               \"joi\": \"^4.4.x\",\n               \"catbox\": \"^3.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"nipple\": \"^2.4.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"topo\": \"1.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"async\": \"0.9.x\",\n               \"multiparty\": \"3.2.x\",\n               \"mime\": \"1.2.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"optimist\": \"0.6.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\",\n               \"qs\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"3.x.x\",\n               \"handlebars\": \"1.2.x\",\n               \"jade\": \"1.0.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"ac04e5197671c25477356e9b521d9771b8b61907\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.4.0\",\n           \"_shasum\": \"1c0b1874ec1b919e42b75dc76d8ccde774b25e2e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"1c0b1874ec1b919e42b75dc76d8ccde774b25e2e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.4.0.tgz\"\n           }\n       },\n       \"6.5.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.5.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"boom\": \"^2.4.x\",\n               \"catbox\": \"^3.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"hoek\": \"^2.3.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"nipple\": \"^2.4.x\",\n               \"shot\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"qs\": \"1.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"mime-types\": \"1.0.x\",\n               \"multiparty\": \"3.2.x\",\n               \"negotiator\": \"0.4.x\",\n               \"optimist\": \"0.6.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"jade\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"5dc8d4b44ba0d2760481fc9d8f189b05661273d6\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.5.0\",\n           \"_shasum\": \"dd0365ea3cc59fbea202ef2d2353d6d9376f6b09\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"dd0365ea3cc59fbea202ef2d2353d6d9376f6b09\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.5.0.tgz\"\n           }\n       },\n       \"6.5.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.5.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"boom\": \"^2.4.x\",\n               \"catbox\": \"^3.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"hoek\": \"^2.3.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"nipple\": \"^2.4.x\",\n               \"shot\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"qs\": \"1.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"mime-types\": \"1.0.x\",\n               \"multiparty\": \"3.2.x\",\n               \"negotiator\": \"0.4.x\",\n               \"optimist\": \"0.6.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"jade\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"7cc8996802d6e2243db85a1e5f0d0421971f34de\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.5.1\",\n           \"_shasum\": \"ad093b19a430434bb2749f73e2fc96205a87c4b7\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"ad093b19a430434bb2749f73e2fc96205a87c4b7\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.5.1.tgz\"\n           }\n       },\n       \"6.6.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.6.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"boom\": \"^2.4.x\",\n               \"catbox\": \"^3.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"hoek\": \"^2.3.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"wreck\": \"3.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"qs\": \"1.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"mime-types\": \"1.0.x\",\n               \"multiparty\": \"3.2.x\",\n               \"negotiator\": \"0.4.x\",\n               \"optimist\": \"0.6.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"jade\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"9ade47eb5ea1382525b47ea87a7645e85e9fde0b\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.6.0\",\n           \"_shasum\": \"3bdbc3570950fac3eee43bd8a4b73c9518b2138a\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"3bdbc3570950fac3eee43bd8a4b73c9518b2138a\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.6.0.tgz\"\n           }\n       },\n       \"6.7.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.7.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"boom\": \"^2.4.x\",\n               \"catbox\": \"^3.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"hoek\": \"^2.3.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"wreck\": \"3.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"mime-types\": \"1.0.x\",\n               \"multiparty\": \"3.2.x\",\n               \"negotiator\": \"0.4.x\",\n               \"optimist\": \"0.6.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"jade\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"99e4f86ed9bbe74f6f2e5fdb9841274c67257a72\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.7.0\",\n           \"_shasum\": \"89a335d4242d76ff533d66186f4d268c25ce2c83\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"89a335d4242d76ff533d66186f4d268c25ce2c83\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.7.0.tgz\"\n           }\n       },\n       \"6.7.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.7.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"boom\": \"^2.4.x\",\n               \"catbox\": \"^3.1.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"hoek\": \"^2.3.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"wreck\": \"3.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"mime-types\": \"1.0.x\",\n               \"multiparty\": \"3.2.x\",\n               \"negotiator\": \"0.4.x\",\n               \"optimist\": \"0.6.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"jade\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"12fa3864d1de8503098c1b5fa0a7cfcb44164043\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.7.1\",\n           \"_shasum\": \"ff86db790367b553430cad9414cfd4f8e9687838\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.21\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"ff86db790367b553430cad9414cfd4f8e9687838\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.7.1.tgz\"\n           }\n       },\n       \"6.8.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.8.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"boom\": \"^2.5.x\",\n               \"catbox\": \"^3.3.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"wreck\": \"5.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"topo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"mime-db\": \"1.0.x\",\n               \"multiparty\": \"3.2.x\",\n               \"negotiator\": \"0.4.x\",\n               \"optimist\": \"0.6.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"jade\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"b6c7358f5f3fc659f87c2abac64b9a9f2cdc0ccb\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.8.0\",\n           \"_shasum\": \"72e8edfc254f85a0c5507c7846dfb8c1a9e98a4e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.23\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"72e8edfc254f85a0c5507c7846dfb8c1a9e98a4e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.8.0.tgz\"\n           }\n       },\n       \"6.8.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.8.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"boom\": \"^2.5.x\",\n               \"catbox\": \"^3.3.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"wreck\": \"5.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"topo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"mime-db\": \"1.0.x\",\n               \"multiparty\": \"3.2.x\",\n               \"negotiator\": \"0.4.x\",\n               \"optimist\": \"0.6.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"jade\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"f8100160115b15f067f93cf28967a67c982dd03e\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.8.1\",\n           \"_shasum\": \"7ee76e4875e5eae433587e74ac26a52777cb2f90\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.23\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"7ee76e4875e5eae433587e74ac26a52777cb2f90\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.8.1.tgz\"\n           }\n       },\n       \"6.9.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.9.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.30\"\n           },\n           \"dependencies\": {\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"^3.3.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"multiparty\": \"3.2.x\",\n               \"negotiator\": \"0.4.x\",\n               \"optimist\": \"0.6.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"contributors\": [\n               {\n                   \"name\": \"Eran Hammer\",\n                   \"email\": \"eran@hammer.io\",\n                   \"url\": \"http://hueniverse.com\"\n               },\n               {\n                   \"name\": \"Van Nguyen\",\n                   \"email\": \"the.gol.effect@gmail.com\"\n               },\n               {\n                   \"name\": \"Wyatt Preul\",\n                   \"email\": \"wpreul@gmail.com\",\n                   \"url\": \"http://jsgeek.com\"\n               }\n           ],\n           \"gitHead\": \"83201d29bcc8c8edc46d9ecf4f1d51b7f3a3a4ff\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.9.0\",\n           \"_shasum\": \"bd70482595b5ac3ac0f48869f730e8e651e86b32\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"bd70482595b5ac3ac0f48869f730e8e651e86b32\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.9.0.tgz\"\n           }\n       },\n       \"6.10.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.10.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"boom\": \"^2.5.x\",\n               \"bossy\": \"1.x.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"^3.3.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"negotiator\": \"0.4.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"fff431f1ed934a73c2dd07aefa8c8a4f550fbb46\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.10.0\",\n           \"_shasum\": \"2f3cf876438fb69ec001e05a5e343cea6d499e07\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"2f3cf876438fb69ec001e05a5e343cea6d499e07\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.10.0.tgz\"\n           }\n       },\n       \"6.11.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.11.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"bossy\": \"1.x.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"^3.3.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"c47828e335fc47c51f2564c9a02e5324f74cc47a\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.11.0\",\n           \"_shasum\": \"015810c297c35e07d2c0003876d85568e9b5abe5\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"015810c297c35e07d2c0003876d85568e9b5abe5\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.11.0.tgz\"\n           }\n       },\n       \"6.11.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"6.11.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"bossy\": \"1.x.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"^3.3.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"1.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\",\n               \"lru-cache\": \"2.5.x\",\n               \"semver\": \"2.3.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"4922578ec0d567ffb9b668e23cea15af63a8a187\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@6.11.1\",\n           \"_shasum\": \"c7a6e9d81420367473b7f67018158a28c3a9d8cc\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"c7a6e9d81420367473b7f67018158a28c3a9d8cc\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-6.11.1.tgz\"\n           }\n       },\n       \"7.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"bossy\": \"1.x.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"inert\": \"1.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\",\n               \"lru-cache\": \"2.5.x\"\n           },\n           \"devDependencies\": {\n               \"lab\": \"4.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"3702e1739357b2fe923e90327c77e164c877ed0d\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.0.0\",\n           \"_shasum\": \"26f6e018c4a028893a3821497a0865389437dc3f\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"26f6e018c4a028893a3821497a0865389437dc3f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.0.0.tgz\"\n           }\n       },\n       \"7.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.0.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"145cc9eec8ebd9bb4246556eb2b5f776164de66b\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.0.1\",\n           \"_shasum\": \"0cf1fc65c818d7b5455135d7375db222dc29038a\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.1.4\",\n           \"_nodeVersion\": \"0.10.32\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"0cf1fc65c818d7b5455135d7375db222dc29038a\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.0.1.tgz\"\n           }\n       },\n       \"7.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"e30bb51d7151f791e76a3dcf364cdb9456320436\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.1.0\",\n           \"_shasum\": \"07272d9d950f4ca687375e048d3161883358c28e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.1.4\",\n           \"_nodeVersion\": \"0.10.32\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"07272d9d950f4ca687375e048d3161883358c28e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.1.0.tgz\"\n           }\n       },\n       \"7.1.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.1.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"a59c810cfe642ac7232605d9371ba66fd32e7842\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.1.1\",\n           \"_shasum\": \"6ccd4a78f116f2afce3a6fcc58d7619bf7f0280c\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.1.4\",\n           \"_nodeVersion\": \"0.10.32\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"6ccd4a78f116f2afce3a6fcc58d7619bf7f0280c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.1.1.tgz\"\n           }\n       },\n       \"7.2.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.2.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"glue\": \"1.x.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"2d296c1be4ed54cb636c1a83c760a5f86a7f74a5\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.2.0\",\n           \"_shasum\": \"a26a021ebe23647869fdf609c63c9dd3c7c95218\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.1.4\",\n           \"_nodeVersion\": \"0.10.32\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"a26a021ebe23647869fdf609c63c9dd3c7c95218\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.2.0.tgz\"\n           }\n       },\n       \"7.3.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.3.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"glue\": \"1.x.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"6a9f0a633fe86743c474afb41ae3367a4a619b90\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.3.0\",\n           \"_shasum\": \"847ead616dea355da3f605f5c527b868534c56fa\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"847ead616dea355da3f605f5c527b868534c56fa\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.3.0.tgz\"\n           }\n       },\n       \"7.4.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.4.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"glue\": \"1.x.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"c734dbc1f77e84745e90bf2cd96eb4c362f2fe49\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.4.0\",\n           \"_shasum\": \"ab4c0845baf2904d79373241aecfeec72d07f9bf\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"ab4c0845baf2904d79373241aecfeec72d07f9bf\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.4.0.tgz\"\n           }\n       },\n       \"7.5.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.5.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"glue\": \"1.x.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"8af6338ed842c616214ed2ee1fb8668390f83afc\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.5.0\",\n           \"_shasum\": \"0b10d2dfe772e5b35e6643add81467d3d1971f62\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"0b10d2dfe772e5b35e6643add81467d3d1971f62\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.5.0.tgz\"\n           }\n       },\n       \"7.5.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.5.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.4.x\",\n               \"glue\": \"1.x.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"0fbbb14564a1eaa0282877ec6baed45bfc989099\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.5.1\",\n           \"_shasum\": \"c0cb41dc5d67f1f887ec17d3277876354995980c\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"c0cb41dc5d67f1f887ec17d3277876354995980c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.5.1.tgz\"\n           }\n       },\n       \"7.5.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.5.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.9.x\",\n               \"glue\": \"1.x.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"21ab5bb840f9f4cd43a356ac97a668926d853771\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.5.2\",\n           \"_shasum\": \"f7cab1e83ce270ce50acc2f1f54453a2315c4f0d\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"f7cab1e83ce270ce50acc2f1f54453a2315c4f0d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.5.2.tgz\"\n           }\n       },\n       \"8.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.10.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"5.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"4432badc9bca0f009c86df9290628b0e47b078d7\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.0.0\",\n           \"_shasum\": \"55cf985dc9cea4746e87730b041357cfa594dc93\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"55cf985dc9cea4746e87730b041357cfa594dc93\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.0.0.tgz\"\n           }\n       },\n       \"7.5.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"7.5.3\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"1.x.x\",\n               \"catbox\": \"4.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"2.x.x\",\n               \"heavy\": \"1.x.x\",\n               \"hoek\": \"^2.9.x\",\n               \"glue\": \"1.x.x\",\n               \"inert\": \"^1.1.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^4.4.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"rejoice\": \"1.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"^1.2.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"1.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"1.x.x\",\n               \"form-data\": \"0.1.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"bin\": {\n               \"hapi\": \"./bin/hapi\"\n           },\n           \"scripts\": {\n               \"test\": \"make test-cov\",\n               \"test-tap\": \"make test-tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"cafe73d69202b792ab69ae33bccac4e9140988b6\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@7.5.3\",\n           \"_shasum\": \"83a4c7cdde5b595a72b4d21041f72232021ec16f\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"83a4c7cdde5b595a72b4d21041f72232021ec16f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-7.5.3.tgz\"\n           }\n       },\n       \"8.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.10.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"5.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"node node_modules/lab/bin/lab -a code -t 100 -L\",\n               \"test-tap\": \"node node_modules/lab/bin/lab -a code -r tap -o tests.tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"f58d899a701dd5018fad947775bc01434ba753a6\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.1.0\",\n           \"_shasum\": \"908a64eb954c97057dc0d4f72531fc23ffa4565b\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"1.4.28\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"908a64eb954c97057dc0d4f72531fc23ffa4565b\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.1.0.tgz\"\n           }\n       },\n       \"8.2.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.2.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.10.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"5.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"node node_modules/lab/bin/lab -a code -t 100 -L\",\n               \"test-tap\": \"node node_modules/lab/bin/lab -a code -r tap -o tests.tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"da21e9e2a5248e130e95c026acd95977538cd4c8\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.2.0\",\n           \"_shasum\": \"7c67527da6abb4b70f0b1a1926d0aeb5d9229a76\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.5.1\",\n           \"_nodeVersion\": \"0.12.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"7c67527da6abb4b70f0b1a1926d0aeb5d9229a76\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.2.0.tgz\"\n           }\n       },\n       \"8.3.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.3.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.10.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"node node_modules/lab/bin/lab -a code -t 100 -L\",\n               \"test-tap\": \"node node_modules/lab/bin/lab -a code -r tap -o tests.tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"a172b95fbad97985aeae19b70000b2654c4c6061\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.3.0\",\n           \"_shasum\": \"a357534d85186b41747502dc9640972cffab49c1\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.5.1\",\n           \"_nodeVersion\": \"0.12.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"a357534d85186b41747502dc9640972cffab49c1\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.3.0.tgz\"\n           }\n       },\n       \"8.3.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.3.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.10.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"node node_modules/lab/bin/lab -a code -t 100 -L\",\n               \"test-tap\": \"node node_modules/lab/bin/lab -a code -r tap -o tests.tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"2fc97fcaa909bed8596531740c0acf33fc7239a2\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.3.1\",\n           \"_shasum\": \"62595948fca1d5d44fdf1555a01c779d175cfbbb\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.5.1\",\n           \"_nodeVersion\": \"0.12.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"62595948fca1d5d44fdf1555a01c779d175cfbbb\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.3.1.tgz\"\n           }\n       },\n       \"8.4.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.4.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi\"\n           },\n           \"main\": \"index\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.10.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"node node_modules/lab/bin/lab -a code -t 100 -L\",\n               \"test-tap\": \"node node_modules/lab/bin/lab -a code -r tap -o tests.tap\"\n           },\n           \"licenses\": [\n               {\n                   \"type\": \"BSD\",\n                   \"url\": \"http://github.com/hapijs/hapi/raw/master/LICENSE\"\n               }\n           ],\n           \"gitHead\": \"22b87a307d1cddb9ea1451abfc7ddf9351851263\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.4.0\",\n           \"_shasum\": \"14237847ac107076d4b32eb864de60f4bbdeb5f9\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.5.1\",\n           \"_nodeVersion\": \"0.12.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hueniverse.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"14237847ac107076d4b32eb864de60f4bbdeb5f9\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.4.0.tgz\"\n           }\n       },\n       \"8.5.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.5.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.10.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"node node_modules/lab/bin/lab -a code -t 100 -L\",\n               \"test-tap\": \"node node_modules/lab/bin/lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"node node_modules/lab/bin/lab -a code -r html -o coverage.html\",\n               \"changelog\": \"mdchangelog --no-prologue --no-orphan-issues --overwrite --order-milestones semver --order-issues closed_at --dependents --remote hapijs/hapi --same-org --timeout 120000\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"5a2f8f6b7e35c47caf1be0ed7f864583d6040f6f\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.5.0\",\n           \"_shasum\": \"cf978fbefd4e892ba85f090c002aae5759fa848e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.10.0\",\n           \"_nodeVersion\": \"0.10.38\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"cf978fbefd4e892ba85f090c002aae5759fa848e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.5.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"8.5.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.5.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"node node_modules/lab/bin/lab -a code -t 100 -L\",\n               \"test-tap\": \"node node_modules/lab/bin/lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"node node_modules/lab/bin/lab -a code -r html -o coverage.html\",\n               \"changelog\": \"mdchangelog --no-prologue --no-orphan-issues --overwrite --order-milestones semver --order-issues closed_at --dependents --remote hapijs/hapi --same-org --timeout 120000\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"a92a2542197a99aa54f82013c322f5d235ab4678\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.5.1\",\n           \"_shasum\": \"18063589ddc95a2dc09c1794017994cf484d98a2\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.10.0\",\n           \"_nodeVersion\": \"0.10.38\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"18063589ddc95a2dc09c1794017994cf484d98a2\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.5.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"8.5.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.5.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"node node_modules/lab/bin/lab -a code -t 100 -L\",\n               \"test-tap\": \"node node_modules/lab/bin/lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"node node_modules/lab/bin/lab -a code -r html -o coverage.html\",\n               \"changelog\": \"mdchangelog --no-prologue --no-orphan-issues --overwrite --order-milestones semver --order-issues closed_at --dependents --remote hapijs/hapi --same-org --timeout 120000\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"b22fa2f936ec4d5ca73f04fe915c4ffa0ab41d37\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.5.2\",\n           \"_shasum\": \"db664375c37f83a6fc52edd027c50610943df7ac\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.10.0\",\n           \"_nodeVersion\": \"0.10.38\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"db664375c37f83a6fc52edd027c50610943df7ac\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.5.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"8.5.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.5.3\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\",\n               \"changelog\": \"mdchangelog --no-prologue --no-orphan-issues --overwrite --order-milestones semver --order-issues closed_at --dependents --remote hapijs/hapi --same-org --timeout 120000\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"a17e98de3b0f5811e8fda59f3593ef3e73917885\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.5.3\",\n           \"_shasum\": \"34940e3bbab901a1542fc77251d2ceff967f572a\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.10.0\",\n           \"_nodeVersion\": \"0.10.38\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"34940e3bbab901a1542fc77251d2ceff967f572a\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.5.3.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"8.6.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.6.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\",\n               \"changelog\": \"mdchangelog --no-prologue --no-orphan-issues --overwrite --order-milestones semver --order-issues closed_at --dependents --remote hapijs/hapi --same-org --timeout 120000\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"72b97a501969e8f088e9cfd42ea06ce2ccf7c8be\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.6.0\",\n           \"_shasum\": \"064ba591455b1aefadf99b282efbf50571d4a1de\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.10.0\",\n           \"_nodeVersion\": \"0.10.38\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"064ba591455b1aefadf99b282efbf50571d4a1de\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.6.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"8.6.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.6.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"2.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"5.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\",\n               \"changelog\": \"mdchangelog --no-prologue --no-orphan-issues --overwrite --order-milestones semver --order-issues closed_at --dependents --remote hapijs/hapi --same-org --timeout 120000\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"6002768446cd3feca80c2460d196b380f3455990\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.6.1\",\n           \"_shasum\": \"3ba7e245f79a5d54eea3ff5f70e32e86a4f2bc4d\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.10.0\",\n           \"_nodeVersion\": \"0.10.38\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"3ba7e245f79a5d54eea3ff5f70e32e86a4f2bc4d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.6.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"8.8.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.8.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\",\n               \"changelog\": \"mdchangelog --no-prologue --no-orphan-issues --overwrite --order-milestones semver --order-issues closed_at --dependents --remote hapijs/hapi --same-org --timeout 120000\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"daab96af7b0aa07ea7226702ee374c8cdc82d98f\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.8.0\",\n           \"_shasum\": \"87e37a06e9b499e89790e2dc111aa9668b6e617f\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.10.0\",\n           \"_nodeVersion\": \"0.10.38\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"87e37a06e9b499e89790e2dc111aa9668b6e617f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.8.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"8.8.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"8.8.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"router\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.32\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"^4.2.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"h2o2\": \"4.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"inert\": \"2.x.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"1.x.x\",\n               \"topo\": \"1.x.x\",\n               \"vision\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"lab\": \"5.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\",\n               \"changelog\": \"mdchangelog --no-prologue --sanitize --no-orphan-issues --overwrite --order-milestones semver --order-issues closed_at --dependents --remote hapijs/hapi --same-org --timeout 120000\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"bc722ef68407c398178e72b104c4ee7e8eb4c696\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@8.8.1\",\n           \"_shasum\": \"c7066fe9322e41b9e0e08315fd79f2d9985fa2ea\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.10.0\",\n           \"_nodeVersion\": \"0.10.38\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"c7066fe9322e41b9e0e08315fd79f2d9985fa2ea\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-8.8.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.40\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"10451d2ca10cb5681cc3bc38100e5bd0091b39b1\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.0.0\",\n           \"_shasum\": \"4a184c055baa451d7ee4ee51e27f0f279e02a32a\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.13.4\",\n           \"_nodeVersion\": \"0.10.40\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"4a184c055baa451d7ee4ee51e27f0f279e02a32a\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.0.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.0.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.40\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"8a6d38b05bfaec3b4a36ebd5a666cbe4675c81ad\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.0.1\",\n           \"_shasum\": \"aa444331a087d060a07db3fb99bb4cd19add158a\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.13.4\",\n           \"_nodeVersion\": \"0.10.40\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"aa444331a087d060a07db3fb99bb4cd19add158a\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.0.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.0.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.0.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.40\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"e3d59c0520e1fff340904ba0a2ae11fc220052b6\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.0.2\",\n           \"_shasum\": \"bc249876635c7371fa018601ca5994d17854f784\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.13.4\",\n           \"_nodeVersion\": \"0.10.40\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"bc249876635c7371fa018601ca5994d17854f784\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.0.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.0.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.0.3\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.40\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"1a541472da4b00bb72f528916b6b339b3ffc402d\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.0.3\",\n           \"_shasum\": \"b02fc0f12f4a8e5fbc71859153be01fbf4d2e8d0\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.13.4\",\n           \"_nodeVersion\": \"0.10.40\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"b02fc0f12f4a8e5fbc71859153be01fbf4d2e8d0\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.0.3.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.0.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.0.4\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.40\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"5a54937f1f4c683a4c047a825baa6b98bf8fd4c4\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.0.4\",\n           \"_shasum\": \"ad7284447cad554254339826c24a3a85d4680f39\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.1\",\n           \"_nodeVersion\": \"0.10.40\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"ad7284447cad554254339826c24a3a85d4680f39\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.0.4.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.40\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"66730f979f05525c61e28d8fb0dca45f2004b426\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.1.0\",\n           \"_shasum\": \"d4e4d13296168628651be9376cb81fc1ad10733d\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.1\",\n           \"_nodeVersion\": \"0.10.40\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"d4e4d13296168628651be9376cb81fc1ad10733d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.1.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.2.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.2.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.40\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"5b02c3dc027f478e4720ba16789261e7d350c22c\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.2.0\",\n           \"_shasum\": \"6816b59d387012ea7ce1ce336655b02b460ae346\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.1\",\n           \"_nodeVersion\": \"0.10.40\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"6816b59d387012ea7ce1ce336655b02b460ae346\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.2.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.3.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.3.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.40\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"69c9d737e21477c89a243802b44ac967eecbdcc0\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.3.0\",\n           \"_shasum\": \"7e27cf9056bc9211ba53e6a13fa14d3340f56d77\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.1\",\n           \"_nodeVersion\": \"0.10.40\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"7e27cf9056bc9211ba53e6a13fa14d3340f56d77\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.3.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.3.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.3.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.40\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"a4247390ae2291cc8f1a26ffd784133774353654\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.3.1\",\n           \"_shasum\": \"fd32046e0c2cadc07b3e776b94da3c2e9e7628a2\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.1\",\n           \"_nodeVersion\": \"0.10.40\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"fd32046e0c2cadc07b3e776b94da3c2e9e7628a2\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.3.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"10.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"10.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"10220e1bc435d54aac7fd659262fb28ebfb646fd\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@10.0.0\",\n           \"_shasum\": \"d3bb8cdbd786693f550188b15afba1433c6e4ba9\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.2\",\n           \"_nodeVersion\": \"4.0.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"d3bb8cdbd786693f550188b15afba1433c6e4ba9\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-10.0.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"10.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"10.0.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"9f1a2a1bd80c26bcffd9a2fea5683bd30e6a42eb\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@10.0.1\",\n           \"_shasum\": \"a2ad9f70ce3700064a2861e226eef508f5ce2e8e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.2\",\n           \"_nodeVersion\": \"4.1.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"a2ad9f70ce3700064a2861e226eef508f5ce2e8e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-10.0.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"10.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"10.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"6.x.x\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"5.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"c2f67521561d63610b2ab3e031d895dd049c1dbb\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@10.1.0\",\n           \"_shasum\": \"520a5edb45c19f728aac4ff6e20054a11f5cbd9e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.2\",\n           \"_nodeVersion\": \"4.1.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"520a5edb45c19f728aac4ff6e20054a11f5cbd9e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-10.1.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"10.2.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"10.2.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^6.8.1\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"1.x.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"1.x.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"6.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"fc2f49de5895963af494d5fa3a3f7010ffb294b5\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@10.2.1\",\n           \"_shasum\": \"c2ac63b39bbd37fe484fd429382c2f82066755ed\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.4\",\n           \"_nodeVersion\": \"4.1.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"c2ac63b39bbd37fe484fd429382c2f82066755ed\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-10.2.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"10.4.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"10.4.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^6.8.1\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"^1.7.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"^1.1.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"6.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"21983e082780968736936c0e5f50e362d631f36a\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@10.4.0\",\n           \"_shasum\": \"a8c56f93e0347763f447e1bae1ed5003cdf6bec6\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.4\",\n           \"_nodeVersion\": \"4.1.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"a8c56f93e0347763f447e1bae1ed5003cdf6bec6\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-10.4.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"10.4.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"10.4.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^6.8.1\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"^1.7.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"^1.1.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"6.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"6e61eedf98d2c6d796021ac84c463553cb237128\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@10.4.1\",\n           \"_shasum\": \"e545394c201e6b12fe98d95b8096d34e17fed732\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.4\",\n           \"_nodeVersion\": \"4.1.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"e545394c201e6b12fe98d95b8096d34e17fed732\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-10.4.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"10.5.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"10.5.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^6.8.1\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"^1.7.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"^1.1.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"6.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"c841ffd7d7c07d942b05b5670cc79566d1b88629\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@10.5.0\",\n           \"_shasum\": \"ca3853d550a3a19dafb45daf2c6169b6b717e09c\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.4\",\n           \"_nodeVersion\": \"4.1.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"ca3853d550a3a19dafb45daf2c6169b6b717e09c\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-10.5.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^6.8.1\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"5.x.x\",\n               \"shot\": \"^1.7.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"^1.1.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"6.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"6b59790f25d62ca7084a4c24aaf6895637eac609\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.0.0\",\n           \"_shasum\": \"0973737aacfc81e13bb5c360c813caf8e2adb032\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.4\",\n           \"_nodeVersion\": \"4.1.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"0973737aacfc81e13bb5c360c813caf8e2adb032\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.0.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.0.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^6.8.1\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"5.x.x\",\n               \"shot\": \"^1.7.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"^1.1.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"6.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"fa224130f779b8a04e166f20ca427f4ee4fda447\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.0.1\",\n           \"_shasum\": \"b0eb286a3df961f9e291b3c34f451a24f51e1647\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.7\",\n           \"_nodeVersion\": \"4.1.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"b0eb286a3df961f9e291b3c34f451a24f51e1647\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.0.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.0.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.0.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^6.8.1\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"5.x.x\",\n               \"shot\": \"^1.7.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"^1.1.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"6.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"99c1c4cfccafc36b596313b89e73e44ddeb115be\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.0.2\",\n           \"_shasum\": \"55cd3fcbe7ddf8e6ca641a000fdb8847b4d2f256\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.4\",\n           \"_nodeVersion\": \"4.1.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"55cd3fcbe7ddf8e6ca641a000fdb8847b4d2f256\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.0.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.0.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.0.3\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^6.8.1\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"5.x.x\",\n               \"shot\": \"^1.7.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"^1.1.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"7.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"fc503f82f885e31bea9175d06f758243c2cecbe7\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.0.3\",\n           \"_shasum\": \"7cc47dcae38a209ff9d8880a98e5d50a72899872\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.9\",\n           \"_nodeVersion\": \"4.2.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"7cc47dcae38a209ff9d8880a98e5d50a72899872\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.0.3.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.0.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.0.4\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"qs\": \"6.x.x\",\n               \"shot\": \"2.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"3.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"7.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"c4593b67ef00b0e4cba87794d83e5d80f858514b\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.0.4\",\n           \"_shasum\": \"83904af938bae5a7f65cebf89a24941742da92e3\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.9\",\n           \"_nodeVersion\": \"4.2.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"83904af938bae5a7f65cebf89a24941742da92e3\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.0.4.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.0.5\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.0.5\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"qs\": \"6.x.x\",\n               \"shot\": \"2.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"3.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"7.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"47de66655155eac663787db5232885d8ba8fecf3\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.0.5\",\n           \"_shasum\": \"0e6da07a93d1a7dfdcd404e094d9916fcdb00e7f\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.9\",\n           \"_nodeVersion\": \"4.2.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"0e6da07a93d1a7dfdcd404e094d9916fcdb00e7f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.0.5.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"qs\": \"6.x.x\",\n               \"shot\": \"2.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"3.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"7.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"109d0e9fd39b34e13f3b2e465274589b22887bb8\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.1.0\",\n           \"_shasum\": \"fae3f263686df31f18cde1e8ed75ad58f14ec699\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.12\",\n           \"_nodeVersion\": \"5.0.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"fae3f263686df31f18cde1e8ed75ad58f14ec699\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.1.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.1.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.1.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"qs\": \"6.x.x\",\n               \"shot\": \"2.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"3.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"7.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"2dccac296c3d9da45139f5293c9d8640abf7a8c1\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.1.1\",\n           \"_shasum\": \"ce641ffbe090e728d17e26d1d7ec55abdde564c5\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.12\",\n           \"_nodeVersion\": \"5.0.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"ce641ffbe090e728d17e26d1d7ec55abdde564c5\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.1.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.1.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.1.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"qs\": \"6.x.x\",\n               \"shot\": \"2.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"3.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"7.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"ca24ad7ec69b9cbbb46a9eb8b8f69900b8f06b09\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.1.2\",\n           \"_shasum\": \"9c1987b388b9b934dc7719f950da587a3893af90\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.12\",\n           \"_nodeVersion\": \"5.0.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"9c1987b388b9b934dc7719f950da587a3893af90\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.1.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.1.3\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.1.3\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"qs\": \"6.x.x\",\n               \"shot\": \"2.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"3.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"7.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"14ca827cb6501b88a5452054f429a92ee3fe0b6e\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.1.3\",\n           \"_shasum\": \"517f2c343764b531ad97a32901b22f48fcb6e937\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.5.2\",\n           \"_nodeVersion\": \"5.2.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"517f2c343764b531ad97a32901b22f48fcb6e937\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.1.3.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"11.1.4\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"11.1.4\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"qs\": \"6.x.x\",\n               \"shot\": \"2.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"3.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"7.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"270e9a768b2fbb84ab832869d2de606c865f0e85\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@11.1.4\",\n           \"_shasum\": \"a80588d175a1d9489acda0fdd13df5a0766f55ce\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.5.2\",\n           \"_nodeVersion\": \"5.2.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"a80588d175a1d9489acda0fdd13df5a0766f55ce\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-11.1.4.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"12.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"12.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"2.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"8.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"9cc0eba545fa53e9fd64c41f88cf38a26fde120f\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@12.0.0\",\n           \"_shasum\": \"b5914cef81176d8f07fe65a393e4e7d030ece5e6\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.5.2\",\n           \"_nodeVersion\": \"5.2.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"b5914cef81176d8f07fe65a393e4e7d030ece5e6\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-12.0.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"12.0.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"12.0.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"3.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"8.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"c22b3c52ff2251c49f7ceee90ba81d6b8cad111e\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@12.0.1\",\n           \"_shasum\": \"762760e67249a41e14b42b94417e5f9a072e5b5e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.5.2\",\n           \"_nodeVersion\": \"5.2.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"762760e67249a41e14b42b94417e5f9a072e5b5e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-12.0.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"12.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"12.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"3.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"3.x.x\",\n               \"statehood\": \"3.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"8.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"4e78875d30a458d835520a8614e2e43f2137f1e1\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@12.1.0\",\n           \"_shasum\": \"9932c63300d247a92caec120aa9fab72a41248f1\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.5.2\",\n           \"_nodeVersion\": \"5.2.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"9932c63300d247a92caec120aa9fab72a41248f1\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-12.1.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"9.5.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"9.5.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=0.10.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"1.x.x\",\n               \"ammo\": \"1.x.x\",\n               \"boom\": \"^2.5.x\",\n               \"call\": \"2.x.x\",\n               \"catbox\": \"6.x.x\",\n               \"catbox-memory\": \"1.x.x\",\n               \"cryptiles\": \"2.x.x\",\n               \"heavy\": \"3.x.x\",\n               \"hoek\": \"^2.14.x\",\n               \"iron\": \"2.x.x\",\n               \"items\": \"1.x.x\",\n               \"joi\": \"^6.8.1\",\n               \"kilt\": \"^1.1.x\",\n               \"mimos\": \"2.x.x\",\n               \"peekaboo\": \"1.x.x\",\n               \"qs\": \"4.x.x\",\n               \"shot\": \"^1.7.x\",\n               \"statehood\": \"2.x.x\",\n               \"subtext\": \"2.x.x\",\n               \"topo\": \"^1.1.x\"\n           },\n           \"devDependencies\": {\n               \"bluebird\": \"2.x.x\",\n               \"code\": \"1.x.x\",\n               \"handlebars\": \"2.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"6.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"6.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"08af1cbd7aac7aca80fce7b1a9620f239e926c3e\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@9.5.1\",\n           \"_shasum\": \"8d8ca13e7c220b078465e9a0a7640f26a5afb855\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.12\",\n           \"_nodeVersion\": \"5.4.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"8d8ca13e7c220b078465e9a0a7640f26a5afb855\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-9.5.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"13.0.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"13.0.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"4.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"7.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"3.x.x\",\n               \"statehood\": \"4.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"8.x.x\",\n               \"vision\": \"2.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"e82e47cf098a1773e369bf167d0802574f40572f\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@13.0.0\",\n           \"_shasum\": \"0056e5bb2169165c0c13220f94301b1fdd47e91d\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.12\",\n           \"_nodeVersion\": \"5.4.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"0056e5bb2169165c0c13220f94301b1fdd47e91d\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-13.0.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ]\n       },\n       \"13.1.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"13.1.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"4.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"8.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"3.x.x\",\n               \"statehood\": \"4.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"10.x.x\",\n               \"vision\": \"4.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"0c8109e1b573528bfebea771da6a83d1f5bf7043\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@13.1.0\",\n           \"_shasum\": \"0e0e666d97174db27537d72b70d981adf1cf3895\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.6.0\",\n           \"_nodeVersion\": \"5.7.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"0e0e666d97174db27537d72b70d981adf1cf3895\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-13.1.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"_npmOperationalInternal\": {\n               \"host\": \"packages-13-west.internal.npmjs.com\",\n               \"tmp\": \"tmp/hapi-13.1.0.tgz_1457574636442_0.2828192512970418\"\n           }\n       },\n       \"13.2.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"13.2.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"4.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"8.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"3.x.x\",\n               \"statehood\": \"4.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"10.x.x\",\n               \"vision\": \"4.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"23e333e64896fa471ae93d81be0f3504d4904fd0\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@13.2.0\",\n           \"_shasum\": \"678a4011ff0153f1a5974080ede526dd6acbf535\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.6.0\",\n           \"_nodeVersion\": \"5.7.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"678a4011ff0153f1a5974080ede526dd6acbf535\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-13.2.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"_npmOperationalInternal\": {\n               \"host\": \"packages-12-west.internal.npmjs.com\",\n               \"tmp\": \"tmp/hapi-13.2.0.tgz_1457676358874_0.4965129441116005\"\n           }\n       },\n       \"13.2.1\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"13.2.1\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"4.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"8.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"3.x.x\",\n               \"statehood\": \"4.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"10.x.x\",\n               \"vision\": \"4.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"ed195fad213a9da0f0762271c4907f4218e2abaf\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@13.2.1\",\n           \"_shasum\": \"6139d8960154e5c56db16ad79fa8a8a1eeeba94e\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.6.0\",\n           \"_nodeVersion\": \"5.7.1\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"6139d8960154e5c56db16ad79fa8a8a1eeeba94e\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-13.2.1.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"_npmOperationalInternal\": {\n               \"host\": \"packages-13-west.internal.npmjs.com\",\n               \"tmp\": \"tmp/hapi-13.2.1.tgz_1457676660774_0.8275901591405272\"\n           }\n       },\n       \"13.2.2\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"13.2.2\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"4.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"8.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"3.x.x\",\n               \"statehood\": \"4.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"10.x.x\",\n               \"vision\": \"4.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"ea04005e0b81f79739d6b893068a18e702902c92\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@13.2.2\",\n           \"_shasum\": \"e6ca99d5a38bcf10858e51d828b82229322aa60f\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.8.3\",\n           \"_nodeVersion\": \"5.9.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"e6ca99d5a38bcf10858e51d828b82229322aa60f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-13.2.2.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"_npmOperationalInternal\": {\n               \"host\": \"packages-12-west.internal.npmjs.com\",\n               \"tmp\": \"tmp/hapi-13.2.2.tgz_1458924659330_0.6953077977523208\"\n           }\n       },\n       \"13.3.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"13.3.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"3.x.x\",\n               \"iron\": \"4.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"8.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"3.x.x\",\n               \"statehood\": \"4.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"10.x.x\",\n               \"vision\": \"4.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"526d5eab92a5099052e788c98996d4c18cae2dbc\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@13.3.0\",\n           \"_shasum\": \"b20d083ccfe0916e39398748fbb71c5b412ccd2f\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.8.3\",\n           \"_nodeVersion\": \"5.10.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"b20d083ccfe0916e39398748fbb71c5b412ccd2f\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-13.3.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"_npmOperationalInternal\": {\n               \"host\": \"packages-12-west.internal.npmjs.com\",\n               \"tmp\": \"tmp/hapi-13.3.0.tgz_1459617747839_0.6574987769126892\"\n           }\n       },\n       \"13.4.0\": {\n           \"name\": \"hapi\",\n           \"description\": \"HTTP Server framework\",\n           \"homepage\": \"http://hapijs.com\",\n           \"version\": \"13.4.0\",\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/hapijs/hapi.git\"\n           },\n           \"main\": \"lib/index.js\",\n           \"keywords\": [\n               \"framework\",\n               \"http\",\n               \"api\",\n               \"web\"\n           ],\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"dependencies\": {\n               \"accept\": \"2.x.x\",\n               \"ammo\": \"2.x.x\",\n               \"boom\": \"3.x.x\",\n               \"call\": \"3.x.x\",\n               \"catbox\": \"7.x.x\",\n               \"catbox-memory\": \"2.x.x\",\n               \"cryptiles\": \"3.x.x\",\n               \"heavy\": \"4.x.x\",\n               \"hoek\": \"4.x.x\",\n               \"iron\": \"4.x.x\",\n               \"items\": \"2.x.x\",\n               \"joi\": \"8.x.x\",\n               \"kilt\": \"2.x.x\",\n               \"mimos\": \"3.x.x\",\n               \"peekaboo\": \"2.x.x\",\n               \"shot\": \"3.x.x\",\n               \"statehood\": \"4.x.x\",\n               \"subtext\": \"4.x.x\",\n               \"topo\": \"2.x.x\"\n           },\n           \"devDependencies\": {\n               \"code\": \"2.x.x\",\n               \"handlebars\": \"4.x.x\",\n               \"inert\": \"3.x.x\",\n               \"lab\": \"10.x.x\",\n               \"vision\": \"4.x.x\",\n               \"wreck\": \"7.x.x\"\n           },\n           \"scripts\": {\n               \"test\": \"lab -a code -t 100 -L\",\n               \"test-tap\": \"lab -a code -r tap -o tests.tap\",\n               \"test-cov-html\": \"lab -a code -r html -o coverage.html\"\n           },\n           \"license\": \"BSD-3-Clause\",\n           \"gitHead\": \"faacf022488bc30748bb8f35aca71a24343dc0fc\",\n           \"bugs\": {\n               \"url\": \"https://github.com/hapijs/hapi/issues\"\n           },\n           \"_id\": \"hapi@13.4.0\",\n           \"_shasum\": \"fc1cd3c6ad9d96b8d43dd6b4feb53ce5c46990c8\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.8.6\",\n           \"_nodeVersion\": \"5.11.0\",\n           \"_npmUser\": {\n               \"name\": \"hueniverse\",\n               \"email\": \"eran@hammer.io\"\n           },\n           \"dist\": {\n               \"shasum\": \"fc1cd3c6ad9d96b8d43dd6b4feb53ce5c46990c8\",\n               \"tarball\": \"http://registry.npmjs.org/hapi/-/hapi-13.4.0.tgz\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"hueniverse\",\n                   \"email\": \"eran@hueniverse.com\"\n               }\n           ],\n           \"_npmOperationalInternal\": {\n               \"host\": \"packages-12-west.internal.npmjs.com\",\n               \"tmp\": \"tmp/hapi-13.4.0.tgz_1462656778107_0.4772025996353477\"\n           }\n       }\n   },\n   \"maintainers\": [\n       {\n           \"name\": \"hueniverse\",\n           \"email\": \"eran@hueniverse.com\"\n       }\n   ],\n   \"time\": {\n       \"modified\": \"2016-05-07T21:32:58.581Z\",\n       \"created\": \"2011-08-06T00:41:58.808Z\",\n       \"0.0.1\": \"2011-08-06T00:41:59.373Z\",\n       \"0.0.2\": \"2011-11-20T20:46:31.424Z\",\n       \"0.0.3\": \"2011-11-20T20:51:32.742Z\",\n       \"0.0.4\": \"2011-11-21T00:54:38.933Z\",\n       \"0.0.5\": \"2011-11-23T01:12:59.808Z\",\n       \"0.0.6\": \"2011-11-29T17:20:49.211Z\",\n       \"0.1.0\": \"2012-02-09T16:22:12.986Z\",\n       \"0.1.1\": \"2012-02-13T23:05:41.210Z\",\n       \"0.1.2\": \"2012-02-15T21:17:24.741Z\",\n       \"0.1.3\": \"2012-02-18T01:11:42.544Z\",\n       \"0.2.0\": \"2012-02-22T21:34:59.268Z\",\n       \"0.2.1\": \"2012-02-29T20:24:46.888Z\",\n       \"0.3.0\": \"2012-04-25T20:45:50.530Z\",\n       \"0.4.0\": \"2012-05-09T18:48:14.989Z\",\n       \"0.4.1\": \"2012-05-09T18:57:41.971Z\",\n       \"0.4.2\": \"2012-05-09T21:31:41.918Z\",\n       \"0.4.3\": \"2012-05-15T15:17:12.467Z\",\n       \"0.4.4\": \"2012-05-16T21:11:36.984Z\",\n       \"0.5.0\": \"2012-06-01T21:15:13.423Z\",\n       \"0.5.1\": \"2012-07-23T17:27:20.824Z\",\n       \"0.5.1a\": \"2012-07-27T18:45:52.423Z\",\n       \"0.5.1b\": \"2012-07-31T18:48:01.927Z\",\n       \"0.5.1b2\": \"2012-07-31T18:51:10.239Z\",\n       \"0.5.1c\": \"2012-08-01T22:52:24.978Z\",\n       \"0.6.0\": \"2012-09-06T17:10:27.504Z\",\n       \"0.6.1\": \"2012-09-06T17:12:30.972Z\",\n       \"0.5.2\": \"2012-09-12T17:05:00.145Z\",\n       \"0.7.0\": \"2012-09-21T00:54:25.488Z\",\n       \"0.7.1\": \"2012-10-01T20:58:42.760Z\",\n       \"0.8.0\": \"2012-10-27T00:21:31.775Z\",\n       \"0.8.1\": \"2012-10-31T18:45:46.959Z\",\n       \"0.8.2\": \"2012-11-01T22:25:36.850Z\",\n       \"0.8.3\": \"2012-11-05T23:23:00.841Z\",\n       \"0.8.4\": \"2012-11-07T20:54:10.718Z\",\n       \"0.9.0\": \"2012-11-19T22:24:58.297Z\",\n       \"0.9.1\": \"2012-11-27T21:47:37.455Z\",\n       \"0.9.2\": \"2012-12-04T20:28:34.496Z\",\n       \"0.10.0\": \"2012-12-18T08:39:54.824Z\",\n       \"0.10.1\": \"2012-12-20T17:38:46.296Z\",\n       \"0.11.0\": \"2013-01-08T23:45:03.457Z\",\n       \"0.11.1\": \"2013-01-10T02:42:22.451Z\",\n       \"0.11.2\": \"2013-01-10T07:03:47.203Z\",\n       \"0.11.3\": \"2013-01-14T16:10:54.799Z\",\n       \"0.12.0\": \"2013-01-31T18:10:59.786Z\",\n       \"0.13.0\": \"2013-02-04T17:53:08.206Z\",\n       \"0.13.1\": \"2013-02-04T21:30:24.581Z\",\n       \"0.13.2\": \"2013-02-05T00:42:08.898Z\",\n       \"0.11.4\": \"2013-02-19T18:09:59.362Z\",\n       \"0.13.3\": \"2013-02-20T21:09:24.407Z\",\n       \"0.14.0\": \"2013-02-20T22:00:50.485Z\",\n       \"0.14.1\": \"2013-02-20T23:20:14.249Z\",\n       \"0.14.2\": \"2013-02-26T18:12:02.554Z\",\n       \"0.15.0\": \"2013-03-09T01:30:00.576Z\",\n       \"0.15.1\": \"2013-03-13T06:14:09.460Z\",\n       \"0.15.2\": \"2013-03-14T05:18:53.975Z\",\n       \"0.15.3\": \"2013-03-15T21:57:10.827Z\",\n       \"0.15.4\": \"2013-03-18T20:13:06.730Z\",\n       \"0.15.5\": \"2013-03-18T21:03:48.031Z\",\n       \"0.15.6\": \"2013-03-19T05:26:54.850Z\",\n       \"0.15.7\": \"2013-03-28T02:14:50.690Z\",\n       \"0.15.8\": \"2013-03-29T20:45:14.373Z\",\n       \"0.15.9\": \"2013-04-03T02:34:24.986Z\",\n       \"0.16.0\": \"2013-04-03T07:46:12.024Z\",\n       \"1.0.0\": \"2013-04-30T20:22:11.763Z\",\n       \"1.0.1\": \"2013-05-02T22:32:06.263Z\",\n       \"1.0.2\": \"2013-05-03T07:26:10.444Z\",\n       \"1.0.3\": \"2013-05-06T18:51:22.969Z\",\n       \"1.1.0\": \"2013-05-10T16:11:40.472Z\",\n       \"1.2.0\": \"2013-05-14T19:00:49.508Z\",\n       \"1.3.0\": \"2013-05-23T07:21:31.432Z\",\n       \"1.4.0\": \"2013-05-25T16:06:07.327Z\",\n       \"1.5.0\": \"2013-05-27T23:00:01.639Z\",\n       \"1.6.0\": \"2013-05-29T17:54:22.236Z\",\n       \"1.6.1\": \"2013-05-30T19:51:40.955Z\",\n       \"1.6.2\": \"2013-05-31T04:45:09.610Z\",\n       \"1.7.0\": \"2013-06-04T06:57:59.266Z\",\n       \"1.7.1\": \"2013-06-04T16:39:37.883Z\",\n       \"1.7.2\": \"2013-06-04T21:25:07.928Z\",\n       \"1.7.3\": \"2013-06-07T22:18:29.595Z\",\n       \"1.8.0\": \"2013-06-13T18:12:09.574Z\",\n       \"1.8.1\": \"2013-06-17T20:50:22.022Z\",\n       \"1.8.2\": \"2013-06-26T14:35:04.831Z\",\n       \"1.8.3\": \"2013-07-15T20:41:19.251Z\",\n       \"1.9.0\": \"2013-07-23T00:34:57.423Z\",\n       \"1.9.1\": \"2013-08-15T18:38:38.198Z\",\n       \"1.9.2\": \"2013-08-15T19:17:36.763Z\",\n       \"1.9.3\": \"2013-08-15T20:16:40.385Z\",\n       \"1.9.4\": \"2013-08-15T20:56:48.955Z\",\n       \"1.9.5\": \"2013-08-28T23:51:38.420Z\",\n       \"1.9.6\": \"2013-08-29T20:25:46.670Z\",\n       \"1.9.7\": \"2013-09-04T18:06:31.719Z\",\n       \"1.10.0\": \"2013-09-09T22:18:36.346Z\",\n       \"1.11.0\": \"2013-09-16T21:10:53.661Z\",\n       \"1.11.1\": \"2013-09-18T00:40:32.639Z\",\n       \"1.12.0\": \"2013-10-01T19:05:30.775Z\",\n       \"1.13.0\": \"2013-10-02T14:57:45.817Z\",\n       \"1.14.0\": \"2013-10-04T20:32:24.544Z\",\n       \"1.15.0\": \"2013-10-30T19:52:07.053Z\",\n       \"1.16.0\": \"2013-11-07T00:51:15.013Z\",\n       \"1.16.1\": \"2013-11-09T08:55:18.552Z\",\n       \"1.17.0\": \"2013-11-15T17:45:42.777Z\",\n       \"1.18.0\": \"2013-11-18T19:53:58.440Z\",\n       \"1.19.0\": \"2013-11-19T07:46:14.659Z\",\n       \"1.19.1\": \"2013-11-19T21:29:12.329Z\",\n       \"1.19.2\": \"2013-11-19T21:42:39.814Z\",\n       \"1.19.3\": \"2013-11-19T22:03:12.092Z\",\n       \"1.19.4\": \"2013-11-21T08:14:57.353Z\",\n       \"1.19.5\": \"2013-11-22T19:47:46.380Z\",\n       \"1.20.0\": \"2013-11-24T19:45:28.063Z\",\n       \"2.0.0-preview\": \"2014-01-09T08:10:07.135Z\",\n       \"0.5.1-a\": \"2014-01-11T03:18:19.304Z\",\n       \"0.5.1-b\": \"2014-01-11T03:18:19.304Z\",\n       \"0.5.1-b2\": \"2014-01-11T03:18:19.304Z\",\n       \"0.5.1-c\": \"2014-01-11T03:18:19.304Z\",\n       \"2.0.0\": \"2014-01-17T09:14:39.771Z\",\n       \"2.1.0\": \"2014-01-21T00:34:48.280Z\",\n       \"2.1.1\": \"2014-01-21T09:11:40.741Z\",\n       \"2.1.2\": \"2014-01-27T08:48:08.537Z\",\n       \"2.2.0\": \"2014-02-10T22:35:03.378Z\",\n       \"2.3.0\": \"2014-02-13T08:08:57.271Z\",\n       \"2.4.0\": \"2014-02-17T06:39:11.217Z\",\n       \"2.5.0\": \"2014-02-21T07:56:49.772Z\",\n       \"2.6.0\": \"2014-02-25T15:48:51.678Z\",\n       \"3.0.0\": \"2014-03-12T23:44:08.603Z\",\n       \"3.0.1\": \"2014-03-19T02:32:21.587Z\",\n       \"3.0.2\": \"2014-03-22T21:22:32.562Z\",\n       \"3.1.0\": \"2014-03-29T08:27:09.372Z\",\n       \"4.0.0\": \"2014-04-08T07:22:12.702Z\",\n       \"4.0.1\": \"2014-04-25T07:39:15.478Z\",\n       \"4.0.2\": \"2014-04-26T00:20:48.278Z\",\n       \"4.0.3\": \"2014-04-28T21:07:30.705Z\",\n       \"4.1.0\": \"2014-05-01T16:38:13.036Z\",\n       \"4.1.1\": \"2014-05-13T17:12:04.106Z\",\n       \"4.1.2\": \"2014-05-13T20:36:00.336Z\",\n       \"4.1.3\": \"2014-05-17T08:20:25.020Z\",\n       \"4.1.4\": \"2014-05-17T18:35:16.938Z\",\n       \"5.0.0\": \"2014-05-19T19:41:17.090Z\",\n       \"5.1.0\": \"2014-05-24T23:32:32.334Z\",\n       \"6.0.0\": \"2014-06-12T04:54:37.971Z\",\n       \"6.0.1\": \"2014-06-12T17:28:32.812Z\",\n       \"6.0.2\": \"2014-06-17T07:25:34.083Z\",\n       \"6.1.0\": \"2014-07-16T14:26:57.650Z\",\n       \"6.2.0\": \"2014-07-17T12:34:32.351Z\",\n       \"6.2.1\": \"2014-07-23T14:07:13.792Z\",\n       \"6.2.2\": \"2014-08-01T20:12:29.200Z\",\n       \"6.3.0\": \"2014-08-03T20:33:06.184Z\",\n       \"6.4.0\": \"2014-08-05T01:10:47.285Z\",\n       \"6.5.0\": \"2014-08-13T18:48:56.479Z\",\n       \"6.5.1\": \"2014-08-13T20:11:25.983Z\",\n       \"6.6.0\": \"2014-08-24T07:02:13.825Z\",\n       \"6.7.0\": \"2014-08-27T23:37:01.050Z\",\n       \"6.7.1\": \"2014-08-28T00:28:18.035Z\",\n       \"6.8.0\": \"2014-09-09T00:54:21.586Z\",\n       \"6.8.1\": \"2014-09-09T21:15:34.739Z\",\n       \"6.9.0\": \"2014-09-22T20:40:52.789Z\",\n       \"6.10.0\": \"2014-10-02T22:15:55.901Z\",\n       \"6.11.0\": \"2014-10-04T06:52:41.700Z\",\n       \"6.11.1\": \"2014-10-06T19:18:23.180Z\",\n       \"7.0.0\": \"2014-10-10T00:26:33.893Z\",\n       \"7.0.1\": \"2014-10-22T19:08:41.629Z\",\n       \"7.1.0\": \"2014-10-22T19:45:29.809Z\",\n       \"7.1.1\": \"2014-10-24T06:20:16.375Z\",\n       \"7.2.0\": \"2014-10-30T23:35:51.992Z\",\n       \"7.3.0\": \"2014-11-05T03:04:08.861Z\",\n       \"7.4.0\": \"2014-11-07T05:03:21.747Z\",\n       \"7.5.0\": \"2014-11-07T22:12:09.170Z\",\n       \"7.5.1\": \"2014-11-10T20:09:57.262Z\",\n       \"7.5.2\": \"2014-11-10T20:23:22.140Z\",\n       \"8.0.0-rc1\": \"2014-11-18T20:30:52.355Z\",\n       \"8.0.0-rc2\": \"2014-11-18T20:59:36.586Z\",\n       \"8.0.0-rc3\": \"2014-11-22T02:25:08.435Z\",\n       \"8.0.0-rc4\": \"2014-11-26T05:05:49.331Z\",\n       \"8.0.0-rc5\": \"2014-11-28T08:50:20.452Z\",\n       \"8.0.0-rc6\": \"2014-12-01T23:42:55.148Z\",\n       \"8.0.0-rc7\": \"2014-12-02T09:18:00.490Z\",\n       \"8.0.0-rc8\": \"2014-12-03T09:17:46.812Z\",\n       \"8.0.0-rc9\": \"2014-12-08T05:55:59.067Z\",\n       \"8.0.0\": \"2014-12-09T23:09:13.063Z\",\n       \"7.5.3\": \"2014-12-16T02:58:44.742Z\",\n       \"8.1.0\": \"2015-01-06T22:31:41.026Z\",\n       \"8.2.0\": \"2015-02-09T21:04:56.884Z\",\n       \"8.3.0\": \"2015-03-11T00:33:37.322Z\",\n       \"8.3.1\": \"2015-03-11T06:36:29.719Z\",\n       \"8.4.0\": \"2015-03-13T18:51:10.520Z\",\n       \"8.5.0\": \"2015-05-21T19:22:51.085Z\",\n       \"8.5.1\": \"2015-05-22T21:54:19.705Z\",\n       \"8.5.2\": \"2015-05-27T05:52:32.617Z\",\n       \"8.5.3\": \"2015-05-29T05:55:13.656Z\",\n       \"8.6.0\": \"2015-05-29T20:12:03.406Z\",\n       \"8.6.1\": \"2015-06-05T12:18:24.198Z\",\n       \"8.8.0\": \"2015-07-03T22:44:24.311Z\",\n       \"8.8.1\": \"2015-07-29T19:31:36.940Z\",\n       \"9.0.0\": \"2015-08-12T06:39:22.574Z\",\n       \"9.0.1\": \"2015-08-12T14:55:34.103Z\",\n       \"9.0.2\": \"2015-08-15T23:50:42.737Z\",\n       \"9.0.3\": \"2015-08-19T15:53:13.045Z\",\n       \"9.0.4\": \"2015-09-02T07:51:40.368Z\",\n       \"9.1.0\": \"2015-09-04T05:34:23.527Z\",\n       \"9.2.0\": \"2015-09-05T15:53:31.319Z\",\n       \"9.3.0\": \"2015-09-06T17:34:47.511Z\",\n       \"9.3.1\": \"2015-09-08T19:16:14.008Z\",\n       \"10.0.0\": \"2015-09-11T20:47:37.836Z\",\n       \"10.0.1\": \"2015-09-23T01:23:32.384Z\",\n       \"10.1.0\": \"2015-09-25T15:35:28.476Z\",\n       \"10.2.0\": \"2015-10-03T06:23:14.058Z\",\n       \"10.2.1\": \"2015-10-03T19:33:13.376Z\",\n       \"10.3.0\": \"2015-10-04T00:05:16.771Z\",\n       \"10.4.0\": \"2015-10-05T22:41:43.266Z\",\n       \"10.4.1\": \"2015-10-08T16:05:59.698Z\",\n       \"10.5.0\": \"2015-10-15T16:00:49.869Z\",\n       \"11.0.0\": \"2015-10-16T19:30:34.132Z\",\n       \"11.0.1\": \"2015-10-20T04:47:43.541Z\",\n       \"11.0.2\": \"2015-10-21T15:42:44.357Z\",\n       \"11.0.3\": \"2015-10-30T06:09:59.105Z\",\n       \"11.0.4\": \"2015-11-03T08:14:04.603Z\",\n       \"11.0.5\": \"2015-11-03T20:53:47.919Z\",\n       \"11.1.0\": \"2015-11-05T08:51:05.642Z\",\n       \"11.1.1\": \"2015-11-14T17:39:16.327Z\",\n       \"11.1.2\": \"2015-11-21T22:30:55.829Z\",\n       \"11.1.3\": \"2015-12-23T21:52:56.187Z\",\n       \"11.1.4\": \"2015-12-27T16:15:04.251Z\",\n       \"12.0.0\": \"2016-01-04T23:10:46.386Z\",\n       \"12.0.1\": \"2016-01-06T19:32:29.670Z\",\n       \"12.1.0\": \"2016-01-09T22:38:30.347Z\",\n       \"9.5.1\": \"2016-01-20T18:27:39.478Z\",\n       \"13.0.0\": \"2016-02-01T08:16:27.410Z\",\n       \"13.1.0\": \"2016-03-10T01:50:36.879Z\",\n       \"13.2.0\": \"2016-03-11T06:07:44.062Z\",\n       \"13.2.1\": \"2016-03-11T06:11:01.232Z\",\n       \"13.2.2\": \"2016-03-25T16:50:59.799Z\",\n       \"13.3.0\": \"2016-04-02T17:22:30.843Z\",\n       \"13.4.0\": \"2016-05-07T21:32:58.581Z\"\n   },\n   \"repository\": {\n       \"type\": \"git\",\n       \"url\": \"git://github.com/hapijs/hapi.git\"\n   },\n   \"users\": {\n       \"123\": true,\n       \"fgribreau\": true,\n       \"thegoleffect\": true,\n       \"nvcexploder\": true,\n       \"kpdecker\": true,\n       \"pid\": true,\n       \"paullang\": true,\n       \"chilts\": true,\n       \"surui\": true,\n       \"heskew\": true,\n       \"leesei\": true,\n       \"marsup\": true,\n       \"ruzz311\": true,\n       \"alanshaw\": true,\n       \"stongo\": true,\n       \"gregoj\": true,\n       \"garthk\": true,\n       \"poeticninja\": true,\n       \"didit-tech\": true,\n       \"cedricziel\": true,\n       \"adam_baldwin\": true,\n       \"phuu\": true,\n       \"capelio\": true,\n       \"simme\": true,\n       \"krisb\": true,\n       \"svnlto\": true,\n       \"seldo\": true,\n       \"cilindrox\": true,\n       \"josecardozo\": true,\n       \"donnfelker\": true,\n       \"otodockal\": true,\n       \"dramors\": true,\n       \"shijuvar\": true,\n       \"nagorkin\": true,\n       \"shindakun\": true,\n       \"corbinu\": true,\n       \"gdibble\": true,\n       \"bausmeier\": true,\n       \"adityabakle\": true,\n       \"fourq\": true,\n       \"d10\": true,\n       \"juriwiens\": true,\n       \"toddhickerson\": true,\n       \"mrlannigan\": true,\n       \"edalorzo\": true,\n       \"ejeklint\": true,\n       \"jaw187\": true,\n       \"xicombd\": true,\n       \"randallagordon\": true,\n       \"ingruz\": true,\n       \"facundis\": true,\n       \"kevstev\": true,\n       \"yoitsro\": true,\n       \"adamclerk\": true,\n       \"lindblom\": true,\n       \"evanlucas\": true,\n       \"simplydenis\": true,\n       \"mtt\": true,\n       \"chrisdickinson\": true,\n       \"landau\": true,\n       \"peterblazejewicz\": true,\n       \"scottcorgan\": true,\n       \"devenhouse\": true,\n       \"elmasse\": true,\n       \"patrickkettner\": true,\n       \"filearts\": true,\n       \"anshley\": true,\n       \"pjbr\": true,\n       \"nlf\": true,\n       \"chapel\": true,\n       \"ubaltaci\": true,\n       \"allain\": true,\n       \"maurin.lenglart\": true,\n       \"kmpm\": true,\n       \"mkoopajr\": true,\n       \"julien-f\": true,\n       \"maxkueng\": true,\n       \"mcqueenorama\": true,\n       \"lbenson\": true,\n       \"adamtait\": true,\n       \"thunderzhulei\": true,\n       \"candid\": true,\n       \"mattjc369\": true,\n       \"dubban\": true,\n       \"vanquish\": true,\n       \"wynn\": true,\n       \"paed01\": true,\n       \"robertkowalski\": true,\n       \"joaocampinhos\": true,\n       \"ambdxtrch\": true,\n       \"blakehall\": true,\n       \"michaeljcalkins\": true,\n       \"deepflame\": true,\n       \"ugate\": true,\n       \"aayalur\": true,\n       \"pauldenotter\": true,\n       \"old9\": true,\n       \"vincentmac\": true,\n       \"vikramggg\": true,\n       \"gabeio\": true,\n       \"gchao\": true,\n       \"daviddias\": true,\n       \"arb\": true,\n       \"davidchase\": true,\n       \"wyatt\": true,\n       \"ruiquelhas\": true,\n       \"fampinheiro\": true,\n       \"marcuspoehls\": true,\n       \"jits\": true,\n       \"jeltok\": true,\n       \"devin\": true,\n       \"uipoet\": true,\n       \"swayf\": true,\n       \"jstrimpel\": true,\n       \"Marsup\": true,\n       \"mitchelkuijpers\": true,\n       \"steeevec\": true,\n       \"dkolba\": true,\n       \"z0mt3c\": true,\n       \"windhamdavid\": true,\n       \"kylemathews\": true,\n       \"ellell\": true,\n       \"guumaster\": true,\n       \"codeofzen\": true,\n       \"juliusrickert\": true,\n       \"thyforhtian\": true,\n       \"jbramesh\": true,\n       \"sir79\": true,\n       \"jnath\": true,\n       \"mananvaghasiya\": true,\n       \"sasquatch\": true,\n       \"skopat\": true,\n       \"oakley349\": true,\n       \"jhabdas\": true,\n       \"yuvalziegler\": true,\n       \"dbrockman\": true,\n       \"g33k5z\": true,\n       \"omnijeff\": true,\n       \"ivangaravito\": true,\n       \"devinivy\": true,\n       \"gdbtek\": true,\n       \"sunnylost\": true,\n       \"psalaets\": true,\n       \"lvegerano\": true,\n       \"chaoyi.chen\": true,\n       \"paulovieira\": true,\n       \"pmilan\": true,\n       \"mac-\": true,\n       \"rhrn\": true,\n       \"johnbrett\": true,\n       \"devinclark\": true,\n       \"waltercarvalho\": true,\n       \"zonak\": true,\n       \"jjrosent\": true,\n       \"gergoerdosi\": true,\n       \"benjaminverble\": true,\n       \"bendrucker\": true,\n       \"jnetto\": true,\n       \"hankmccoy78\": true,\n       \"minichiello\": true,\n       \"caleb.boyd\": true,\n       \"markbradshaw\": true,\n       \"bbrown\": true,\n       \"romanenko\": true,\n       \"jardakotesovec\": true,\n       \"evanmarkhopkins\": true,\n       \"stevenweathers\": true,\n       \"bryanwood\": true,\n       \"fyockm\": true,\n       \"shortbreaks\": true,\n       \"felipeleusin\": true,\n       \"kanongil\": true,\n       \"nnt1289\": true,\n       \"cdubois\": true,\n       \"joepindar\": true,\n       \"hekike\": true,\n       \"thomask33\": true,\n       \"yury\": true,\n       \"mrbri\": true,\n       \"clarkie\": true,\n       \"glukki\": true,\n       \"danielhuisman\": true,\n       \"dr-benton\": true,\n       \"corintho\": true,\n       \"blakmatrix\": true,\n       \"hueniverse\": true,\n       \"jory\": true,\n       \"brianjmiller\": true,\n       \"mahpah\": true,\n       \"stuligan\": true,\n       \"peteut\": true,\n       \"pnevares\": true,\n       \"joeybaker\": true,\n       \"nickleefly\": true,\n       \"wheredevel\": true,\n       \"saidgeek\": true,\n       \"sobering\": true,\n       \"indigo0086\": true,\n       \"kulakowka\": true,\n       \"jelhaouchi\": true,\n       \"srl\": true,\n       \"ljon\": true,\n       \"plord\": true,\n       \"mdrobny\": true,\n       \"seanjh\": true,\n       \"markthethomas\": true,\n       \"rsp\": true,\n       \"plechazunga\": true,\n       \"sanketss84\": true,\n       \"itonyyo\": true,\n       \"agtlucas\": true,\n       \"rogier.spieker\": true,\n       \"sfabriece\": true,\n       \"sjnnr\": true,\n       \"paulj\": true,\n       \"jerrywu\": true,\n       \"lupomontero\": true,\n       \"mjaczynski\": true,\n       \"tzsiga\": true,\n       \"program247365\": true,\n       \"gregvanbrug\": true,\n       \"fansgentle\": true,\n       \"nukisman\": true,\n       \"jbpionnier\": true,\n       \"kontrax\": true,\n       \"nackjicholson\": true,\n       \"kraim88\": true,\n       \"deryk\": true,\n       \"makay\": true,\n       \"gnimuc\": true,\n       \"jalcine\": true,\n       \"panlw\": true,\n       \"bplabombarda\": true,\n       \"nickeltobias\": true,\n       \"nathanbuchar\": true,\n       \"alectic\": true,\n       \"vwal\": true,\n       \"sakai135\": true,\n       \"illustratordavid\": true,\n       \"lassevolkmann\": true,\n       \"favasconcelos\": true,\n       \"eventhorizon\": true,\n       \"nick_mcg\": true,\n       \"minchnew\": true,\n       \"nelix\": true,\n       \"antanst\": true,\n       \"urbantumbleweed\": true,\n       \"programmer.severson\": true,\n       \"stany\": true,\n       \"ziflex\": true,\n       \"salar\": true,\n       \"pixlab\": true,\n       \"saravananr\": true,\n       \"tobiasnickel\": true,\n       \"lekosfmi\": true,\n       \"dosevader\": true,\n       \"cfleschhut\": true,\n       \"empurium\": true,\n       \"027720\": true,\n       \"danielb\": true,\n       \"timdp\": true,\n       \"dankle\": true,\n       \"mhaidarh\": true,\n       \"pigiuz\": true,\n       \"zayyar.phone\": true,\n       \"brend\": true,\n       \"andrefreitas\": true,\n       \"roman-io\": true,\n       \"pruettti\": true,\n       \"guidoschmidt\": true,\n       \"a3.ivanenko\": true,\n       \"tribou\": true,\n       \"nocomment17\": true,\n       \"glenngeenen\": true,\n       \"fiws\": true,\n       \"wukaidong\": true,\n       \"dainov\": true,\n       \"leonardorb\": true,\n       \"rexpan\": true,\n       \"ahadb\": true,\n       \"james3299\": true\n   },\n   \"readme\": \"<img src=\\\"https://raw.github.com/hapijs/hapi/master/images/hapi.png\\\" />\\n\\n### Web and services application framework\\n\\n<a href=\\\"https://sideway.com\\\"><img src=\\\"http://blog.sideway.com/wp-content/uploads/logo-300x114.png\\\" align=\\\"right\\\" /></a>\\n\\nLead Maintainer: [Eran Hammer](https://github.com/hueniverse)\\n\\n**hapi** is sponsored by [Sideway](https://sideway.com).\\n\\n**hapi** is a simple to use configuration-centric framework with built-in support for input validation, caching,\\nauthentication, and other essential facilities for building web and services applications. **hapi** enables\\ndevelopers to focus on writing reusable application logic in a highly modular and prescriptive approach. \\n\\nDevelopment version: **13.4.x** ([release notes](https://github.com/hapijs/hapi/issues?labels=release+notes&page=1&state=closed)) \\n[![Build Status](https://secure.travis-ci.org/hapijs/hapi.svg)](http://travis-ci.org/hapijs/hapi)\\n\\nFor the latest updates, [change log](http://hapijs.com/updates), and release information visit [hapijs.com](http://hapijs.com) and follow [@hapijs](https://twitter.com/hapijs) on twitter. If you have questions, please open an issue in the\\n[discussion forum](https://github.com/hapijs/discuss).\\n\",\n   \"readmeFilename\": \"README.md\",\n   \"homepage\": \"http://hapijs.com\",\n   \"keywords\": [\n       \"framework\",\n       \"http\",\n       \"api\",\n       \"web\"\n   ],\n   \"bugs\": {\n       \"url\": \"https://github.com/hapijs/hapi/issues\"\n   },\n   \"license\": \"BSD-3-Clause\"\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/hapi/expected-source.json",
    "content": "{\n  \"files\": {\n    \"readmeSize\": 1213,\n    \"testsSize\": 959339,\n    \"hasShrinkwrap\": true\n  },\n  \"badges\": [\n    {\n      \"urls\": {\n        \"original\": \"https://secure.travis-ci.org/hapijs/hapi.svg\",\n        \"service\": \"https://api.travis-ci.org/hapijs/hapi.svg\",\n        \"shields\": \"https://img.shields.io/travis/hapijs/hapi.svg\",\n        \"content\": \"https://img.shields.io/travis/hapijs/hapi.json\"\n      },\n      \"info\": {\n        \"service\": \"travis\",\n        \"type\": \"build\"\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/planify/data.json",
    "content": "{\n   \"name\": \"planify\",\n   \"description\": \"Plan a series of steps and display the output in a beautiful way\",\n   \"dist-tags\": {\n       \"latest\": \"1.2.0\"\n   },\n   \"versions\": {\n       \"1.0.0\": {\n           \"name\": \"planify\",\n           \"version\": \"1.0.0\",\n           \"description\": \"Plan a series of steps and display the output in a beautiful way\",\n           \"main\": \"index.js\",\n           \"scripts\": {\n               \"test\": \"mocha --bail\",\n               \"test-cov\": \"istanbul cover --dir test/coverage _mocha -- --bail && echo Coverage lies in test/coverage/lcov-report/index.html\",\n               \"test-travis\": \"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --bail && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\"\n           },\n           \"bugs\": {\n               \"url\": \"https://github.com/IndigoUnited/node-planify/issues/\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/IndigoUnited/node-planify.git\"\n           },\n           \"keywords\": [\n               \"plan\",\n               \"step\",\n               \"steps\",\n               \"phase\",\n               \"phases\",\n               \"cli\",\n               \"task\",\n               \"runner\",\n               \"run\"\n           ],\n           \"author\": {\n               \"name\": \"IndigoUnited\",\n               \"email\": \"hello@indigounited.com\",\n               \"url\": \"http://indigounited.com\"\n           },\n           \"license\": \"MIT\",\n           \"dependencies\": {\n               \"ansi-escapes\": \"^1.1.0\",\n               \"bluebird\": \"^3.1.1\",\n               \"chalk\": \"^1.1.1\",\n               \"cli-progress-bar\": \"^1.0.0\",\n               \"indent-string\": \"^2.1.0\",\n               \"lodash\": \"^4.0.0\"\n           },\n           \"devDependencies\": {\n               \"@satazor/eslint-config\": \"^1.0.6\",\n               \"chai\": \"^3.4.1\",\n               \"cli-character-set\": \"^0.1.0\",\n               \"coveralls\": \"^2.11.6\",\n               \"expect.js\": \"^0.3.1\",\n               \"glob\": \"^6.0.4\",\n               \"istanbul\": \"^0.4.1\",\n               \"mocha\": \"^2.3.4\",\n               \"require-directory\": \"^2.1.1\"\n           },\n           \"gitHead\": \"470398d0b5412ac3ee276e33498bf382748b8da1\",\n           \"homepage\": \"https://github.com/IndigoUnited/node-planify#readme\",\n           \"_id\": \"planify@1.0.0\",\n           \"_shasum\": \"85cc83912fd817992f1fe799c8a865f4d28e35ab\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.12\",\n           \"_nodeVersion\": \"5.4.1\",\n           \"_npmUser\": {\n               \"name\": \"satazor\",\n               \"email\": \"andremiguelcruz@msn.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"satazor\",\n                   \"email\": \"andremiguelcruz@msn.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"85cc83912fd817992f1fe799c8a865f4d28e35ab\",\n               \"tarball\": \"http://registry.npmjs.org/planify/-/planify-1.0.0.tgz\"\n           }\n       },\n       \"1.0.1\": {\n           \"name\": \"planify\",\n           \"version\": \"1.0.1\",\n           \"description\": \"Plan a series of steps and display the output in a beautiful way\",\n           \"main\": \"index.js\",\n           \"scripts\": {\n               \"test\": \"mocha --bail\",\n               \"test-cov\": \"istanbul cover --dir test/coverage _mocha -- --bail && echo Coverage lies in test/coverage/lcov-report/index.html\",\n               \"test-travis\": \"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --bail && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\"\n           },\n           \"bugs\": {\n               \"url\": \"https://github.com/IndigoUnited/node-planify/issues/\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/IndigoUnited/node-planify.git\"\n           },\n           \"keywords\": [\n               \"plan\",\n               \"step\",\n               \"steps\",\n               \"phase\",\n               \"phases\",\n               \"cli\",\n               \"task\",\n               \"runner\",\n               \"run\"\n           ],\n           \"author\": {\n               \"name\": \"IndigoUnited\",\n               \"email\": \"hello@indigounited.com\",\n               \"url\": \"http://indigounited.com\"\n           },\n           \"license\": \"MIT\",\n           \"dependencies\": {\n               \"ansi-escapes\": \"^1.1.0\",\n               \"bluebird\": \"^3.1.1\",\n               \"chalk\": \"^1.1.1\",\n               \"cli-progress-bar\": \"^1.0.0\",\n               \"indent-string\": \"^2.1.0\",\n               \"lodash\": \"^4.0.0\"\n           },\n           \"devDependencies\": {\n               \"@satazor/eslint-config\": \"^1.0.6\",\n               \"chai\": \"^3.4.1\",\n               \"cli-character-set\": \"^0.1.0\",\n               \"coveralls\": \"^2.11.6\",\n               \"expect.js\": \"^0.3.1\",\n               \"glob\": \"^6.0.4\",\n               \"istanbul\": \"^0.4.1\",\n               \"mocha\": \"^2.3.4\",\n               \"require-directory\": \"^2.1.1\"\n           },\n           \"gitHead\": \"9c1c49af97f3210fad44fde3cde648705dc0c6a0\",\n           \"homepage\": \"https://github.com/IndigoUnited/node-planify#readme\",\n           \"_id\": \"planify@1.0.1\",\n           \"_shasum\": \"49dcd0cf4167331c294ee1c62d04c674fd4952b9\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"3.3.12\",\n           \"_nodeVersion\": \"5.4.1\",\n           \"_npmUser\": {\n               \"name\": \"satazor\",\n               \"email\": \"andremiguelcruz@msn.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"satazor\",\n                   \"email\": \"andremiguelcruz@msn.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"49dcd0cf4167331c294ee1c62d04c674fd4952b9\",\n               \"tarball\": \"http://registry.npmjs.org/planify/-/planify-1.0.1.tgz\"\n           }\n       },\n       \"1.0.2\": {\n           \"name\": \"planify\",\n           \"version\": \"1.0.2\",\n           \"description\": \"Plan a series of steps and display the output in a beautiful way\",\n           \"main\": \"index.js\",\n           \"scripts\": {\n               \"test\": \"mocha --bail\",\n               \"test-cov\": \"istanbul cover --dir test/coverage _mocha -- --bail && echo Coverage lies in test/coverage/lcov-report/index.html\",\n               \"test-travis\": \"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --bail && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\"\n           },\n           \"bugs\": {\n               \"url\": \"https://github.com/IndigoUnited/node-planify/issues/\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/IndigoUnited/node-planify.git\"\n           },\n           \"keywords\": [\n               \"plan\",\n               \"step\",\n               \"steps\",\n               \"phase\",\n               \"phases\",\n               \"cli\",\n               \"task\",\n               \"runner\",\n               \"run\"\n           ],\n           \"author\": {\n               \"name\": \"IndigoUnited\",\n               \"email\": \"hello@indigounited.com\",\n               \"url\": \"http://indigounited.com\"\n           },\n           \"license\": \"MIT\",\n           \"dependencies\": {\n               \"ansi-escapes\": \"^1.1.0\",\n               \"bluebird\": \"^3.1.1\",\n               \"chalk\": \"^1.1.1\",\n               \"cli-progress-bar\": \"^1.0.0\",\n               \"indent-string\": \"^2.1.0\",\n               \"lodash\": \"^4.0.0\"\n           },\n           \"devDependencies\": {\n               \"@satazor/eslint-config\": \"^1.0.6\",\n               \"chai\": \"^3.4.1\",\n               \"cli-character-set\": \"^0.1.0\",\n               \"coveralls\": \"^2.11.6\",\n               \"expect.js\": \"^0.3.1\",\n               \"glob\": \"^6.0.4\",\n               \"istanbul\": \"^0.4.1\",\n               \"mocha\": \"^2.3.4\",\n               \"require-directory\": \"^2.1.1\"\n           },\n           \"gitHead\": \"20d855ddd29a8a8eb9c05042f927370a6207adc7\",\n           \"homepage\": \"https://github.com/IndigoUnited/node-planify#readme\",\n           \"_id\": \"planify@1.0.2\",\n           \"_shasum\": \"36258660b4a9dddc2f8c40d1ba18adc8d220ff67\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.7\",\n           \"_nodeVersion\": \"4.2.3\",\n           \"_npmUser\": {\n               \"name\": \"satazor\",\n               \"email\": \"andremiguelcruz@msn.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"satazor\",\n                   \"email\": \"andremiguelcruz@msn.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"36258660b4a9dddc2f8c40d1ba18adc8d220ff67\",\n               \"tarball\": \"http://registry.npmjs.org/planify/-/planify-1.0.2.tgz\"\n           }\n       },\n       \"1.0.3\": {\n           \"name\": \"planify\",\n           \"version\": \"1.0.3\",\n           \"description\": \"Plan a series of steps and display the output in a beautiful way\",\n           \"main\": \"index.js\",\n           \"scripts\": {\n               \"test\": \"mocha --bail\",\n               \"test-cov\": \"istanbul cover --dir test/coverage _mocha -- --bail && echo Coverage lies in test/coverage/lcov-report/index.html\",\n               \"test-travis\": \"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --bail && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\"\n           },\n           \"bugs\": {\n               \"url\": \"https://github.com/IndigoUnited/node-planify/issues/\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/IndigoUnited/node-planify.git\"\n           },\n           \"keywords\": [\n               \"plan\",\n               \"step\",\n               \"steps\",\n               \"phase\",\n               \"phases\",\n               \"cli\",\n               \"task\",\n               \"runner\",\n               \"run\"\n           ],\n           \"author\": {\n               \"name\": \"IndigoUnited\",\n               \"email\": \"hello@indigounited.com\",\n               \"url\": \"http://indigounited.com\"\n           },\n           \"license\": \"MIT\",\n           \"dependencies\": {\n               \"ansi-escapes\": \"^1.1.0\",\n               \"bluebird\": \"^3.1.1\",\n               \"chalk\": \"^1.1.1\",\n               \"cli-progress-bar\": \"^1.0.0\",\n               \"indent-string\": \"^2.1.0\",\n               \"lodash\": \"^4.0.0\"\n           },\n           \"devDependencies\": {\n               \"@satazor/eslint-config\": \"^1.0.6\",\n               \"chai\": \"^3.4.1\",\n               \"cli-character-set\": \"^0.1.0\",\n               \"coveralls\": \"^2.11.6\",\n               \"expect.js\": \"^0.3.1\",\n               \"glob\": \"^6.0.4\",\n               \"istanbul\": \"^0.4.1\",\n               \"mocha\": \"^2.3.4\",\n               \"require-directory\": \"^2.1.1\"\n           },\n           \"gitHead\": \"6566da9cd1368ca81ffe5c720acec89659eb8696\",\n           \"homepage\": \"https://github.com/IndigoUnited/node-planify#readme\",\n           \"_id\": \"planify@1.0.3\",\n           \"_shasum\": \"892137251656b3244df039072d0d860a71fa395c\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.7\",\n           \"_nodeVersion\": \"4.2.3\",\n           \"_npmUser\": {\n               \"name\": \"satazor\",\n               \"email\": \"andremiguelcruz@msn.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"satazor\",\n                   \"email\": \"andremiguelcruz@msn.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"892137251656b3244df039072d0d860a71fa395c\",\n               \"tarball\": \"http://registry.npmjs.org/planify/-/planify-1.0.3.tgz\"\n           }\n       },\n       \"1.0.4\": {\n           \"name\": \"planify\",\n           \"version\": \"1.0.4\",\n           \"description\": \"Plan a series of steps and display the output in a beautiful way\",\n           \"main\": \"index.js\",\n           \"scripts\": {\n               \"test\": \"mocha --bail\",\n               \"test-cov\": \"istanbul cover --dir test/coverage _mocha -- --bail && echo Coverage lies in test/coverage/lcov-report/index.html\",\n               \"test-travis\": \"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --bail && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\"\n           },\n           \"bugs\": {\n               \"url\": \"https://github.com/IndigoUnited/node-planify/issues/\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/IndigoUnited/node-planify.git\"\n           },\n           \"keywords\": [\n               \"plan\",\n               \"step\",\n               \"steps\",\n               \"phase\",\n               \"phases\",\n               \"cli\",\n               \"task\",\n               \"runner\",\n               \"run\"\n           ],\n           \"author\": {\n               \"name\": \"IndigoUnited\",\n               \"email\": \"hello@indigounited.com\",\n               \"url\": \"http://indigounited.com\"\n           },\n           \"license\": \"MIT\",\n           \"dependencies\": {\n               \"ansi-escapes\": \"^1.1.0\",\n               \"bluebird\": \"^3.1.1\",\n               \"chalk\": \"^1.1.1\",\n               \"cli-progress-bar\": \"^1.0.0\",\n               \"indent-string\": \"^2.1.0\",\n               \"lodash\": \"^4.0.0\"\n           },\n           \"devDependencies\": {\n               \"@satazor/eslint-config\": \"^1.0.6\",\n               \"chai\": \"^3.4.1\",\n               \"cli-character-set\": \"^0.1.0\",\n               \"coveralls\": \"^2.11.6\",\n               \"expect.js\": \"^0.3.1\",\n               \"glob\": \"^6.0.4\",\n               \"istanbul\": \"^0.4.1\",\n               \"mocha\": \"^2.3.4\",\n               \"require-directory\": \"^2.1.1\"\n           },\n           \"gitHead\": \"30092240bcb2d96bf13a76bca57234ff1265eef9\",\n           \"homepage\": \"https://github.com/IndigoUnited/node-planify#readme\",\n           \"_id\": \"planify@1.0.4\",\n           \"_shasum\": \"adc202bb1e3bda60a109bd98fbcdf6130c3a006b\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.7\",\n           \"_nodeVersion\": \"4.2.3\",\n           \"_npmUser\": {\n               \"name\": \"satazor\",\n               \"email\": \"andremiguelcruz@msn.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"satazor\",\n                   \"email\": \"andremiguelcruz@msn.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"adc202bb1e3bda60a109bd98fbcdf6130c3a006b\",\n               \"tarball\": \"http://registry.npmjs.org/planify/-/planify-1.0.4.tgz\"\n           }\n       },\n       \"1.0.5\": {\n           \"name\": \"planify\",\n           \"version\": \"1.0.5\",\n           \"description\": \"Plan a series of steps and display the output in a beautiful way\",\n           \"main\": \"index.js\",\n           \"scripts\": {\n               \"test\": \"mocha --bail\",\n               \"test-cov\": \"istanbul cover --dir test/coverage _mocha -- --bail && echo Coverage lies in test/coverage/lcov-report/index.html\",\n               \"test-travis\": \"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --bail && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\"\n           },\n           \"bugs\": {\n               \"url\": \"https://github.com/IndigoUnited/node-planify/issues/\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/IndigoUnited/node-planify.git\"\n           },\n           \"keywords\": [\n               \"plan\",\n               \"step\",\n               \"steps\",\n               \"phase\",\n               \"phases\",\n               \"cli\",\n               \"task\",\n               \"runner\",\n               \"run\"\n           ],\n           \"author\": {\n               \"name\": \"IndigoUnited\",\n               \"email\": \"hello@indigounited.com\",\n               \"url\": \"http://indigounited.com\"\n           },\n           \"license\": \"MIT\",\n           \"dependencies\": {\n               \"ansi-escapes\": \"^1.1.0\",\n               \"bluebird\": \"^3.1.1\",\n               \"chalk\": \"^1.1.1\",\n               \"cli-progress-bar\": \"^1.0.0\",\n               \"indent-string\": \"^2.1.0\",\n               \"lodash\": \"^4.0.0\"\n           },\n           \"devDependencies\": {\n               \"@satazor/eslint-config\": \"^1.0.6\",\n               \"chai\": \"^3.4.1\",\n               \"cli-character-set\": \"^0.1.0\",\n               \"coveralls\": \"^2.11.6\",\n               \"expect.js\": \"^0.3.1\",\n               \"glob\": \"^6.0.4\",\n               \"istanbul\": \"^0.4.1\",\n               \"mocha\": \"^2.3.4\",\n               \"require-directory\": \"^2.1.1\"\n           },\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"gitHead\": \"97172f2bba41b810956d914b6ba95510be45e4e7\",\n           \"homepage\": \"https://github.com/IndigoUnited/node-planify#readme\",\n           \"_id\": \"planify@1.0.5\",\n           \"_shasum\": \"59706be4632186ec97e87a88e811c40c55b998f1\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.7\",\n           \"_nodeVersion\": \"4.2.3\",\n           \"_npmUser\": {\n               \"name\": \"satazor\",\n               \"email\": \"andremiguelcruz@msn.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"satazor\",\n                   \"email\": \"andremiguelcruz@msn.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"59706be4632186ec97e87a88e811c40c55b998f1\",\n               \"tarball\": \"http://registry.npmjs.org/planify/-/planify-1.0.5.tgz\"\n           }\n       },\n       \"1.2.0\": {\n           \"name\": \"planify\",\n           \"version\": \"1.2.0\",\n           \"description\": \"Plan a series of steps and display the output in a beautiful way\",\n           \"main\": \"index.js\",\n           \"scripts\": {\n               \"test\": \"mocha --bail\",\n               \"test-cov\": \"istanbul cover --dir test/coverage _mocha -- --bail && echo Coverage lies in test/coverage/lcov-report/index.html\",\n               \"test-travis\": \"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --bail && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\"\n           },\n           \"bugs\": {\n               \"url\": \"https://github.com/IndigoUnited/node-planify/issues/\"\n           },\n           \"repository\": {\n               \"type\": \"git\",\n               \"url\": \"git://github.com/IndigoUnited/node-planify.git\"\n           },\n           \"keywords\": [\n               \"plan\",\n               \"step\",\n               \"steps\",\n               \"phase\",\n               \"phases\",\n               \"cli\",\n               \"task\",\n               \"runner\",\n               \"run\"\n           ],\n           \"author\": {\n               \"name\": \"IndigoUnited\",\n               \"email\": \"hello@indigounited.com\",\n               \"url\": \"http://indigounited.com\"\n           },\n           \"license\": \"MIT\",\n           \"dependencies\": {\n               \"ansi-escapes\": \"^1.1.0\",\n               \"bluebird\": \"^3.1.1\",\n               \"chalk\": \"^1.1.1\",\n               \"cli-progress-bar\": \"^1.0.0\",\n               \"indent-string\": \"^2.1.0\",\n               \"lodash\": \"^4.0.0\"\n           },\n           \"devDependencies\": {\n               \"@satazor/eslint-config\": \"^1.0.6\",\n               \"chai\": \"^3.4.1\",\n               \"cli-character-set\": \"^0.1.0\",\n               \"coveralls\": \"^2.11.6\",\n               \"expect.js\": \"^0.3.1\",\n               \"glob\": \"^6.0.4\",\n               \"istanbul\": \"^0.4.1\",\n               \"mocha\": \"^2.3.4\",\n               \"require-directory\": \"^2.1.1\"\n           },\n           \"engines\": {\n               \"node\": \">=4.0.0\"\n           },\n           \"gitHead\": \"b978ab1afd96cd9c5b41a642f2821c453ec35ba7\",\n           \"homepage\": \"https://github.com/IndigoUnited/node-planify\",\n           \"_id\": \"planify@1.2.0\",\n           \"_shasum\": \"235a622eadea1809e2232bab7bb0c1d11c69cc7f\",\n           \"_from\": \".\",\n           \"_npmVersion\": \"2.14.12\",\n           \"_nodeVersion\": \"4.2.4\",\n           \"_npmUser\": {\n               \"name\": \"satazor\",\n               \"email\": \"andremiguelcruz@msn.com\"\n           },\n           \"maintainers\": [\n               {\n                   \"name\": \"satazor\",\n                   \"email\": \"andremiguelcruz@msn.com\"\n               }\n           ],\n           \"dist\": {\n               \"shasum\": \"235a622eadea1809e2232bab7bb0c1d11c69cc7f\",\n               \"tarball\": \"http://registry.npmjs.org/planify/-/planify-1.2.0.tgz\"\n           }\n       }\n   },\n   \"readme\": \"# planify\\n\\n[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coverage Status][coveralls-image]][coveralls-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]\\n\\n[npm-url]:https://npmjs.org/package/planify\\n[downloads-image]:http://img.shields.io/npm/dm/planify.svg\\n[npm-image]:http://img.shields.io/npm/v/planify.svg\\n[travis-url]:https://travis-ci.org/IndigoUnited/node-planify\\n[travis-image]:http://img.shields.io/travis/IndigoUnited/node-planify.svg\\n[coveralls-url]:https://coveralls.io/r/IndigoUnited/node-planify\\n[coveralls-image]:https://img.shields.io/coveralls/IndigoUnited/node-planify.svg\\n[david-dm-url]:https://david-dm.org/IndigoUnited/node-planify\\n[david-dm-image]:https://img.shields.io/david/IndigoUnited/node-planify.svg\\n[david-dm-dev-url]:https://david-dm.org/IndigoUnited/node-planify#info=devDependencies\\n[david-dm-dev-image]:https://img.shields.io/david/dev/IndigoUnited/node-planify.svg\\n\\nPlan a series of concrete steps and display their output in a beautiful way.\\n\\nEver wanted to write a simple CLI that run a series of tasks with beautiful output? I did and I always ended up doing a thin wrapper repeatedly. This library provides a concise way to define these tasks while offering a handful of reporters to output the progress in a variety of ways.\\n\\n\\n## Installation\\n\\n`$ npm install planify`\\n\\n\\n## Usage\\n\\nThe API is very simple, yet very powerful:\\n\\n```js\\nconst planify = require('planify');\\n\\nplanify({ reporter: 'blocks' })  // 'blocks' is the default reporter\\n.step('Synchronous step', (data) => {\\n    console.log('A sync step in which data is', data);\\n    data.foz = 'baz';  // Set some data to the next step\\n})\\n.step('Callback step', (data, done) => {\\n    console.log('A callback step in which data is', data);\\n    setTimeout(done, 500);\\n})\\n.step('Promise step', (data) => {\\n    console.log('A promise step in which data is', data);\\n    return new Promise((resolve) => {\\n        setTimeout(resolve, 500);\\n    });\\n})\\n.phase('Some group of steps', (phase) => {\\n    phase.step('Synchronous step inside a phase', (data) => {\\n        console.log('A sync step inside a phase in which data is', data);\\n    });\\n})\\n.run({ foo: 'bar' })\\n// Run returns a promise but callback style is also supported\\n.then(() => process.exit(), (err) => process.exit(1));\\n```\\n\\nYou can build as many nested phases as you wish. API is chainable to make it easier to build your plan.\\n\\nRunning this would look like this:\\n\\n<img src=\\\"./doc/example-blocks.png\\\" width=\\\"600\\\">\\n\\nBut changing the reporter to `spec` would look like this:\\n\\n<img src=\\\"./doc/example-spec.png\\\" width=\\\"600\\\">\\n\\nThis is very similar to the [mocha](https://github.com/mochajs/mocha)'s spec reporter isn't it? In fact a lot of the API was inspired in it. Finally, changing the reporter to `progress` would show a beautiful progress bar instead:\\n\\n<img src=\\\"./doc/example-progress.png\\\" width=\\\"600\\\">\\n\\nAs you can see, changing the appearance of the output is very easy. You may even allow your CLI users to choose the reporter by mapping `--reporter` to `options.reporter` by using [yargs](https://github.com/bcoe/yargs) or something similar. Cool huh?\\n\\n\\n### Reporters\\n\\nThe are several built-in reporters:\\n\\n- `blocks`: blocks is the default reporter and it outputs everything, including stuff printed to the stdout and stderr.\\n- `spec`: spec reporter is very similar to mocha's spec reporter but stuff written to the stdout and stderr are hidden.\\n- `progress`: progress reporter shows a beautiful progress bar showing the overall progress of the plan; stuff written to the stdout and stderr are hidden.\\n- `json`: json reporter outputs a machine readable object with all the plan lifecycle events.\\n- `silent`: silent reporter which simply outputs nothing.\\n- `spinner`: a simple reporter which prints errors or a spinner when the process is running.\\n\\nYou can easily make your own reporter. Take a look at the [json](./reporters/json.js) reporter implementation for an example. You may use a custom reporter like this:\\n\\n```js\\n// my-reporter.js\\nfunction myReporter(options) {\\n    /* ... */\\n\\n    return {\\n        plan: {\\n            start() { /* ... */ },\\n        },\\n    };\\n}\\n\\nmodule.exports = myReporter;\\n\\n// example.js\\nconst planify = require('planify');\\nconst myReporter = require('./my-reporter');\\n\\nconst plan = planify({\\n    reporter: myReporter({ /* reporter options if any */ })\\n});\\n\\n/* ... */\\n```\\n\\nOne cool feature of the reporters is that they can be async. You may return promises or use callbacks to do async reporting (.e.g.: save stuff to a database).\\n\\nFeel free to make a PR to add your reporter to the built-in reporters.\\n\\n\\n### Full API\\n\\n#### planify([options])\\n\\nCreates a plan with the `given` options.\\n\\nAvailable options:\\n\\n- `reporter`: The reporter to be used which can be a string or a reporter object, defaults to `blocks`.\\n- `exit`: True to exit automatically after running, defaults to `false`. If the plan fails with an error that has `err.exitCode`, the program will exit with that code.\\n\\n\\n```js\\nconst planify = require('planify');\\nconst plan = planify({ exit: true, reporter: 'spec' });\\n```\\n\\n#### .step(label, [options], fn)\\n\\nAdds a step with `label`, executing `fn` when it's time for the step to run.\\n\\nThe `fn` function will receive the plan `data` as the first argument which allows you to pass data to other steps.\\nAs show above, `fn` may return a promise or use callbacks to do asynchronous stuff.\\n\\nAvailable options:\\n\\n- `fatal`: False to continue executing if this step fails, defaults to `true`.\\n- `mute`: True to mute stdout and stderr completely during the execution of this step independently of the reporter being used , defaults to `false`; stdout and stderr can be muted independently by passing an object, e.g.: `{ stdout: true, stderr: false }`.\\n- `slow`: Amount of time in ms to consider this step slow, defaults to `200`.\\n\\n\\n```js\\nconst planify = require('planify');\\nconst plan = planify();\\n\\nplan.step('Some cool step', { fatal: false }, (data) => {\\n    throw new Error('This will fail but continue to the next step');\\n});\\nplan.step('Some cool step', { mute: true }, (data) => {\\n    console.log('This will not be logged');\\n});\\nplan.step('Some cool step', { slow: 500 }, (data, done) => {\\n    // Will be considered slow\\n    setTimeout(done, 600);\\n});\\n```\\n\\n#### .phase(label, fn)\\n\\nAdds a phase with `label` to the plan, executing `fn` with a `phase` object to define the phase plan.\\n\\nThe `phase` object has the `step` and `phase` methods, allowing you to build a hierarchy of other phases and steps.\\n\\n\\n```js\\nconst planify = require('planify');\\nconst plan = planify();\\n\\nplan.phase('Phase 1', (phase) => {\\n    phase.step('Inner step', () => {});\\n    phase.phase('Inner phase', () => {});\\n});\\n```\\n\\n#### .run([data])\\n\\nRuns the plan.\\nReturns a promise that will be resolved when the plan succeeds or rejected if any of the steps failed.\\nYou may pass a callback as the second argument instead.\\n\\n\\n```js\\nconst planify = require('planify');\\nconst plan = planify();\\n\\nplan.step('Some cool step', (data) => {\\n    /* ... */\\n});\\n\\nplan.run({ initial: 'data' })\\n.then(() => process.exit(0), () => process.exit(1));\\n\\n// or you may use callback style\\nplan.run({ initial: 'data' }, (err) => {\\n    process.exit(err ? 1 : 0);\\n});\\n```\\n\\n#### .getReporter()\\n\\nReturns the configured reporter.\\n\\n#### .getNode()\\n\\nReturns the plan node, giving access to the plan tree. Use this at your own risk.\\n\\n\\n### Caveats\\n\\n`planify` hooks into `process.stdout.write` and `process.stderr.write` to allow reporters to style or mute output done inside steps.\\nThought, it's impossible to do that when using `child_process#spawn` or `child_process#exec` with `options.stdio` set to `inherit`. Please avoid it and listen to `data` events from stdout and stderr instead:\\n\\n```js\\n// Example using child_process#spawn\\nconst spawn = require('cross-spawn-async');\\nconst planify = require('planify');\\n\\nplanify({ exit: true })\\n.step('Executing npm install', (done) => {\\n    const npm = spawn('npm', ['install']);  // Use cross-spawn to make this work on Windows\\n\\n    npm.stdout.on('data', (buffer) => process.stdout.write(buffer));\\n    npm.stderr.on('data', (buffer) => process.stderr.write(buffer));\\n\\n    npm.on('error', done);\\n    npm.on('exit', (code) => {\\n        done(code ? new Error('npm exited with code ' + code) : null);\\n    });\\n})\\n.run();\\n```\\n\\n```js\\n// Example using child_process#exec\\nconst cp = require('child_process');\\nconst planify = require('planify');\\n\\nplanify({ exit: true })\\n.step('Executing npm install', (done) => {\\n    // Note that output is buffered :(\\n    cp.exec('npm install', (err, stdout, stderr) => {\\n        stdout && process.stdout.write(stdout);\\n        stderr && process.stderr.write(stderr);\\n        done(err);\\n    });\\n})\\n.run();\\n```\\n\\n\\n## Tests\\n\\n`$ npm test`   \\n`$ npm test-cov` to get coverage report\\n\\n\\n## License\\n\\nReleased under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\\n\",\n   \"maintainers\": [\n       {\n           \"name\": \"satazor\",\n           \"email\": \"andremiguelcruz@msn.com\"\n       }\n   ],\n   \"time\": {\n       \"modified\": \"2016-02-01T10:30:32.605Z\",\n       \"created\": \"2016-01-14T01:31:14.599Z\",\n       \"1.0.0\": \"2016-01-14T01:31:14.599Z\",\n       \"1.0.1\": \"2016-01-14T02:03:52.483Z\",\n       \"1.0.2\": \"2016-01-14T08:18:46.400Z\",\n       \"1.0.3\": \"2016-01-14T09:15:01.124Z\",\n       \"1.0.4\": \"2016-01-15T09:34:54.510Z\",\n       \"1.0.5\": \"2016-01-15T23:05:49.134Z\",\n       \"1.2.0\": \"2016-02-01T10:30:32.605Z\"\n   },\n   \"homepage\": \"https://github.com/IndigoUnited/node-planify\",\n   \"keywords\": [\n       \"plan\",\n       \"step\",\n       \"steps\",\n       \"phase\",\n       \"phases\",\n       \"cli\",\n       \"task\",\n       \"runner\",\n       \"run\"\n   ],\n   \"repository\": {\n       \"type\": \"git\",\n       \"url\": \"git://github.com/IndigoUnited/node-planify.git\"\n   },\n   \"author\": {\n       \"name\": \"IndigoUnited\",\n       \"email\": \"hello@indigounited.com\",\n       \"url\": \"http://indigounited.com\"\n   },\n   \"bugs\": {\n       \"url\": \"https://github.com/IndigoUnited/node-planify/issues/\"\n   },\n   \"license\": \"MIT\",\n   \"readmeFilename\": \"README.md\",\n   \"users\": {\n       \"carsy\": true\n   }\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/planify/expected-source.json",
    "content": "{\n  \"files\": {\n    \"readmeSize\": 9014,\n    \"testsSize\": 140994\n  },\n  \"linters\": [\n    \"editorconfig\",\n    \"eslint\"\n  ],\n  \"coverage\": 0.98,\n  \"badges\": [\n    {\n      \"urls\": {\n        \"original\": \"http://img.shields.io/npm/dm/planify.svg\",\n        \"shields\": \"https://img.shields.io/npm/dm/planify.svg\",\n        \"content\": \"https://img.shields.io/npm/dm/planify.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"downloads\",\n        \"modifiers\": {\n          \"type\": \"dm\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"http://img.shields.io/npm/v/planify.svg\",\n        \"shields\": \"https://img.shields.io/npm/v/planify.svg\",\n        \"content\": \"https://img.shields.io/npm/v/planify.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"version\",\n        \"modifiers\": {\n          \"type\": \"v\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"http://img.shields.io/travis/IndigoUnited/node-planify.svg\",\n        \"service\": \"https://api.travis-ci.org/IndigoUnited/node-planify.svg\",\n        \"shields\": \"https://img.shields.io/travis/IndigoUnited/node-planify.svg\",\n        \"content\": \"https://img.shields.io/travis/IndigoUnited/node-planify.json\"\n      },\n      \"info\": {\n        \"service\": \"travis\",\n        \"type\": \"build\"\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/coveralls/IndigoUnited/node-planify.svg\",\n        \"service\": \"https://coveralls.io/repos/IndigoUnited/node-planify/badge.svg\",\n        \"shields\": \"https://img.shields.io/coveralls/IndigoUnited/node-planify.svg\",\n        \"content\": \"https://img.shields.io/coveralls/IndigoUnited/node-planify.json\"\n      },\n      \"info\": {\n        \"service\": \"coveralls\",\n        \"type\": \"coverage\"\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/david/IndigoUnited/node-planify.svg\",\n        \"service\": \"https://david-dm.org/IndigoUnited/node-planify.svg\",\n        \"shields\": \"https://img.shields.io/david/IndigoUnited/node-planify.svg\",\n        \"content\": \"https://img.shields.io/david/IndigoUnited/node-planify.json\"\n      },\n      \"info\": {\n        \"service\": \"david\",\n        \"type\": \"dependencies\",\n        \"modifiers\": {\n          \"statusType\": \"normal\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/david/dev/IndigoUnited/node-planify.svg\",\n        \"service\": \"https://david-dm.org/IndigoUnited/node-planify/dev-status.svg\",\n        \"shields\": \"https://img.shields.io/david/dev/IndigoUnited/node-planify.svg\",\n        \"content\": \"https://img.shields.io/david/dev/IndigoUnited/node-planify.json\"\n      },\n      \"info\": {\n        \"service\": \"david\",\n        \"type\": \"dependencies\",\n        \"modifiers\": {\n          \"statusType\": \"dev\"\n        }\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/react/data.json",
    "content": "{\n  \"_id\": \"react\",\n  \"_rev\": \"145-228ca42672da2fe6f9f5b5fc3bccb4da\",\n  \"name\": \"react\",\n  \"description\": \"React is a JavaScript library for building user interfaces.\",\n  \"dist-tags\": {\n    \"latest\": \"15.4.2\",\n    \"0.10.0-rc1\": \"0.10.0-rc1\",\n    \"0.11.0-rc1\": \"0.11.0-rc1\",\n    \"next\": \"16.0.0-alpha.6\"\n  },\n  \"versions\": {\n    \"0.0.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.0.1\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"~v0.4.12\"\n      },\n      \"dependencies\": {},\n      \"devDependencies\": {},\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.0.1\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.103\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"c84d3dbff0c65577a52f0bfe431f8bcc155fa365\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.0.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.0.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.0.2\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"~v0.4.12\"\n      },\n      \"dependencies\": {},\n      \"devDependencies\": {},\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.0.2\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.103\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"3cf0fbb146714879c0de7069e8cabb21f2cb523f\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.0.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.0.3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.0.3\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"~v0.4.12\"\n      },\n      \"dependencies\": {},\n      \"devDependencies\": {},\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.0.3\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.103\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"b48724d68047a09ab726d066b4290e53a7d94a6d\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.0.3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.1.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.1.2\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.1.2\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.106\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"036bfebd9748309772b79753d2e9924af7707d00\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.1.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.2.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.2.0\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.2.0\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.106\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"770c2c548cf41e2bb676f86d55732966f83b0183\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.2.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.2.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.2.1\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.2.1\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.106\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"9b079278e61ca59b05341abd675286f7508568b0\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.2.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.2.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.2.2\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.2.2\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.106\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"09925e7afb8fceab6df5af07e1622581334070e2\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.2.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.2.3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.2.3\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.2.3\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.106\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"827f7ee5a9648ab56ab22ccbddfd6c051bfbec7c\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.2.3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.2.4\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.2.4\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.2.4\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.106\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"39aebe956fc1ad52322bf4fad458d3b41ce33bcc\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.2.4.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.2.5\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.2.5\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.2.5\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.106\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"c44ae3de5d2fd3e2bf0d4617c3109988b9281a83\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.2.5.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.2.6\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.2.6\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.2.6\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.0.106\",\n      \"_nodeVersion\": \"v0.4.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"31dd975de23b2d514f9e34bd3b35a806208bf6f4\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.2.6.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.3.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.3.0\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\",\n        \"promised-io\": \"~0.3.0\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.3.0\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.0-beta-10\",\n      \"_nodeVersion\": \"v0.6.7\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"64f73e67ad01c068ead6576cb779611b6ba40746\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.3.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.3.4\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.\",\n      \"version\": \"0.3.4\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\",\n        \"promised-io\": \"~0.3.0\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.3.4\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.0-beta-10\",\n      \"_nodeVersion\": \"v0.6.7\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"9ef9cc87f380a3d4232506f1f8bda519aa0b0e83\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.3.4.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.3.5\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.3.5\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\",\n        \"promised-io\": \"~0.3.0\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.3.5\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.0-beta-10\",\n      \"_nodeVersion\": \"v0.6.7\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"363b85fa62d6258d449fce394366028f9727321d\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.3.5.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.5.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.5.0\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\",\n        \"promised-io\": \"~0.3.0\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.5.0\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.0-beta-10\",\n      \"_nodeVersion\": \"v0.6.7\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"6c1c76a1627b793ace4b961ed29bb32e6452f8cf\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.5.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.5.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.5.1\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\",\n        \"promised-io\": \"~0.3.0\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.5.1\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.0-beta-10\",\n      \"_nodeVersion\": \"v0.6.7\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"aae9f621d3503018406cc86189d3b040aa1173bf\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.5.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.5.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.5.2\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"react\",\n      \"engines\": {\n        \"node\": \"*\"\n      },\n      \"dependencies\": {\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprintf\": \"~0.1.1\",\n        \"ensure-array\": \"~0.0.2\"\n      },\n      \"devDependencies\": {\n        \"tap\": \"~0.1.0\",\n        \"tapr\": \"~0.1.0\",\n        \"promised-io\": \"~0.3.0\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"node_modules/.bin/tapr test\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.5.2\",\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.0-beta-10\",\n      \"_nodeVersion\": \"v0.6.11\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"5f77c6eab101d965fb98785c68940c6e17c0b7b6\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.5.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.6.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.6.0\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"lib/react\",\n      \"engines\": {\n        \"node\": \">=0.6\"\n      },\n      \"dependencies\": {\n        \"amdefine\": \"~0.0.2\",\n        \"eventemitter2\": \"~0.4.1\",\n        \"sprint\": \"~0.3.0\",\n        \"ensure-array\": \"~0.0.5\"\n      },\n      \"devDependencies\": {\n        \"requirejs\": \"~1.0.7\",\n        \"mocha\": \"~0.14.1\",\n        \"chai\": \"~0.5.2\",\n        \"jake\": \"~0.2.31\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"./node_modules/mocha/bin/mocha ./test/*.mocha.js\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.6.0\",\n      \"optionalDependencies\": {},\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.12\",\n      \"_nodeVersion\": \"v0.6.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"ad4ba0cff733a24d104e58b0cbfdef66c9b8a65f\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.6.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.6.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.6.1\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"lib/react\",\n      \"engines\": {\n        \"node\": \">=0.6\"\n      },\n      \"dependencies\": {\n        \"amdefine\": \"~0.0.2\",\n        \"eventemitter2\": \"~0.4.1\",\n        \"ensure-array\": \"~0.0.5\"\n      },\n      \"devDependencies\": {\n        \"requirejs\": \"~1.0.7\",\n        \"mocha\": \"~0.14.1\",\n        \"chai\": \"~0.5.2\",\n        \"jake\": \"~0.2.31\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"./node_modules/mocha/bin/mocha ./test/*.mocha.js\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.6.1\",\n      \"optionalDependencies\": {},\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.12\",\n      \"_nodeVersion\": \"v0.6.12\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"8a68961f0da0bf41d67e35f8ccda4161b9ba9e22\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.6.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.6.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.6.2\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"lib/react\",\n      \"engines\": {\n        \"node\": \">=0.6\"\n      },\n      \"dependencies\": {\n        \"amdefine\": \"~0.0.2\",\n        \"eventemitter2\": \"~0.4.1\",\n        \"ensure-array\": \"~0.0.5\"\n      },\n      \"devDependencies\": {\n        \"requirejs\": \"~2.0.6\",\n        \"mocha\": \"~1.4.2\",\n        \"chai\": \"~1.2.0\",\n        \"jake\": \"~0.3.16\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"./node_modules/mocha/bin/mocha ./test/*.mocha.js\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.6.2\",\n      \"optionalDependencies\": {},\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.12\",\n      \"_nodeVersion\": \"v0.8.8\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"9d2d0c241a94c526663ccec605cb53c429ccea9e\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.6.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.6.3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.6.3\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"lib/react\",\n      \"engines\": {\n        \"node\": \">=0.6\"\n      },\n      \"dependencies\": {\n        \"amdefine\": \"~0.0.2\",\n        \"eventemitter2\": \"~0.4.1\",\n        \"ensure-array\": \"~0.0.5\"\n      },\n      \"devDependencies\": {\n        \"requirejs\": \"~2.0.6\",\n        \"mocha\": \"~1.4.2\",\n        \"chai\": \"~1.2.0\",\n        \"jake\": \"~0.3.16\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"./node_modules/mocha/bin/mocha ./test/*.mocha.js\"\n      },\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"_id\": \"react@0.6.3\",\n      \"optionalDependencies\": {},\n      \"_engineSupported\": true,\n      \"_npmVersion\": \"1.1.12\",\n      \"_nodeVersion\": \"v0.8.8\",\n      \"_defaultsLoaded\": true,\n      \"dist\": {\n        \"shasum\": \"87b89ccac78deecdd148c93989b0ba08da8c127f\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.6.3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.7.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.7.0\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"http://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"lib/react\",\n      \"engines\": {\n        \"node\": \">=0.6\"\n      },\n      \"dependencies\": {\n        \"amdefine\": \"~0.0.5\",\n        \"eventemitter2\": \"~0.4.11\",\n        \"ensure-array\": \"~0.0.5\"\n      },\n      \"devDependencies\": {\n        \"requirejs\": \"~2.1.6\",\n        \"mocha\": \"~1.10.0\",\n        \"chai\": \"~1.6.0\",\n        \"jake\": \"~0.5.15\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"scripts\": {\n        \"test\": \"./node_modules/mocha/bin/mocha ./test/*.mocha.js\"\n      },\n      \"_id\": \"react@0.7.0\",\n      \"dist\": {\n        \"shasum\": \"8b4713aa18d019f0a72d7d935954aec9779aa389\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.7.0.tgz\"\n      },\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.2.18\",\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.7.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow\",\n      \"version\": \"0.7.1\",\n      \"author\": {\n        \"name\": \"Jeff Barczewski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"http://github.com/jeffbski/react.git\"\n      },\n      \"bugs\": {\n        \"url\": \"http://github.com/jeffbski/react/issues\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"MIT\",\n          \"url\": \"http://github.com/jeffbski/react/raw/master/LICENSE\"\n        }\n      ],\n      \"main\": \"lib/react\",\n      \"engines\": {\n        \"node\": \">=0.6\"\n      },\n      \"dependencies\": {\n        \"amdefine\": \"~0.0.5\",\n        \"eventemitter2\": \"~0.4.11\",\n        \"ensure-array\": \"~0.0.5\"\n      },\n      \"devDependencies\": {\n        \"requirejs\": \"~2.1.6\",\n        \"mocha\": \"~1.10.0\",\n        \"chai\": \"~1.6.0\",\n        \"jake\": \"~0.5.15\",\n        \"Deferred\": \"~0.1.1\"\n      },\n      \"keywords\": [\n        \"flow\",\n        \"flow control\",\n        \"control flow\",\n        \"dataflow\",\n        \"reactive\",\n        \"deferred\",\n        \"promise\",\n        \"async\"\n      ],\n      \"scripts\": {\n        \"test\": \"./node_modules/mocha/bin/mocha ./test/*.mocha.js\"\n      },\n      \"_id\": \"react@0.7.1\",\n      \"dist\": {\n        \"shasum\": \"5975afe741f977ba3dcd26faca432a832c0c7b04\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.7.1.tgz\"\n      },\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.2.18\",\n      \"_npmUser\": {\n        \"name\": \"jeffbski\",\n        \"email\": \"jeff.barczewski@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        }\n      ],\n      \"directories\": {},\n      \"deprecated\": \"The jeffbski/react module has been renamed to 'autoflow'. Please update your dependencies to point to autoflow. react@0.8.0+ will now refer to facebook/react\"\n    },\n    \"0.8.0\": {\n      \"name\": \"react\",\n      \"version\": \"0.8.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"Apache-2.0\",\n          \"url\": \"http://www.apache.org/licenses/LICENSE-2.0\"\n        }\n      ],\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"ReactJSErrors.js\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"peerDependencies\": {\n        \"envify\": \"~0.2.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"description\": \"An npm package to get you immediate access to [React](http://facebook.github.io/react/), without also requiring the JSX transformer. This is especially useful for cases where you want to [`browserify`](https://github.com/substack/node-browserify) your mod\",\n      \"_id\": \"react@0.8.0\",\n      \"dist\": {\n        \"shasum\": \"9aef0dbc3e05b44d96139cdbdaa5d727b0506e1e\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.8.0.tgz\"\n      },\n      \"_resolved\": \"react-0.8.0.tgz\",\n      \"_from\": \"react-0.8.0.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"1.3.14\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.9.0-rc1\": {\n      \"name\": \"react\",\n      \"version\": \"0.9.0-rc1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"Apache-2.0\",\n          \"url\": \"http://www.apache.org/licenses/LICENSE-2.0\"\n        }\n      ],\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"peerDependencies\": {\n        \"envify\": \"~1.0.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"description\": \"An npm package to get you immediate access to [React](http://facebook.github.io/react/), without also requiring the JSX transformer. This is especially useful for cases where you want to [`browserify`](https://github.com/substack/node-browserify) your mod\",\n      \"_id\": \"react@0.9.0-rc1\",\n      \"dist\": {\n        \"shasum\": \"44f830c1a506bdc4f042be940c638728ea5eb2f5\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.9.0-rc1.tgz\"\n      },\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.3.21\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jeffbski\",\n          \"email\": \"jeff.barczewski@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.9.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.9.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"Apache-2.0\",\n          \"url\": \"http://www.apache.org/licenses/LICENSE-2.0\"\n        }\n      ],\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"peerDependencies\": {\n        \"envify\": \"~1.2.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.9.0\",\n      \"dist\": {\n        \"shasum\": \"c1c91e19fe391f997012791839ddffded20c68fd\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.9.0.tgz\"\n      },\n      \"_resolved\": \"react.tgz\",\n      \"_from\": \"react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"1.3.14\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.10.0-rc1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.10.0-rc1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"Apache-2.0\",\n          \"url\": \"http://www.apache.org/licenses/LICENSE-2.0\"\n        }\n      ],\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"peerDependencies\": {\n        \"envify\": \"~1.2.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.10.0-rc1\",\n      \"dist\": {\n        \"shasum\": \"04c3ed833fb72249e2dce7dee33f63e0f781e010\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.10.0-rc1.tgz\"\n      },\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.3\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.10.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.10.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"Apache-2.0\",\n          \"url\": \"http://www.apache.org/licenses/LICENSE-2.0\"\n        }\n      ],\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"peerDependencies\": {\n        \"envify\": \"~1.2.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.10.0\",\n      \"dist\": {\n        \"shasum\": \"8c82753593d3f325ca99d820f7400ab02f1ee1f8\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.10.0.tgz\"\n      },\n      \"_resolved\": \"react.tgz\",\n      \"_from\": \"react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"1.4.3\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.11.0-rc1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.11.0-rc1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"Apache-2.0\",\n          \"url\": \"http://www.apache.org/licenses/LICENSE-2.0\"\n        }\n      ],\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^2.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.11.0-rc1\",\n      \"_shasum\": \"584eb0d2f4c23fa5e44185837d75a24d19fd6877\",\n      \"_resolved\": \"react.tgz\",\n      \"_from\": \"react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"1.4.20\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"584eb0d2f4c23fa5e44185837d75a24d19fd6877\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.11.0-rc1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.11.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.11.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"Apache-2.0\",\n          \"url\": \"http://www.apache.org/licenses/LICENSE-2.0\"\n        }\n      ],\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^2.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.11.0\",\n      \"_shasum\": \"110428587ef97a28d9525df148e4ceffeb0be37b\",\n      \"_resolved\": \"react.tgz\",\n      \"_from\": \"react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"1.4.20\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"110428587ef97a28d9525df148e4ceffeb0be37b\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.11.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.11.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.11.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"Apache-2.0\",\n          \"url\": \"http://www.apache.org/licenses/LICENSE-2.0\"\n        }\n      ],\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^2.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.11.1\",\n      \"_shasum\": \"201190712f69bc451e2c83946653384d7448aaff\",\n      \"_resolved\": \"react.tgz\",\n      \"_from\": \"react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"1.4.14\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"201190712f69bc451e2c83946653384d7448aaff\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.11.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.11.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.11.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"licenses\": [\n        {\n          \"type\": \"Apache-2.0\",\n          \"url\": \"http://www.apache.org/licenses/LICENSE-2.0\"\n        }\n      ],\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^2.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.11.2\",\n      \"_shasum\": \"eaeb787e9b1e266a3540c07c06f4ea80fe1e3766\",\n      \"_resolved\": \"react.tgz\",\n      \"_from\": \"react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"1.4.23\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"eaeb787e9b1e266a3540c07c06f4ea80fe1e3766\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.11.2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.12.0-rc1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.12.0-rc1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.12.0-rc1\",\n      \"_shasum\": \"de56afc07e834fdf2f988a9c1026c25b93a61636\",\n      \"_resolved\": \"/Users/poshannessy/FB/code/react/build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.1.3\",\n      \"_nodeVersion\": \"0.10.31\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"de56afc07e834fdf2f988a9c1026c25b93a61636\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.12.0-rc1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.12.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.12.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.12.0\",\n      \"_shasum\": \"4361809e9fc234fc89db4ebc087bdda07908a56b\",\n      \"_resolved\": \"/Users/poshannessy/FB/code/react/build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.1.4\",\n      \"_nodeVersion\": \"0.10.32\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"4361809e9fc234fc89db4ebc087bdda07908a56b\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.12.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.12.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.12.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.12.1\",\n      \"_shasum\": \"b73836f4f1888ce79c9372208398a3fb5483bc35\",\n      \"_resolved\": \"react.tgz\",\n      \"_from\": \"react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"1.4.21\",\n      \"_npmUser\": {\n        \"name\": \"jeffmo\",\n        \"email\": \"jeff@anafx.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"b73836f4f1888ce79c9372208398a3fb5483bc35\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.12.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.12.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.12.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.12.2\",\n      \"_shasum\": \"1c4f0b08818146eeab4f0ab39257e0aa52027e00\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.1.11\",\n      \"_nodeVersion\": \"0.10.32\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"1c4f0b08818146eeab4f0ab39257e0aa52027e00\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.12.2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.0-alpha.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.0-alpha.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.0-alpha.1\",\n      \"_shasum\": \"3f456c28218911536bb331f95f293ac4983ebcd3\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.1.11\",\n      \"_nodeVersion\": \"0.10.32\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"3f456c28218911536bb331f95f293ac4983ebcd3\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.0-alpha.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.0-alpha.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.0-alpha.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.0-alpha.2\",\n      \"_shasum\": \"ef16c2018564cf12560543abdde2425f995761f8\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.1.11\",\n      \"_nodeVersion\": \"0.10.32\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"ef16c2018564cf12560543abdde2425f995761f8\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.0-alpha.2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.0-beta.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.0-beta.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.0-beta.1\",\n      \"_shasum\": \"3116a1a088a10f7c758b26d0b4cbc3c13d6a8f29\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.1.11\",\n      \"_nodeVersion\": \"0.10.32\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"3116a1a088a10f7c758b26d0b4cbc3c13d6a8f29\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.0-beta.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.0-beta.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.0-beta.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.0-beta.2\",\n      \"_shasum\": \"94495988d861802afb9e4dc36acf387463c98614\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.4.1\",\n      \"_nodeVersion\": \"0.10.32\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"94495988d861802afb9e4dc36acf387463c98614\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.0-beta.2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.0-rc1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.0-rc1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.0-rc1\",\n      \"_shasum\": \"1773c4cf6b4f422b665eceb276345cfc030678ac\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.4.1\",\n      \"_nodeVersion\": \"0.10.32\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"1773c4cf6b4f422b665eceb276345cfc030678ac\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.0-rc1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.0-rc2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.0-rc2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.0-rc2\",\n      \"_shasum\": \"34e13467a0a198d44a5862bb7471177379129570\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.6.1\",\n      \"_nodeVersion\": \"0.10.36\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"34e13467a0a198d44a5862bb7471177379129570\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.0-rc2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.0\",\n      \"_shasum\": \"34e0c78014589ed56884bb835282b0acd3fc57d7\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.6.1\",\n      \"_nodeVersion\": \"0.10.36\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"34e0c78014589ed56884bb835282b0acd3fc57d7\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.1\",\n      \"_shasum\": \"d38b700cdf7b33eeb0cefd7b8ca98e0fe8e5339d\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.7.1\",\n      \"_nodeVersion\": \"0.10.36\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"d38b700cdf7b33eeb0cefd7b8ca98e0fe8e5339d\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.2\",\n      \"_shasum\": \"a1c7cec5e7be080c4e249b20740d4d4cd18880ca\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.7.3\",\n      \"_nodeVersion\": \"0.10.38\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"a1c7cec5e7be080c4e249b20740d4d4cd18880ca\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.13.3\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues?labels=react-core\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"README.md\",\n        \"addons.js\",\n        \"react.js\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.13.3\",\n      \"_shasum\": \"a2dfa85335d7dc02b82b482f089582e64cc13356\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.7.3\",\n      \"_nodeVersion\": \"0.10.38\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"a2dfa85335d7dc02b82b482f089582e64cc13356\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.13.3.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.0-alpha1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.0-alpha1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.0-alpha1\",\n      \"_shasum\": \"46f662c635240e3974028d83945ba696a22d0092\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.7.3\",\n      \"_nodeVersion\": \"0.10.38\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"46f662c635240e3974028d83945ba696a22d0092\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.0-alpha1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.0-alpha2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.0-alpha2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.0-alpha2\",\n      \"_shasum\": \"1afa693e4040f8395b2a2f32b0b0c6df4fc354e0\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.6.1\",\n      \"_nodeVersion\": \"0.10.38\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"1afa693e4040f8395b2a2f32b0b0c6df4fc354e0\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.0-alpha2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.0-alpha3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.0-alpha3\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.0-alpha3\",\n      \"_shasum\": \"b3b656bdac224e9e01ca68c1f0efd6d3ebb3dd34\",\n      \"_resolved\": \"file:build/react.tgz\",\n      \"_from\": \"build/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.2.0\",\n      \"_nodeVersion\": \"0.10.35\",\n      \"_npmUser\": {\n        \"name\": \"spicyj\",\n        \"email\": \"ben@benalpert.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"b3b656bdac224e9e01ca68c1f0efd6d3ebb3dd34\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.0-alpha3.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.0-beta1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.0-beta1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.0-beta1\",\n      \"_shasum\": \"51db95e84bff59cc5205472c8f633d814ee5cd8f\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.2.0\",\n      \"_nodeVersion\": \"0.10.35\",\n      \"_npmUser\": {\n        \"name\": \"spicyj\",\n        \"email\": \"ben@benalpert.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"51db95e84bff59cc5205472c8f633d814ee5cd8f\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.0-beta1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.0-beta2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.0-beta2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"0.1.0-alpha.4\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.0-beta2\",\n      \"_shasum\": \"818a9aac1d397a60c9046013060cfd6c361a104e\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.13.2\",\n      \"_nodeVersion\": \"0.10.40\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"818a9aac1d397a60c9046013060cfd6c361a104e\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.0-beta2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.0-beta3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.0-beta3\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"0.1.0-alpha.4\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.0-beta3\",\n      \"_shasum\": \"668763b03fc5c531f56a3788f00d35d12170fe5d\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.13.2\",\n      \"_nodeVersion\": \"0.10.40\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"668763b03fc5c531f56a3788f00d35d12170fe5d\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.0-beta3.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.0-rc1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.0-rc1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/facebook/react\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.2.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.0-rc1\",\n      \"_shasum\": \"46f27951a4b01becea607d7a51970a654bb6f867\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.2.0\",\n      \"_nodeVersion\": \"0.10.35\",\n      \"_npmUser\": {\n        \"name\": \"spicyj\",\n        \"email\": \"ben@benalpert.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"46f27951a4b01becea607d7a51970a654bb6f867\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.0-rc1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.3.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.0\",\n      \"_shasum\": \"72e7c69233b082e37e1bbd3674a943db72d8f407\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.3\",\n      \"_nodeVersion\": \"4.1.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"72e7c69233b082e37e1bbd3674a943db72d8f407\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.3.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.1\",\n      \"_shasum\": \"38382f8a683e24d0ef0c2a0e204b7b18723cb11b\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.8\",\n      \"_nodeVersion\": \"4.2.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"38382f8a683e24d0ef0c2a0e204b7b18723cb11b\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.3.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.2\",\n      \"_shasum\": \"694d3eabdfde56ec2ba1b4db7d160c9a6fe9ce6a\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.9\",\n      \"_nodeVersion\": \"4.2.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"694d3eabdfde56ec2ba1b4db7d160c9a6fe9ce6a\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.3\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.3.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.3\",\n      \"_shasum\": \"b82e7b049ee3e1e264d24ae7ea20d76e51126778\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.7\",\n      \"_nodeVersion\": \"4.2.2\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"b82e7b049ee3e1e264d24ae7ea20d76e51126778\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.3.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.4\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.4\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.3.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.4\",\n      \"_shasum\": \"9c727f02c8bda2b8fde74748da5274e5517dd5af\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.4\",\n      \"_nodeVersion\": \"4.1.0\",\n      \"_npmUser\": {\n        \"name\": \"spicyj\",\n        \"email\": \"ben@benalpert.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"9c727f02c8bda2b8fde74748da5274e5517dd5af\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.4.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.5\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.5\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.6.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.5\",\n      \"_shasum\": \"4250649db2b3047c01dc2f60098388a60eab6681\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.4\",\n      \"_nodeVersion\": \"4.1.0\",\n      \"_npmUser\": {\n        \"name\": \"spicyj\",\n        \"email\": \"ben@benalpert.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"4250649db2b3047c01dc2f60098388a60eab6681\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.5.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.6\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.6\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.6\",\n      \"_shasum\": \"2a57c2cf8747b483759ad8de0fa47fb0c5cf5c6a\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.15\",\n      \"_nodeVersion\": \"4.2.2\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"2a57c2cf8747b483759ad8de0fa47fb0c5cf5c6a\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.6.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.15.0-alpha.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.15.0-alpha.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://github.com/facebook/react/tree/master/npm-react\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.15.0-alpha.1\",\n      \"_shasum\": \"860edb7f09cc6f4cbbedc919bf1bca4937268a0e\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.15\",\n      \"_nodeVersion\": \"4.2.2\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"jeff@anafx.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"860edb7f09cc6f4cbbedc919bf1bca4937268a0e\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.15.0-alpha.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.7\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.7\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.7\",\n      \"_shasum\": \"76c4e5cfa204caa5aaf42b13008f0d3f6d58a133\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.12\",\n      \"_nodeVersion\": \"4.2.6\",\n      \"_npmUser\": {\n        \"name\": \"graue\",\n        \"email\": \"scott@oceanbase.org\"\n      },\n      \"dist\": {\n        \"shasum\": \"76c4e5cfa204caa5aaf42b13008f0d3f6d58a133\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.7.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"15.0.0-rc.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.0-rc.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.8.0-alpha.2\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.0-rc.1\",\n      \"_shasum\": \"66cd711c0ce41f1eecde8f014529a215ff636403\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.12\",\n      \"_nodeVersion\": \"4.3.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"66cd711c0ce41f1eecde8f014529a215ff636403\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.0-rc.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-13-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.0-rc.1.tgz_1457399244933_0.5052846136968583\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.0-rc.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.0-rc.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.8.0-alpha.2\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.0-rc.2\",\n      \"_shasum\": \"acfb768af86deb06b5bbb676778d5ec90661faa3\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.8.1\",\n      \"_nodeVersion\": \"5.1.1\",\n      \"_npmUser\": {\n        \"name\": \"gaearon\",\n        \"email\": \"dan.abramov@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"acfb768af86deb06b5bbb676778d5ec90661faa3\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.0-rc.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-13-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.0-rc.2.tgz_1458166772989_0.39132320368662477\"\n      },\n      \"directories\": {}\n    },\n    \"0.14.8\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"0.14.8\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"envify\": \"^3.0.0\",\n        \"fbjs\": \"^0.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"envify\"\n        ]\n      },\n      \"_id\": \"react@0.14.8\",\n      \"_shasum\": \"078dfa454d4745bcc54a9726311c2bf272c23684\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.7\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"gaearon\",\n        \"email\": \"dan.abramov@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"078dfa454d4745bcc54a9726311c2bf272c23684\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-0.14.8.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-0.14.8.tgz_1459268381371_0.8583754827268422\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.0.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.0\",\n      \"_shasum\": \"3c7e16531d630e15c1a50a947f14ba61746af8a7\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.3\",\n      \"_nodeVersion\": \"4.4.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"3c7e16531d630e15c1a50a947f14ba61746af8a7\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.0.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.0.tgz_1460064342394_0.2830837108194828\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.0.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.1\",\n      \"_shasum\": \"262d4f073a384c2a0421afb82d97c8f7df581c09\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.0\",\n      \"_nodeVersion\": \"4.4.2\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"262d4f073a384c2a0421afb82d97c8f7df581c09\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.1.tgz_1460139841427_0.5669335899874568\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.2-alpha.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.2-alpha.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.0.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.2-alpha.1\",\n      \"_shasum\": \"4133eaa18b944493b74c258432092d3b4f5d1afe\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.3\",\n      \"_nodeVersion\": \"4.4.2\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"4133eaa18b944493b74c258432092d3b4f5d1afe\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.2-alpha.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.2-alpha.1.tgz_1461176270714_0.33574754116125405\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.2-alpha.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.2-alpha.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.0.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.2-alpha.2\",\n      \"_shasum\": \"89c280856f0b0887f5f9a11d436b74fd2bb82b6f\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.14.19\",\n      \"_nodeVersion\": \"4.1.0\",\n      \"_npmUser\": {\n        \"name\": \"spicyj\",\n        \"email\": \"ben@benalpert.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"89c280856f0b0887f5f9a11d436b74fd2bb82b6f\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.2-alpha.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.2-alpha.2.tgz_1461277327038_0.6486006544437259\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.2-alpha.3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.2-alpha.3\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.0.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.2-alpha.3\",\n      \"_shasum\": \"a38920a7eed8fe917f33479759859db113f1079b\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.3\",\n      \"_nodeVersion\": \"4.4.2\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"a38920a7eed8fe917f33479759859db113f1079b\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.2-alpha.3.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.2-alpha.3.tgz_1461614642498_0.8830359973944724\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.2-alpha.4\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.2-alpha.4\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.0.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.2-alpha.4\",\n      \"_shasum\": \"aeba1890df372facc65b9a004e8613cce45325e9\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.3\",\n      \"_nodeVersion\": \"4.4.2\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"aeba1890df372facc65b9a004e8613cce45325e9\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.2-alpha.4.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.2-alpha.4.tgz_1461827530020_0.8679555198177695\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.0.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.2\",\n      \"_shasum\": \"63b95dfda563018a20c182300651ed933e0dd30c\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.1\",\n      \"_nodeVersion\": \"4.4.3\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"63b95dfda563018a20c182300651ed933e0dd30c\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.2.tgz_1461976706320_0.04675518674775958\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.3-alpha.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.3-alpha.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.3-alpha.1\",\n      \"_shasum\": \"53b6cd71937f1012aa08a819d43275346ed58442\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.1\",\n      \"_nodeVersion\": \"4.4.3\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"53b6cd71937f1012aa08a819d43275346ed58442\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.3-alpha.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.3-alpha.1.tgz_1462304430912_0.07903718855232\"\n      },\n      \"directories\": {}\n    },\n    \"15.0.3-alpha.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.0.3-alpha.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.0.3-alpha.2\",\n      \"_shasum\": \"37ffa7dbd0af1f97ed443e6205ff97e7deef92f4\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.1\",\n      \"_nodeVersion\": \"4.4.3\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"37ffa7dbd0af1f97ed443e6205ff97e7deef92f4\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.0.3-alpha.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.0.3-alpha.2.tgz_1462855084959_0.35946066956967115\"\n      },\n      \"directories\": {}\n    },\n    \"15.1.0-alpha.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.1.0-alpha.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.1.0-alpha.1\",\n      \"_shasum\": \"b40884cf9629bb7cba197334b4c6c90e2ae31a8b\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.1\",\n      \"_nodeVersion\": \"4.4.3\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"b40884cf9629bb7cba197334b4c6c90e2ae31a8b\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.1.0-alpha.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.1.0-alpha.1.tgz_1462858117767_0.19979739608243108\"\n      },\n      \"directories\": {}\n    },\n    \"15.1.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.1.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.0\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.1.0\",\n      \"_shasum\": \"5f7a9f085a00509898efd2b24cb12ea1dfaf8b40\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.1\",\n      \"_nodeVersion\": \"4.4.3\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"5f7a9f085a00509898efd2b24cb12ea1dfaf8b40\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.1.0.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.1.0.tgz_1463785583737_0.3351648454554379\"\n      },\n      \"directories\": {}\n    },\n    \"15.2.0-rc.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.2.0-rc.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.2.0-rc.1\",\n      \"_shasum\": \"4eea4965918eda010610a20a235991ef6d564a9f\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.5\",\n      \"_nodeVersion\": \"4.4.5\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"4eea4965918eda010610a20a235991ef6d564a9f\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.2.0-rc.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.2.0-rc.1.tgz_1465954216788_0.6071536028757691\"\n      },\n      \"directories\": {}\n    },\n    \"15.2.0-rc.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.2.0-rc.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.2.0-rc.2\",\n      \"_shasum\": \"4d8fce569da24d3e43d2df56223c96f2f08e45c1\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.5\",\n      \"_nodeVersion\": \"4.4.5\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"4d8fce569da24d3e43d2df56223c96f2f08e45c1\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.2.0-rc.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.2.0-rc.2.tgz_1467354728656_0.9496972488705069\"\n      },\n      \"directories\": {}\n    },\n    \"15.2.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.2.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.2.0\",\n      \"_shasum\": \"cb85449b10c74ba8cd4bde0cd2867b5eee09a974\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.5\",\n      \"_nodeVersion\": \"4.4.5\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"cb85449b10c74ba8cd4bde0cd2867b5eee09a974\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.2.0.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.2.0.tgz_1467399143970_0.045634721172973514\"\n      },\n      \"directories\": {}\n    },\n    \"15.2.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.2.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.2.1\",\n      \"_shasum\": \"e458df700bae72900ba32673b7e42e8dbd05a393\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.5\",\n      \"_nodeVersion\": \"4.4.5\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"e458df700bae72900ba32673b7e42e8dbd05a393\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.2.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.2.1.tgz_1468017069863_0.4487692511174828\"\n      },\n      \"directories\": {}\n    },\n    \"15.3.0-rc.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.3.0-rc.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.3.0-rc.1\",\n      \"_shasum\": \"7043c0347f70d78d92d3f6e8f40f0fc3959b2bb2\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.9.6\",\n      \"_nodeVersion\": \"6.2.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"7043c0347f70d78d92d3f6e8f40f0fc3959b2bb2\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.3.0-rc.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.3.0-rc.1.tgz_1468436313261_0.705962639534846\"\n      },\n      \"directories\": {}\n    },\n    \"15.3.0-rc.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.3.0-rc.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.3.0-rc.2\",\n      \"_shasum\": \"f0f6aee4d4d04ce6fff5c4b734b51bf596d8d4e4\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.9.6\",\n      \"_nodeVersion\": \"6.2.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"f0f6aee4d4d04ce6fff5c4b734b51bf596d8d4e4\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.3.0-rc.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.3.0-rc.2.tgz_1468443732698_0.17692823754623532\"\n      },\n      \"directories\": {}\n    },\n    \"15.3.0-rc.3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.3.0-rc.3\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.3.0-rc.3\",\n      \"_shasum\": \"d4bff138110be7b5657bf27bd9dc3eaaa6756ceb\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.9.6\",\n      \"_nodeVersion\": \"6.2.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"d4bff138110be7b5657bf27bd9dc3eaaa6756ceb\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.3.0-rc.3.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.3.0-rc.3.tgz_1469141953170_0.883343250490725\"\n      },\n      \"directories\": {}\n    },\n    \"15.3.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.3.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.3.0\",\n      \"_shasum\": \"b06a26d26e5613888acb196aa93e9c082a9c21fa\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.9.6\",\n      \"_nodeVersion\": \"6.2.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"b06a26d26e5613888acb196aa93e9c082a9c21fa\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.3.0.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.3.0.tgz_1469817499689_0.703904666705057\"\n      },\n      \"directories\": {}\n    },\n    \"15.3.1-rc.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.3.1-rc.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.3.1-rc.1\",\n      \"_shasum\": \"0127a596230105f3d563f9092092209d179f0bbf\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.5\",\n      \"_nodeVersion\": \"4.4.5\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"0127a596230105f3d563f9092092209d179f0bbf\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.3.1-rc.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.3.1-rc.1.tgz_1471044928432_0.904218602925539\"\n      },\n      \"directories\": {}\n    },\n    \"15.3.1-rc.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.3.1-rc.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.1\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.3.1-rc.2\",\n      \"_shasum\": \"dd862bfe8b18b81543671bd9f6e660bcf3d9b9f1\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.5\",\n      \"_nodeVersion\": \"4.4.5\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"dd862bfe8b18b81543671bd9f6e660bcf3d9b9f1\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.3.1-rc.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.3.1-rc.2.tgz_1471301792299_0.9451233274303377\"\n      },\n      \"directories\": {}\n    },\n    \"15.3.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.3.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.3.1\",\n      \"_shasum\": \"f78501ed8c2ec6e6e31c3223652e97f1369d2bd6\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"2.15.5\",\n      \"_nodeVersion\": \"4.4.5\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"f78501ed8c2ec6e6e31c3223652e97f1369d2bd6\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.3.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.3.1.tgz_1471632623070_0.8903805704321712\"\n      },\n      \"directories\": {}\n    },\n    \"15.3.2-rc.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.3.2-rc.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.3.2-rc.1\",\n      \"_shasum\": \"d24556bde92d981f44189e76c60b27b07f5b0117\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.5.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"d24556bde92d981f44189e76c60b27b07f5b0117\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.3.2-rc.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.3.2-rc.1.tgz_1473983021742_0.07579111633822322\"\n      },\n      \"directories\": {}\n    },\n    \"15.3.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.3.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.3.2\",\n      \"_shasum\": \"a7bccd2fee8af126b0317e222c28d1d54528d09e\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.5.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"a7bccd2fee8af126b0317e222c28d1d54528d09e\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.3.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.3.2.tgz_1474307224453_0.9796286460477859\"\n      },\n      \"directories\": {}\n    },\n    \"15.4.0-rc.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.4.0-rc.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.4.0-rc.1\",\n      \"_shasum\": \"fb6edab37cb6d6cfc2788aee079478f7deebb453\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.7.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"fb6edab37cb6d6cfc2788aee079478f7deebb453\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.4.0-rc.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.4.0-rc.1.tgz_1475620542387_0.897912819404155\"\n      },\n      \"directories\": {}\n    },\n    \"15.4.0-rc.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.4.0-rc.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.4.0-rc.2\",\n      \"_shasum\": \"e70ee35c85fc8390b60106440d7f55a56d00e8ff\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.7.0\",\n      \"_npmUser\": {\n        \"name\": \"zpao\",\n        \"email\": \"paul@oshannessy.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"e70ee35c85fc8390b60106440d7f55a56d00e8ff\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.4.0-rc.2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.4.0-rc.2.tgz_1475707866845_0.657080645672977\"\n      },\n      \"directories\": {}\n    },\n    \"15.4.0-rc.3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.4.0-rc.3\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.4.0-rc.3\",\n      \"_shasum\": \"2e8b011ae31282a28f8fd1e94a8ec35e1598348e\",\n      \"_resolved\": \"file:packages/react.tgz\",\n      \"_from\": \"packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.1\",\n      \"_npmUser\": {\n        \"name\": \"gaearon\",\n        \"email\": \"dan.abramov@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"2e8b011ae31282a28f8fd1e94a8ec35e1598348e\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.4.0-rc.3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.4.0-rc.3.tgz_1476472655799_0.8196369777433574\"\n      },\n      \"directories\": {}\n    },\n    \"15.4.0-rc.4\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.4.0-rc.4\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.4.0-rc.4\",\n      \"scripts\": {},\n      \"_shasum\": \"09d08dd266a9088db963399dfdf814377e9a74dc\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"sebmarkbage\",\n        \"email\": \"sebastian@calyptus.eu\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"09d08dd266a9088db963399dfdf814377e9a74dc\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.4.0-rc.4.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.4.0-rc.4.tgz_1476482397453_0.7822290377225727\"\n      },\n      \"directories\": {}\n    },\n    \"15.4.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.4.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.4.0\",\n      \"_shasum\": \"736c1c7c542e8088127106e1f450b010f86d172b\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.9.1\",\n      \"_npmUser\": {\n        \"name\": \"tomocchino\",\n        \"email\": \"tomocchino@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"736c1c7c542e8088127106e1f450b010f86d172b\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.4.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.4.0.tgz_1479306785093_0.7718154781032354\"\n      },\n      \"directories\": {}\n    },\n    \"15.4.1\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.4.1\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.4.1\",\n      \"_shasum\": \"498e918602677a3983cd0fd206dfe700389a0dd6\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.9.0\",\n      \"_npmUser\": {\n        \"name\": \"spicyj\",\n        \"email\": \"ben@benalpert.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"498e918602677a3983cd0fd206dfe700389a0dd6\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.4.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.4.1.tgz_1479866354701_0.6043999863322824\"\n      },\n      \"directories\": {}\n    },\n    \"15.4.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"15.4.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@15.4.2\",\n      \"_shasum\": \"41f7991b26185392ba9bae96c8889e7e018397ef\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.3.1\",\n      \"_npmUser\": {\n        \"name\": \"gaearon\",\n        \"email\": \"dan.abramov@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"41f7991b26185392ba9bae96c8889e7e018397ef\",\n        \"tarball\": \"http://registry.npmjs.org/react/-/react-15.4.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"graue\",\n          \"email\": \"scott@oceanbase.org\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-15.4.2.tgz_1483733783282_0.8693782053887844\"\n      },\n      \"directories\": {}\n    },\n    \"16.0.0-alpha\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"16.0.0-alpha\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@16.0.0-alpha\",\n      \"_shasum\": \"bd24eb7e44a4989874dbb68e46dc918c48a3c6f1\",\n      \"_resolved\": \"file:../../../react/build/packages/react.tgz\",\n      \"_from\": \"../../../react/build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.9.1\",\n      \"_npmUser\": {\n        \"name\": \"brianvaughn\",\n        \"email\": \"briandavidvaughn@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"bd24eb7e44a4989874dbb68e46dc918c48a3c6f1\",\n        \"tarball\": \"https://registry.npmjs.org/react/-/react-16.0.0-alpha.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"brianvaughn\",\n          \"email\": \"briandavidvaughn@gmail.com\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-16.0.0-alpha.tgz_1484008272723_0.8987705395556986\"\n      }\n    },\n    \"16.0.0-alpha.0\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"16.0.0-alpha.0\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.4\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@16.0.0-alpha.0\",\n      \"_shasum\": \"2b9dc3d508f10aa4398ee1e6c40903982b5891f2\",\n      \"_resolved\": \"file:packages/react.tgz\",\n      \"_from\": \"packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.9.1\",\n      \"_npmUser\": {\n        \"name\": \"brianvaughn\",\n        \"email\": \"briandavidvaughn@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"2b9dc3d508f10aa4398ee1e6c40903982b5891f2\",\n        \"tarball\": \"https://registry.npmjs.org/react/-/react-16.0.0-alpha.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"brianvaughn\",\n          \"email\": \"briandavidvaughn@gmail.com\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-16.0.0-alpha.0.tgz_1485374699989_0.848859439836815\"\n      }\n    },\n    \"16.0.0-alpha.2\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"16.0.0-alpha.2\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.9\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@16.0.0-alpha.2\",\n      \"_shasum\": \"9c81ac487d2795e1fba1bcc3bdff702c6267b42f\",\n      \"_resolved\": \"file:packages/react.tgz\",\n      \"_from\": \"packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.1\",\n      \"_npmUser\": {\n        \"name\": \"gaearon\",\n        \"email\": \"dan.abramov@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"9c81ac487d2795e1fba1bcc3bdff702c6267b42f\",\n        \"tarball\": \"https://registry.npmjs.org/react/-/react-16.0.0-alpha.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"brianvaughn\",\n          \"email\": \"briandavidvaughn@gmail.com\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-16.0.0-alpha.2.tgz_1486657155722_0.9478306951932609\"\n      }\n    },\n    \"16.0.0-alpha.3\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"16.0.0-alpha.3\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.9\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@16.0.0-alpha.3\",\n      \"_shasum\": \"addfd7ae9d801fd20c6244142354ae0cb7b1fe00\",\n      \"_resolved\": \"file:build/packages/react.tgz\",\n      \"_from\": \"build/packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.10\",\n      \"_nodeVersion\": \"6.10.0\",\n      \"_npmUser\": {\n        \"name\": \"acdlite\",\n        \"email\": \"acdlite@me.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"addfd7ae9d801fd20c6244142354ae0cb7b1fe00\",\n        \"tarball\": \"https://registry.npmjs.org/react/-/react-16.0.0-alpha.3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"acdlite\",\n          \"email\": \"acdlite@me.com\"\n        },\n        {\n          \"name\": \"brianvaughn\",\n          \"email\": \"briandavidvaughn@gmail.com\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-16.0.0-alpha.3.tgz_1487894597634_0.4687214170116931\"\n      }\n    },\n    \"16.0.0-alpha.4\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"16.0.0-alpha.4\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.9\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@16.0.0-alpha.4\",\n      \"_shasum\": \"1c25369aeee934df86466cf4f09144c7f6e3fac2\",\n      \"_resolved\": \"file:packages/react.tgz\",\n      \"_from\": \"packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.9.0\",\n      \"_npmUser\": {\n        \"name\": \"spicyj\",\n        \"email\": \"ben@benalpert.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"acdlite\",\n          \"email\": \"acdlite@me.com\"\n        },\n        {\n          \"name\": \"brianvaughn\",\n          \"email\": \"briandavidvaughn@gmail.com\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"1c25369aeee934df86466cf4f09144c7f6e3fac2\",\n        \"tarball\": \"https://registry.npmjs.org/react/-/react-16.0.0-alpha.4.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-16.0.0-alpha.4.tgz_1489420663373_0.7233397434465587\"\n      }\n    },\n    \"16.0.0-alpha.5\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"16.0.0-alpha.5\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.9\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@16.0.0-alpha.5\",\n      \"_shasum\": \"ba5ca2058e7f39b010661497286e37133eb1c9fa\",\n      \"_resolved\": \"file:packages/react.tgz\",\n      \"_from\": \"packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.9.1\",\n      \"_npmUser\": {\n        \"name\": \"brianvaughn\",\n        \"email\": \"briandavidvaughn@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"ba5ca2058e7f39b010661497286e37133eb1c9fa\",\n        \"tarball\": \"https://registry.npmjs.org/react/-/react-16.0.0-alpha.5.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"acdlite\",\n          \"email\": \"acdlite@me.com\"\n        },\n        {\n          \"name\": \"brianvaughn\",\n          \"email\": \"briandavidvaughn@gmail.com\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-16.0.0-alpha.5.tgz_1490126570027_0.2919567779172212\"\n      }\n    },\n    \"16.0.0-alpha.6\": {\n      \"name\": \"react\",\n      \"description\": \"React is a JavaScript library for building user interfaces.\",\n      \"version\": \"16.0.0-alpha.6\",\n      \"keywords\": [\n        \"react\"\n      ],\n      \"homepage\": \"https://facebook.github.io/react/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/facebook/react/issues\"\n      },\n      \"license\": \"BSD-3-Clause\",\n      \"files\": [\n        \"LICENSE\",\n        \"PATENTS\",\n        \"addons.js\",\n        \"react.js\",\n        \"addons/\",\n        \"dist/\",\n        \"lib/\"\n      ],\n      \"main\": \"react.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/facebook/react.git\"\n      },\n      \"engines\": {\n        \"node\": \">=0.10.0\"\n      },\n      \"dependencies\": {\n        \"fbjs\": \"^0.8.9\",\n        \"loose-envify\": \"^1.1.0\",\n        \"object-assign\": \"^4.1.0\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"_id\": \"react@16.0.0-alpha.6\",\n      \"_shasum\": \"2ccb1afb4425ccc12f78a123a666f2e4c141adb9\",\n      \"_resolved\": \"file:packages/react.tgz\",\n      \"_from\": \"packages/react.tgz\",\n      \"scripts\": {},\n      \"_npmVersion\": \"3.10.8\",\n      \"_nodeVersion\": \"6.9.1\",\n      \"_npmUser\": {\n        \"name\": \"brianvaughn\",\n        \"email\": \"briandavidvaughn@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"2ccb1afb4425ccc12f78a123a666f2e4c141adb9\",\n        \"tarball\": \"https://registry.npmjs.org/react/-/react-16.0.0-alpha.6.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"acdlite\",\n          \"email\": \"acdlite@me.com\"\n        },\n        {\n          \"name\": \"brianvaughn\",\n          \"email\": \"briandavidvaughn@gmail.com\"\n        },\n        {\n          \"name\": \"fb\",\n          \"email\": \"opensource+npm@fb.com\"\n        },\n        {\n          \"name\": \"gaearon\",\n          \"email\": \"dan.abramov@gmail.com\"\n        },\n        {\n          \"name\": \"jeffmo\",\n          \"email\": \"lbljeffmo@gmail.com\"\n        },\n        {\n          \"name\": \"sebmarkbage\",\n          \"email\": \"sebastian@calyptus.eu\"\n        },\n        {\n          \"name\": \"spicyj\",\n          \"email\": \"ben@benalpert.com\"\n        },\n        {\n          \"name\": \"tomocchino\",\n          \"email\": \"tomocchino@gmail.com\"\n        },\n        {\n          \"name\": \"trueadm\",\n          \"email\": \"dg@domgan.com\"\n        },\n        {\n          \"name\": \"zpao\",\n          \"email\": \"paul@oshannessy.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-16.0.0-alpha.6.tgz_1490395643637_0.6775550364982337\"\n      }\n    }\n  },\n  \"maintainers\": [\n    {\n      \"name\": \"acdlite\",\n      \"email\": \"acdlite@me.com\"\n    },\n    {\n      \"name\": \"brianvaughn\",\n      \"email\": \"briandavidvaughn@gmail.com\"\n    },\n    {\n      \"name\": \"fb\",\n      \"email\": \"opensource+npm@fb.com\"\n    },\n    {\n      \"name\": \"gaearon\",\n      \"email\": \"dan.abramov@gmail.com\"\n    },\n    {\n      \"name\": \"jeffmo\",\n      \"email\": \"lbljeffmo@gmail.com\"\n    },\n    {\n      \"name\": \"sebmarkbage\",\n      \"email\": \"sebastian@calyptus.eu\"\n    },\n    {\n      \"name\": \"spicyj\",\n      \"email\": \"ben@benalpert.com\"\n    },\n    {\n      \"name\": \"tomocchino\",\n      \"email\": \"tomocchino@gmail.com\"\n    },\n    {\n      \"name\": \"trueadm\",\n      \"email\": \"dg@domgan.com\"\n    },\n    {\n      \"name\": \"zpao\",\n      \"email\": \"paul@oshannessy.com\"\n    }\n  ],\n  \"time\": {\n    \"modified\": \"2017-03-29T05:24:22.100Z\",\n    \"created\": \"2011-10-26T17:46:21.942Z\",\n    \"0.0.1\": \"2011-10-26T17:46:22.746Z\",\n    \"0.0.2\": \"2011-10-28T22:40:36.115Z\",\n    \"0.0.3\": \"2011-10-29T13:40:41.073Z\",\n    \"0.1.2\": \"2011-12-21T20:56:27.003Z\",\n    \"0.2.0\": \"2012-01-10T18:58:59.882Z\",\n    \"0.2.1\": \"2012-01-10T19:36:17.074Z\",\n    \"0.2.2\": \"2012-01-10T20:44:37.670Z\",\n    \"0.2.3\": \"2012-01-10T23:15:07.894Z\",\n    \"0.2.4\": \"2012-01-11T15:44:12.287Z\",\n    \"0.2.5\": \"2012-01-11T19:55:24.505Z\",\n    \"0.2.6\": \"2012-01-11T20:58:23.590Z\",\n    \"0.3.0\": \"2012-01-14T06:06:46.726Z\",\n    \"0.3.4\": \"2012-01-17T14:59:12.449Z\",\n    \"0.3.5\": \"2012-01-17T20:13:08.100Z\",\n    \"0.5.0\": \"2012-01-18T06:49:43.631Z\",\n    \"0.5.1\": \"2012-01-18T18:07:11.608Z\",\n    \"0.5.2\": \"2012-03-13T14:01:11.641Z\",\n    \"0.6.0\": \"2012-03-28T22:14:37.758Z\",\n    \"0.6.1\": \"2012-04-25T16:57:02.959Z\",\n    \"0.6.2\": \"2012-09-12T21:14:33.270Z\",\n    \"0.6.3\": \"2012-10-18T04:24:03.381Z\",\n    \"0.7.0\": \"2013-05-23T18:23:29.579Z\",\n    \"0.7.1\": \"2013-05-23T19:48:26.316Z\",\n    \"0.8.0\": \"2013-12-19T18:46:02.355Z\",\n    \"0.9.0-rc1\": \"2014-02-17T03:31:05.147Z\",\n    \"0.9.0\": \"2014-02-20T18:47:54.841Z\",\n    \"0.10.0-rc1\": \"2014-03-19T18:28:04.636Z\",\n    \"0.10.0\": \"2014-03-21T21:48:06.915Z\",\n    \"0.11.0-rc1\": \"2014-07-13T04:41:23.857Z\",\n    \"0.11.0\": \"2014-07-17T20:51:00.913Z\",\n    \"0.11.1\": \"2014-07-25T18:36:36.918Z\",\n    \"0.11.2\": \"2014-09-16T18:33:57.956Z\",\n    \"0.12.0-rc1\": \"2014-10-16T22:24:04.601Z\",\n    \"0.12.0\": \"2014-10-28T18:40:33.643Z\",\n    \"0.12.1\": \"2014-11-18T06:56:11.863Z\",\n    \"0.12.2\": \"2014-12-18T20:51:41.024Z\",\n    \"0.13.0-alpha.1\": \"2014-12-23T20:08:42.636Z\",\n    \"0.13.0-alpha.2\": \"2015-01-16T19:09:02.924Z\",\n    \"0.13.0-beta.1\": \"2015-01-28T05:19:01.230Z\",\n    \"0.13.0-beta.2\": \"2015-02-14T02:37:43.316Z\",\n    \"0.13.0-rc1\": \"2015-02-22T21:36:01.461Z\",\n    \"0.13.0-rc2\": \"2015-03-03T19:52:41.430Z\",\n    \"0.13.0\": \"2015-03-10T21:51:43.816Z\",\n    \"0.13.1\": \"2015-03-17T00:01:25.829Z\",\n    \"0.13.2\": \"2015-04-18T22:38:01.925Z\",\n    \"0.13.3\": \"2015-05-08T23:40:52.344Z\",\n    \"0.14.0-alpha1\": \"2015-05-11T05:37:34.808Z\",\n    \"0.14.0-alpha2\": \"2015-05-20T20:38:30.743Z\",\n    \"0.14.0-alpha3\": \"2015-05-27T23:49:08.232Z\",\n    \"0.14.0-beta1\": \"2015-07-03T08:50:06.815Z\",\n    \"0.14.0-beta2\": \"2015-07-31T05:31:14.850Z\",\n    \"0.14.0-beta3\": \"2015-08-03T21:33:47.972Z\",\n    \"0.14.0-rc1\": \"2015-09-10T16:00:44.142Z\",\n    \"0.14.0\": \"2015-10-07T17:27:39.042Z\",\n    \"0.14.1\": \"2015-10-28T21:36:14.876Z\",\n    \"0.14.2\": \"2015-11-02T19:55:21.088Z\",\n    \"0.14.3\": \"2015-11-19T02:26:57.036Z\",\n    \"0.14.4\": \"2015-12-29T22:00:21.565Z\",\n    \"0.14.5\": \"2015-12-29T22:39:56.148Z\",\n    \"0.14.6\": \"2016-01-06T23:52:45.571Z\",\n    \"0.15.0-alpha.1\": \"2016-01-21T04:16:30.061Z\",\n    \"0.14.7\": \"2016-01-28T19:59:29.509Z\",\n    \"15.0.0-rc.1\": \"2016-03-08T01:07:27.078Z\",\n    \"15.0.0-rc.2\": \"2016-03-16T22:19:35.759Z\",\n    \"0.14.8\": \"2016-03-29T16:19:44.344Z\",\n    \"15.0.0\": \"2016-04-07T21:25:42.928Z\",\n    \"15.0.1\": \"2016-04-08T18:24:01.947Z\",\n    \"15.0.2-alpha.1\": \"2016-04-20T18:17:51.152Z\",\n    \"15.0.2-alpha.2\": \"2016-04-21T22:22:07.642Z\",\n    \"15.0.2-alpha.3\": \"2016-04-25T20:04:05.908Z\",\n    \"15.0.2-alpha.4\": \"2016-04-28T07:12:12.709Z\",\n    \"15.0.2\": \"2016-04-30T00:38:26.753Z\",\n    \"15.0.3-alpha.1\": \"2016-05-03T19:40:31.408Z\",\n    \"15.0.3-alpha.2\": \"2016-05-10T04:38:08.171Z\",\n    \"15.1.0-alpha.1\": \"2016-05-10T05:28:41.025Z\",\n    \"15.1.0\": \"2016-05-20T23:06:26.234Z\",\n    \"15.2.0-rc.1\": \"2016-06-15T01:30:22.163Z\",\n    \"15.2.0-rc.2\": \"2016-07-01T06:32:12.488Z\",\n    \"15.2.0\": \"2016-07-01T18:52:24.535Z\",\n    \"15.2.1\": \"2016-07-08T22:31:10.383Z\",\n    \"15.3.0-rc.1\": \"2016-07-13T18:58:33.786Z\",\n    \"15.3.0-rc.2\": \"2016-07-13T21:02:13.320Z\",\n    \"15.3.0-rc.3\": \"2016-07-21T22:59:16.416Z\",\n    \"15.3.0\": \"2016-07-29T18:38:21.959Z\",\n    \"15.3.1-rc.1\": \"2016-08-12T23:35:31.733Z\",\n    \"15.3.1-rc.2\": \"2016-08-15T22:56:32.596Z\",\n    \"15.3.1\": \"2016-08-19T18:50:25.665Z\",\n    \"15.3.2-rc.1\": \"2016-09-15T23:43:44.694Z\",\n    \"15.3.2\": \"2016-09-19T17:47:04.705Z\",\n    \"15.4.0-rc.1\": \"2016-10-04T22:35:42.618Z\",\n    \"15.4.0-rc.2\": \"2016-10-05T22:51:07.111Z\",\n    \"15.4.0-rc.3\": \"2016-10-14T19:17:37.819Z\",\n    \"15.4.0-rc.4\": \"2016-10-14T22:00:00.474Z\",\n    \"15.4.0\": \"2016-11-16T14:33:05.693Z\",\n    \"15.4.1\": \"2016-11-23T01:59:14.936Z\",\n    \"15.4.2\": \"2017-01-06T20:16:25.738Z\",\n    \"16.0.0-alpha\": \"2017-01-10T00:31:14.798Z\",\n    \"16.0.0-alpha.0\": \"2017-01-25T20:05:02.202Z\",\n    \"16.0.0-alpha.2\": \"2017-02-09T16:19:16.372Z\",\n    \"16.0.0-alpha.3\": \"2017-02-24T00:03:19.901Z\",\n    \"16.0.0-alpha.4\": \"2017-03-13T15:57:45.616Z\",\n    \"16.0.0-alpha.5\": \"2017-03-21T20:02:52.084Z\",\n    \"16.0.0-alpha.6\": \"2017-03-24T22:47:23.922Z\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/facebook/react.git\"\n  },\n  \"readme\": \"# react\\n\\nAn npm package to get you immediate access to [React](https://facebook.github.io/react/),\\nwithout also requiring the JSX transformer. This is especially useful for cases where you\\nwant to [`browserify`](https://github.com/substack/node-browserify) your module using\\n`React`.\\n\\n**Note:** by default, React will be in development mode. The development version includes extra warnings about common mistakes, whereas the production version includes extra performance optimizations and strips all error messages.\\n\\nTo use React in production mode, set the environment variable `NODE_ENV` to `production`. A minifier that performs dead-code elimination such as [UglifyJS](https://github.com/mishoo/UglifyJS2) is recommended to completely remove the extra code present in development mode.\\n\\n## Example Usage\\n\\n```js\\nvar React = require('react');\\n\\n// Addons are in separate packages:\\nvar createFragment = require('react-addons-create-fragment');\\nvar immutabilityHelpers = require('react-addons-update');\\nvar CSSTransitionGroup = require('react-addons-css-transition-group');\\n```\\n\\nFor a complete list of addons visit the [addons documentation page](https://facebook.github.io/react/docs/addons.html).\\n\",\n  \"readmeFilename\": \"README.md\",\n  \"homepage\": \"https://facebook.github.io/react/\",\n  \"keywords\": [\n    \"react\"\n  ],\n  \"bugs\": {\n    \"url\": \"https://github.com/facebook/react/issues\"\n  },\n  \"users\": {\n    \"dubban\": true,\n    \"3boll\": true,\n    \"bausmeier\": true,\n    \"axelav\": true,\n    \"joakin\": true,\n    \"ruffle1986\": true,\n    \"abalandin\": true,\n    \"koorchik\": true,\n    \"nikunjchapadia\": true,\n    \"z5h\": true,\n    \"dozoisch\": true,\n    \"treycordova\": true,\n    \"xanderiel\": true,\n    \"sroccaserra\": true,\n    \"david.herse\": true,\n    \"andrezsanchez\": true,\n    \"ich\": true,\n    \"laiff\": true,\n    \"erikvold\": true,\n    \"spicyj\": true,\n    \"jkkramer\": true,\n    \"mhaidarh\": true,\n    \"womjoy\": true,\n    \"azaviruha\": true,\n    \"insin\": true,\n    \"dimitriwalters\": true,\n    \"chrisayn\": true,\n    \"justinanastos\": true,\n    \"devonbl\": true,\n    \"kewah\": true,\n    \"robbschiller\": true,\n    \"rifat\": true,\n    \"codematix\": true,\n    \"agtlucas\": true,\n    \"stuligan\": true,\n    \"jackson7am\": true,\n    \"jehoshua02\": true,\n    \"shanewholloway\": true,\n    \"haeck\": true,\n    \"leebyron\": true,\n    \"mehditup\": true,\n    \"ahmedelgabri\": true,\n    \"mathieuancelin\": true,\n    \"pughpugh\": true,\n    \"sobering\": true,\n    \"wambulance\": true,\n    \"pburtchaell\": true,\n    \"kulakowka\": true,\n    \"pensierinmusica\": true,\n    \"goodacre.liam\": true,\n    \"dbrockman\": true,\n    \"onestone\": true,\n    \"jarib\": true,\n    \"tchcxp\": true,\n    \"arnold-almeida\": true,\n    \"gentlecat\": true,\n    \"yodairish\": true,\n    \"jamesulph\": true,\n    \"markthethomas\": true,\n    \"byoigres\": true,\n    \"koulmomo\": true,\n    \"geilt\": true,\n    \"borjes\": true,\n    \"neaton\": true,\n    \"simplyianm\": true,\n    \"enet4\": true,\n    \"aleclarson\": true,\n    \"leonardorb\": true,\n    \"tjwebb\": true,\n    \"mchampi\": true,\n    \"orlenka\": true,\n    \"oheard\": true,\n    \"zchee\": true,\n    \"hmazter\": true,\n    \"kogai\": true,\n    \"dac2205\": true,\n    \"moimikey\": true,\n    \"charlespeters\": true,\n    \"sua\": true,\n    \"goblindegook\": true,\n    \"hpherzog\": true,\n    \"chriscalo\": true,\n    \"tomdanvers\": true,\n    \"gabrielsanterre\": true,\n    \"season19840122\": true,\n    \"program247365\": true,\n    \"modao\": true,\n    \"danieljjh\": true,\n    \"damianof\": true,\n    \"chrisjordanme\": true,\n    \"prabhash1785\": true,\n    \"theveil\": true,\n    \"qqqppp9998\": true,\n    \"kai_\": true,\n    \"kriswallsmith\": true,\n    \"jabbrwcky\": true,\n    \"rocalayo\": true,\n    \"mfunkie\": true,\n    \"drabinowitz\": true,\n    \"nak2k\": true,\n    \"keeyanajones\": true,\n    \"bplabombarda\": true,\n    \"tinyhill\": true,\n    \"alexcoady\": true,\n    \"sergiodxa\": true,\n    \"huangdawei\": true,\n    \"chicagoan\": true,\n    \"yxqme\": true,\n    \"tcskrovseth\": true,\n    \"octoo\": true,\n    \"nicastelo\": true,\n    \"attomos\": true,\n    \"buzuli\": true,\n    \"clholzin\": true,\n    \"h.kamitomo\": true,\n    \"hyzhak\": true,\n    \"gilbarbara\": true,\n    \"freshlogic\": true,\n    \"itonyyo\": true,\n    \"qiming\": true,\n    \"aahz\": true,\n    \"icestone\": true,\n    \"ugarz\": true,\n    \"cypark\": true,\n    \"manny\": true,\n    \"courington\": true,\n    \"enriquecaballero\": true,\n    \"sjnnr\": true,\n    \"pjb3\": true,\n    \"bernardhamann\": true,\n    \"isik\": true,\n    \"fleeting\": true,\n    \"sume0805\": true,\n    \"narven\": true,\n    \"tuiteraz\": true,\n    \"arkanciscan\": true,\n    \"wkaifang\": true,\n    \"famousgarkin\": true,\n    \"asa\": true,\n    \"jovenbarola\": true,\n    \"monjer\": true,\n    \"nice_body\": true,\n    \"yhui02\": true,\n    \"lova\": true,\n    \"arulkumar\": true,\n    \"devdebonair\": true,\n    \"tandysean\": true,\n    \"tarex\": true,\n    \"knoja4\": true,\n    \"cpojer\": true,\n    \"antouank\": true,\n    \"sammyteahan\": true,\n    \"dongguangming\": true,\n    \"draganhr\": true,\n    \"xgqfrms\": true,\n    \"iolo\": true,\n    \"nickeltobias\": true,\n    \"yangxiaoqiang\": true,\n    \"kuakman\": true,\n    \"wzbg\": true,\n    \"jimmyking\": true,\n    \"szlegradi\": true,\n    \"allthingssmitty\": true,\n    \"leyyinad\": true,\n    \"onheiron\": true,\n    \"edloidas\": true,\n    \"ddgromit\": true,\n    \"igreulich\": true,\n    \"vincetardy\": true,\n    \"stefanof\": true,\n    \"prisme\": true,\n    \"vbv\": true,\n    \"jordansrowles\": true,\n    \"nalindak\": true,\n    \"luckyulin\": true,\n    \"unitetheclans\": true,\n    \"hosomichi\": true,\n    \"davidchubbs\": true,\n    \"almccann\": true,\n    \"martin.toma\": true,\n    \"shelling\": true,\n    \"urbantumbleweed\": true,\n    \"heinzmuller\": true,\n    \"junjiansyu\": true,\n    \"corintho\": true,\n    \"stany\": true,\n    \"js3692\": true,\n    \"keberox\": true,\n    \"lavir\": true,\n    \"ambdxtrch\": true,\n    \"vwal\": true,\n    \"leahcimic\": true,\n    \"zhiquan.yu\": true,\n    \"epickris\": true,\n    \"moxiaohe\": true,\n    \"oka-hide\": true,\n    \"geese98\": true,\n    \"moogus\": true,\n    \"zhoutk\": true,\n    \"amobiz\": true,\n    \"rpnna\": true,\n    \"evan2x\": true,\n    \"kevinsuttle\": true,\n    \"cfleschhut\": true,\n    \"benstr\": true,\n    \"jtsky\": true,\n    \"tobiasnickel\": true,\n    \"rhaynel\": true,\n    \"rbartoli\": true,\n    \"sternelee\": true,\n    \"victorquinn\": true,\n    \"daniele_cammarata\": true,\n    \"barbarosh\": true,\n    \"brandonccx\": true,\n    \"kytart\": true,\n    \"ferrari\": true,\n    \"liugenbin\": true,\n    \"acterce\": true,\n    \"kevinoneill\": true,\n    \"feedm3\": true,\n    \"sergeymakoveev\": true,\n    \"tomazzaman\": true,\n    \"graubnla\": true,\n    \"artursgirons\": true,\n    \"fistynuts\": true,\n    \"lourenzo\": true,\n    \"hugojosefson\": true,\n    \"lcdss\": true,\n    \"zoey1990\": true,\n    \"kratyk\": true,\n    \"alexlukin\": true,\n    \"aoki\": true,\n    \"chris-me\": true,\n    \"nexume\": true,\n    \"apehead\": true,\n    \"minfrank\": true,\n    \"ricardoj\": true,\n    \"joannerpena\": true,\n    \"orkisz\": true,\n    \"highlanderkev\": true,\n    \"richie_south\": true,\n    \"panlw\": true,\n    \"boterom89\": true,\n    \"philiiiiiipp\": true,\n    \"feyzee\": true,\n    \"dubielzyk\": true,\n    \"lex_nel\": true,\n    \"vasz\": true,\n    \"subhojit777\": true,\n    \"brunolemos\": true,\n    \"ajaegle\": true,\n    \"dmitry-lobanov\": true,\n    \"huibean\": true,\n    \"apita-cc\": true,\n    \"tribou\": true,\n    \"sakura\": true,\n    \"th3brink\": true,\n    \"katy\": true,\n    \"krishaamer\": true,\n    \"bhsiung\": true,\n    \"ferchoriverar\": true,\n    \"wouter_vdb\": true,\n    \"zhouanbo\": true,\n    \"dbobrov\": true,\n    \"jeffboyus\": true,\n    \"giioaj\": true,\n    \"hypersprite\": true,\n    \"princetoad\": true,\n    \"reekdeb\": true,\n    \"strokirk\": true,\n    \"riteshg\": true,\n    \"rokeyzki\": true,\n    \"mrmartineau\": true,\n    \"amattbryan\": true,\n    \"wangfei\": true,\n    \"shuoshubao\": true,\n    \"asm2hex\": true,\n    \"walkercz\": true,\n    \"dskecse\": true,\n    \"bcoe\": true,\n    \"walkah\": true,\n    \"dmitryscaletta\": true,\n    \"freddieridell\": true,\n    \"justinjung04\": true,\n    \"mhetrerajat\": true,\n    \"javascriptismagic\": true,\n    \"guypeer\": true,\n    \"gindis\": true,\n    \"kaapex\": true,\n    \"booleanhunter\": true,\n    \"alexjsdev\": true,\n    \"bogdanvlviv\": true,\n    \"tyus512\": true,\n    \"saravntbe\": true,\n    \"xile611\": true,\n    \"kimmohintikka\": true,\n    \"bpatel\": true,\n    \"chuck0523\": true,\n    \"tigefa\": true,\n    \"emarcs\": true,\n    \"marcobiedermann\": true,\n    \"goatandsheep\": true,\n    \"septs\": true,\n    \"fsgdez\": true,\n    \"hyteer\": true,\n    \"digitalblake\": true,\n    \"mluberry\": true,\n    \"ibartholomew\": true,\n    \"leocreatini\": true,\n    \"scotchulous\": true,\n    \"bshackelford\": true,\n    \"kenjisan4u\": true,\n    \"evegreen\": true,\n    \"razr9\": true,\n    \"onufrienko\": true,\n    \"john-goldsmith\": true,\n    \"robertgonzales\": true,\n    \"akarem\": true,\n    \"apopek\": true,\n    \"wirehive\": true,\n    \"arulsakthiprakasam\": true,\n    \"akarpov\": true,\n    \"bsesic\": true,\n    \"sozonov\": true,\n    \"vpal\": true,\n    \"ironmaniiith\": true,\n    \"pgabronis\": true,\n    \"tonyseek\": true,\n    \"wanngxiao\": true,\n    \"kwhitley\": true,\n    \"enzoferey\": true,\n    \"maninacan\": true,\n    \"sasquatch\": true,\n    \"reneweb\": true,\n    \"natforyou\": true,\n    \"fchienvuhoang\": true,\n    \"darklake\": true,\n    \"v3rron\": true,\n    \"hydra\": true,\n    \"pris54\": true,\n    \"lencioni\": true,\n    \"cssachse\": true,\n    \"avanthikameenakshi\": true,\n    \"yanrivera\": true,\n    \"morewry\": true,\n    \"easimonenko\": true,\n    \"degouville\": true,\n    \"tmurngon\": true,\n    \"danielbayley\": true,\n    \"pkhotpanya\": true,\n    \"wayhome\": true,\n    \"rwaness\": true,\n    \"djorg83\": true,\n    \"kudakv\": true,\n    \"mrmaxmeranda\": true,\n    \"coot\": true,\n    \"theramey\": true,\n    \"lucaskatayama\": true,\n    \"amdsouza92\": true,\n    \"morogasper\": true,\n    \"prbsas\": true,\n    \"lavysh\": true,\n    \"mindrudan\": true,\n    \"vespaccio\": true,\n    \"fenrir\": true,\n    \"serkonyc\": true,\n    \"muroc\": true,\n    \"fahadjadoon\": true,\n    \"igorsetsfire\": true,\n    \"dzhou777\": true,\n    \"womcauliff\": true,\n    \"romelperez\": true,\n    \"kontrax\": true,\n    \"rhomnickcoloma\": true,\n    \"ramavarsh\": true,\n    \"jetbug123\": true,\n    \"jankanty\": true,\n    \"oleblaesing\": true,\n    \"federico-garcia\": true,\n    \"timjk\": true,\n    \"dice-k\": true,\n    \"davequick\": true,\n    \"adamdreszer\": true,\n    \"bapinney\": true,\n    \"mlv521\": true,\n    \"rylan_yan\": true,\n    \"hhnj\": true,\n    \"austinbillings\": true,\n    \"wearevilla\": true,\n    \"rogeriera\": true,\n    \"norlando\": true,\n    \"mkstix6\": true,\n    \"blizz\": true,\n    \"asmattic\": true,\n    \"panos277\": true,\n    \"azuma\": true,\n    \"vmleon\": true,\n    \"atulmy\": true,\n    \"guzgarcia\": true,\n    \"coolhanddev\": true,\n    \"shooteram\": true,\n    \"outofcoffee\": true,\n    \"maxieduncan\": true,\n    \"tcrowe\": true,\n    \"tonstwo\": true,\n    \"xaxim\": true,\n    \"mimshwright\": true,\n    \"jasonleewilson\": true,\n    \"npmlincq\": true,\n    \"soulchainer\": true,\n    \"sigmat\": true,\n    \"tehdb\": true,\n    \"doc.gunthrop\": true,\n    \"filipdanic\": true,\n    \"evdokimovm\": true,\n    \"goldencrow\": true,\n    \"cmtegner\": true,\n    \"estuck306\": true,\n    \"eimaj\": true,\n    \"kevinagin\": true,\n    \"ptrevethan\": true,\n    \"sgnh\": true,\n    \"jaxx2104\": true,\n    \"isa424\": true,\n    \"a-dabrowski\": true,\n    \"pimkle\": true,\n    \"suemcnab\": true,\n    \"fpigeon\": true,\n    \"sbekrin\": true,\n    \"jacobmischka\": true,\n    \"mr-bat\": true,\n    \"mattattaque\": true,\n    \"uncledick\": true,\n    \"gberto\": true,\n    \"aquiandres\": true,\n    \"n3gu\": true,\n    \"kconner\": true,\n    \"s.well\": true,\n    \"escapeimagery\": true,\n    \"ramsaybell\": true,\n    \"serge-nikitin\": true,\n    \"sprybear\": true,\n    \"chinawolf_wyp\": true,\n    \"ktrysmt\": true,\n    \"nate-river\": true,\n    \"vinnyfonseca\": true,\n    \"chirag8642\": true,\n    \"abpeinado\": true,\n    \"qafir\": true,\n    \"junos\": true,\n    \"chrisakakay\": true,\n    \"oandrelopes\": true,\n    \"kaufmo\": true,\n    \"smshin7\": true,\n    \"jal\": true,\n    \"jirqoadai\": true,\n    \"josokinas\": true,\n    \"simplex\": true,\n    \"goggleclub\": true,\n    \"speedazerty\": true\n  },\n  \"license\": \"BSD-3-Clause\"\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/react/expected-source.json",
    "content": "{\n  \"files\": {\n    \"readmeSize\": 1198,\n    \"testsSize\": 1491255,\n    \"hasChangelog\": true\n  },\n  \"badges\": [\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/travis/facebook/react/master.svg?style=flat\",\n        \"service\": \"https://api.travis-ci.org/facebook/react.svg?branch=master\",\n        \"shields\": \"https://img.shields.io/travis/facebook/react/master.svg\",\n        \"content\": \"https://img.shields.io/travis/facebook/react/master.json\"\n      },\n      \"info\": {\n        \"service\": \"travis\",\n        \"type\": \"build\",\n        \"modifiers\": {\n          \"branch\": \"master\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/coveralls/facebook/react/master.svg?style=flat\",\n        \"service\": \"https://coveralls.io/repos/facebook/react/badge.svg?branch=master\",\n        \"shields\": \"https://img.shields.io/coveralls/facebook/react/master.svg\",\n        \"content\": \"https://img.shields.io/coveralls/facebook/react/master.json\"\n      },\n      \"info\": {\n        \"service\": \"coveralls\",\n        \"type\": \"coverage\",\n        \"modifiers\": {\n          \"branch\": \"master\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/npm/v/react.svg?style=flat\",\n        \"shields\": \"https://img.shields.io/npm/v/react.svg\",\n        \"content\": \"https://img.shields.io/npm/v/react.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"version\",\n        \"modifiers\": {\n          \"type\": \"v\"\n        }\n      }\n    }\n  ],\n  \"linters\": [\n    \"editorconfig\",\n    \"eslint\"\n  ],\n  \"coverage\": 0.82\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/react-router/data.json",
    "content": "{\n  \"_id\": \"react-router\",\n  \"_rev\": \"71-41439c737028709c0e5084dcfac9d06c\",\n  \"name\": \"react-router\",\n  \"description\": \"Declarative routing for React\",\n  \"dist-tags\": {\n    \"latest\": \"4.0.0\",\n    \"next\": \"4.0.0-beta.8\",\n    \"previous\": \"3.0.3\"\n  },\n  \"versions\": {\n    \"0.0.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.0.0\",\n      \"description\": \"An integrated router mixin for react components\",\n      \"main\": \"index.js\",\n      \"directories\": {\n        \"test\": \"test\"\n      },\n      \"dependencies\": {\n        \"backbone\": \"~1.1.0\",\n        \"expect.js\": \"~0.2.0\"\n      },\n      \"devDependencies\": {},\n      \"scripts\": {\n        \"test\": \"make test\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jaredly/reactor.git\"\n      },\n      \"keywords\": [\n        \"reactjs\",\n        \"router\"\n      ],\n      \"author\": {\n        \"name\": \"Jared Forsyth\",\n        \"email\": \"jared@jaredforsyth.com\"\n      },\n      \"license\": \"Apache v2\",\n      \"bugs\": {\n        \"url\": \"https://github.com/jaredly/reactor/issues\"\n      },\n      \"homepage\": \"https://github.com/jaredly/reactor\",\n      \"_id\": \"react-router@0.0.0\",\n      \"dist\": {\n        \"shasum\": \"fda55d2e72d4a684ff9719a5f3b1c1603012c9ee\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.0.0.tgz\"\n      },\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.3.14\",\n      \"_npmUser\": {\n        \"name\": \"jabapyth\",\n        \"email\": \"jared@jaredforsyth.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        }\n      ]\n    },\n    \"0.0.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.0.1\",\n      \"description\": \"An integrated router mixin for react components\",\n      \"main\": \"index.js\",\n      \"directories\": {\n        \"test\": \"test\"\n      },\n      \"dependencies\": {\n        \"backbone\": \"~1.1.0\",\n        \"expect.js\": \"~0.2.0\",\n        \"lodash\": \"~2.4.1\"\n      },\n      \"devDependencies\": {\n        \"mocha\": \"~1.17.1\",\n        \"envify\": \"~0.2.0\",\n        \"react\": \"~0.8.0\"\n      },\n      \"scripts\": {\n        \"test\": \"make test\"\n      },\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git://github.com/jaredly/react-router.git\"\n      },\n      \"keywords\": [\n        \"reactjs\",\n        \"router\"\n      ],\n      \"author\": {\n        \"name\": \"Jared Forsyth\",\n        \"email\": \"jared@jaredforsyth.com\"\n      },\n      \"license\": \"Apache v2\",\n      \"bugs\": {\n        \"url\": \"https://github.com/jaredly/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/jaredly/react-router\",\n      \"_id\": \"react-router@0.0.1\",\n      \"_shasum\": \"f0568e2c324cc0fe11ae502a0ef4a0c02b9c49cb\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.9\",\n      \"_npmUser\": {\n        \"name\": \"jabapyth\",\n        \"email\": \"jared@jaredforsyth.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"f0568e2c324cc0fe11ae502a0ef4a0c02b9c49cb\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.0.1.tgz\"\n      }\n    },\n    \"0.4.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.4.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"main\": \"modules/main\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rpflorence/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rpflorence/react-router\",\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"script/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"^4.2.3\",\n        \"browserify-shim\": \"^3.6.0\",\n        \"bundle-loader\": \"^0.5.0\",\n        \"envify\": \"~1.2.0\",\n        \"expect\": \"^0.1.1\",\n        \"jsx-loader\": \"^0.10.2\",\n        \"karma\": \"^0.12.16\",\n        \"karma-chrome-launcher\": \"^0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.3\",\n        \"karma-webpack\": \"^1.2.1\",\n        \"mocha\": \"^1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"rf-release\": \"^0.1.2\",\n        \"uglify-js\": \"^2.4.15\",\n        \"webpack\": \"^1.2.0-beta5\",\n        \"webpack-dev-server\": \"^1.4.2\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"es6-promise\": \"^1.0.0\",\n        \"event-emitter\": \"^0.3.1\",\n        \"querystring\": \"^0.2.0\"\n      },\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"bugs\": {\n        \"url\": \"https://github.com/rpflorence/react-router/issues\"\n      },\n      \"_id\": \"react-router@0.4.0\",\n      \"dist\": {\n        \"shasum\": \"ba49f4b4803858c86dde7b4f20faf467b9b91d25\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.4.0.tgz\"\n      },\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.4\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ]\n    },\n    \"0.4.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.4.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"main\": \"modules/main\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router\",\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"script/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"^4.2.3\",\n        \"browserify-shim\": \"^3.6.0\",\n        \"bundle-loader\": \"^0.5.0\",\n        \"envify\": \"~1.2.0\",\n        \"expect\": \"^0.1.1\",\n        \"jsx-loader\": \"^0.10.2\",\n        \"karma\": \"^0.12.16\",\n        \"karma-chrome-launcher\": \"^0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.3\",\n        \"karma-webpack\": \"^1.2.1\",\n        \"mocha\": \"^1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"rf-release\": \"^0.1.2\",\n        \"uglify-js\": \"^2.4.15\",\n        \"webpack\": \"^1.2.0-beta5\",\n        \"webpack-dev-server\": \"^1.4.2\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"es6-promise\": \"^1.0.0\",\n        \"event-emitter\": \"^0.3.1\",\n        \"querystring\": \"^0.2.0\"\n      },\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"_id\": \"react-router@0.4.1\",\n      \"dist\": {\n        \"shasum\": \"f06da5fe514a82b9c31cee5c0243112f7da60520\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.4.1.tgz\"\n      },\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.4\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ]\n    },\n    \"0.4.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.4.2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"main\": \"modules/main\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router\",\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"script/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"^4.2.3\",\n        \"browserify-shim\": \"^3.6.0\",\n        \"bundle-loader\": \"^0.5.0\",\n        \"envify\": \"~1.2.0\",\n        \"expect\": \"^0.1.1\",\n        \"jsx-loader\": \"^0.10.2\",\n        \"karma\": \"^0.12.16\",\n        \"karma-chrome-launcher\": \"^0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.3\",\n        \"karma-webpack\": \"^1.2.1\",\n        \"mocha\": \"^1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"rf-release\": \"^0.1.2\",\n        \"uglify-js\": \"^2.4.15\",\n        \"webpack\": \"^1.2.0-beta5\",\n        \"webpack-dev-server\": \"^1.4.2\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"es6-promise\": \"^1.0.0\",\n        \"event-emitter\": \"^0.3.1\",\n        \"querystring\": \"^0.2.0\"\n      },\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"8438edf15a59636616c54d935c5d8c58e68238b5\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"_id\": \"react-router@0.4.2\",\n      \"_shasum\": \"1c4c530cb857c9ef459766e660415761c29ead8c\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.20\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"1c4c530cb857c9ef459766e660415761c29ead8c\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.4.2.tgz\"\n      }\n    },\n    \"0.5.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.5.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"main\": \"modules/main\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router\",\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"script/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"^4.2.3\",\n        \"browserify-shim\": \"^3.6.0\",\n        \"bundle-loader\": \"^0.5.0\",\n        \"envify\": \"~1.2.0\",\n        \"expect\": \"^0.1.1\",\n        \"jsx-loader\": \"^0.10.2\",\n        \"karma\": \"^0.12.16\",\n        \"karma-chrome-launcher\": \"^0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.3\",\n        \"karma-webpack\": \"^1.2.1\",\n        \"mocha\": \"^1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"rf-release\": \"^0.1.2\",\n        \"uglify-js\": \"^2.4.15\",\n        \"webpack\": \"^1.2.0-beta5\",\n        \"webpack-dev-server\": \"^1.4.2\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"es6-promise\": \"^1.0.0\",\n        \"event-emitter\": \"^0.3.1\",\n        \"querystring\": \"^0.2.0\"\n      },\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"4a94519566d7b44f5ccdfae3256bc015f97596fc\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"_id\": \"react-router@0.5.0\",\n      \"_shasum\": \"319cd086ec1599896e101206190590f183558aad\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.20\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"319cd086ec1599896e101206190590f183558aad\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.5.0.tgz\"\n      }\n    },\n    \"0.5.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.5.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"main\": \"modules/main\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router\",\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"script/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.10.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"karma-webpack\": \"1.2.1\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"rf-release\": \"0.1.2\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.2.0-beta5\",\n        \"webpack-dev-server\": \"1.4.2\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"es6-promise\": \"^1.0.0\",\n        \"event-emitter\": \"^0.3.1\",\n        \"querystring\": \"^0.2.0\"\n      },\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"a265b49ce52dc93c2bf59844fffdae834f6317d1\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"_id\": \"react-router@0.5.1\",\n      \"_shasum\": \"c0273b83b3707a62b52204d3ceb0f0d79141b2e6\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.20\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"c0273b83b3707a62b52204d3ceb0f0d79141b2e6\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.5.1.tgz\"\n      }\n    },\n    \"0.5.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.5.2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"main\": \"./index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router\",\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"script/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.10.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"karma-webpack\": \"1.2.1\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"rf-release\": \"0.1.2\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.2.0-beta5\",\n        \"webpack-dev-server\": \"1.4.2\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"es6-promise\": \"^1.0.0\",\n        \"event-emitter\": \"^0.3.1\",\n        \"querystring\": \"^0.2.0\"\n      },\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"cec541f3c9ed8dd521b7ab712a48adb148a64e59\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"_id\": \"react-router@0.5.2\",\n      \"_shasum\": \"2a27426feda11c5925a201b30ab3b527410c0383\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.20\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"2a27426feda11c5925a201b30ab3b527410c0383\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.5.2.tgz\"\n      }\n    },\n    \"0.5.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.5.3\",\n      \"description\": \"A complete routing library for React.js\",\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"main\": \"./index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router\",\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"script/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.10.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"karma-webpack\": \"1.2.1\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"rf-release\": \"0.3.1\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.2.0-beta5\",\n        \"webpack-dev-server\": \"1.4.2\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"es6-promise\": \"^1.0.0\",\n        \"events\": \"^1.0.1\",\n        \"querystring\": \"^0.2.0\"\n      },\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"5ff29852df0730adc5c3c361ad5da6240c307e14\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"_id\": \"react-router@0.5.3\",\n      \"_shasum\": \"99894d3a204c9446dfabe18aa0c37411c30ac1c4\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.20\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"99894d3a204c9446dfabe18aa0c37411c30ac1c4\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.5.3.tgz\"\n      }\n    },\n    \"0.6.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.6.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"main\": \"./index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"script/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.10.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"karma-webpack\": \"1.2.1\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"rf-release\": \"0.3.1\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.2.0-beta5\",\n        \"webpack-dev-server\": \"1.4.2\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"es6-promise\": \"1.0.0\",\n        \"events\": \"1.0.1\",\n        \"flux\": \"2.0.0\",\n        \"qs\": \"1.2.2\"\n      },\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"ac912ee615f71eb153da53c41891500a787557ca\",\n      \"_id\": \"react-router@0.6.0\",\n      \"_shasum\": \"66d1917afc1b415715fc63d84e5a5457569b6566\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.20\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"66d1917afc1b415715fc63d84e5a5457569b6566\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.6.0.tgz\"\n      }\n    },\n    \"0.6.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.6.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"main\": \"./index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"script/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.10.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"karma-webpack\": \"1.2.1\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"rf-release\": \"0.3.1\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.2.0-beta5\",\n        \"webpack-dev-server\": \"1.4.2\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"flux\": \"2.0.0\",\n        \"qs\": \"1.2.2\",\n        \"when\": \"^3.4.4\"\n      },\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"45e63091f3760a5bfd04fea4a3d31057fb4cd7b0\",\n      \"_id\": \"react-router@0.6.1\",\n      \"_shasum\": \"985eca1fe3570b78dcb763778ca8c7d1265b30b5\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.20\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"985eca1fe3570b78dcb763778ca8c7d1265b30b5\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.6.1.tgz\"\n      }\n    },\n    \"0.7.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.7.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"reactify\": \"^0.14.0\",\n        \"rf-release\": \"0.3.1\",\n        \"uglify-js\": \"2.4.15\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"flux\": \"2.0.0\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"^3.4.4\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"a000b732729f12b3445b4d917ec6474847ccd155\",\n      \"_id\": \"react-router@0.7.0\",\n      \"_shasum\": \"0588f99c5b99a6ce504379638008022eba278732\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"jabapyth\",\n          \"email\": \"jared@jaredforsyth.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"0588f99c5b99a6ce504379638008022eba278732\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.7.0.tgz\"\n      }\n    },\n    \"0.8.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.8.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"reactify\": \"^0.14.0\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"flux\": \"2.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"04b9aa73930dd45ac9dc204a2e889595337b4a8f\",\n      \"_id\": \"react-router@0.8.0\",\n      \"_shasum\": \"0e81844f97512b8eb9b548c243b59d3b88ce3b83\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"0e81844f97512b8eb9b548c243b59d3b88ce3b83\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.8.0.tgz\"\n      }\n    },\n    \"0.9.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.9.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"reactify\": \"^0.14.0\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"flux\": \"2.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"bfda1e7fe8d88bd7dcc7f3e092c7ded8c3a4f5c4\",\n      \"_id\": \"react-router@0.9.0\",\n      \"_shasum\": \"e9fc6a357b1cc5f46a3c4681f4c49d51ad10a4d1\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"e9fc6a357b1cc5f46a3c4681f4c49d51ad10a4d1\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.9.0.tgz\"\n      }\n    },\n    \"0.9.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.9.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"reactify\": \"^0.14.0\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"flux\": \"2.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"10ea36878f97a13486bbb3a3a1739fc5be7924c9\",\n      \"_id\": \"react-router@0.9.1\",\n      \"_shasum\": \"34a5a2edb95b9c19630608c4fc170ec4579bc696\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"34a5a2edb95b9c19630608c4fc170ec4579bc696\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.9.1.tgz\"\n      }\n    },\n    \"0.9.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.9.2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"reactify\": \"^0.14.0\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"93e734145635ce2792ca797f147fa46279c92a06\",\n      \"_id\": \"react-router@0.9.2\",\n      \"_shasum\": \"a278006fa2c1ba74a1ec08b0e6523dcbd5087f77\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"a278006fa2c1ba74a1ec08b0e6523dcbd5087f77\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.9.2.tgz\"\n      }\n    },\n    \"0.9.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.9.3\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"reactify\": \"^0.14.0\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"18e5c205848e1d371898b918cf51bf10dcad9ea4\",\n      \"_id\": \"react-router@0.9.3\",\n      \"_shasum\": \"8cf6cc59e1196527fdaadb1dfad867616f8061c8\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"8cf6cc59e1196527fdaadb1dfad867616f8061c8\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.9.3.tgz\"\n      }\n    },\n    \"0.9.4\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.9.4\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.11.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \">=0.11.0\",\n        \"reactify\": \"^0.14.0\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=0.11.0\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"ca1563d3a0b0fd3f75f66a39afafcea0bdc15c9b\",\n      \"_id\": \"react-router@0.9.4\",\n      \"_shasum\": \"c9581abb35693546baef604bffbac1655063d924\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"c9581abb35693546baef604bffbac1655063d924\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.9.4.tgz\"\n      }\n    },\n    \"0.9.5\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.9.5\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.11.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.11.x\",\n        \"reactify\": \"^0.14.0\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.11.x\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"37eebf5f156ee24ba636a79e6e89c3e0012d6233\",\n      \"_id\": \"react-router@0.9.5\",\n      \"_shasum\": \"0a45570dccff72b670fcedc5b6f86be36f17fb09\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"0a45570dccff72b670fcedc5b6f86be36f17fb09\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.9.5.tgz\"\n      }\n    },\n    \"0.10.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.10.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.11.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"7ee1a22a5839c4f8a4e065c843d99e63fa77fd87\",\n      \"_id\": \"react-router@0.10.0\",\n      \"_shasum\": \"6a730ea0d0034c7398e94c0cb8e3e7277e1c1aea\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"6a730ea0d0034c7398e94c0cb8e3e7277e1c1aea\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.10.0.tgz\"\n      }\n    },\n    \"0.10.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.10.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.11.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"a3f488c0851f6b2517189dcaee63cb12907ec0d9\",\n      \"_id\": \"react-router@0.10.1\",\n      \"_shasum\": \"1a83a43aea53e25573c6fec22b9f7be095055b8c\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"1a83a43aea53e25573c6fec22b9f7be095055b8c\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.10.1.tgz\"\n      }\n    },\n    \"0.10.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.10.2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.11.2\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"^0.2.1\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"events\": \"1.0.1\",\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"77cb5c282b3859ae85a32c5e16b00d6636083f05\",\n      \"_id\": \"react-router@0.10.2\",\n      \"_shasum\": \"cd20246a7466647916e08a68dbb30a4a265dfcb4\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"cd20246a7466647916e08a68dbb30a4a265dfcb4\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.10.2.tgz\"\n      }\n    },\n    \"0.11.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.11.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.12.0\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"1.0.0\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"0e1dfefbc201cb7849a66e12590823b18ef1d3a3\",\n      \"_id\": \"react-router@0.11.0\",\n      \"_shasum\": \"e3550779feb8f96b0ddf3b9b2f780789b14bc230\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"e3550779feb8f96b0ddf3b9b2f780789b14bc230\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.11.0.tgz\"\n      }\n    },\n    \"0.11.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.11.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.12.0\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"1.0.0\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.3.2\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"f248a7bbc288a4009032d3426c8b143776f61bf2\",\n      \"_id\": \"react-router@0.11.1\",\n      \"_shasum\": \"3bd47918d078399618f308fc3df0fdba81e41eca\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"3bd47918d078399618f308fc3df0fdba81e41eca\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.11.1.tgz\"\n      }\n    },\n    \"0.11.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.11.2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.12.0\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"1.0.0\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"a38ab4b4ac1af13cebbf657ebcee48a2e9fed479\",\n      \"_id\": \"react-router@0.11.2\",\n      \"_shasum\": \"7365449b63b12719b87062443574f52631a9599a\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"7365449b63b12719b87062443574f52631a9599a\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.11.2.tgz\"\n      }\n    },\n    \"0.11.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.11.3\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.12.0\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"1.0.0\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"2425453d69604305bc2dd069fdd7ab48d2880ef5\",\n      \"_id\": \"react-router@0.11.3\",\n      \"_shasum\": \"adcbd4f1bddeb7f19f90a98681954505d00439d1\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.2\",\n      \"_nodeVersion\": \"0.10.27\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"adcbd4f1bddeb7f19f90a98681954505d00439d1\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.11.3.tgz\"\n      }\n    },\n    \"0.11.4\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.11.4\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"0.1.1\",\n        \"jsx-loader\": \"0.12.0\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"1.0.0\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"87166eb5885fa08d1d46237671d6309579db5993\",\n      \"_id\": \"react-router@0.11.4\",\n      \"_shasum\": \"66425491946bdc78871467cb401bcde0a7da7fb9\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.0.0-beta.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"66425491946bdc78871467cb401bcde0a7da7fb9\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.11.4.tgz\"\n      }\n    },\n    \"0.11.5\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.11.5\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\",\n        \"lint\": \"jsxhint examples modules\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"0.1.1\",\n        \"glob\": \"4.2.1\",\n        \"jsx-loader\": \"0.12.0\",\n        \"jsxhint\": \"^0.8.1\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"1.0.0\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"gitHead\": \"0979d39fe35d31e41780aa271b2c50ee1de9f375\",\n      \"_id\": \"react-router@0.11.5\",\n      \"_shasum\": \"75987e15d28bd0c3ca19659dbbf558d6e4d53dfc\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.1.10\",\n      \"_nodeVersion\": \"0.10.22\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"75987e15d28bd0c3ca19659dbbf558d6e4d53dfc\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.11.5.tgz\"\n      }\n    },\n    \"0.11.6\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.11.6\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"./modules/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"test\": \"scripts/test --browsers Firefox --single-run\",\n        \"lint\": \"jsxhint examples modules\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"browserify\": \"4.2.3\",\n        \"browserify-shim\": \"3.6.0\",\n        \"bundle-loader\": \"0.5.1\",\n        \"envify\": \"1.2.0\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"0.1.1\",\n        \"glob\": \"4.2.1\",\n        \"jsx-loader\": \"0.12.0\",\n        \"jsxhint\": \"^0.8.1\",\n        \"karma\": \"0.12.16\",\n        \"karma-browserify\": \"1.0.0\",\n        \"karma-chrome-launcher\": \"0.1.4\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"0.1.3\",\n        \"karma-mocha\": \"0.1.3\",\n        \"mocha\": \"1.20.1\",\n        \"react\": \"0.12.x\",\n        \"reactify\": \"0.15.x\",\n        \"rf-release\": \"0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"uglify-js\": \"2.4.15\",\n        \"webpack\": \"1.4.5\",\n        \"webpack-dev-server\": \"1.6.5\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.2.2\",\n        \"when\": \"3.4.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"browserify-shim\": {\n        \"react\": \"global:React\"\n      },\n      \"_id\": \"react-router@0.11.6\",\n      \"_shasum\": \"93efd73f9ddd61cc8ff1cd31936797542720b5c3\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"1.4.9\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"93efd73f9ddd61cc8ff1cd31936797542720b5c3\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.11.6.tgz\"\n      }\n    },\n    \"0.12.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.12.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"modules/index.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"directories\": {\n        \"example\": \"examples\"\n      },\n      \"scripts\": {\n        \"build\": \"NODE_ENV=production webpack modules/index.js dist/react-router.js\",\n        \"build-min\": \"NODE_ENV=production COMPRESS=1 webpack modules/index.js dist/react-router.min.js\",\n        \"examples\": \"webpack-dev-server --config examples/webpack.config.js --no-info --content-base examples\",\n        \"test\": \"jsxhint . && karma start --single-run\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"devDependencies\": {\n        \"bundle-loader\": \"^0.5.2\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"^1.1.0\",\n        \"jsx-loader\": \"^0.12.2\",\n        \"jsxhint\": \"^0.8.1\",\n        \"karma\": \"^0.12.28\",\n        \"karma-chrome-launcher\": \"^0.1.7\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.10\",\n        \"karma-sourcemap-loader\": \"^0.3.2\",\n        \"karma-webpack\": \"^1.3.1\",\n        \"mocha\": \"^2.0.1\",\n        \"react\": \"0.12.x\",\n        \"rf-release\": \"0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-server\": \"^1.6.6\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.3.3\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"c050095c8ed8cb17b0337b70ebcca411e19a94d2\",\n      \"_id\": \"react-router@0.12.0\",\n      \"_shasum\": \"c981a56037546fc9a6a79428f5ab75c4eff353ab\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.1.10\",\n      \"_nodeVersion\": \"0.10.22\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"c981a56037546fc9a6a79428f5ab75c4eff353ab\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.12.0.tgz\"\n      }\n    },\n    \"0.12.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.12.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.3.3\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.12.1\",\n      \"scripts\": {},\n      \"_shasum\": \"2cb14f2ed78a01c1e2b027d8cb592d2d9c4a0e4a\",\n      \"_from\": \"build/npm\",\n      \"_resolved\": \"file:build/npm\",\n      \"_npmVersion\": \"2.6.0\",\n      \"_nodeVersion\": \"0.10.28\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"2cb14f2ed78a01c1e2b027d8cb592d2d9c4a0e4a\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.12.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.12.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.12.2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.3.3\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.12.2\",\n      \"scripts\": {},\n      \"_shasum\": \"d02016030d0442975f748e5208e4949b7bc397e1\",\n      \"_from\": \"build/npm\",\n      \"_resolved\": \"file:build/npm\",\n      \"_npmVersion\": \"2.6.0\",\n      \"_nodeVersion\": \"0.10.28\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"d02016030d0442975f748e5208e4949b7bc397e1\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.12.2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.12.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.12.3\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.3.3\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.12.3\",\n      \"scripts\": {},\n      \"_shasum\": \"7eea6f2050fa9602b13e5a2a2bbc3c6d6529689f\",\n      \"_from\": \"build/npm\",\n      \"_resolved\": \"file:build/npm\",\n      \"_npmVersion\": \"2.6.0\",\n      \"_nodeVersion\": \"0.10.28\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"7eea6f2050fa9602b13e5a2a2bbc3c6d6529689f\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.12.3.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.12.4\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.12.4\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.12.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.3.3\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.12.4\",\n      \"scripts\": {},\n      \"_shasum\": \"e60798b789729970eea3981799fac4e86bd2fb16\",\n      \"_from\": \"build/npm\",\n      \"_resolved\": \"file:build/npm\",\n      \"_npmVersion\": \"2.6.0\",\n      \"_nodeVersion\": \"0.10.28\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"e60798b789729970eea3981799fac4e86bd2fb16\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.12.4.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.13.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.13.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.4.1\",\n        \"classnames\": \"1.1.x\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.13.0\",\n      \"scripts\": {},\n      \"_shasum\": \"11423b5c43296f2d602195e4a63966e3c50c8827\",\n      \"_from\": \"build/npm\",\n      \"_resolved\": \"file:build/npm\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"11423b5c43296f2d602195e4a63966e3c50c8827\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.13.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.13.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.13.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.4.1\",\n        \"classnames\": \"1.1.x\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.13.1\",\n      \"scripts\": {},\n      \"_shasum\": \"2df6a007f21f6d4b7d6fac798c748f9cdb985d3d\",\n      \"_from\": \"build/npm\",\n      \"_resolved\": \"file:build/npm\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"2df6a007f21f6d4b7d6fac798c748f9cdb985d3d\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.13.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.13.2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.13.x\"\n      },\n      \"dependencies\": {\n        \"qs\": \"2.4.1\",\n        \"classnames\": \"1.1.x\",\n        \"object-assign\": \"^2.0.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.13.2\",\n      \"scripts\": {},\n      \"_shasum\": \"09343b14f799983ed210e2f466f28f7f1cf1b807\",\n      \"_from\": \"build/npm\",\n      \"_resolved\": \"file:build/npm\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"09343b14f799983ed210e2f466f28f7f1cf1b807\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.13.2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.13.3\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.13.x\"\n      },\n      \"dependencies\": {\n        \"object-assign\": \"^2.0.0\",\n        \"qs\": \"2.4.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.13.3\",\n      \"scripts\": {},\n      \"_shasum\": \"95455dd19d2c04c7b2957ff7fccda76031ac29b1\",\n      \"_from\": \"build\",\n      \"_resolved\": \"file:build\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"95455dd19d2c04c7b2957ff7fccda76031ac29b1\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.13.3.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.0-alpha1\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-alpha1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"scripts/build.sh\",\n        \"watch\": \"babel ./modules --watch -d lib\",\n        \"build-website\": \"scripts/build-website.sh\",\n        \"examples\": \"webpack-dev-server --config examples/webpack.config.js --content-base examples --inline\",\n        \"prepublish\": \"npm run build\",\n        \"test\": \"jsxhint modules && karma start\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"keymirror\": \"^0.1.1\",\n        \"qs\": \"2.4.1\",\n        \"warning\": \"^1.0.1\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-object-assign\": \"^1.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"^1.6.0\",\n        \"jsxhint\": \"^0.12.1\",\n        \"karma\": \"^0.12.28\",\n        \"karma-chrome-launcher\": \"^0.1.7\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.10\",\n        \"karma-sourcemap-loader\": \"^0.3.2\",\n        \"karma-webpack\": \"^1.3.1\",\n        \"marked\": \"0.3.3\",\n        \"mocha\": \"^2.0.1\",\n        \"pygmentize-bundled\": \"^2.3.0\",\n        \"react\": \"0.13.x\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"slash\": \"^1.0.0\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-server\": \"^1.6.6\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.13.x\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"f6bf5f0a7c4d7fb493a00588b550fbb09c97990b\",\n      \"_id\": \"react-router@1.0.0-alpha1\",\n      \"_shasum\": \"a07abc14d7321f0a54e682f1343436737b92bf5b\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"a07abc14d7321f0a54e682f1343436737b92bf5b\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-alpha1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.0-alpha2\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-alpha2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"scripts/build.sh\",\n        \"watch\": \"babel ./modules --watch -d lib\",\n        \"build-website\": \"scripts/build-website.sh\",\n        \"examples\": \"webpack-dev-server --config examples/webpack.config.js --content-base examples --inline\",\n        \"prepublish\": \"npm run build\",\n        \"test\": \"jsxhint modules && karma start\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"keymirror\": \"^0.1.1\",\n        \"qs\": \"2.4.1\",\n        \"warning\": \"^1.0.1\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-object-assign\": \"^1.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"^1.6.0\",\n        \"jsxhint\": \"^0.12.1\",\n        \"karma\": \"^0.12.28\",\n        \"karma-chrome-launcher\": \"^0.1.7\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.10\",\n        \"karma-sourcemap-loader\": \"^0.3.2\",\n        \"karma-webpack\": \"^1.3.1\",\n        \"marked\": \"0.3.3\",\n        \"mocha\": \"^2.0.1\",\n        \"pygmentize-bundled\": \"^2.3.0\",\n        \"react\": \"0.13.x\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"slash\": \"^1.0.0\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-server\": \"^1.6.6\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.13.x\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"75d75d010c51650eadbb0383ebad3d332b65cfd7\",\n      \"_id\": \"react-router@1.0.0-alpha2\",\n      \"_shasum\": \"a841f2e085028f9ca7e7d6ef7d09be602a4c00db\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"a841f2e085028f9ca7e7d6ef7d09be602a4c00db\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-alpha2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.0-beta1\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-beta1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"scripts/build.sh\",\n        \"watch\": \"babel ./modules --watch -d lib\",\n        \"build-website\": \"scripts/build-website.sh\",\n        \"examples\": \"webpack-dev-server --config examples/webpack.config.js --content-base examples --inline\",\n        \"prepublish\": \"npm run build\",\n        \"test\": \"jsxhint modules && karma start\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"keymirror\": \"^0.1.1\",\n        \"qs\": \"2.4.1\",\n        \"warning\": \"^1.0.1\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-object-assign\": \"^1.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"^1.6.0\",\n        \"jsxhint\": \"^0.12.1\",\n        \"karma\": \"^0.12.28\",\n        \"karma-chrome-launcher\": \"^0.1.7\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.10\",\n        \"karma-sourcemap-loader\": \"^0.3.2\",\n        \"karma-webpack\": \"^1.3.1\",\n        \"marked\": \"0.3.3\",\n        \"mocha\": \"^2.0.1\",\n        \"pygmentize-bundled\": \"^2.3.0\",\n        \"react\": \"0.13.x\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"slash\": \"^1.0.0\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-server\": \"^1.6.6\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.13.x\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"b3ac05524a5da1d915c9a7a58bb585d453dba3a2\",\n      \"_id\": \"react-router@1.0.0-beta1\",\n      \"_shasum\": \"dba3834dd3e4ad15cc6a4bbaae63abaa208f3e7b\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"dba3834dd3e4ad15cc6a4bbaae63abaa208f3e7b\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-beta1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.0-beta2\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-beta2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"scripts/build.sh\",\n        \"watch\": \"babel ./modules --watch -d lib\",\n        \"build-website\": \"scripts/build-website.sh\",\n        \"examples\": \"webpack-dev-server --config examples/webpack.config.js --content-base examples --inline\",\n        \"prepublish\": \"npm run build\",\n        \"test\": \"jsxhint modules && karma start\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"keymirror\": \"^0.1.1\",\n        \"qs\": \"2.4.1\",\n        \"warning\": \"^1.0.1\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-object-assign\": \"^1.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"^1.6.0\",\n        \"jsxhint\": \"^0.12.1\",\n        \"karma\": \"^0.12.28\",\n        \"karma-chrome-launcher\": \"^0.1.7\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.10\",\n        \"karma-sourcemap-loader\": \"^0.3.2\",\n        \"karma-webpack\": \"^1.3.1\",\n        \"marked\": \"0.3.3\",\n        \"mocha\": \"^2.0.1\",\n        \"pygmentize-bundled\": \"^2.3.0\",\n        \"react\": \"0.13.x\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"slash\": \"^1.0.0\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-server\": \"^1.6.6\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"0.13.x\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"5f17eb9a6e3424c1e0ba7f7bdec9efd31f7e6af1\",\n      \"_id\": \"react-router@1.0.0-beta2\",\n      \"_shasum\": \"5a1967ce6cffa90a7eb53a6512ef5679033370c6\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"5a1967ce6cffa90a7eb53a6512ef5679033370c6\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-beta2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.0-beta3\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-beta3\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"scripts/build.sh\",\n        \"watch\": \"babel ./modules --watch -d lib\",\n        \"build-website\": \"scripts/build-website.sh\",\n        \"examples\": \"webpack-dev-server --config examples/webpack.config.js --content-base examples --inline\",\n        \"prepublish\": \"npm run build\",\n        \"test\": \"jsxhint modules && karma start\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"keymirror\": \"^0.1.1\",\n        \"qs\": \"2.4.1\",\n        \"warning\": \"^1.0.1\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-object-assign\": \"^1.2.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"^1.6.0\",\n        \"jsxhint\": \"^0.12.1\",\n        \"karma\": \"^0.12.28\",\n        \"karma-chrome-launcher\": \"^0.1.7\",\n        \"karma-cli\": \"0.0.4\",\n        \"karma-firefox-launcher\": \"^0.1.3\",\n        \"karma-mocha\": \"^0.1.10\",\n        \"karma-sourcemap-loader\": \"^0.3.2\",\n        \"karma-webpack\": \"^1.3.1\",\n        \"marked\": \"0.3.3\",\n        \"mocha\": \"^2.0.1\",\n        \"pygmentize-bundled\": \"^2.3.0\",\n        \"react\": \"0.13.x\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"slash\": \"^1.0.0\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-server\": \"^1.6.6\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"e3eef101a9999ea645a0e815101570ffc6f4c882\",\n      \"_id\": \"react-router@1.0.0-beta3\",\n      \"_shasum\": \"f1d9dfb13125b077339b75cbbc367691f6613a3e\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"f1d9dfb13125b077339b75cbbc367691f6613a3e\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-beta3.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.0-beta4\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-beta4\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"babel ./modules -d lib --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js lib/umd/History.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js lib/umd/History.min.js\",\n        \"build-website\": \"scripts/build-website.sh\",\n        \"start\": \"webpack-dev-server --config examples/webpack.config.js --content-base examples --inline\",\n        \"test\": \"eslint modules && karma start\",\n        \"prepublish\": \"npm run build\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^1.8.0\",\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^3.1.23\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-object-assign\": \"^1.2.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"eslint\": \"^1.0.0\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"^1.6.0\",\n        \"karma\": \"^0.13.8\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-firefox-launcher\": \"^0.1.6\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"marked\": \"0.3.3\",\n        \"mocha\": \"^2.0.1\",\n        \"pygmentize-bundled\": \"^2.3.0\",\n        \"react\": \"0.13.x\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"slash\": \"^1.0.0\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-server\": \"^1.10.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"d1b1e247d22f42f1cf1d4e9a8a91fd21631db65a\",\n      \"_id\": \"react-router@1.0.0-beta4\",\n      \"_shasum\": \"85cef425b2a645407e81723d94be8997d3e34ced\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"85cef425b2a645407e81723d94be8997d3e34ced\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-beta4.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.0-rc1\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-rc1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"babel ./modules -d lib --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"start\": \"webpack-dev-server --config examples/webpack.config.js --content-base examples --inline\",\n        \"test\": \"eslint modules && karma start\",\n        \"lint\": \"eslint modules\",\n        \"prepublish\": \"npm run build\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^1.9.0\",\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^3.1.23\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-object-assign\": \"^1.2.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"eslint\": \"1.4.0\",\n        \"eslint-plugin-react\": \"3.3.2\",\n        \"events\": \"1.0.2\",\n        \"expect\": \"^1.6.0\",\n        \"karma\": \"^0.13.8\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-firefox-launcher\": \"^0.1.6\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"marked\": \"0.3.3\",\n        \"mocha\": \"^2.0.1\",\n        \"pygmentize-bundled\": \"^2.3.0\",\n        \"react\": \"0.13.x\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"rx\": \"2.3.18\",\n        \"slash\": \"^1.0.0\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-server\": \"^1.10.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"dcc7f6c94b56370c872a32cd7f80b2401601aa0f\",\n      \"_id\": \"react-router@1.0.0-rc1\",\n      \"_shasum\": \"0044af437eef08f86bde34dde2c767c254fb5493\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.7.5\",\n      \"_nodeVersion\": \"0.10.28\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"0044af437eef08f86bde34dde2c767c254fb5493\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-rc1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.4\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.13.4\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.13.x\"\n      },\n      \"dependencies\": {\n        \"object-assign\": \"^2.0.0\",\n        \"qs\": \"2.4.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.13.4\",\n      \"scripts\": {},\n      \"_shasum\": \"fafc8337fd56d6982b2d6b15cf6783b59f725520\",\n      \"_from\": \"build\",\n      \"_resolved\": \"file:build\",\n      \"_npmVersion\": \"2.11.3\",\n      \"_nodeVersion\": \"0.12.7\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"fafc8337fd56d6982b2d6b15cf6783b59f725520\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.13.4.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"1.0.0-rc2\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-rc2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"babel ./modules -d lib --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && karma start\",\n        \"lint\": \"eslint modules examples\",\n        \"postinstall\": \"node -e \\\"require('fs').stat('lib', function (e, s) { process.exit(e || !s.isDirectory() ? 1 : 0) })\\\" || npm run build\",\n        \"prepublish\": \"npm run build\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"1.12.1\",\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"devDependencies\": {\n        \"assert\": \"1.3.0\",\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^3.1.23\",\n        \"babel-loader\": \"^5.0.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"1.4.0\",\n        \"eslint-plugin-react\": \"3.3.2\",\n        \"expect\": \"1.10.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"karma\": \"^0.13.8\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-firefox-launcher\": \"^0.1.6\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"0.13.x\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"4db49e3adffa5e995f456229ea5e83d4f0d683bf\",\n      \"_id\": \"react-router@1.0.0-rc2\",\n      \"_shasum\": \"bfdcdc854ba4fa0ca25ce9bab7e1fb001098821a\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.11.3\",\n      \"_nodeVersion\": \"0.12.7\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"bfdcdc854ba4fa0ca25ce9bab7e1fb001098821a\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-rc2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"1.0.0-rc3\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-rc3\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"babel ./modules -d lib --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && karma start\",\n        \"postinstall\": \"node -e \\\"require('fs').stat('lib', function (e, s) { process.exit(e || !s.isDirectory() ? 1 : 0) })\\\" || npm run build\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"1.12.3\",\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"devDependencies\": {\n        \"assert\": \"1.3.0\",\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^3.1.23\",\n        \"babel-loader\": \"^5.0.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"1.4.0\",\n        \"eslint-plugin-react\": \"3.3.2\",\n        \"expect\": \"1.10.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"karma\": \"^0.13.8\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-firefox-launcher\": \"^0.1.6\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"0.13.x\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"b17d5c2aee84c21e4f84da6601608ba0d3b2c6a6\",\n      \"_id\": \"react-router@1.0.0-rc3\",\n      \"_shasum\": \"b511f1f1b873e6db0af2d8bd6cb10b6aca479002\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.11.3\",\n      \"_nodeVersion\": \"0.12.7\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"b511f1f1b873e6db0af2d8bd6cb10b6aca479002\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-rc3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"directories\": {}\n    },\n    \"0.13.5\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.13.5\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.13.x||0.14.x\"\n      },\n      \"dependencies\": {\n        \"can-use-dom\": \"0.1.0\",\n        \"invariant\": \"^2.0.0\",\n        \"object-assign\": \"^2.0.0\",\n        \"qs\": \"2.4.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.13.5\",\n      \"scripts\": {},\n      \"_shasum\": \"02e3e2821c1a38d0573733ab1abfb1c388516733\",\n      \"_from\": \"build\",\n      \"_resolved\": \"file:build\",\n      \"_npmVersion\": \"3.3.10\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"02e3e2821c1a38d0573733ab1abfb1c388516733\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.13.5.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.0-rc4\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0-rc4\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"babel ./modules -d lib --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && karma start\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"peerDependencies\": {\n        \"history\": \"^1.12.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^3.1.23\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"history\": \"^1.12.5\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-firefox-launcher\": \"^0.1.6\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"react-static-container\": \"^1.0.0\",\n        \"rf-changelog\": \"^0.4.0\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"e26c8c0c389f2e109c20328bd13a320342b64bda\",\n      \"_id\": \"react-router@1.0.0-rc4\",\n      \"_shasum\": \"710e834835662b34949172a5c7d2038f5f246749\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.3.10\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"710e834835662b34949172a5c7d2038f5f246749\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0-rc4.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"lib\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"babel ./modules -d lib --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples *.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && karma start\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"peerDependencies\": {\n        \"history\": \"^1.12.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^3.1.23\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"history\": \"^1.12.5\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"react-static-container\": \"^1.0.0\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"1bc9db10cdd86d7bf6a066388d88ad3b0b150da3\",\n      \"_id\": \"react-router@1.0.0\",\n      \"_shasum\": \"f56e2620d2d9f5fe19440d5dba9971203dec4d3f\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"2.5.1\",\n      \"_nodeVersion\": \"0.12.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"f56e2620d2d9f5fe19440d5dba9971203dec4d3f\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.0.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"peerDependencies\": {\n        \"history\": \"^1.12.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^3.1.23\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"history\": \"^1.12.5\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"react-static-container\": \"^1.0.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"d88579298a21798b4e4e5645e190c8a7b4cf66a3\",\n      \"_id\": \"react-router@1.0.1\",\n      \"_shasum\": \"6ceb6f020c33d5d99ca8836a62554bc9865a454b\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.3.10\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"6ceb6f020c33d5d99ca8836a62554bc9865a454b\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"peerDependencies\": {\n        \"history\": \"1.13.x\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^3.1.23\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"history\": \"^1.12.5\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"react-static-container\": \"^1.0.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"2153e2cf0d691c141257eaf29cf230b0bc0f789f\",\n      \"_id\": \"react-router@1.0.2\",\n      \"_shasum\": \"06e658ccdc7237d1e5e42c6185031655ca950fb2\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.3.10\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"06e658ccdc7237d1e5e42c6185031655ca950fb2\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.2.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"1.0.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"1.0.3\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"peerDependencies\": {\n        \"history\": \"^1.17.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^4.1.6\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"history\": \"^1.17.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"react-static-container\": \"^1.0.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"f0456b75eee362a179e6b49bbe5add95fb734f80\",\n      \"_id\": \"react-router@1.0.3\",\n      \"_shasum\": \"980ecaa055b86e47c86548c232ae05a88a41f0b7\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"980ecaa055b86e47c86548c232ae05a88a41f0b7\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-1.0.3.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"2.0.0-rc1\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.0.0-rc1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\",\n        \"history\": \"^1.17.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^4.1.6\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"71797751ed02bae6d7340643c569bba9baad80df\",\n      \"_id\": \"react-router@2.0.0-rc1\",\n      \"_shasum\": \"e7442d95810a59d212d5342c8478d3dbd716d2fc\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"e7442d95810a59d212d5342c8478d3dbd716d2fc\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.0.0-rc1.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"2.0.0-rc2\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.0.0-rc2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\",\n        \"history\": \"^1.17.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^4.1.6\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"78757ca7ab0010eceb2ed214fe224ba9f370a7ee\",\n      \"_id\": \"react-router@2.0.0-rc2\",\n      \"_shasum\": \"65cb7d090735a4ef3a735b919066d102ade2df71\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"65cb7d090735a4ef3a735b919066d102ade2df71\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.0.0-rc2.tgz\"\n      },\n      \"deprecated\": \"A critical install failure due to an npm bug is fixed in rc3. Also, please use @beta when installing instead of @2.0.0-rc2, this ensures you get the latest pre-release.\",\n      \"directories\": {}\n    },\n    \"2.0.0-rc3\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.0.0-rc3\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\",\n        \"history\": \"^1.17.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^4.1.6\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"b9f8a38badf8d41fef930ad52793d486c6d383fa\",\n      \"_id\": \"react-router@2.0.0-rc3\",\n      \"_shasum\": \"080d93b609b82a73a490438883047950bc0470a5\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"080d93b609b82a73a490438883047950bc0470a5\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.0.0-rc3.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"2.0.0-rc4\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.0.0-rc4\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\",\n        \"history\": \"^1.17.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^4.1.6\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"613dad98a505e1a1dfb40638be7f3611c73ba102\",\n      \"_id\": \"react-router@2.0.0-rc4\",\n      \"_shasum\": \"6c0455ff166468a86be77fefcc4e1ea4ff758d26\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"6c0455ff166468a86be77fefcc4e1ea4ff758d26\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.0.0-rc4.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"2.0.0-rc5\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.0.0-rc5\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"modules/*.js\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.0-rc1\",\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^4.1.6\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"560f0a15338da9efdc771ff1bfb27b3fb7477eb3\",\n      \"_id\": \"react-router@2.0.0-rc5\",\n      \"_shasum\": \"700922e5603e4f2a8982b639d63334a2321b34a0\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"700922e5603e4f2a8982b639d63334a2321b34a0\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.0.0-rc5.tgz\"\n      },\n      \"directories\": {}\n    },\n    \"2.0.0-rc6\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.0.0-rc6\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"modules/*.js\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.0\",\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^4.1.6\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"05f80843612c379920226b71812cc7d5119a7597\",\n      \"_id\": \"react-router@2.0.0-rc6\",\n      \"_shasum\": \"79da721fcfab65714ba47349d3c434989853e9c8\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"79da721fcfab65714ba47349d3c434989853e9c8\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.0.0-rc6.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-6-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.0.0-rc6.tgz_1454686360682_0.3320722554344684\"\n      },\n      \"directories\": {}\n    },\n    \"2.0.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.0.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"modules/*.js\",\n        \"npm-scripts\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://rackt.github.io/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\",\n        \"postinstall\": \"node ./npm-scripts/postinstall.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.0\",\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^4.1.6\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"2edf474fbaa9a5f1c49b67a2eb5cdc56b20444ca\",\n      \"_id\": \"react-router@2.0.0\",\n      \"_shasum\": \"d07fe4aeeb445fb15eb820912838161110f0c78c\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"d07fe4aeeb445fb15eb820912838161110f0c78c\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.0.0.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-9-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.0.0.tgz_1455082156203_0.6167809667531401\"\n      },\n      \"directories\": {}\n    },\n    \"2.0.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.0.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"modules/*.js\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://reactjs.org/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=production webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.0\",\n        \"invariant\": \"^2.0.0\",\n        \"warning\": \"^2.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.4.7\",\n        \"babel-core\": \"^5.4.7\",\n        \"babel-eslint\": \"^4.1.6\",\n        \"babel-loader\": \"^5.0.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.2\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.4\",\n        \"css-loader\": \"^0.19.0\",\n        \"eslint\": \"^1.7.3\",\n        \"eslint-config-rackt\": \"^1.1.0\",\n        \"eslint-plugin-react\": \"^3.6.3\",\n        \"expect\": \"^1.12.0\",\n        \"express\": \"^4.13.3\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.13\",\n        \"karma-browserstack-launcher\": \"^0.1.4\",\n        \"karma-chrome-launcher\": \"^0.2.0\",\n        \"karma-coverage\": \"^0.5.3\",\n        \"karma-mocha\": \"^0.2.0\",\n        \"karma-mocha-reporter\": \"^1.1.1\",\n        \"karma-sourcemap-loader\": \"^0.3.5\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.0.1\",\n        \"pretty-bytes\": \"^2.0.1\",\n        \"qs\": \"^4.0.0\",\n        \"react\": \"^0.14.0\",\n        \"react-addons-css-transition-group\": \"^0.14.0\",\n        \"react-addons-test-utils\": \"0.14.0\",\n        \"react-dom\": \"^0.14.0\",\n        \"rimraf\": \"^2.4.3\",\n        \"style-loader\": \"^0.12.4\",\n        \"webpack\": \"^1.4.13\",\n        \"webpack-dev-middleware\": \"^1.2.0\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"77a594c85c4c75c4a214cdf9307092d808ef55c1\",\n      \"_id\": \"react-router@2.0.1\",\n      \"_shasum\": \"25ccdd8d8889857945521a21f5cd67ddc8d1e5d8\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"25ccdd8d8889857945521a21f5cd67ddc8d1e5d8\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.0.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-13-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.0.1.tgz_1457569175355_0.28356667840853333\"\n      },\n      \"directories\": {}\n    },\n    \"2.1.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.1.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://reactjs.org/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.8.38\",\n        \"babel-core\": \"^5.8.38\",\n        \"babel-eslint\": \"^4.1.8\",\n        \"babel-loader\": \"^5.4.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.16.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.0\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"58169b6eb8b3991bc32e59fdc321ef322dda62bf\",\n      \"_id\": \"react-router@2.1.0\",\n      \"_shasum\": \"f1b2a2b769be557a34297fe1053cb424596b4e88\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"f1b2a2b769be557a34297fe1053cb424596b4e88\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.1.0.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.1.0.tgz_1460395583831_0.4714319889899343\"\n      },\n      \"directories\": {}\n    },\n    \"2.1.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.1.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://reactjs.org/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.8.38\",\n        \"babel-core\": \"^5.8.38\",\n        \"babel-eslint\": \"^4.1.8\",\n        \"babel-loader\": \"^5.4.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.16.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.0\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"e3e1545db24c410565dd4a4e7256407de86328e5\",\n      \"_id\": \"react-router@2.1.1\",\n      \"_shasum\": \"5ac7ae86ca091a59cde635de1a594293bc2b5905\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"5ac7ae86ca091a59cde635de1a594293bc2b5905\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.1.1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.1.1.tgz_1460408504167_0.6190917056519538\"\n      },\n      \"directories\": {}\n    },\n    \"2.2.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.2.0\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://reactjs.org/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es && babel ./modules -d es --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.8.38\",\n        \"babel-core\": \"^5.8.38\",\n        \"babel-eslint\": \"^4.1.8\",\n        \"babel-loader\": \"^5.4.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.16.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.0\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"581f4a472dc9d8fbde2a27a20885c244df9c3bb7\",\n      \"_id\": \"react-router@2.2.0\",\n      \"_shasum\": \"d59a6674f69e90b5fc14c45e79a58a59b66929f1\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.7\",\n      \"_nodeVersion\": \"5.10.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"d59a6674f69e90b5fc14c45e79a58a59b66929f1\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.2.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.2.0.tgz_1460590797869_0.6457097374368459\"\n      },\n      \"directories\": {}\n    },\n    \"2.2.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.2.1\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://reactjs.org/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es && babel ./modules -d es --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.8.38\",\n        \"babel-core\": \"^5.8.38\",\n        \"babel-eslint\": \"^4.1.8\",\n        \"babel-loader\": \"^5.4.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.16.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.0\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"b5175b15bf0999e5fb151f57a8126aca3537a7c9\",\n      \"_id\": \"react-router@2.2.1\",\n      \"_shasum\": \"b0f80a181c6e017f1cf577fa7c73dbdde392970c\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.7\",\n      \"_nodeVersion\": \"5.10.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"b0f80a181c6e017f1cf577fa7c73dbdde392970c\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.2.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.2.1.tgz_1460612289487_0.1572297397069633\"\n      },\n      \"directories\": {}\n    },\n    \"2.2.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.2.2\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://reactjs.org/react-router/\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es && babel ./modules -d es --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.8.38\",\n        \"babel-core\": \"^5.8.38\",\n        \"babel-eslint\": \"^4.1.8\",\n        \"babel-loader\": \"^5.4.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.16.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.0\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"c58c806b82ed7dec960f042e31b24091bee7dad0\",\n      \"_id\": \"react-router@2.2.2\",\n      \"_shasum\": \"3b474221c3cf3a3ad7fe901f532ff0cd5c490379\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.7\",\n      \"_nodeVersion\": \"5.10.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"3b474221c3cf3a3ad7fe901f532ff0cd5c490379\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.2.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.2.2.tgz_1460652181603_0.18195841857232153\"\n      },\n      \"directories\": {}\n    },\n    \"2.2.4\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.2.4\",\n      \"description\": \"A complete routing library for React.js\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es && babel ./modules -d es --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.8.38\",\n        \"babel-core\": \"^5.8.38\",\n        \"babel-eslint\": \"^4.1.8\",\n        \"babel-loader\": \"^5.4.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.16.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.0\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"c9adeeab27a609bf6c01636d93d32bbafe6acbde\",\n      \"_id\": \"react-router@2.2.4\",\n      \"_shasum\": \"6ec84ae380717b743cca90c695b5688befb2ea7c\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.7\",\n      \"_nodeVersion\": \"5.10.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"6ec84ae380717b743cca90c695b5688befb2ea7c\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.2.4.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.2.4.tgz_1460754513244_0.7122524313163012\"\n      },\n      \"directories\": {}\n    },\n    \"2.3.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.3.0\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es6\",\n        \"build-cjs\": \"rimraf lib && babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es6\": \"rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'\",\n        \"build-umd\": \"NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"karma start\",\n        \"test-node\": \"mocha --compilers js:babel-core/register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"devDependencies\": {\n        \"babel\": \"^5.8.38\",\n        \"babel-core\": \"^5.8.38\",\n        \"babel-eslint\": \"^4.1.8\",\n        \"babel-loader\": \"^5.4.0\",\n        \"babel-plugin-dev-expression\": \"^0.1.0\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.16.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^1.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.0\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"02221fed010fdc2b1e4847c6595cdf469eaea91a\",\n      \"_id\": \"react-router@2.3.0\",\n      \"_shasum\": \"6d02385003c68ac8dd260243570897a0e0fe4ead\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.7\",\n      \"_nodeVersion\": \"5.10.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"6d02385003c68ac8dd260243570897a0e0fe4ead\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.3.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.3.0.tgz_1461016062881_0.40164600987918675\"\n      },\n      \"directories\": {}\n    },\n    \"2.4.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.4.0\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"hoist-non-react-statics\": \"^1.0.5\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.7.5\",\n        \"babel-core\": \"^6.7.6\",\n        \"babel-eslint\": \"^5.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.1.2\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.6.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-0\": \"^6.5.0\",\n        \"babel-register\": \"^6.7.2\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"cross-env\": \"^1.0.7\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.18.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.1\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"041153a1489533f08d2e2c59c331e20ff31a32a7\",\n      \"_id\": \"react-router@2.4.0\",\n      \"_shasum\": \"d21d44a64ab75828f8bb77cc306908e22fdc6d64\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.8.7\",\n      \"_nodeVersion\": \"5.10.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"d21d44a64ab75828f8bb77cc306908e22fdc6d64\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.4.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.4.0.tgz_1461863484705_0.41001310059800744\"\n      },\n      \"directories\": {}\n    },\n    \"2.4.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.4.1\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"hoist-non-react-statics\": \"^1.0.5\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.7.5\",\n        \"babel-core\": \"^6.7.6\",\n        \"babel-eslint\": \"^5.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.1.2\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.6.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"babel-register\": \"^6.7.2\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"cross-env\": \"^1.0.7\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.18.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.1\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"f17c4b75b2697d23445196123f658a27e37309b3\",\n      \"_id\": \"react-router@2.4.1\",\n      \"_shasum\": \"bae815cd74b9c512192d9d17a1276f5462574775\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.9.0\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"bae815cd74b9c512192d9d17a1276f5462574775\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.4.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.4.1.tgz_1463697680899_0.2643290457781404\"\n      },\n      \"directories\": {}\n    },\n    \"3.0.0-alpha.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"3.0.0-alpha.1\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"hoist-non-react-statics\": \"^1.0.5\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.7.5\",\n        \"babel-core\": \"^6.7.6\",\n        \"babel-eslint\": \"^5.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.1.2\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.6.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"babel-register\": \"^6.7.2\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"cross-env\": \"^1.0.7\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.18.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.1\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"2134f41d6cdb30c0a6beaf074a130db2340601ea\",\n      \"_id\": \"react-router@3.0.0-alpha.1\",\n      \"_shasum\": \"73271863aacf6d59e0839c07401239b28ff6fb88\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.9.0\",\n      \"_nodeVersion\": \"6.0.0\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"73271863aacf6d59e0839c07401239b28ff6fb88\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-3.0.0-alpha.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-3.0.0-alpha.1.tgz_1463698490640_0.33552723936736584\"\n      },\n      \"directories\": {}\n    },\n    \"2.5.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.5.0\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"hoist-non-react-statics\": \"^1.0.5\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.7.5\",\n        \"babel-core\": \"^6.7.6\",\n        \"babel-eslint\": \"^5.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.1.2\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.6.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"babel-register\": \"^6.7.2\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"cross-env\": \"^1.0.7\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.18.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.1\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"4e24ae759a7ee8acdb6023e8b4d27195e9e33f72\",\n      \"_id\": \"react-router@2.5.0\",\n      \"_shasum\": \"e1c97af161e8f92a98c888e38ea758c7f2a8cc3f\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.9.5\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"e1c97af161e8f92a98c888e38ea758c7f2a8cc3f\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.5.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.5.0.tgz_1466649803432_0.26163090229965746\"\n      },\n      \"directories\": {}\n    },\n    \"2.5.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.5.1\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"hoist-non-react-statics\": \"^1.0.5\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.7.5\",\n        \"babel-core\": \"^6.7.6\",\n        \"babel-eslint\": \"^5.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.1.2\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.6.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"babel-register\": \"^6.7.2\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"cross-env\": \"^1.0.7\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.18.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.1\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"e01264dfaa132c129fc5e6b7a0fd3f7a7d165790\",\n      \"_id\": \"react-router@2.5.1\",\n      \"_shasum\": \"98de6982f0eaa2ff4b64abe72e9619c56e6e6ac9\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.9.6\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"98de6982f0eaa2ff4b64abe72e9619c56e6e6ac9\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.5.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.5.1.tgz_1466740769871_0.01134293619543314\"\n      },\n      \"directories\": {}\n    },\n    \"2.5.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.5.2\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.0.1\",\n        \"hoist-non-react-statics\": \"^1.0.5\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^2.1.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.7.5\",\n        \"babel-core\": \"^6.7.6\",\n        \"babel-eslint\": \"^5.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.1.2\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.6.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"babel-register\": \"^6.7.2\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.9\",\n        \"cross-env\": \"^1.0.7\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^1.10.3\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^3.16.1\",\n        \"expect\": \"^1.18.0\",\n        \"express\": \"^4.13.4\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^0.1.10\",\n        \"karma-chrome-launcher\": \"^0.2.3\",\n        \"karma-coverage\": \"^0.5.5\",\n        \"karma-mocha\": \"^0.2.2\",\n        \"karma-mocha-reporter\": \"^2.0.1\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.4.5\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.1.0\",\n        \"react\": \"^15.0.0\",\n        \"react-addons-css-transition-group\": \"^15.0.0\",\n        \"react-addons-test-utils\": \"^15.0.0\",\n        \"react-dom\": \"^15.0.0\",\n        \"rimraf\": \"^2.5.2\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.12.14\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"cedd5b868cf650789ac6cd8b7874d75c2b2b1c1a\",\n      \"_id\": \"react-router@2.5.2\",\n      \"_shasum\": \"1c1fc95366393c96c1fb4932c0506128196b1203\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.9.6\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"1c1fc95366393c96c1fb4932c0506128196b1203\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.5.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.5.2.tgz_1467399190059_0.48323403485119343\"\n      },\n      \"directories\": {}\n    },\n    \"0.13.6\": {\n      \"name\": \"react-router\",\n      \"version\": \"0.13.6\",\n      \"description\": \"A complete routing library for React.js\",\n      \"main\": \"lib\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/rackt/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/rackt/react-router/blob/latest/README.md\",\n      \"bugs\": {\n        \"url\": \"https://github.com/rackt/react-router/issues\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"peerDependencies\": {\n        \"react\": \"0.13.x || 0.14.x || ^15.0.1\"\n      },\n      \"dependencies\": {\n        \"can-use-dom\": \"0.1.0\",\n        \"invariant\": \"^2.0.0\",\n        \"object-assign\": \"^2.0.0\",\n        \"qs\": \"2.4.1\"\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"_id\": \"react-router@0.13.6\",\n      \"scripts\": {},\n      \"_shasum\": \"1bc39c745d42326cb51f1c7452479675a5172fa9\",\n      \"_from\": \"build\",\n      \"_resolved\": \"file:build\",\n      \"_npmVersion\": \"3.10.5\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"1bc39c745d42326cb51f1c7452479675a5172fa9\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-0.13.6.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-0.13.6.tgz_1468872031072_0.49703969759866595\"\n      },\n      \"directories\": {}\n    },\n    \"2.6.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.6.0\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples *.js\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.1.2\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.10.1\",\n        \"babel-core\": \"^6.10.4\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.9.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"babel-register\": \"^6.9.0\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.11\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.0.1\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^1.1.1\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.0\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.0\",\n        \"react\": \"^15.2.1\",\n        \"react-addons-css-transition-group\": \"^15.2.1\",\n        \"react-addons-test-utils\": \"^15.2.1\",\n        \"react-dom\": \"^15.2.1\",\n        \"rimraf\": \"^2.5.3\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"8b3569b4cd1cba2fcb47fc33e1966903b6aae282\",\n      \"_id\": \"react-router@2.6.0\",\n      \"_shasum\": \"2fdba6ab9e196be67c26c1b6d423b5cea056fed8\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.5\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"2fdba6ab9e196be67c26c1b6d423b5cea056fed8\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.6.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.6.0.tgz_1468872276728_0.8452115948311985\"\n      },\n      \"directories\": {}\n    },\n    \"3.0.0-alpha.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"3.0.0-alpha.2\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples *.js\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^3.0.0\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.10.1\",\n        \"babel-core\": \"^6.10.4\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.9.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"babel-register\": \"^6.9.0\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov.io\": \"^0.1.6\",\n        \"coveralls\": \"^2.11.11\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.0.1\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^1.1.1\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.0\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.0\",\n        \"react\": \"^15.2.1\",\n        \"react-addons-css-transition-group\": \"^15.2.1\",\n        \"react-addons-test-utils\": \"^15.2.1\",\n        \"react-dom\": \"^15.2.1\",\n        \"rimraf\": \"^2.5.3\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"a30defc3875e1abbb3978b5728db4b7d049a52f3\",\n      \"_id\": \"react-router@3.0.0-alpha.2\",\n      \"_shasum\": \"193f92207acb6d1f70880cfeb34a9f6e7fa2cd3c\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.5\",\n      \"_nodeVersion\": \"6.3.0\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"193f92207acb6d1f70880cfeb34a9f6e7fa2cd3c\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-3.0.0-alpha.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-3.0.0-alpha.2.tgz_1468944668755_0.8614290840923786\"\n      },\n      \"directories\": {}\n    },\n    \"2.6.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.6.1\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples *.js\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.1.2\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.11.4\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.9.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^1.0.1\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"d782f5cb6e6d7740d36871948293ce10046835df\",\n      \"_id\": \"react-router@2.6.1\",\n      \"_shasum\": \"e0454d66bd61b123d94db728f8ed33d9908be226\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"e0454d66bd61b123d94db728f8ed33d9908be226\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.6.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.6.1.tgz_1469836354723_0.5432916057761759\"\n      },\n      \"directories\": {}\n    },\n    \"3.0.0-alpha.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"3.0.0-alpha.3\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"module\": \"es/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es && cross-env BABEL_ENV=es babel ./modules -d es --ignore '__tests__'\",\n        \"build-umd\": \"cross-env BABEL_ENV=cjs NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env BABEL_ENV=cjs NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint modules examples *.js\",\n        \"start\": \"cross-env BABEL_ENV=cjs node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env BABEL_ENV=cjs karma start\",\n        \"test-node\": \"cross-env BABEL_ENV=cjs mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^3.0.0\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.11.4\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.9.0\",\n        \"babel-preset-es2015-loose\": \"^7.0.0\",\n        \"babel-preset-es2015-loose-native-modules\": \"^1.0.0\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^1.0.1\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"isparta-loader\": \"^2.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"59808d54859d04867b10f441b61aabe6dac031b9\",\n      \"_id\": \"react-router@3.0.0-alpha.3\",\n      \"_shasum\": \"3bd707e3b0352e48a1abd0a9d71703aafd47dd81\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.3.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"3bd707e3b0352e48a1abd0a9d71703aafd47dd81\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-3.0.0-alpha.3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-3.0.0-alpha.3.tgz_1470161149821_0.9114468803163618\"\n      },\n      \"directories\": {}\n    },\n    \"2.7.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.7.0\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint examples modules scripts tools *.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env NODE_ENV=test karma start\",\n        \"test-node\": \"cross-env NODE_ENV=test mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.1.2\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.13.2\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-istanbul\": \"^1.0.3\",\n        \"babel-preset-es2015\": \"^6.13.2\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.13.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^1.0.1\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"ab4552d2ea0ec5c0cf3c534bca654a1af3ea0dec\",\n      \"_id\": \"react-router@2.7.0\",\n      \"_shasum\": \"0ac3f70ca74ff8fbe410a0cb364b258b84e1d643\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.5\",\n      \"_nodeVersion\": \"6.3.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"0ac3f70ca74ff8fbe410a0cb364b258b84e1d643\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.7.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.7.0.tgz_1471724276901_0.3183578015305102\"\n      },\n      \"directories\": {}\n    },\n    \"2.8.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.8.0\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint examples modules scripts tools *.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env NODE_ENV=test karma start\",\n        \"test-node\": \"cross-env NODE_ENV=test mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.1.2\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.13.2\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-istanbul\": \"^1.0.3\",\n        \"babel-preset-es2015\": \"^6.13.2\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.13.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^1.0.1\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"17ad13fed14e7e9a2ed963431b02f26d93be2f51\",\n      \"_id\": \"react-router@2.8.0\",\n      \"_shasum\": \"cbc629fede81d96d0598c2bae1e348e7d03f6c17\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.5\",\n      \"_nodeVersion\": \"6.3.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"cbc629fede81d96d0598c2bae1e348e7d03f6c17\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.8.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.8.0.tgz_1473461240638_0.7841801031026989\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-0\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-0\",\n      \"description\": \"Declarative Routing for React.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"scripts\": {\n        \"start\": \"echo 'Make sure to `cd website && npm install`' && cd website && npm run dev\",\n        \"release\": \"node ./scripts/release.js\",\n        \"build-lib\": \"babel ./modules -d . --ignore '__tests__'\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"test\": \"npm run lint && karma start\",\n        \"lint\": \"eslint modules\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.0.0\",\n        \"query-string\": \"4.2.3\",\n        \"react-history\": \"^0.13.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\",\n        \"react-dom\": \"15.x\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.10.1\",\n        \"babel-core\": \"^6.9.1\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-preset-es2015\": \"^6.9.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.12.0\",\n        \"eslint-plugin-import\": \"^1.8.1\",\n        \"eslint-plugin-react\": \"^5.1.1\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.1.0\",\n        \"react-addons-test-utils\": \"^15.3.1\",\n        \"react-dom\": \"^15.1.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"gitHead\": \"908e9d3489bc5d1b7cc5e7d3d0431d28c844e07d\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-0\",\n      \"_shasum\": \"9eab5a5f4872b60a0fa2e0fb7142c3d09cebe1d7\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"9eab5a5f4872b60a0fa2e0fb7142c3d09cebe1d7\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-4.0.0-0.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-0.tgz_1473778082383_0.12723203166387975\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-1\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-1\",\n      \"description\": \"Declarative Routing for React.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"scripts\": {\n        \"start\": \"echo 'Make sure to `cd website && npm install`' && cd website && npm run dev\",\n        \"release\": \"node ./scripts/release.js\",\n        \"build-lib\": \"babel ./modules -d . --ignore '__tests__'\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"test\": \"npm run lint && karma start\",\n        \"lint\": \"eslint modules\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.0.0\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"query-string\": \"4.2.3\",\n        \"react-history\": \"^0.13.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\",\n        \"react-dom\": \"15.x\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.10.1\",\n        \"babel-core\": \"^6.9.1\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-preset-es2015\": \"^6.9.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.12.0\",\n        \"eslint-plugin-import\": \"^1.8.1\",\n        \"eslint-plugin-react\": \"^5.1.1\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.1.0\",\n        \"react-addons-test-utils\": \"^15.3.1\",\n        \"react-dom\": \"^15.1.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"gitHead\": \"51742dbd38bccd45b95d156b270fd389bcf24d26\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-1\",\n      \"_shasum\": \"1b43f043208f64f786c46743ae2aa0bd45fa345e\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"1b43f043208f64f786c46743ae2aa0bd45fa345e\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-4.0.0-1.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-1.tgz_1473779463085_0.9140737259294838\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-2\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-2\",\n      \"description\": \"Declarative Routing for React.js\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"scripts\": {\n        \"start\": \"echo 'Make sure to `cd website && npm install`' && cd website && npm run dev\",\n        \"release\": \"node ./scripts/release.js\",\n        \"build-lib\": \"babel ./modules -d . --ignore '__tests__'\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"test\": \"npm run lint && karma start\",\n        \"lint\": \"eslint modules\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.0.0\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"query-string\": \"4.2.3\",\n        \"react-history\": \"^0.13.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\",\n        \"react-dom\": \"15.x\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.10.1\",\n        \"babel-core\": \"^6.9.1\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-preset-es2015\": \"^6.9.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.12.0\",\n        \"eslint-plugin-import\": \"^1.8.1\",\n        \"eslint-plugin-react\": \"^5.1.1\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.1.0\",\n        \"react-addons-test-utils\": \"^15.3.1\",\n        \"react-dom\": \"^15.1.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"gitHead\": \"61554d97aa847c79da3b0621483c8b0b6a773002\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-2\",\n      \"_shasum\": \"eaf2a8e9f0edd83abb1aaefa2d0ceb5a073b4e35\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.5.0\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"eaf2a8e9f0edd83abb1aaefa2d0ceb5a073b4e35\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-4.0.0-2.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-2.tgz_1473781714510_0.5020780761260539\"\n      },\n      \"directories\": {}\n    },\n    \"2.8.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"2.8.1\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es6\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es6/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reactjs/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/reactjs/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reactjs/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es6 && cross-env BABEL_ENV=es babel ./modules -d es6 --ignore '__tests__'\",\n        \"build-umd\": \"cross-env NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint examples modules scripts tools *.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env NODE_ENV=test karma start\",\n        \"test-node\": \"cross-env NODE_ENV=test mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^2.1.2\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.13.2\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-istanbul\": \"^1.0.3\",\n        \"babel-preset-es2015\": \"^6.13.2\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.13.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^1.0.1\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"800991cd2044293718fccd3763b9d91c2f811296\",\n      \"_id\": \"react-router@2.8.1\",\n      \"_shasum\": \"73e9491f6ceb316d0f779829081863e378ee4ed7\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.5\",\n      \"_nodeVersion\": \"6.3.1\",\n      \"_npmUser\": {\n        \"name\": \"taion\",\n        \"email\": \"tesrin@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"73e9491f6ceb316d0f779829081863e378ee4ed7\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-2.8.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-2.8.1.tgz_1473784351728_0.20458883745595813\"\n      },\n      \"directories\": {}\n    },\n    \"3.0.0-beta.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"3.0.0-beta.1\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/ReactTraining/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/ReactTraining/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore '__tests__'\",\n        \"build-es\": \"rimraf es && cross-env BABEL_ENV=es babel ./modules -d es --ignore '__tests__'\",\n        \"build-umd\": \"cross-env NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint examples modules scripts tools *.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env NODE_ENV=test karma start\",\n        \"test-node\": \"cross-env NODE_ENV=test mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^3.0.0\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.13.2\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-istanbul\": \"^1.0.3\",\n        \"babel-polyfill\": \"^6.13.0\",\n        \"babel-preset-es2015\": \"^6.13.2\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.13.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^1.0.1\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^6.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"cd3479b5c047a890049a15da5e95a194c120c6c5\",\n      \"_id\": \"react-router@3.0.0-beta.1\",\n      \"_shasum\": \"eb3019587da65ac77c12cf6ab790d408247ad5af\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"timdorr\",\n        \"email\": \"timdorr@timdorr.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"eb3019587da65ac77c12cf6ab790d408247ad5af\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-3.0.0-beta.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-16-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-3.0.0-beta.1.tgz_1474047649325_0.7481294642202556\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-alpha.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-alpha.3\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"*.js\",\n        \"*.md\",\n        \"umd\"\n      ],\n      \"scripts\": {\n        \"start\": \"echo 'Make sure to `cd website && npm install`' && cd website && npm run dev\",\n        \"release\": \"node ./scripts/release.js\",\n        \"build-lib\": \"babel ./modules -d . --ignore '__tests__'\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"clean\": \"rm $(ls modules | grep -v __)\",\n        \"test\": \"npm run lint && karma start\",\n        \"lint\": \"eslint modules\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.0.0\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"query-string\": \"4.2.3\",\n        \"react-history\": \"^0.13.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.10.1\",\n        \"babel-core\": \"^6.9.1\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-es2015-loose\": \"^8.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.1\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"gitHead\": \"a5e05f7187ff728821475c3db7045101e448261c\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-alpha.3\",\n      \"_shasum\": \"243a28bec2558c70c8d4703d36bedf8cf5508f5e\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.5\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"timdorr\",\n        \"email\": \"timdorr@timdorr.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"243a28bec2558c70c8d4703d36bedf8cf5508f5e\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-4.0.0-alpha.3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-alpha.3.tgz_1474140014719_0.2660294552333653\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-alpha.4\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-alpha.4\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"*.js\",\n        \"*.md\",\n        \"umd\"\n      ],\n      \"scripts\": {\n        \"start\": \"echo 'Make sure to `cd website && npm install`' && cd website && npm run dev\",\n        \"release\": \"node ./scripts/release.js\",\n        \"build-lib\": \"babel ./modules -d . --ignore '__tests__'\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"clean\": \"rm $(ls modules | grep -v __)\",\n        \"test\": \"npm run lint && karma start\",\n        \"lint\": \"eslint modules\"\n      },\n      \"dependencies\": {\n        \"path-to-regexp\": \"^1.5.3\",\n        \"query-string\": \"4.2.3\",\n        \"react-broadcast\": \"^0.1.1\",\n        \"react-history\": \"^0.14.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.10.1\",\n        \"babel-core\": \"^6.9.1\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-es2015-loose\": \"^8.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.1\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"gitHead\": \"09db55fbab6ca58dc6cfbffdffcc3198acb617fc\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-alpha.4\",\n      \"_shasum\": \"5f19e97b8df497e6f77f68bb1bd9441f56103335\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"5f19e97b8df497e6f77f68bb1bd9441f56103335\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-4.0.0-alpha.4.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-alpha.4.tgz_1475294577755_0.769422703422606\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-alpha.5\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-alpha.5\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"*.js\",\n        \"*.md\",\n        \"umd\"\n      ],\n      \"scripts\": {\n        \"start\": \"echo 'Make sure to `cd website && npm install`' && cd website && npm run dev\",\n        \"release\": \"node ./scripts/release.js\",\n        \"build-lib\": \"babel ./modules -d . --ignore __tests__\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"clean\": \"node ./scripts/clean.js\",\n        \"test\": \"npm run lint && karma start\",\n        \"lint\": \"eslint modules\"\n      },\n      \"dependencies\": {\n        \"path-to-regexp\": \"^1.5.3\",\n        \"query-string\": \"4.2.3\",\n        \"react-broadcast\": \"^0.1.1\",\n        \"history\": \"^4.3.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.10.1\",\n        \"babel-core\": \"^6.9.1\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-es2015-loose\": \"^8.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.1\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"gitHead\": \"fcd8e3ef754ccab18a004351756c18c954bfb7f9\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-alpha.5\",\n      \"_shasum\": \"9d80514f9bbbec040dffbd4f9cf241da2830e318\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.5.2\",\n      \"_nodeVersion\": \"4.2.1\",\n      \"_npmUser\": {\n        \"name\": \"ryanflorence\",\n        \"email\": \"rpflorence@gmail.com\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"dist\": {\n        \"shasum\": \"9d80514f9bbbec040dffbd4f9cf241da2830e318\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-4.0.0-alpha.5.tgz\"\n      },\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-alpha.5.tgz_1476827299427_0.6682194855529815\"\n      },\n      \"directories\": {}\n    },\n    \"3.0.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"3.0.0\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/ReactTraining/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/ReactTraining/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore __tests__\",\n        \"build-es\": \"rimraf es && cross-env BABEL_ENV=es babel ./modules -d es --ignore __tests__\",\n        \"build-umd\": \"cross-env NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint examples modules scripts tools *.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env NODE_ENV=test karma start\",\n        \"test-node\": \"cross-env NODE_ENV=test mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^3.0.0\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.13.2\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-istanbul\": \"^1.0.3\",\n        \"babel-polyfill\": \"^6.13.0\",\n        \"babel-preset-es2015\": \"^6.13.2\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.13.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^1.0.1\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^6.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"6eeb7ad358f987520f5b519e48bdd31f725cbade\",\n      \"_id\": \"react-router@3.0.0\",\n      \"_shasum\": \"3f313e4dbaf57048c48dd0a8c3cac24d93667dff\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.5\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"timdorr\",\n        \"email\": \"timdorr@timdorr.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"3f313e4dbaf57048c48dd0a8c3cac24d93667dff\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-3.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-3.0.0.tgz_1477355876651_0.06933709769509733\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-alpha.6\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-alpha.6\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"*.js\",\n        \"*.md\",\n        \"umd\"\n      ],\n      \"scripts\": {\n        \"start\": \"echo 'Make sure to `cd website && npm install`' && cd website && npm run dev\",\n        \"release\": \"node ./scripts/release.js\",\n        \"build-lib\": \"babel ./modules -d . --ignore __tests__\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"clean\": \"node ./scripts/clean.js\",\n        \"test\": \"npm run lint && karma start\",\n        \"lint\": \"eslint modules\"\n      },\n      \"dependencies\": {\n        \"path-to-regexp\": \"^1.5.3\",\n        \"query-string\": \"4.2.3\",\n        \"react-broadcast\": \"^0.1.2\",\n        \"history\": \"^4.3.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.10.1\",\n        \"babel-core\": \"^6.9.1\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-es2015-loose\": \"^8.0.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.1\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"gitHead\": \"9124c2d76a5f33a3c631411c7d3f13522ca51511\",\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-alpha.6\",\n      \"_shasum\": \"239fcf9a6ba7997021022c9b51d72d370f7b6bf4\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"timdorr\",\n        \"email\": \"timdorr@timdorr.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"239fcf9a6ba7997021022c9b51d72d370f7b6bf4\",\n        \"tarball\": \"http://registry.npmjs.org/react-router/-/react-router-4.0.0-alpha.6.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"taion\",\n          \"email\": \"tesrin@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-alpha.6.tgz_1479694071556_0.45999970636330545\"\n      },\n      \"directories\": {}\n    },\n    \"3.0.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"3.0.1\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/ReactTraining/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/ReactTraining/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore __tests__\",\n        \"build-es\": \"rimraf es && cross-env BABEL_ENV=es babel ./modules -d es --ignore __tests__\",\n        \"build-umd\": \"cross-env NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint examples modules scripts tools *.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env NODE_ENV=test karma start\",\n        \"test-node\": \"cross-env NODE_ENV=test mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^3.0.0\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"warning\": \"^3.0.0\",\n        \"loose-envify\": \"^1.2.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.13.2\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-istanbul\": \"^1.0.3\",\n        \"babel-polyfill\": \"^6.13.0\",\n        \"babel-preset-es2015\": \"^6.13.2\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.13.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^1.0.1\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^6.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"df77bd97b6fc90c16dc74803117ead7a87bfbae2\",\n      \"_id\": \"react-router@3.0.1\",\n      \"_shasum\": \"a4bf86441bd796e86a1c41d61397b604e2e4b98f\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.5\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"timdorr\",\n        \"email\": \"timdorr@timdorr.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"a4bf86441bd796e86a1c41d61397b604e2e4b98f\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-3.0.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-3.0.1.tgz_1484231644868_0.9892937941476703\"\n      },\n      \"directories\": {}\n    },\n    \"3.0.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"3.0.2\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"module\": \"es/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/ReactTraining/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/ReactTraining/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore __tests__\",\n        \"build-es\": \"rimraf es && cross-env BABEL_ENV=es babel ./modules -d es --ignore __tests__\",\n        \"build-umd\": \"cross-env NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint examples modules scripts tools *.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env NODE_ENV=test karma start\",\n        \"test-node\": \"cross-env NODE_ENV=test mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^3.0.0\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"loose-envify\": \"^1.2.0\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.13.2\",\n        \"babel-eslint\": \"^6.1.2\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-istanbul\": \"^1.0.3\",\n        \"babel-polyfill\": \"^6.13.0\",\n        \"babel-preset-es2015\": \"^6.13.2\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.13.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^1.0.1\",\n        \"cross-env\": \"^2.0.0\",\n        \"css-loader\": \"^0.23.1\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^6.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.13.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"5e69b23a369b7dbcb9afc6cdca9bf2dcf07ad432\",\n      \"_id\": \"react-router@3.0.2\",\n      \"_shasum\": \"5a19156678810e01d81901f9c0fef63284b8a514\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"3.10.3\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"timdorr\",\n        \"email\": \"timdorr@timdorr.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"5a19156678810e01d81901f9c0fef63284b8a514\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-3.0.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-3.0.2.tgz_1484761420109_0.49309633392840624\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-beta.1\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-beta.1\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"Core.js\",\n        \"MemoryRouter.js\",\n        \"Prompt.js\",\n        \"Redirect.js\",\n        \"Route.js\",\n        \"Router.js\",\n        \"ServerRouter.js\",\n        \"Switch.js\",\n        \"index.js\",\n        \"matchPath.js\",\n        \"withRouter.js\",\n        \"README.md\",\n        \"umd\"\n      ],\n      \"main\": \"index.js\",\n      \"scripts\": {\n        \"release\": \"node ./scripts/release.js\",\n        \"build-lib\": \"babel ./modules -d . --ignore __tests__\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"clean\": \"git clean -fX .\",\n        \"lint\": \"eslint modules\",\n        \"test\": \"karma start --single-run\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.5.1\",\n        \"loose-envify\": \"^1.3.1\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.18.0\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.10\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-transform-object-assign\": \"^6.22.0\",\n        \"babel-plugin-transform-react-remove-prop-types\": \"^0.2.11\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.4.2\",\n        \"react-addons-test-utils\": \"^15.4.2\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-beta.1\",\n      \"_shasum\": \"2b21684f7ae7d4a6b39336204c8f86b25ff2e1d6\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.0.5\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"2b21684f7ae7d4a6b39336204c8f86b25ff2e1d6\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-4.0.0-beta.1.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-beta.1.tgz_1485791155913_0.6591614547651261\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-beta.2\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-beta.2\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"Core.js\",\n        \"MemoryRouter.js\",\n        \"Prompt.js\",\n        \"Redirect.js\",\n        \"Route.js\",\n        \"Router.js\",\n        \"ServerRouter.js\",\n        \"Switch.js\",\n        \"index.js\",\n        \"matchPath.js\",\n        \"withRouter.js\",\n        \"README.md\",\n        \"umd\"\n      ],\n      \"main\": \"index.js\",\n      \"scripts\": {\n        \"build-lib\": \"babel ./modules -d . --ignore __tests__\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"clean\": \"git clean -fX .\",\n        \"lint\": \"eslint modules\",\n        \"test\": \"karma start --single-run\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.5.1\",\n        \"loose-envify\": \"^1.3.1\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.18.0\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.10\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-transform-object-assign\": \"^6.22.0\",\n        \"babel-plugin-transform-react-remove-prop-types\": \"^0.2.11\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.4.2\",\n        \"react-addons-test-utils\": \"^15.4.2\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-beta.2\",\n      \"_shasum\": \"2c875b2c017e1f66532e914cfb13e52353fe1332\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.0.5\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"2c875b2c017e1f66532e914cfb13e52353fe1332\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-4.0.0-beta.2.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-beta.2.tgz_1485792976580_0.18001127778552473\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-beta.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-beta.3\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"MemoryRouter.js\",\n        \"Prompt.js\",\n        \"Redirect.js\",\n        \"Route.js\",\n        \"Router.js\",\n        \"StaticRouter.js\",\n        \"Switch.js\",\n        \"index.js\",\n        \"matchPath.js\",\n        \"withRouter.js\",\n        \"README.md\",\n        \"umd\"\n      ],\n      \"main\": \"index.js\",\n      \"scripts\": {\n        \"build-lib\": \"babel ./modules -d . --ignore __tests__\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"clean\": \"git clean -fX .\",\n        \"lint\": \"eslint modules\",\n        \"test\": \"karma start --single-run\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.5.1\",\n        \"loose-envify\": \"^1.3.1\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.18.0\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.10\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-transform-object-assign\": \"^6.22.0\",\n        \"babel-plugin-transform-react-remove-prop-types\": \"^0.2.11\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.4.2\",\n        \"react-addons-test-utils\": \"^15.4.2\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-beta.3\",\n      \"_shasum\": \"3deee9063401b7205f8d9cfe718787f699886975\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.0.5\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"3deee9063401b7205f8d9cfe718787f699886975\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-4.0.0-beta.3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-beta.3.tgz_1485814546312_0.7661577931139618\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-beta.4\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-beta.4\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"MemoryRouter.js\",\n        \"Prompt.js\",\n        \"Redirect.js\",\n        \"Route.js\",\n        \"Router.js\",\n        \"StaticRouter.js\",\n        \"Switch.js\",\n        \"index.js\",\n        \"matchPath.js\",\n        \"withRouter.js\",\n        \"README.md\",\n        \"umd\"\n      ],\n      \"main\": \"index.js\",\n      \"scripts\": {\n        \"build-lib\": \"babel ./modules -d . --ignore __tests__\",\n        \"build-umd\": \"webpack modules/index.js umd/react-router.js\",\n        \"build-min\": \"webpack -p modules/index.js umd/react-router.min.js\",\n        \"build\": \"node ./scripts/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"clean\": \"git clean -fX .\",\n        \"lint\": \"eslint modules\",\n        \"test\": \"karma start --single-run\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"15.x\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.5.1\",\n        \"invariant\": \"^2.2.2\",\n        \"loose-envify\": \"^1.3.1\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.18.0\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.10\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-transform-object-assign\": \"^6.22.0\",\n        \"babel-plugin-transform-react-remove-prop-types\": \"^0.2.11\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.4.2\",\n        \"react-addons-test-utils\": \"^15.4.2\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-beta.4\",\n      \"_shasum\": \"6ab21755525ae3dfe7cca5e0176b05385a7b854d\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.0.5\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"6ab21755525ae3dfe7cca5e0176b05385a7b854d\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-4.0.0-beta.4.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-beta.4.tgz_1486001894167_0.1549324297811836\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-beta.5\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-beta.5\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"MemoryRouter.js\",\n        \"Prompt.js\",\n        \"Redirect.js\",\n        \"Route.js\",\n        \"Router.js\",\n        \"StaticRouter.js\",\n        \"Switch.js\",\n        \"index.js\",\n        \"matchPath.js\",\n        \"withRouter.js\",\n        \"README.md\",\n        \"es\",\n        \"umd\"\n      ],\n      \"main\": \"index.js\",\n      \"module\": \"es/index.js\",\n      \"scripts\": {\n        \"build\": \"node ./scripts/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./scripts/build.js\",\n        \"clean\": \"git clean -fX .\",\n        \"lint\": \"eslint modules\",\n        \"test\": \"karma start --single-run\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=15\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.5.1\",\n        \"invariant\": \"^2.2.2\",\n        \"loose-envify\": \"^1.3.1\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.18.0\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.10\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-transform-object-assign\": \"^6.22.0\",\n        \"babel-plugin-transform-react-remove-prop-types\": \"^0.2.11\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.4.2\",\n        \"react-addons-test-utils\": \"^15.4.2\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-beta.5\",\n      \"_shasum\": \"f1852e953d2aad942a7502786e32b9f56b4ae020\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.0.5\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"f1852e953d2aad942a7502786e32b9f56b4ae020\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-4.0.0-beta.5.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-beta.5.tgz_1486451675030_0.4918806804344058\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-beta.6\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-beta.6\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"MemoryRouter.js\",\n        \"Prompt.js\",\n        \"Redirect.js\",\n        \"Route.js\",\n        \"Router.js\",\n        \"StaticRouter.js\",\n        \"Switch.js\",\n        \"index.js\",\n        \"matchPath.js\",\n        \"withRouter.js\",\n        \"README.md\",\n        \"es\",\n        \"umd\"\n      ],\n      \"main\": \"index.js\",\n      \"module\": \"es/index.js\",\n      \"scripts\": {\n        \"build\": \"node ./tools/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./tools/build.js\",\n        \"clean\": \"git clean -e '!node_modules' -fdX .\",\n        \"lint\": \"eslint modules\",\n        \"test\": \"karma start --single-run\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=15\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.5.1\",\n        \"invariant\": \"^2.2.2\",\n        \"loose-envify\": \"^1.3.1\",\n        \"path-to-regexp\": \"^1.5.3\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.18.0\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.10\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-transform-object-assign\": \"^6.22.0\",\n        \"babel-plugin-transform-react-remove-prop-types\": \"^0.2.11\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.4.2\",\n        \"react-addons-test-utils\": \"^15.4.2\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-beta.6\",\n      \"_shasum\": \"561ac0bf1929960813bf201319ff85d821d5547b\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.0.5\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"561ac0bf1929960813bf201319ff85d821d5547b\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-4.0.0-beta.6.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-beta.6.tgz_1487054214739_0.6107699132990092\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-beta.7\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-beta.7\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"MemoryRouter.js\",\n        \"Prompt.js\",\n        \"Redirect.js\",\n        \"Route.js\",\n        \"Router.js\",\n        \"StaticRouter.js\",\n        \"Switch.js\",\n        \"index.js\",\n        \"matchPath.js\",\n        \"withRouter.js\",\n        \"README.md\",\n        \"es\",\n        \"umd\"\n      ],\n      \"main\": \"index.js\",\n      \"module\": \"es/index.js\",\n      \"scripts\": {\n        \"build\": \"node ./tools/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./tools/build.js\",\n        \"clean\": \"git clean -e '!node_modules' -fdX .\",\n        \"lint\": \"eslint modules\",\n        \"test\": \"karma start --single-run\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=15\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.5.1\",\n        \"invariant\": \"^2.2.2\",\n        \"loose-envify\": \"^1.3.1\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.18.0\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.10\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-transform-react-remove-prop-types\": \"^0.2.11\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.4.2\",\n        \"react-addons-test-utils\": \"^15.4.2\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-beta.7\",\n      \"_shasum\": \"e82931139ed26a99cd5251e2cf2a7b47daceb483\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.0.5\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"e82931139ed26a99cd5251e2cf2a7b47daceb483\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-4.0.0-beta.7.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-beta.7.tgz_1488560828930_0.17826370429247618\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0-beta.8\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0-beta.8\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"MemoryRouter.js\",\n        \"Prompt.js\",\n        \"Redirect.js\",\n        \"Route.js\",\n        \"Router.js\",\n        \"StaticRouter.js\",\n        \"Switch.js\",\n        \"index.js\",\n        \"matchPath.js\",\n        \"withRouter.js\",\n        \"README.md\",\n        \"es\",\n        \"umd\"\n      ],\n      \"main\": \"index.js\",\n      \"module\": \"es/index.js\",\n      \"scripts\": {\n        \"build\": \"node ./tools/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./tools/build.js\",\n        \"clean\": \"git clean -e '!node_modules' -fdX .\",\n        \"lint\": \"eslint modules\",\n        \"test\": \"karma start --single-run\"\n      },\n      \"peerDependencies\": {\n        \"react\": \">=15\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.6.0\",\n        \"invariant\": \"^2.2.2\",\n        \"loose-envify\": \"^1.3.1\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.18.0\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.10\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-transform-react-remove-prop-types\": \"^0.2.11\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.4.2\",\n        \"react-addons-test-utils\": \"^15.4.2\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0-beta.8\",\n      \"_shasum\": \"368cfe540d23d5d23419b42fb915d465f268b66b\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.0.5\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"368cfe540d23d5d23419b42fb915d465f268b66b\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-4.0.0-beta.8.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0-beta.8.tgz_1489010462733_0.2613317503128201\"\n      },\n      \"directories\": {}\n    },\n    \"4.0.0\": {\n      \"name\": \"react-router\",\n      \"version\": \"4.0.0\",\n      \"description\": \"Declarative routing for React\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"license\": \"MIT\",\n      \"authors\": [\n        \"Michael Jackson\",\n        \"Ryan Florence\"\n      ],\n      \"files\": [\n        \"MemoryRouter.js\",\n        \"Prompt.js\",\n        \"Redirect.js\",\n        \"Route.js\",\n        \"Router.js\",\n        \"StaticRouter.js\",\n        \"Switch.js\",\n        \"index.js\",\n        \"matchPath.js\",\n        \"withRouter.js\",\n        \"README.md\",\n        \"es\",\n        \"umd\"\n      ],\n      \"main\": \"index.js\",\n      \"module\": \"es/index.js\",\n      \"scripts\": {\n        \"build\": \"node ./tools/build.js\",\n        \"watch\": \"babel ./modules -d . --ignore __tests__ --watch\",\n        \"prepublish\": \"node ./tools/build.js\",\n        \"clean\": \"git clean -e '!node_modules' -fdX .\",\n        \"lint\": \"eslint modules\",\n        \"test\": \"karma start --single-run\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^15\"\n      },\n      \"dependencies\": {\n        \"history\": \"^4.6.0\",\n        \"invariant\": \"^2.2.2\",\n        \"loose-envify\": \"^1.3.1\",\n        \"path-to-regexp\": \"^1.5.3\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.18.0\",\n        \"babel-eslint\": \"^6.0.4\",\n        \"babel-loader\": \"^6.2.10\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-transform-react-remove-prop-types\": \"^0.2.11\",\n        \"babel-preset-es2015\": \"^6.14.0\",\n        \"babel-preset-react\": \"^6.5.0\",\n        \"babel-preset-stage-1\": \"^6.5.0\",\n        \"eslint\": \"^2.13.1\",\n        \"eslint-plugin-import\": \"^1.15.0\",\n        \"eslint-plugin-react\": \"^5.2.2\",\n        \"expect\": \"^1.20.1\",\n        \"gzip-size\": \"^3.0.0\",\n        \"in-publish\": \"^2.0.0\",\n        \"karma\": \"^0.13.22\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^1.0.1\",\n        \"karma-mocha\": \"^1.0.1\",\n        \"karma-mocha-reporter\": \"^2.0.4\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^1.7.0\",\n        \"mocha\": \"^2.5.3\",\n        \"pretty-bytes\": \"^3.0.1\",\n        \"react\": \"^15.4.2\",\n        \"react-addons-test-utils\": \"^15.4.2\",\n        \"react-dom\": \"^15.3.0\",\n        \"readline-sync\": \"^1.4.4\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-server\": \"^1.14.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"keywords\": [\n        \"react\",\n        \"router\",\n        \"route\",\n        \"routing\",\n        \"history\",\n        \"link\"\n      ],\n      \"bugs\": {\n        \"url\": \"https://github.com/reacttraining/react-router/issues\"\n      },\n      \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n      \"_id\": \"react-router@4.0.0\",\n      \"_shasum\": \"6532075231f0bb5077c2005c1d417ad6165b3997\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.0.5\",\n      \"_nodeVersion\": \"6.6.0\",\n      \"_npmUser\": {\n        \"name\": \"mjackson\",\n        \"email\": \"mjijackson@gmail.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"6532075231f0bb5077c2005c1d417ad6165b3997\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-4.0.0.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-12-west.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-4.0.0.tgz_1489201137563_0.2314166803844273\"\n      }\n    },\n    \"3.0.3\": {\n      \"name\": \"react-router\",\n      \"version\": \"3.0.3\",\n      \"description\": \"A complete routing library for React\",\n      \"files\": [\n        \"*.md\",\n        \"docs\",\n        \"es\",\n        \"lib\",\n        \"umd\"\n      ],\n      \"main\": \"lib/index\",\n      \"module\": \"es/index\",\n      \"jsnext:main\": \"es/index\",\n      \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n      },\n      \"homepage\": \"https://github.com/ReactTraining/react-router#readme\",\n      \"bugs\": {\n        \"url\": \"https://github.com/ReactTraining/react-router/issues\"\n      },\n      \"scripts\": {\n        \"build\": \"npm run build-cjs && npm run build-es\",\n        \"build-cjs\": \"rimraf lib && cross-env BABEL_ENV=cjs babel ./modules -d lib --ignore __tests__\",\n        \"build-es\": \"rimraf es && cross-env BABEL_ENV=es babel ./modules -d es --ignore __tests__\",\n        \"build-umd\": \"cross-env NODE_ENV=development webpack modules/index.js umd/ReactRouter.js\",\n        \"build-min\": \"cross-env NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js\",\n        \"lint\": \"eslint examples modules scripts tools *.js\",\n        \"start\": \"node examples/server.js\",\n        \"test\": \"npm run lint && npm run test-node && npm run test-browser\",\n        \"test-browser\": \"cross-env NODE_ENV=test karma start\",\n        \"test-node\": \"cross-env NODE_ENV=test mocha --compilers js:babel-register tests.node.js\"\n      },\n      \"authors\": [\n        \"Ryan Florence\",\n        \"Michael Jackson\"\n      ],\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"history\": \"^3.0.0\",\n        \"hoist-non-react-statics\": \"^1.2.0\",\n        \"invariant\": \"^2.2.1\",\n        \"loose-envify\": \"^1.2.0\",\n        \"warning\": \"^3.0.0\"\n      },\n      \"peerDependencies\": {\n        \"react\": \"^0.14.0 || ^15.0.0\"\n      },\n      \"devDependencies\": {\n        \"babel-cli\": \"^6.11.4\",\n        \"babel-core\": \"^6.13.2\",\n        \"babel-eslint\": \"^7.2.1\",\n        \"babel-loader\": \"^6.2.4\",\n        \"babel-plugin-add-module-exports\": \"^0.2.1\",\n        \"babel-plugin-dev-expression\": \"^0.2.1\",\n        \"babel-plugin-istanbul\": \"^4.1.1\",\n        \"babel-polyfill\": \"^6.13.0\",\n        \"babel-preset-es2015\": \"^6.13.2\",\n        \"babel-preset-react\": \"^6.11.1\",\n        \"babel-preset-stage-1\": \"^6.13.0\",\n        \"babel-register\": \"^6.11.6\",\n        \"bundle-loader\": \"^0.5.4\",\n        \"codecov\": \"^2.1.0\",\n        \"cross-env\": \"^3.2.4\",\n        \"css-loader\": \"^0.27.3\",\n        \"eslint\": \"^3.2.0\",\n        \"eslint-config-rackt\": \"^1.1.1\",\n        \"eslint-plugin-react\": \"^6.2.2\",\n        \"expect\": \"^1.20.2\",\n        \"express\": \"^4.14.0\",\n        \"express-urlrewrite\": \"^1.2.0\",\n        \"gzip-size\": \"^3.0.0\",\n        \"karma\": \"^1.1.2\",\n        \"karma-browserstack-launcher\": \"^1.0.1\",\n        \"karma-chrome-launcher\": \"^2.0.0\",\n        \"karma-coverage\": \"^1.1.1\",\n        \"karma-mocha\": \"^1.1.1\",\n        \"karma-mocha-reporter\": \"^2.0.5\",\n        \"karma-sourcemap-loader\": \"^0.3.7\",\n        \"karma-webpack\": \"^2.0.3\",\n        \"mocha\": \"^3.2.0\",\n        \"pretty-bytes\": \"^4.0.2\",\n        \"qs\": \"^6.2.1\",\n        \"react\": \"^15.3.0\",\n        \"react-addons-css-transition-group\": \"^15.3.0\",\n        \"react-addons-test-utils\": \"^15.3.0\",\n        \"react-dom\": \"^15.3.0\",\n        \"rimraf\": \"^2.5.4\",\n        \"style-loader\": \"^0.16.1\",\n        \"webpack\": \"^1.13.1\",\n        \"webpack-dev-middleware\": \"^1.6.1\"\n      },\n      \"browserify\": {\n        \"transform\": [\n          \"loose-envify\"\n        ]\n      },\n      \"tags\": [\n        \"react\",\n        \"router\"\n      ],\n      \"keywords\": [\n        \"react\",\n        \"react-component\",\n        \"routing\",\n        \"route\",\n        \"routes\",\n        \"router\"\n      ],\n      \"gitHead\": \"756763631edb36537c186f11bec87085cc62073b\",\n      \"_id\": \"react-router@3.0.3\",\n      \"_shasum\": \"e95304b2e418482e5ecff2699d2b8aae52d5f884\",\n      \"_from\": \".\",\n      \"_npmVersion\": \"4.3.0\",\n      \"_nodeVersion\": \"6.2.1\",\n      \"_npmUser\": {\n        \"name\": \"timdorr\",\n        \"email\": \"timdorr@timdorr.com\"\n      },\n      \"dist\": {\n        \"shasum\": \"e95304b2e418482e5ecff2699d2b8aae52d5f884\",\n        \"tarball\": \"https://registry.npmjs.org/react-router/-/react-router-3.0.3.tgz\"\n      },\n      \"maintainers\": [\n        {\n          \"name\": \"mjackson\",\n          \"email\": \"mjijackson@gmail.com\"\n        },\n        {\n          \"name\": \"ryanflorence\",\n          \"email\": \"rpflorence@gmail.com\"\n        },\n        {\n          \"name\": \"timdorr\",\n          \"email\": \"timdorr@timdorr.com\"\n        }\n      ],\n      \"_npmOperationalInternal\": {\n        \"host\": \"packages-18-east.internal.npmjs.com\",\n        \"tmp\": \"tmp/react-router-3.0.3.tgz_1490717175570_0.305923699401319\"\n      }\n    }\n  },\n  \"readme\": \"# react-router\\n\\nDeclarative routing for [React](https://facebook.github.io/react).\\n\\n## Installation\\n\\nUsing [npm](https://www.npmjs.com/):\\n\\n    $ npm install --save react-router\\n\\nThen with a module bundler like [webpack](https://webpack.github.io/), use as you would anything else:\\n\\n```js\\n// using ES6 modules\\nimport { Router, Route, Switch } from 'react-router'\\n\\n// using CommonJS modules\\nvar Router = require('react-router').Router\\nvar Route = require('react-router').Route\\nvar Switch = require('react-router').Switch\\n```\\n\\nThe UMD build is also available on [unpkg](https://unpkg.com):\\n\\n```html\\n<script src=\\\"https://unpkg.com/react-router/umd/react-router.min.js\\\"></script>\\n```\\n\\nYou can find the library on `window.ReactRouter`.\\n\\n## Issues\\n\\nIf you find a bug, please file an issue on [our issue tracker on GitHub](https://github.com/ReactTraining/react-router/issues).\\n\\n## Credits\\n\\nReact Router is built and maintained by [React Training](https://reacttraining.com).\\n\",\n  \"maintainers\": [\n    {\n      \"name\": \"mjackson\",\n      \"email\": \"mjijackson@gmail.com\"\n    },\n    {\n      \"name\": \"ryanflorence\",\n      \"email\": \"rpflorence@gmail.com\"\n    },\n    {\n      \"name\": \"timdorr\",\n      \"email\": \"timdorr@timdorr.com\"\n    }\n  ],\n  \"time\": {\n    \"modified\": \"2017-03-30T10:53:38.955Z\",\n    \"created\": \"2014-02-02T07:41:16.057Z\",\n    \"0.0.0\": \"2014-02-02T07:42:52.110Z\",\n    \"0.0.1\": \"2014-07-15T22:10:13.681Z\",\n    \"0.4.0\": \"2014-07-24T19:40:13.436Z\",\n    \"0.4.1\": \"2014-07-24T21:34:16.019Z\",\n    \"0.4.2\": \"2014-07-26T18:22:48.856Z\",\n    \"0.5.0\": \"2014-07-26T22:37:43.284Z\",\n    \"0.5.1\": \"2014-08-04T22:15:34.267Z\",\n    \"0.5.2\": \"2014-08-07T18:24:38.925Z\",\n    \"0.5.3\": \"2014-08-26T03:35:12.327Z\",\n    \"0.6.0\": \"2014-08-29T20:57:01.616Z\",\n    \"0.6.1\": \"2014-08-31T03:19:45.412Z\",\n    \"0.6.2\": \"2014-09-02T16:29:26.338Z\",\n    \"0.7.0\": \"2014-09-02T16:40:49.653Z\",\n    \"0.8.0\": \"2014-10-04T05:39:28.282Z\",\n    \"0.9.0\": \"2014-10-06T19:37:57.987Z\",\n    \"0.9.1\": \"2014-10-06T20:56:02.760Z\",\n    \"0.9.2\": \"2014-10-08T05:34:04.750Z\",\n    \"0.9.3\": \"2014-10-08T14:45:26.613Z\",\n    \"0.9.4\": \"2014-10-13T19:53:57.019Z\",\n    \"0.9.5\": \"2014-10-30T04:51:31.934Z\",\n    \"0.10.0\": \"2014-10-30T05:11:07.102Z\",\n    \"0.10.1\": \"2014-10-31T15:47:46.602Z\",\n    \"0.10.2\": \"2014-10-31T16:24:52.501Z\",\n    \"0.11.0\": \"2014-11-22T06:04:01.938Z\",\n    \"0.11.1\": \"2014-11-22T15:01:24.870Z\",\n    \"0.11.2\": \"2014-11-24T16:57:37.276Z\",\n    \"0.11.3\": \"2014-11-27T05:30:40.317Z\",\n    \"0.11.4\": \"2014-11-28T16:11:01.416Z\",\n    \"0.11.5\": \"2014-12-15T22:34:10.955Z\",\n    \"0.11.6\": \"2014-12-17T19:31:33.135Z\",\n    \"0.12.0\": \"2015-02-10T20:16:18.606Z\",\n    \"0.12.1\": \"2015-02-24T00:06:31.564Z\",\n    \"0.12.2\": \"2015-02-24T00:34:28.661Z\",\n    \"0.12.3\": \"2015-02-24T21:38:03.903Z\",\n    \"0.12.4\": \"2015-02-24T21:53:15.173Z\",\n    \"0.13.0\": \"2015-03-20T21:25:52.771Z\",\n    \"0.13.1\": \"2015-03-20T22:22:12.285Z\",\n    \"0.13.2\": \"2015-03-24T14:22:30.770Z\",\n    \"0.13.3\": \"2015-04-29T01:47:21.999Z\",\n    \"1.0.0-alpha1\": \"2015-06-12T06:26:30.738Z\",\n    \"1.0.0-alpha2\": \"2015-06-12T14:18:19.741Z\",\n    \"1.0.0-beta1\": \"2015-06-15T02:24:17.029Z\",\n    \"1.0.0-beta2\": \"2015-06-17T13:46:21.982Z\",\n    \"1.0.0-beta3\": \"2015-07-01T12:30:11.880Z\",\n    \"1.0.0-beta4\": \"2015-08-31T06:19:59.718Z\",\n    \"1.0.0-rc1\": \"2015-09-11T21:35:38.963Z\",\n    \"0.13.4\": \"2015-10-06T13:13:35.517Z\",\n    \"1.0.0-rc2\": \"2015-10-08T05:06:25.909Z\",\n    \"1.0.0-rc3\": \"2015-10-08T18:07:28.446Z\",\n    \"0.13.5\": \"2015-11-03T06:15:55.593Z\",\n    \"1.0.0-rc4\": \"2015-11-03T06:35:08.477Z\",\n    \"1.0.0\": \"2015-11-09T21:53:15.685Z\",\n    \"1.0.1\": \"2015-12-05T19:53:41.165Z\",\n    \"1.0.2\": \"2015-12-08T20:36:03.071Z\",\n    \"1.0.3\": \"2015-12-23T18:51:27.655Z\",\n    \"2.0.0-rc1\": \"2015-12-30T16:41:35.497Z\",\n    \"2.0.0-rc2\": \"2015-12-30T19:41:30.442Z\",\n    \"2.0.0-rc3\": \"2015-12-30T23:04:12.218Z\",\n    \"2.0.9-rc4\": \"2015-12-30T23:30:55.632Z\",\n    \"2.0.0-rc4\": \"2015-12-30T23:40:47.766Z\",\n    \"2.0.0-rc5\": \"2016-01-14T19:42:27.832Z\",\n    \"2.0.0-rc6\": \"2016-02-05T15:32:41.206Z\",\n    \"2.0.0\": \"2016-02-10T05:29:17.484Z\",\n    \"2.0.1\": \"2016-03-10T00:19:35.736Z\",\n    \"2.1.0\": \"2016-04-11T17:26:24.324Z\",\n    \"2.1.1\": \"2016-04-11T21:01:44.641Z\",\n    \"2.2.0\": \"2016-04-13T23:40:00.756Z\",\n    \"2.2.1\": \"2016-04-14T05:38:11.161Z\",\n    \"2.2.2\": \"2016-04-14T16:43:03.733Z\",\n    \"2.2.4\": \"2016-04-15T21:08:34.155Z\",\n    \"2.3.0\": \"2016-04-18T21:47:44.165Z\",\n    \"2.4.0\": \"2016-04-28T17:11:27.410Z\",\n    \"2.4.1\": \"2016-05-19T22:41:24.116Z\",\n    \"3.0.0-alpha.1\": \"2016-05-19T22:54:53.275Z\",\n    \"2.5.0\": \"2016-06-23T02:43:25.441Z\",\n    \"2.5.1\": \"2016-06-24T03:59:32.180Z\",\n    \"2.5.2\": \"2016-07-01T18:53:12.671Z\",\n    \"0.13.6\": \"2016-07-18T20:00:32.313Z\",\n    \"2.6.0\": \"2016-07-18T20:04:38.081Z\",\n    \"3.0.0-alpha.2\": \"2016-07-19T16:11:09.985Z\",\n    \"2.6.1\": \"2016-07-29T23:52:37.057Z\",\n    \"3.0.0-alpha.3\": \"2016-08-02T18:05:50.879Z\",\n    \"2.7.0\": \"2016-08-20T20:17:58.344Z\",\n    \"2.8.0\": \"2016-09-09T22:47:22.379Z\",\n    \"4.0.0-0\": \"2016-09-13T14:48:06.123Z\",\n    \"4.0.0-1\": \"2016-09-13T15:11:03.329Z\",\n    \"4.0.0-2\": \"2016-09-13T15:48:36.654Z\",\n    \"2.8.1\": \"2016-09-13T16:32:33.598Z\",\n    \"3.0.0-beta.1\": \"2016-09-16T17:40:50.934Z\",\n    \"4.0.0-alpha.3\": \"2016-09-17T19:20:16.750Z\",\n    \"4.0.0-alpha.4\": \"2016-10-01T04:02:58.027Z\",\n    \"4.0.0-alpha.5\": \"2016-10-18T21:48:21.339Z\",\n    \"3.0.0\": \"2016-10-25T00:37:58.362Z\",\n    \"4.0.0-alpha.6\": \"2016-11-21T02:07:53.825Z\",\n    \"3.0.1\": \"2017-01-12T14:34:05.764Z\",\n    \"3.0.2\": \"2017-01-18T17:43:40.870Z\",\n    \"4.0.0-beta.1\": \"2017-01-30T15:45:57.790Z\",\n    \"4.0.0-beta.2\": \"2017-01-30T16:16:16.826Z\",\n    \"4.0.0-beta.3\": \"2017-01-30T22:15:46.546Z\",\n    \"4.0.0-beta.4\": \"2017-02-02T02:18:16.325Z\",\n    \"4.0.0-beta.5\": \"2017-02-07T07:14:37.192Z\",\n    \"4.0.0-beta.6\": \"2017-02-14T06:36:54.995Z\",\n    \"4.0.0-beta.7\": \"2017-03-03T17:07:09.224Z\",\n    \"4.0.0-beta.8\": \"2017-03-08T22:01:04.733Z\",\n    \"4.0.0\": \"2017-03-11T02:58:57.837Z\",\n    \"3.0.3\": \"2017-03-28T16:06:16.529Z\"\n  },\n  \"readmeFilename\": \"README.md\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/reacttraining/react-router.git\"\n  },\n  \"users\": {\n    \"326060588\": true,\n    \"fattenap\": true,\n    \"klyngbaek\": true,\n    \"zhangyaochun\": true,\n    \"jakecadams\": true,\n    \"deedubs\": true,\n    \"jackson7am\": true,\n    \"pughpugh\": true,\n    \"kulakowka\": true,\n    \"brendanib\": true,\n    \"csbun\": true,\n    \"leonardorb\": true,\n    \"zchee\": true,\n    \"markmedown\": true,\n    \"itonyyo\": true,\n    \"sua\": true,\n    \"mathieuancelin\": true,\n    \"markthethomas\": true,\n    \"gabrielsanterre\": true,\n    \"kriswallsmith\": true,\n    \"yatsu\": true,\n    \"jabbrwcky\": true,\n    \"ksangita\": true,\n    \"sergiodxa\": true,\n    \"yxqme\": true,\n    \"gilbarbara\": true,\n    \"italoacasas\": true,\n    \"moreta\": true,\n    \"insin\": true,\n    \"aahz\": true,\n    \"nicastelo\": true,\n    \"benji.\": true,\n    \"wenbing\": true,\n    \"sume0805\": true,\n    \"bernardhamann\": true,\n    \"panlw\": true,\n    \"philipjc\": true,\n    \"wkaifang\": true,\n    \"tuiteraz\": true,\n    \"allthingssmitty\": true,\n    \"po\": true,\n    \"prabhash1785\": true,\n    \"koulmomo\": true,\n    \"josejaguirre\": true,\n    \"urbantumbleweed\": true,\n    \"junjiansyu\": true,\n    \"gvn\": true,\n    \"mwheeler\": true,\n    \"corintho\": true,\n    \"chinaqstar\": true,\n    \"lavir\": true,\n    \"staraple\": true,\n    \"vbv\": true,\n    \"evan2x\": true,\n    \"jmsherry\": true,\n    \"benstr\": true,\n    \"kytart\": true,\n    \"kerwyn\": true,\n    \"vialley\": true,\n    \"orlenka\": true,\n    \"croogie\": true,\n    \"artursgirons\": true,\n    \"lcdss\": true,\n    \"kay.sackey\": true,\n    \"nexume\": true,\n    \"bntzio\": true,\n    \"shriek\": true,\n    \"highlanderkev\": true,\n    \"pixel67\": true,\n    \"cfleschhut\": true,\n    \"bcoe\": true,\n    \"jason-g\": true,\n    \"sternelee\": true,\n    \"barclayk\": true,\n    \"stone_breaker\": true,\n    \"ratneshn\": true,\n    \"jmorris\": true,\n    \"freebird\": true,\n    \"qmmr\": true,\n    \"dongguangming\": true,\n    \"kosoj\": true,\n    \"sandeepgy11\": true,\n    \"isman_usoh\": true,\n    \"entropy-lion\": true,\n    \"asm2hex\": true,\n    \"justinjung04\": true,\n    \"m1nd\": true,\n    \"kaapex\": true,\n    \"enuobear\": true,\n    \"bogdanvlviv\": true,\n    \"saravntbe\": true,\n    \"abuddington\": true,\n    \"kimmohintikka\": true,\n    \"fabrianibrahim\": true,\n    \"bpatel\": true,\n    \"abuelwafa\": true,\n    \"tim2pin\": true,\n    \"fsgdez\": true,\n    \"scotchulous\": true,\n    \"razr9\": true,\n    \"john-goldsmith\": true,\n    \"apopek\": true,\n    \"brainpoint\": true,\n    \"wirehive\": true,\n    \"akarpov\": true,\n    \"nilz3ro\": true,\n    \"vpal\": true,\n    \"enzoferey\": true,\n    \"pris54\": true,\n    \"tmurngon\": true,\n    \"zemgalis\": true,\n    \"theramey\": true,\n    \"morogasper\": true,\n    \"vespaccio\": true,\n    \"fenrir\": true,\n    \"rwaness\": true,\n    \"ezeikel\": true,\n    \"sebagomez\": true,\n    \"langri-sha\": true,\n    \"jasonwang1888\": true,\n    \"ahyanarizky\": true,\n    \"e.luna92\": true,\n    \"princetoad\": true,\n    \"wearevilla\": true,\n    \"matiasherranz\": true,\n    \"norlando\": true,\n    \"asmattic\": true,\n    \"vmleon\": true,\n    \"atulmy\": true,\n    \"dmbch\": true,\n    \"kevin-foster\": true,\n    \"outofcoffee\": true,\n    \"railites\": true,\n    \"ablbol\": true,\n    \"shakakira\": true,\n    \"filipdanic\": true,\n    \"scott.m.sarsfield\": true,\n    \"eimaj\": true,\n    \"eswat2\": true,\n    \"suemcnab\": true,\n    \"kikna\": true,\n    \"xyyjk\": true,\n    \"shuoshubao\": true,\n    \"escapeimagery\": true,\n    \"hyteer\": true,\n    \"chinawolf_wyp\": true,\n    \"serge-nikitin\": true,\n    \"seierstad\": true,\n    \"kaufmo\": true,\n    \"ritsu\": true,\n    \"ohar\": true,\n    \"jirqoadai\": true,\n    \"josokinas\": true,\n    \"michalskuza\": true,\n    \"joseph320\": true\n  },\n  \"homepage\": \"https://github.com/reacttraining/react-router#readme\",\n  \"bugs\": {\n    \"url\": \"https://github.com/reacttraining/react-router/issues\"\n  },\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"react\",\n    \"router\",\n    \"route\",\n    \"routing\",\n    \"history\",\n    \"link\"\n  ]\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/modules/react-router/expected-source.json",
    "content": "{\n  \"files\": {\n    \"readmeSize\": 968,\n    \"testsSize\": 31281,\n    \"hasChangelog\": true\n  },\n  \"badges\": [\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/npm/v/react-router.svg?style=flat-square\",\n        \"shields\": \"https://img.shields.io/npm/v/react-router.svg\",\n        \"content\": \"https://img.shields.io/npm/v/react-router.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"version\",\n        \"modifiers\": {\n          \"type\": \"v\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/npm/dm/react-router.svg?style=flat-square\",\n        \"shields\": \"https://img.shields.io/npm/dm/react-router.svg\",\n        \"content\": \"https://img.shields.io/npm/dm/react-router.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"downloads\",\n        \"modifiers\": {\n          \"type\": \"dm\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/travis/ReactTraining/react-router/master.svg?style=flat-square\",\n        \"service\": \"https://api.travis-ci.org/ReactTraining/react-router.svg?branch=master\",\n        \"shields\": \"https://img.shields.io/travis/ReactTraining/react-router/master.svg\",\n        \"content\": \"https://img.shields.io/travis/ReactTraining/react-router/master.json\"\n      },\n      \"info\": {\n        \"service\": \"travis\",\n        \"type\": \"build\",\n        \"modifiers\": {\n          \"branch\": \"master\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/npm/v/react-router-dom.svg?style=flat-square\",\n        \"shields\": \"https://img.shields.io/npm/v/react-router-dom.svg\",\n        \"content\": \"https://img.shields.io/npm/v/react-router-dom.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"version\",\n        \"modifiers\": {\n          \"type\": \"v\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/npm/v/react-router-native.svg?style=flat-square\",\n        \"shields\": \"https://img.shields.io/npm/v/react-router-native.svg\",\n        \"content\": \"https://img.shields.io/npm/v/react-router-native.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"version\",\n        \"modifiers\": {\n          \"type\": \"v\"\n        }\n      }\n    },\n    {\n      \"urls\": {\n        \"original\": \"https://img.shields.io/npm/v/react-router-config.svg?style=flat-square\",\n        \"shields\": \"https://img.shields.io/npm/v/react-router-config.svg\",\n        \"content\": \"https://img.shields.io/npm/v/react-router-config.json\"\n      },\n      \"info\": {\n        \"service\": \"npm\",\n        \"type\": \"version\",\n        \"modifiers\": {\n          \"type\": \"v\"\n        }\n      }\n    }\n  ],\n  \"linters\": [\n    \"eslint\"\n  ]\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/0bfbe2f1c03ff5ed9c3baa91d588e218.headers",
    "content": "{\n  \"statusCode\": 404,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:37:46 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"404 Not Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"31\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CBD:ACEA84D:573351C9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/some-org-that-will-never-exist/some-repo-that-will-never-exist/stats/contributors\",\n  \"time\": 838,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/2236c266c85b15946d7ca69cc2e1e091",
    "content": "{\"message\":\"Repository access blocked\",\"block\":{\"reason\":\"dmca\",\"created_at\":\"2012-10-03T18:57:04Z\",\"html_url\":\"https://github.com/github/dmca/blob/master/2011-06-21-sony.markdown\"}}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/2236c266c85b15946d7ca69cc2e1e091.headers",
    "content": "{\n  \"statusCode\": 451,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 16:21:00 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"content-length\": \"182\",\n    \"status\": \"451\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"50\",\n    \"x-ratelimit-reset\": \"1462985625\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-github-request-id\": \"9E6D5E21:B976:7C969D8:57335BEB\"\n  },\n  \"url\": \"https://api.github.com:443/repos/jimmikaelkael/ps3mca-tool/issues?state=all&per_page=100\",\n  \"time\": 1374,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/24d4b4797edc40614848f01802bbe2b3.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 12:50:47 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"54\",\n    \"x-ratelimit-reset\": \"1462973370\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"cef19a6ba327f39c799cf0b2dc553049\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"bae57931a6fe678a3dffe9be8e7819c8\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:CA12:C691318:57332AA7\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn/issues?state=all&per_page=100\",\n  \"time\": 821,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/2f87db1cf50593ec3f80835f624ec88a",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/2f87db1cf50593ec3f80835f624ec88a.headers",
    "content": "{\n  \"statusCode\": 204,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"status\": \"204 No Content\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"37\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"76d9828c7e4f1d910f7ba069e90ce976\",\n    \"x-github-request-id\": \"9E6D5E21:2CBC:BB2127D:57334DFA\"\n  },\n  \"url\": \"https://api.github.com:443/repos/Cat4D/Cat4D/stats/contributors\",\n  \"time\": 394,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/3a1a79735cab3e2c46da0f739eccd595.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 12:50:47 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"57\",\n    \"x-ratelimit-reset\": \"1462973370\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"005b455fe23290d9b711bf692b824f7e\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"52437fedc85beec8da3449496900fb9a\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:CA11:AC07493:57332AA7\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn/stats/contributors\",\n  \"time\": 558,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/3b5e34c45a594730608f6170cacf31fe",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/3b5e34c45a594730608f6170cacf31fe.headers",
    "content": "{\n  \"statusCode\": 204,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"status\": \"204 No Content\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"39\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"7b641bda7ec2ca7cd9df72d2578baf75\",\n    \"x-github-request-id\": \"9E6D5E21:2CBC:BB2127A:57334DFA\"\n  },\n  \"url\": \"https://api.github.com:443/repos/Cat4D/Cat4D/stats/commit_activity\",\n  \"time\": 381,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/3d15804db16c597c23a14946a78b8e1b.headers",
    "content": "{\n  \"statusCode\": 404,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:37:46 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"404 Not Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"33\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CB5:20466E3:573351C9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/some-org-that-will-never-exist/some-repo-that-will-never-exist\",\n  \"time\": 845,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/4109ed740591855f9e48eb868f40db86",
    "content": "[]"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/4109ed740591855f9e48eb868f40db86.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"content-length\": \"2\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"36\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"\\\"6f325df05dbadf499a997fc714890f62\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"4c8b2d4732c413f4b9aefe394bd65569\",\n    \"x-github-request-id\": \"9E6D5E21:2CB9:594ACBE:57334DFA\"\n  },\n  \"url\": \"https://api.github.com:443/repos/Cat4D/Cat4D/commits/master/statuses\",\n  \"time\": 403,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/5bdd0f1e3c86f0114eb714a2ce79e905",
    "content": "{\"message\":\"Repository access blocked\",\"block\":{\"reason\":\"dmca\",\"created_at\":\"2012-10-03T18:57:04Z\",\"html_url\":\"https://github.com/github/dmca/blob/master/2011-06-21-sony.markdown\"}}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/5bdd0f1e3c86f0114eb714a2ce79e905.headers",
    "content": "{\n  \"statusCode\": 451,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 16:20:59 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"content-length\": \"182\",\n    \"status\": \"451\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"51\",\n    \"x-ratelimit-reset\": \"1462985625\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-github-request-id\": \"9E6D5E21:B975:59AA49F:57335BEB\"\n  },\n  \"url\": \"https://api.github.com:443/repos/jimmikaelkael/ps3mca-tool/stats/commit_activity\",\n  \"time\": 829,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/6913bcb008bea8f6a0384da9bbae2293.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:31 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"34\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"ed57924a6efa6312be1308defd3bc629\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"318e55760cf7cdb40e61175a4d36cd32\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CBD:ACA5E35:57334DFB\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn/commits/master/statuses\",\n  \"time\": 371,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/85c5e5ee4a806e7d405984c325f29007.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"41\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"392df650e828b6f22819d9bf15011108\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"link\": \"<https://api.github.com/repositories/23718950/statuses/master?page=2>; rel=\\\"next\\\", <https://api.github.com/repositories/23718950/statuses/master?page=2>; rel=\\\"last\\\"\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"bd82876e9bf04990f289ba22f246ee9b\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CB9:594AC52:57334DF9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/strongloop-forks/strong-fork-syslog/commits/master/statuses\",\n  \"time\": 473,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/92a4188d8af9e8c1ff665859b3cd86b8.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:31 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"35\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"e9fbf9a5c2af29ce8abbc649074397e9\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"dc1ce2bfb41810a06c705e83b388572d\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CB8:40F49A8:57334DFA\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn/commits/9b77a14a370a6f0b81c9eb58ccade0fad94fe249/statuses\",\n  \"time\": 390,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/9ccf24e28c94543e4ae601d5aa9c8cba.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"44\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"6478e096394aa37ba1770943693374fd\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"bae57931a6fe678a3dffe9be8e7819c8\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CBC:BB211D0:57334DF9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/strongloop-forks/strong-fork-syslog/issues?state=all&per_page=100\",\n  \"time\": 437,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/a3360f53aa71342ad67cded65f6ea1da.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"45\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"20d909aa12a37ef488d94100f1b763bd\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"318e55760cf7cdb40e61175a4d36cd32\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CB4:1BADA68:57334DF9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/strongloop-forks/strong-fork-syslog/stats/commit_activity\",\n  \"time\": 397,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/a7d2cca72c7267fd27fe769cb4d2f611.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 12:50:47 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"56\",\n    \"x-ratelimit-reset\": \"1462973370\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"5dbc0e7e2046685d1c395b6171a6952e\\\"\",\n    \"last-modified\": \"Wed, 11 May 2016 12:08:17 GMT\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"76d9828c7e4f1d910f7ba069e90ce976\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:CA11:AC07494:57332AA7\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn\",\n  \"time\": 570,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/afcd15ede3deaa855315f5a1fbc3e61d.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"38\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"80d2bc4d43762fbe8ad210fad4a4cb31\\\"\",\n    \"last-modified\": \"Tue, 08 Jan 2013 15:40:43 GMT\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"139317cebd6caf9cd03889139437f00b\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CBD:ACA5D74:57334DFA\"\n  },\n  \"url\": \"https://api.github.com:443/repos/Cat4D/Cat4D\",\n  \"time\": 382,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/b32671b71119c7fc156f3aa050d1cb12",
    "content": "{\"message\":\"Repository access blocked\",\"block\":{\"reason\":\"dmca\",\"created_at\":\"2012-10-03T18:57:04Z\",\"html_url\":\"https://github.com/github/dmca/blob/master/2011-06-21-sony.markdown\"}}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/b32671b71119c7fc156f3aa050d1cb12.headers",
    "content": "{\n  \"statusCode\": 451,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 16:20:59 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"content-length\": \"182\",\n    \"status\": \"451\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"54\",\n    \"x-ratelimit-reset\": \"1462985625\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-github-request-id\": \"9E6D5E21:B979:AB4CF45:57335BEB\"\n  },\n  \"url\": \"https://api.github.com:443/repos/jimmikaelkael/ps3mca-tool\",\n  \"time\": 673,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/c23e4492fdaefde5fe60524fab308532.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"42\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"c3d33b63a0cce617295974762ef3888c\\\"\",\n    \"last-modified\": \"Mon, 09 Mar 2015 17:42:13 GMT\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"bd82876e9bf04990f289ba22f246ee9b\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CBD:ACA5CD1:57334DF9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/strongloop-forks/strong-fork-syslog\",\n  \"time\": 469,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/c389930a56f1bad9257ed1490fc32c9b.headers",
    "content": "{\n  \"statusCode\": 404,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:37:46 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"404 Not Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"30\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CB9:597ECD8:573351C9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/some-org-that-will-never-exist/some-repo-that-will-never-exist/issues?state=all&per_page=100\",\n  \"time\": 862,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/cc88ef857a3a1492913c066047c5c033.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 12:50:47 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"58\",\n    \"x-ratelimit-reset\": \"1462973370\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"eb2e9f751ce528da47a65e008db15cde\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"c6c65e5196703428e7641f7d1e9bc353\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:CA0E:453738C:57332AA7\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn/stats/commit_activity\",\n  \"time\": 543,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/d3b7e3ec7ad3c841c45ff000fd77b711.headers",
    "content": "{\n  \"statusCode\": 404,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:37:46 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"404 Not Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"29\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CBA:7B24F3C:573351C9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/some-org-that-will-never-exist/some-repo-that-will-never-exist/commits/master/statuses\",\n  \"time\": 832,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/d495e09987382290004f52a8fa39243b",
    "content": "[]"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/d495e09987382290004f52a8fa39243b.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"content-length\": \"2\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"40\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"\\\"6f325df05dbadf499a997fc714890f62\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"4c8b2d4732c413f4b9aefe394bd65569\",\n    \"x-github-request-id\": \"9E6D5E21:2CB8:40F4973:57334DFA\"\n  },\n  \"url\": \"https://api.github.com:443/repos/Cat4D/Cat4D/issues?state=all&per_page=100\",\n  \"time\": 381,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/dadb0a8973a79e019a2a0affeb248deb.headers",
    "content": "{\n  \"statusCode\": 404,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:37:46 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"404 Not Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"32\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CBB:9E79798:573351C9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/some-org-that-will-never-exist/some-repo-that-will-never-exist/stats/commit_activity\",\n  \"time\": 834,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/ebd826ea6dcd2abd0dcc961dd0fe4176",
    "content": "{\"message\":\"Repository access blocked\",\"block\":{\"reason\":\"dmca\",\"created_at\":\"2012-10-03T18:57:04Z\",\"html_url\":\"https://github.com/github/dmca/blob/master/2011-06-21-sony.markdown\"}}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/ebd826ea6dcd2abd0dcc961dd0fe4176.headers",
    "content": "{\n  \"statusCode\": 451,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 16:20:59 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"content-length\": \"182\",\n    \"status\": \"451\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"52\",\n    \"x-ratelimit-reset\": \"1462985625\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-github-request-id\": \"9E6D5E21:B977:A0F20DC:57335BEB\"\n  },\n  \"url\": \"https://api.github.com:443/repos/jimmikaelkael/ps3mca-tool/stats/contributors\",\n  \"time\": 831,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/ede6348d94fd4d537bcc1e42b050d8ed",
    "content": "{\"message\":\"Repository access blocked\",\"block\":{\"reason\":\"dmca\",\"created_at\":\"2012-10-03T18:57:04Z\",\"html_url\":\"https://github.com/github/dmca/blob/master/2011-06-21-sony.markdown\"}}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/ede6348d94fd4d537bcc1e42b050d8ed.headers",
    "content": "{\n  \"statusCode\": 451,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 16:20:59 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"content-length\": \"182\",\n    \"status\": \"451\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"53\",\n    \"x-ratelimit-reset\": \"1462985625\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-github-request-id\": \"9E6D5E21:B978:BE085E6:57335BEB\"\n  },\n  \"url\": \"https://api.github.com:443/repos/jimmikaelkael/ps3mca-tool/commits/master/statuses\",\n  \"time\": 662,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/github/ff4470aede5dba39b4736419dda38443.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Wed, 11 May 2016 15:21:30 GMT\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"transfer-encoding\": \"chunked\",\n    \"status\": \"200 OK\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"43\",\n    \"x-ratelimit-reset\": \"1462981369\",\n    \"cache-control\": \"public, max-age=60, s-maxage=60\",\n    \"vary\": \"Accept, Accept-Encoding\",\n    \"etag\": \"W/\\\"997964ca758e8d492d4d225ff41d14d5\\\"\",\n    \"x-github-media-type\": \"github.v3\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-served-by\": \"4c8b2d4732c413f4b9aefe394bd65569\",\n    \"content-encoding\": \"gzip\",\n    \"x-github-request-id\": \"9E6D5E21:2CB5:20353D8:57334DF9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/strongloop-forks/strong-fork-syslog/stats/contributors\",\n  \"time\": 438,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/index/474829c21c2e69d2c0d889af2a714584",
    "content": "{\"_id\":\"graphql-shorthand-parser\",\"_rev\":\"2-8a4abe71d406323ccb96762a491f6a53\",\"name\":\"graphql-shorthand-parser\",\"description\":\"Parse GraphQL schemas from shorthand notation\",\"dist-tags\":{\"latest\":\"0.0.6\"},\"author\":{\"name\":\"Cameron Hunter\",\"email\":\"hello@cameronhunter.co.uk\"},\"time\":{\"modified\":\"2016-03-21T22:25:18.701Z\",\"created\":\"2016-01-18T01:42:44.171Z\",\"0.0.2\":\"2016-01-18T01:42:44.171Z\",\"0.0.3\":\"2016-01-18T08:35:21.753Z\",\"0.0.4\":\"2016-01-18T08:46:25.408Z\",\"0.0.5\":\"2016-01-18T08:48:31.680Z\",\"0.0.6\":\"2016-03-21T22:25:18.701Z\"},\"versions\":{\"0.0.2\":{\"name\":\"graphql-shorthand-parser\",\"version\":\"0.0.2\",\"description\":\"Parse GraphQL schemas from shorthand notation\",\"main\":\"dist/graphql-shorthand.js\",\"scripts\":{\"build\":\"rollup -c\",\"pretest\":\"npm run build\",\"test\":\"ava\",\"prepublish\":\"npm run test\",\"preparse\":\"npm run build\",\"parse\":\"./bin/parse\"},\"files\":[\"dist\"],\"keywords\":[\"graphql\"],\"author\":\"Cameron Hunter <hello@cameronhunter.co.uk>\",\"license\":\"MIT\",\"devDependencies\":{\"ava\":\"^0.10.0\",\"babel-preset-es2015-rollup \":\"^1.1.1\",\"babel-preset-stage-1\":\"^6.3.13\",\"rollup\":\"^0.25.0\",\"rollup-plugin-babel\":\"^2.3.9\",\"rollup-plugin-pegjs\":\"^1.0.3\"},\"readme\":\"# GraphQL Shorthand Parser\\n\\n[![Build Status](https://travis-ci.org/cameronhunter/graphql-shorthand-parser.svg?branch=master)](https://travis-ci.org/cameronhunter/graphql-shorthand-parser) [![NPM Version](https://img.shields.io/npm/v/graphql-shorthand-parser.svg)](https://npmjs.org/package/graphql-shorthand-parser) [![License](https://img.shields.io/npm/l/graphql-shorthand-parser.svg)](https://github.com/cameronhunter/graphql-shorthand-parser/blob/master/LICENSE.md)\\n\\nParse GraphQL shorthand notation into a JSON object that can be used to\\nauto-generate schema files.\\n\\n### Shorthand notation\\n```\\n// One of the films in the Star Wars Trilogy\\nenum Episode {\\n  NEWHOPE\\n  EMPIRE\\n  JEDI\\n}\\n\\n// A character in the Star Wars Trilogy\\ninterface Character {\\n  id: String!               // The id of the character\\n  name: String              // The name of the character\\n  friends: [Character]      // The friends of the character, or an empty list if they have none\\n  appearsIn: [Episode]      // Which movies they appear in\\n}\\n\\n// A humanoid creature in the Star Wars universe\\ntype Human : Character {\\n  id: String!               // The id of the human\\n  name: String              // The name of the human\\n  friends: [Character]      // The friends of the character, or an empty list if they have none\\n  appearsIn: [Episode]      // Which movies they appear in\\n  homePlanet: String        // The home planet of the human, or null if unknown\\n}\\n\\n// A mechanical creature in the Star Wars universe\\ntype Droid : Character {\\n  id: String!               // The id of the droid\\n  name: String              // The name of the droid\\n  friends: [Character]      // The friends of the character, or an empty list if they have none\\n  appearsIn: [Episode]      // Which movies they appear in\\n  primaryFunction: String   // The primary function of the droid\\n}\\n\\ntype Query {\\n  hero(episode: Episode): Character\\n  human(id: String!): Human\\n  droid(id: String!): Droid\\n}\\n```\\n\\n### Parsed notation to JSON\\n```json\\n[\\n  {\\n    \\\"type\\\": \\\"ENUM\\\",\\n    \\\"name\\\": \\\"Episode\\\",\\n    \\\"description\\\": \\\"One of the films in the Star Wars Trilogy\\\",\\n    \\\"values\\\": [\\n      \\\"NEWHOPE\\\",\\n      \\\"EMPIRE\\\",\\n      \\\"JEDI\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"INTERFACE\\\",\\n    \\\"name\\\": \\\"Character\\\",\\n    \\\"description\\\": \\\"A character in the Star Wars Trilogy\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"description\\\": \\\"The id of the character\\\",\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"description\\\": \\\"The name of the character\\\",\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": false\\n      },\\n      \\\"friends\\\": {\\n        \\\"description\\\": \\\"The friends of the character, or an empty list if they have none\\\",\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"required\\\": false,\\n        \\\"array\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"description\\\": \\\"Which movies they appear in\\\",\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"required\\\": false,\\n        \\\"array\\\": true\\n      }\\n    }\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Human\\\",\\n    \\\"description\\\": \\\"A humanoid creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"description\\\": \\\"The id of the human\\\",\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"description\\\": \\\"The name of the human\\\",\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": false\\n      },\\n      \\\"friends\\\": {\\n        \\\"description\\\": \\\"The friends of the character, or an empty list if they have none\\\",\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"required\\\": false,\\n        \\\"array\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"description\\\": \\\"Which movies they appear in\\\",\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"required\\\": false,\\n        \\\"array\\\": true\\n      },\\n      \\\"homePlanet\\\": {\\n        \\\"description\\\": \\\"The home planet of the human, or null if unknown\\\",\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": false\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Droid\\\",\\n    \\\"description\\\": \\\"A mechanical creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"description\\\": \\\"The id of the droid\\\",\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"description\\\": \\\"The name of the droid\\\",\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": false\\n      },\\n      \\\"friends\\\": {\\n        \\\"description\\\": \\\"The friends of the character, or an empty list if they have none\\\",\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"required\\\": false,\\n        \\\"array\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"description\\\": \\\"Which movies they appear in\\\",\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"required\\\": false,\\n        \\\"array\\\": true\\n      },\\n      \\\"primaryFunction\\\": {\\n        \\\"description\\\": \\\"The primary function of the droid\\\",\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": false\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Query\\\",\\n    \\\"fields\\\": {\\n      \\\"hero\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"required\\\": false,\\n        \\\"args\\\": {\\n          \\\"episode\\\": {\\n            \\\"type\\\": \\\"Episode\\\",\\n            \\\"required\\\": false\\n          }\\n        }\\n      },\\n      \\\"human\\\": {\\n        \\\"type\\\": \\\"Human\\\",\\n        \\\"required\\\": false,\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      },\\n      \\\"droid\\\": {\\n        \\\"type\\\": \\\"Droid\\\",\\n        \\\"required\\\": false,\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      }\\n    }\\n  }\\n]\\n```\",\"readmeFilename\":\"README.md\",\"_id\":\"graphql-shorthand-parser@0.0.2\",\"dist\":{\"tarball\":\"https://registry.npmjs.org/graphql-shorthand-parser/-/graphql-shorthand-parser-0.0.2.tgz\",\"shasum\":\"efb356157e67cca7cd264c5311e8b51010beadb9\"},\"_npmVersion\":\"1.3.11\",\"_from\":\".\",\"_npmUser\":{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"},\"maintainers\":[{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"}],\"directories\":{}},\"0.0.3\":{\"name\":\"graphql-shorthand-parser\",\"version\":\"0.0.3\",\"description\":\"Parse GraphQL schemas from shorthand notation\",\"main\":\"dist/graphql-shorthand.js\",\"scripts\":{\"build\":\"rollup -c\",\"pretest\":\"npm run build\",\"test\":\"ava\",\"prepublish\":\"npm run test\",\"preparse\":\"npm run build\",\"parse\":\"./bin/parse\",\"watch\":\"npm-watch\"},\"watch\":{\"test\":{\"patterns\":[\"src\",\"test\"]}},\"files\":[\"dist\"],\"keywords\":[\"graphql\"],\"author\":\"Cameron Hunter <hello@cameronhunter.co.uk>\",\"license\":\"MIT\",\"devDependencies\":{\"ava\":\"^0.10.0\",\"babel-preset-es2015-rollup \":\"^1.1.1\",\"babel-preset-stage-1\":\"^6.3.13\",\"npm-watch\":\"^0.1.1\",\"rollup\":\"^0.25.0\",\"rollup-plugin-babel\":\"^2.3.9\",\"rollup-plugin-pegjs\":\"^1.0.3\",\"tap-diff\":\"^0.1.1\"},\"readme\":\"# GraphQL Shorthand Parser\\n\\n[![Build Status](https://travis-ci.org/cameronhunter/graphql-shorthand-parser.svg?branch=master)](https://travis-ci.org/cameronhunter/graphql-shorthand-parser) [![NPM Version](https://img.shields.io/npm/v/graphql-shorthand-parser.svg)](https://npmjs.org/package/graphql-shorthand-parser) [![License](https://img.shields.io/npm/l/graphql-shorthand-parser.svg)](https://github.com/cameronhunter/graphql-shorthand-parser/blob/master/LICENSE.md)\\n\\nParse GraphQL shorthand notation into a JSON object that can be used to\\nauto-generate schema files.\\n\\n### Shorthand notation\\n```\\n// One of the films in the Star Wars Trilogy\\nenum Episode {\\n  NEWHOPE\\n  EMPIRE\\n  JEDI\\n}\\n\\n// A character in the Star Wars Trilogy\\ninterface Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n}\\n\\n// A humanoid creature in the Star Wars universe\\ntype Human : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  homePlanet: String\\n}\\n\\n// A mechanical creature in the Star Wars universe\\ntype Droid : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  primaryFunction: String\\n}\\n\\ntype Query {\\n  hero(episode: Episode): Character\\n  human(id: String!): Human\\n  droid(id: String!): Droid\\n}\\n```\\n\\n### Parsed notation to JSON\\n```json\\n[\\n  {\\n    \\\"type\\\": \\\"ENUM\\\",\\n    \\\"name\\\": \\\"Episode\\\",\\n    \\\"description\\\": \\\"One of the films in the Star Wars Trilogy\\\",\\n    \\\"values\\\": [\\n      \\\"NEWHOPE\\\",\\n      \\\"EMPIRE\\\",\\n      \\\"JEDI\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"INTERFACE\\\",\\n    \\\"name\\\": \\\"Character\\\",\\n    \\\"description\\\": \\\"A character in the Star Wars Trilogy\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      }\\n    }\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Human\\\",\\n    \\\"description\\\": \\\"A humanoid creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"homePlanet\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Droid\\\",\\n    \\\"description\\\": \\\"A mechanical creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"primaryFunction\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Query\\\",\\n    \\\"fields\\\": {\\n      \\\"hero\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"args\\\": {\\n          \\\"episode\\\": {\\n            \\\"type\\\": \\\"Episode\\\"\\n          }\\n        }\\n      },\\n      \\\"human\\\": {\\n        \\\"type\\\": \\\"Human\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      },\\n      \\\"droid\\\": {\\n        \\\"type\\\": \\\"Droid\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      }\\n    }\\n  }\\n]\\n```\",\"readmeFilename\":\"README.md\",\"_id\":\"graphql-shorthand-parser@0.0.3\",\"dist\":{\"tarball\":\"https://registry.npmjs.org/graphql-shorthand-parser/-/graphql-shorthand-parser-0.0.3.tgz\",\"shasum\":\"58ddc9123dc6cdd77e85143e08db00873c197aed\"},\"_npmVersion\":\"1.3.11\",\"_from\":\".\",\"_npmUser\":{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"},\"maintainers\":[{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"}],\"directories\":{}},\"0.0.4\":{\"name\":\"graphql-shorthand-parser\",\"version\":\"0.0.4\",\"description\":\"Parse GraphQL schemas from shorthand notation\",\"main\":\"dist/graphql-shorthand.js\",\"scripts\":{\"build\":\"rollup -c\",\"pretest\":\"npm run build\",\"test\":\"ava --tap | tap-diff\",\"prepublish\":\"npm run test\",\"preparse\":\"npm run build\",\"parse\":\"./bin/parse\"},\"files\":[\"dist\"],\"keywords\":[\"graphql\"],\"author\":\"Cameron Hunter <hello@cameronhunter.co.uk>\",\"license\":\"MIT\",\"devDependencies\":{\"ava\":\"^0.10.0\",\"babel-preset-es2015-rollup\":\"^1.1.1\",\"babel-preset-stage-1\":\"^6.3.13\",\"npm-watch\":\"^0.1.1\",\"rollup\":\"^0.25.0\",\"rollup-plugin-babel\":\"^2.3.9\",\"rollup-plugin-pegjs\":\"^1.0.3\",\"tap-diff\":\"^0.1.1\"},\"readme\":\"# GraphQL Shorthand Parser\\n\\n[![Build Status](https://travis-ci.org/cameronhunter/graphql-shorthand-parser.svg?branch=master)](https://travis-ci.org/cameronhunter/graphql-shorthand-parser) [![NPM Version](https://img.shields.io/npm/v/graphql-shorthand-parser.svg)](https://npmjs.org/package/graphql-shorthand-parser) [![License](https://img.shields.io/npm/l/graphql-shorthand-parser.svg)](https://github.com/cameronhunter/graphql-shorthand-parser/blob/master/LICENSE.md)\\n\\nParse GraphQL shorthand notation into a JSON object that can be used to\\nauto-generate schema files.\\n\\n### Shorthand notation\\n```\\n// One of the films in the Star Wars Trilogy\\nenum Episode {\\n  NEWHOPE\\n  EMPIRE\\n  JEDI\\n}\\n\\n// A character in the Star Wars Trilogy\\ninterface Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n}\\n\\n// A humanoid creature in the Star Wars universe\\ntype Human : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  homePlanet: String\\n}\\n\\n// A mechanical creature in the Star Wars universe\\ntype Droid : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  primaryFunction: String\\n}\\n\\ntype Query {\\n  hero(episode: Episode): Character\\n  human(id: String!): Human\\n  droid(id: String!): Droid\\n}\\n```\\n\\n### Parsed notation to JSON\\n```json\\n[\\n  {\\n    \\\"type\\\": \\\"ENUM\\\",\\n    \\\"name\\\": \\\"Episode\\\",\\n    \\\"description\\\": \\\"One of the films in the Star Wars Trilogy\\\",\\n    \\\"values\\\": [\\n      \\\"NEWHOPE\\\",\\n      \\\"EMPIRE\\\",\\n      \\\"JEDI\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"INTERFACE\\\",\\n    \\\"name\\\": \\\"Character\\\",\\n    \\\"description\\\": \\\"A character in the Star Wars Trilogy\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      }\\n    }\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Human\\\",\\n    \\\"description\\\": \\\"A humanoid creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"homePlanet\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Droid\\\",\\n    \\\"description\\\": \\\"A mechanical creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"primaryFunction\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Query\\\",\\n    \\\"fields\\\": {\\n      \\\"hero\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"args\\\": {\\n          \\\"episode\\\": {\\n            \\\"type\\\": \\\"Episode\\\"\\n          }\\n        }\\n      },\\n      \\\"human\\\": {\\n        \\\"type\\\": \\\"Human\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      },\\n      \\\"droid\\\": {\\n        \\\"type\\\": \\\"Droid\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      }\\n    }\\n  }\\n]\\n```\",\"readmeFilename\":\"README.md\",\"_id\":\"graphql-shorthand-parser@0.0.4\",\"dist\":{\"tarball\":\"https://registry.npmjs.org/graphql-shorthand-parser/-/graphql-shorthand-parser-0.0.4.tgz\",\"shasum\":\"6d4ec1b31ed793d48ae0e8a5f901df26b124b16a\"},\"_npmVersion\":\"1.3.11\",\"_from\":\".\",\"_npmUser\":{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"},\"maintainers\":[{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"}],\"directories\":{}},\"0.0.5\":{\"name\":\"graphql-shorthand-parser\",\"version\":\"0.0.5\",\"description\":\"Parse GraphQL schemas from shorthand notation\",\"main\":\"dist/graphql-shorthand.js\",\"scripts\":{\"build\":\"rollup -c\",\"pretest\":\"npm run build\",\"test\":\"ava --tap | tap-diff\",\"prepublish\":\"npm run test\",\"preparse\":\"npm run build\",\"parse\":\"./bin/parse\"},\"files\":[\"dist\"],\"keywords\":[\"graphql\"],\"author\":\"Cameron Hunter <hello@cameronhunter.co.uk>\",\"license\":\"MIT\",\"devDependencies\":{\"ava\":\"^0.10.0\",\"babel-preset-es2015-rollup\":\"^1.1.1\",\"babel-preset-stage-1\":\"^6.3.13\",\"rollup\":\"^0.25.0\",\"rollup-plugin-babel\":\"^2.3.9\",\"rollup-plugin-pegjs\":\"^1.0.3\",\"tap-diff\":\"^0.1.1\"},\"readme\":\"# GraphQL Shorthand Parser\\n\\n[![Build Status](https://travis-ci.org/cameronhunter/graphql-shorthand-parser.svg?branch=master)](https://travis-ci.org/cameronhunter/graphql-shorthand-parser) [![NPM Version](https://img.shields.io/npm/v/graphql-shorthand-parser.svg)](https://npmjs.org/package/graphql-shorthand-parser) [![License](https://img.shields.io/npm/l/graphql-shorthand-parser.svg)](https://github.com/cameronhunter/graphql-shorthand-parser/blob/master/LICENSE.md)\\n\\nParse GraphQL shorthand notation into a JSON object that can be used to\\nauto-generate schema files.\\n\\n### Shorthand notation\\n```\\n// One of the films in the Star Wars Trilogy\\nenum Episode {\\n  NEWHOPE\\n  EMPIRE\\n  JEDI\\n}\\n\\n// A character in the Star Wars Trilogy\\ninterface Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n}\\n\\n// A humanoid creature in the Star Wars universe\\ntype Human : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  homePlanet: String\\n}\\n\\n// A mechanical creature in the Star Wars universe\\ntype Droid : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  primaryFunction: String\\n}\\n\\ntype Query {\\n  hero(episode: Episode): Character\\n  human(id: String!): Human\\n  droid(id: String!): Droid\\n}\\n```\\n\\n### Parsed notation to JSON\\n```json\\n[\\n  {\\n    \\\"type\\\": \\\"ENUM\\\",\\n    \\\"name\\\": \\\"Episode\\\",\\n    \\\"description\\\": \\\"One of the films in the Star Wars Trilogy\\\",\\n    \\\"values\\\": [\\n      \\\"NEWHOPE\\\",\\n      \\\"EMPIRE\\\",\\n      \\\"JEDI\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"INTERFACE\\\",\\n    \\\"name\\\": \\\"Character\\\",\\n    \\\"description\\\": \\\"A character in the Star Wars Trilogy\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      }\\n    }\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Human\\\",\\n    \\\"description\\\": \\\"A humanoid creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"homePlanet\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Droid\\\",\\n    \\\"description\\\": \\\"A mechanical creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"primaryFunction\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Query\\\",\\n    \\\"fields\\\": {\\n      \\\"hero\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"args\\\": {\\n          \\\"episode\\\": {\\n            \\\"type\\\": \\\"Episode\\\"\\n          }\\n        }\\n      },\\n      \\\"human\\\": {\\n        \\\"type\\\": \\\"Human\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      },\\n      \\\"droid\\\": {\\n        \\\"type\\\": \\\"Droid\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      }\\n    }\\n  }\\n]\\n```\",\"readmeFilename\":\"README.md\",\"_id\":\"graphql-shorthand-parser@0.0.5\",\"dist\":{\"tarball\":\"https://registry.npmjs.org/graphql-shorthand-parser/-/graphql-shorthand-parser-0.0.5.tgz\",\"shasum\":\"2c95a4e253c4b4c0813514f92895d5549d9871e6\"},\"_npmVersion\":\"1.3.11\",\"_from\":\".\",\"_npmUser\":{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"},\"maintainers\":[{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"}],\"directories\":{}},\"0.0.6\":{\"name\":\"graphql-shorthand-parser\",\"version\":\"0.0.6\",\"description\":\"Parse GraphQL schemas from shorthand notation\",\"main\":\"dist/graphql-shorthand.js\",\"scripts\":{\"build\":\"rollup -c\",\"pretest\":\"npm run build\",\"test\":\"ava --tap | tap-diff\",\"postversion\":\"git push && git push --tags\",\"prepublish\":\"npm run test\",\"preparse\":\"npm run build\",\"parse\":\"./bin/parse\"},\"files\":[\"dist\"],\"keywords\":[\"graphql\"],\"author\":\"Cameron Hunter <hello@cameronhunter.co.uk>\",\"license\":\"MIT\",\"devDependencies\":{\"ava\":\"^0.13.0\",\"babel-preset-es2015-rollup\":\"^1.1.1\",\"babel-preset-stage-1\":\"^6.3.13\",\"rollup\":\"^0.25.0\",\"rollup-plugin-babel\":\"^2.3.9\",\"rollup-plugin-pegjs\":\"^2.0.0\",\"tap-diff\":\"^0.1.1\"},\"readme\":\"# GraphQL Shorthand Parser\\n\\n[![Build Status](https://travis-ci.org/cameronhunter/graphql-shorthand-parser.svg?branch=master)](https://travis-ci.org/cameronhunter/graphql-shorthand-parser) [![NPM Version](https://img.shields.io/npm/v/graphql-shorthand-parser.svg)](https://npmjs.org/package/graphql-shorthand-parser) [![License](https://img.shields.io/npm/l/graphql-shorthand-parser.svg)](https://github.com/cameronhunter/graphql-shorthand-parser/blob/master/LICENSE.md)\\n\\nParse GraphQL shorthand notation into a JSON object that can be used to\\nauto-generate schema files.\\n\\n### Shorthand notation\\n```\\n// One of the films in the Star Wars Trilogy\\nenum Episode {\\n  NEWHOPE\\n  EMPIRE\\n  JEDI\\n}\\n\\n// A character in the Star Wars Trilogy\\ninterface Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n}\\n\\n// A humanoid creature in the Star Wars universe\\ntype Human : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  homePlanet: String\\n}\\n\\n// A mechanical creature in the Star Wars universe\\ntype Droid : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  primaryFunction: String\\n}\\n\\ntype Query {\\n  hero(episode: Episode): Character\\n  human(id: String!): Human\\n  droid(id: String!): Droid\\n}\\n```\\n\\n### Parsed notation to JSON\\n```json\\n[\\n  {\\n    \\\"type\\\": \\\"ENUM\\\",\\n    \\\"name\\\": \\\"Episode\\\",\\n    \\\"description\\\": \\\"One of the films in the Star Wars Trilogy\\\",\\n    \\\"values\\\": [\\n      \\\"NEWHOPE\\\",\\n      \\\"EMPIRE\\\",\\n      \\\"JEDI\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"INTERFACE\\\",\\n    \\\"name\\\": \\\"Character\\\",\\n    \\\"description\\\": \\\"A character in the Star Wars Trilogy\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      }\\n    }\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Human\\\",\\n    \\\"description\\\": \\\"A humanoid creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"homePlanet\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Droid\\\",\\n    \\\"description\\\": \\\"A mechanical creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"primaryFunction\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Query\\\",\\n    \\\"fields\\\": {\\n      \\\"hero\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"args\\\": {\\n          \\\"episode\\\": {\\n            \\\"type\\\": \\\"Episode\\\"\\n          }\\n        }\\n      },\\n      \\\"human\\\": {\\n        \\\"type\\\": \\\"Human\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      },\\n      \\\"droid\\\": {\\n        \\\"type\\\": \\\"Droid\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      }\\n    }\\n  }\\n]\\n```\",\"readmeFilename\":\"README.md\",\"_id\":\"graphql-shorthand-parser@0.0.6\",\"dist\":{\"tarball\":\"https://registry.npmjs.org/graphql-shorthand-parser/-/graphql-shorthand-parser-0.0.6.tgz\",\"shasum\":\"7b65fe0fe822fd3bd8d1ebd42b2f03d20104321b\"},\"_npmVersion\":\"1.3.11\",\"_from\":\".\",\"_npmUser\":{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"},\"maintainers\":[{\"name\":\"cameronhunter\",\"email\":\"hello@cameronhunter.co.uk\"}],\"directories\":{}}},\"readme\":\"# GraphQL Shorthand Parser\\n\\n[![Build Status](https://travis-ci.org/cameronhunter/graphql-shorthand-parser.svg?branch=master)](https://travis-ci.org/cameronhunter/graphql-shorthand-parser) [![NPM Version](https://img.shields.io/npm/v/graphql-shorthand-parser.svg)](https://npmjs.org/package/graphql-shorthand-parser) [![License](https://img.shields.io/npm/l/graphql-shorthand-parser.svg)](https://github.com/cameronhunter/graphql-shorthand-parser/blob/master/LICENSE.md)\\n\\nParse GraphQL shorthand notation into a JSON object that can be used to\\nauto-generate schema files.\\n\\n### Shorthand notation\\n```\\n// One of the films in the Star Wars Trilogy\\nenum Episode {\\n  NEWHOPE\\n  EMPIRE\\n  JEDI\\n}\\n\\n// A character in the Star Wars Trilogy\\ninterface Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n}\\n\\n// A humanoid creature in the Star Wars universe\\ntype Human : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  homePlanet: String\\n}\\n\\n// A mechanical creature in the Star Wars universe\\ntype Droid : Character {\\n  id: String!\\n  name: String\\n  friends: [Character]\\n  appearsIn: [Episode]\\n  primaryFunction: String\\n}\\n\\ntype Query {\\n  hero(episode: Episode): Character\\n  human(id: String!): Human\\n  droid(id: String!): Droid\\n}\\n```\\n\\n### Parsed notation to JSON\\n```json\\n[\\n  {\\n    \\\"type\\\": \\\"ENUM\\\",\\n    \\\"name\\\": \\\"Episode\\\",\\n    \\\"description\\\": \\\"One of the films in the Star Wars Trilogy\\\",\\n    \\\"values\\\": [\\n      \\\"NEWHOPE\\\",\\n      \\\"EMPIRE\\\",\\n      \\\"JEDI\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"INTERFACE\\\",\\n    \\\"name\\\": \\\"Character\\\",\\n    \\\"description\\\": \\\"A character in the Star Wars Trilogy\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      }\\n    }\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Human\\\",\\n    \\\"description\\\": \\\"A humanoid creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"homePlanet\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Droid\\\",\\n    \\\"description\\\": \\\"A mechanical creature in the Star Wars universe\\\",\\n    \\\"fields\\\": {\\n      \\\"id\\\": {\\n        \\\"type\\\": \\\"String\\\",\\n        \\\"required\\\": true\\n      },\\n      \\\"name\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      },\\n      \\\"friends\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"appearsIn\\\": {\\n        \\\"type\\\": \\\"Episode\\\",\\n        \\\"list\\\": true\\n      },\\n      \\\"primaryFunction\\\": {\\n        \\\"type\\\": \\\"String\\\"\\n      }\\n    },\\n    \\\"interfaces\\\": [\\n      \\\"Character\\\"\\n    ]\\n  },\\n  {\\n    \\\"type\\\": \\\"TYPE\\\",\\n    \\\"name\\\": \\\"Query\\\",\\n    \\\"fields\\\": {\\n      \\\"hero\\\": {\\n        \\\"type\\\": \\\"Character\\\",\\n        \\\"args\\\": {\\n          \\\"episode\\\": {\\n            \\\"type\\\": \\\"Episode\\\"\\n          }\\n        }\\n      },\\n      \\\"human\\\": {\\n        \\\"type\\\": \\\"Human\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      },\\n      \\\"droid\\\": {\\n        \\\"type\\\": \\\"Droid\\\",\\n        \\\"args\\\": {\\n          \\\"id\\\": {\\n            \\\"type\\\": \\\"String\\\",\\n            \\\"required\\\": true\\n          }\\n        }\\n      }\\n    }\\n  }\\n]\\n```\"}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/index/474829c21c2e69d2c0d889af2a714584.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"CouchDB/1.5.0 (Erlang OTP/R16B03)\",\n    \"etag\": \"\\\"2-8a4abe71d406323ccb96762a491f6a53\\\"\",\n    \"date\": \"Fri, 13 May 2016 18:07:13 GMT\",\n    \"content-type\": \"application/json\",\n    \"content-length\": \"31773\",\n    \"cache-control\": \"must-revalidate\"\n  },\n  \"url\": \"https://skimdb.npmjs.com:443/registry/graphql-shorthand-parser\",\n  \"time\": 783,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"content-type\": \"application/json\",\n      \"accept\": \"application/json\",\n      \"host\": \"skimdb.npmjs.com\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/index/ae18615611dfb3f32feaf1c607df7bac",
    "content": "{\"_id\":\"bower\",\"_rev\":\"243-ee588285b884979435a37fcca5d73613\",\"name\":\"bower\",\"description\":\"The browser package manager\",\"dist-tags\":{\"latest\":\"1.7.9\",\"beta\":\"1.7.9\"},\"versions\":{\"0.1.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.1.0\",\"author\":{\"name\":\"some twitter nerds\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"http://opensource.org/licenses/MIT\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">= 0.8.0\"},\"dependencies\":{\"tmp\":\"latest\",\"vows\":\"latest\",\"glob\":\"latest\",\"nopt\":\"latest\",\"archy\":\"latest\",\"async\":\"latest\",\"colors\":\"latest\",\"rimraf\":\"latest\",\"mkdirp\":\"latest\",\"semver\":\"latest\",\"request\":\"latest\",\"fstream\":\"latest\",\"hogan.js\":\"latest\",\"underscore\":\"latest\",\"read-package-json\":\"latest\"},\"devDependencies\":{\"mocha\":\"latest\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.1.0\",\"dist\":{\"shasum\":\"ced4fa98f3f4074f297c3130dd052f4ddf4f6876\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.1.0.tgz\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"}],\"directories\":{}},\"0.1.2\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.1.2\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">= 0.8.0\"},\"dependencies\":{\"tmp\":\"latest\",\"vows\":\"latest\",\"glob\":\"latest\",\"nopt\":\"latest\",\"archy\":\"latest\",\"async\":\"latest\",\"colors\":\"latest\",\"rimraf\":\"latest\",\"mkdirp\":\"latest\",\"semver\":\"latest\",\"request\":\"latest\",\"fstream\":\"latest\",\"hogan.js\":\"latest\",\"lodash\":\"latest\",\"read-package-json\":\"latest\"},\"scripts\":{\"test\":\"mocha -R spec -t 10000\"},\"devDependencies\":{\"mocha\":\"latest\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.1.2\",\"dist\":{\"shasum\":\"b831789c113db329b791e0f24bed4ae747d785a8\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.1.2.tgz\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"}],\"directories\":{}},\"0.1.3\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.1.3\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">= 0.8.0\"},\"dependencies\":{\"tmp\":\"latest\",\"vows\":\"latest\",\"glob\":\"latest\",\"nopt\":\"latest\",\"archy\":\"latest\",\"async\":\"latest\",\"colors\":\"latest\",\"rimraf\":\"latest\",\"mkdirp\":\"latest\",\"semver\":\"latest\",\"request\":\"latest\",\"fstream\":\"latest\",\"hogan.js\":\"latest\",\"lodash\":\"latest\",\"read-package-json\":\"latest\"},\"scripts\":{\"test\":\"mocha -R spec -t 10000\"},\"devDependencies\":{\"mocha\":\"latest\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.1.3\",\"dist\":{\"shasum\":\"720d188397b67753503009c594fbe6c2719a9e72\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.1.3.tgz\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"}],\"directories\":{}},\"0.2.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.2.0\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">= 0.8.0\"},\"dependencies\":{\"tmp\":\"latest\",\"vows\":\"latest\",\"glob\":\"latest\",\"nopt\":\"latest\",\"archy\":\"latest\",\"async\":\"latest\",\"colors\":\"latest\",\"rimraf\":\"latest\",\"mkdirp\":\"latest\",\"semver\":\"latest\",\"request\":\"latest\",\"fstream\":\"latest\",\"hogan.js\":\"latest\",\"lodash\":\"latest\",\"read-package-json\":\"latest\"},\"scripts\":{\"test\":\"mocha -R spec -t 10000\"},\"devDependencies\":{\"mocha\":\"latest\",\"nock\":\"latest\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.2.0\",\"dist\":{\"shasum\":\"ed7f0806da817d1f1f532cf92c921b0f45f87d62\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.2.0.tgz\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"}],\"directories\":{}},\"0.3.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.3.0\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">= 0.8.0\"},\"dependencies\":{\"tmp\":\"latest\",\"vows\":\"latest\",\"glob\":\"latest\",\"nopt\":\"latest\",\"archy\":\"latest\",\"async\":\"latest\",\"colors\":\"latest\",\"rimraf\":\"latest\",\"mkdirp\":\"latest\",\"semver\":\"latest\",\"request\":\"latest\",\"fstream\":\"latest\",\"hogan.js\":\"latest\",\"lodash\":\"latest\",\"read-package-json\":\"latest\",\"stable\":\"latest\",\"rc\":\"latest\"},\"scripts\":{\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"latest\",\"nock\":\"latest\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.3.0\",\"dist\":{\"shasum\":\"d5497e85fbedd9efeba2d37dcce139a1ec8f988d\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.3.0.tgz\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"}],\"directories\":{}},\"0.3.1\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.3.1\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">= 0.8.0\"},\"dependencies\":{\"tmp\":\"latest\",\"vows\":\"latest\",\"glob\":\"latest\",\"nopt\":\"latest\",\"archy\":\"latest\",\"async\":\"latest\",\"colors\":\"latest\",\"rimraf\":\"latest\",\"mkdirp\":\"latest\",\"semver\":\"latest\",\"request\":\"latest\",\"fstream\":\"latest\",\"hogan.js\":\"latest\",\"lodash\":\"latest\",\"read-package-json\":\"latest\",\"stable\":\"latest\",\"rc\":\"latest\"},\"scripts\":{\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"latest\",\"nock\":\"latest\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.3.1\",\"dist\":{\"shasum\":\"15fc958e83fc8348f4424890ca5d43cc3a75811d\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.3.1.tgz\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"}],\"directories\":{}},\"0.3.2\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.3.2\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.15\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\"},\"scripts\":{\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.3.2\",\"dist\":{\"shasum\":\"8553116cc03b3bf14e925125eee9b2bf355b67d5\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.3.2.tgz\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"}],\"directories\":{}},\"0.4.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.4.0\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.15\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.4.0\",\"dist\":{\"shasum\":\"48718e7951a318fe745d0a1d965ff70521096e4d\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.4.0.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.5.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.5.0\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.15\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.5.0\",\"dist\":{\"shasum\":\"60615ec399b30f17afbc779ceb1d8884120b235e\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.5.0.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.5.1\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.5.1\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.15\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.5.1\",\"dist\":{\"shasum\":\"b2a54b26434b15fa4fd3927181cd88abac2da1d7\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.5.1.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.6.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.6.0\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.15\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.6.0\",\"dist\":{\"shasum\":\"09a0bbc905e2fec6f009e7687b4986a4aaefc9c8\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.6.0.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.6.1\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.6.1\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.6.1\",\"dist\":{\"shasum\":\"2be10ecf4f0dfd14688da81e28a151e2c8fa88a4\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.6.1.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.6.2\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.6.2\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.6.2\",\"dist\":{\"shasum\":\"663fd000d2d73c394531379d173d202ae7e0c7d1\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.6.2.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.6.3\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.6.3\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.6.3\",\"dist\":{\"shasum\":\"85f919e0c4d72e19335ba0cea72e7a890110f616\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.6.3.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.6.4\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.6.4\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.6.4\",\"dist\":{\"shasum\":\"4812516aed2ba064e3c41f40d5ac63ce8b821996\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.6.4.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.6.5\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.6.5\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.6.5\",\"dist\":{\"shasum\":\"29732f5312cdf0d5612e549719b5b987e59c857b\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.6.5.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.6.6\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.6.6\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.6.6\",\"dist\":{\"shasum\":\"6ac23c4f13bf7621d396ecfe37a8429cf4c23038\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.6.6.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.6.7\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.6.7\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.6.7\",\"dist\":{\"shasum\":\"393bf6d3b16679cadf2e60d554f52d3517f2663b\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.6.7.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.6.8\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.6.8\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.6.8\",\"dist\":{\"shasum\":\"6f7266a1a9929947c66b87045094137b3e1e65b6\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.6.8.tgz\"},\"_npmVersion\":\"1.1.65\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.7.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.7.0\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"postinstall\":\"node cleanup\",\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.7.0\",\"dist\":{\"shasum\":\"9acd8601a414c681248cb0a8a233276d9e8bb20a\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.7.0.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.7.1\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.7.1\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"vows\":\"~0.6.4\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.1.22\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.2\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~0.9.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.0.4\",\"tar\":\"~0.1.13\"},\"scripts\":{\"test\":\"mocha -R spec -t 20000\"},\"devDependencies\":{\"mocha\":\"~1.6.0\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.7.1\",\"dist\":{\"shasum\":\"39ab3552fdd906bc6b8fbbf4218a9dd06b4c20b6\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.7.1.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.8.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.8.0\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.1.4\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"~0.1.3\",\"tar\":\"~0.1.13\",\"promptly\":\"~0.1.0\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.8.0\",\"dist\":{\"shasum\":\"4ae1c4160e2598e3336a0ff3dbce7e1c6922dca0\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.8.0.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.8.1\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.8.1\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.1.4\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"~0.1.3\",\"tar\":\"~0.1.13\",\"promptly\":\"~0.1.0\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.8.1\",\"dist\":{\"shasum\":\"a59e6059bcc4ce7e63123ec7ee039a28d3d6e1cc\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.8.1.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.8.2\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.8.2\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.3\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"~0.1.3\",\"tar\":\"~0.1.13\",\"promptly\":\"~0.1.0\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.8.2\",\"dist\":{\"shasum\":\"bc0227ca9c6c9a2b091f854c6ce79580d93a7bc7\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.8.2.tgz\"},\"_npmVersion\":\"1.1.69\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.8.3\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.8.3\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.3\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"~0.1.3\",\"tar\":\"~0.1.13\",\"promptly\":\"~0.1.0\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.8.3\",\"dist\":{\"shasum\":\"5d01bcc17aa1caed96e2f81674a88e1c272f15cd\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.8.3.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.8.4\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.8.4\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.3\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"~0.1.3\",\"tar\":\"~0.1.13\",\"promptly\":\"~0.1.0\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.8.4\",\"dist\":{\"shasum\":\"227a25dfd55346b89c4f374a4a454ba08029a48f\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.8.4.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.8.5\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.8.5\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.3\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"~0.1.3\",\"tar\":\"~0.1.13\",\"promptly\":\"~0.1.0\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.8.5\",\"dist\":{\"shasum\":\"8c95a3f4e4f3fc717d398283db919d1ad4b1df66\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.8.5.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.11\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.8.6\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.8.6\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.16\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.3\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.1.4\",\"tar\":\"~0.1.13\",\"promptly\":\"~0.1.0\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.13.5\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.8.6\",\"dist\":{\"shasum\":\"bb75f87c513626e80f52eb0df11bf37004af8b18\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.8.6.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.14\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.9.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.9.0\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/twitter/bower/blob/master/LICENSE\"}],\"main\":\"lib\",\"homepage\":\"http://twitter.github.com/bower\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"tmp\":\"~0.0.17\",\"glob\":\"~3.1.14\",\"nopt\":\"~2.0.0\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"rimraf\":\"~2.0.3\",\"mkdirp\":\"~0.3.4\",\"semver\":\"~1.1.0\",\"request\":\"~2.11.4\",\"fstream\":\"~0.1.19\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"read-package-json\":\"~0.1.8\",\"stable\":\"~0.1.2\",\"rc\":\"~0.0.6\",\"unzip\":\"0.1.7\",\"tar\":\"~0.1.13\",\"promptly\":\"~0.1.0\",\"abbrev\":\"~1.0.4\",\"update-notifier\":\"~0.1.3\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.17.3\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.9.0\",\"dist\":{\"shasum\":\"ee64f254ec9ff03324e075654a3d5e12f2b0089e\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.9.0.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.14\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.9.1\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.9.1\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io/\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"fstream\":\"~0.1.19\",\"glob\":\"~3.1.14\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"mkdirp\":\"~0.3.4\",\"nopt\":\"~2.0.0\",\"promptly\":\"~0.1.0\",\"rc\":\"~0.0.6\",\"read-package-json\":\"~0.1.8\",\"request\":\"~2.11.4\",\"rimraf\":\"~2.0.3\",\"semver\":\"~1.1.0\",\"stable\":\"~0.1.2\",\"tar\":\"~0.1.13\",\"tmp\":\"~0.0.17\",\"unzip\":\"0.1.7\",\"update-notifier\":\"~0.1.3\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.17.3\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.9.1\",\"dist\":{\"shasum\":\"d10db97807f2e0946c73b960e71df18b008ec885\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.9.1.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.14\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.9.2\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.9.2\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io/\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"fstream\":\"~0.1.19\",\"glob\":\"~3.1.14\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"mkdirp\":\"~0.3.4\",\"nopt\":\"~2.0.0\",\"promptly\":\"~0.1.0\",\"rc\":\"~0.0.6\",\"read-package-json\":\"~0.1.8\",\"request\":\"~2.11.4\",\"rimraf\":\"~2.0.3\",\"semver\":\"~1.1.0\",\"stable\":\"~0.1.2\",\"tar\":\"~0.1.13\",\"tmp\":\"~0.0.17\",\"unzip\":\"0.1.7\",\"update-notifier\":\"~0.1.3\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.17.3\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"_id\":\"bower@0.9.2\",\"dist\":{\"shasum\":\"cafc6209502ca558b110fe6f30465143a469b7f3\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.9.2.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.2.14\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"0.10.0\":{\"name\":\"bower\",\"description\":\"The browser package manager.\",\"version\":\"0.10.0\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io/\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"~0.0.2\",\"async\":\"~0.2.5\",\"colors\":\"~0.6.0-1\",\"fstream\":\"~0.1.19\",\"glob\":\"~3.1.14\",\"hogan.js\":\"~2.0.0\",\"lodash\":\"~1.0.1\",\"mkdirp\":\"~0.3.4\",\"nopt\":\"~2.0.0\",\"promptly\":\"~0.1.0\",\"rc\":\"~0.3.0\",\"read-package-json\":\"~0.1.8\",\"request\":\"~2.11.4\",\"rimraf\":\"~2.0.3\",\"semver\":\"~2.0.7\",\"stable\":\"~0.1.2\",\"tar\":\"~0.1.13\",\"tmp\":\"~0.0.20\",\"unzip\":\"0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"scripts\":{\"test\":\"mocha --reporter spec --timeout 40000\"},\"devDependencies\":{\"mocha\":\"~1.8.1\",\"nock\":\"~0.17.3\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@0.10.0\",\"dist\":{\"shasum\":\"d62ebf3c47644f6875604c68184a21b90f29e973\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-0.10.0.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"1.0.0\":{\"name\":\"bower\",\"version\":\"1.0.0\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"archy\":\"0.0.2\",\"abbrev\":\"~1.0.4\",\"bower-config\":\"~0.1.0\",\"bower-endpoint-parser\":\"~0.1.0\",\"bower-json\":\"~0.1.0\",\"bower-logger\":\"~0.1.0\",\"bower-registry-client\":\"~0.1.0\",\"chmodr\":\"~0.1.0\",\"colors\":\"~0.6.0-1\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.22.0\",\"request-progress\":\"~0.2.0\",\"request-replay\":\"~0.1.2\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.0.8\",\"stringify-object\":\"~0.1.4\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-execute\":\"~0.1.4\",\"grunt-shell\":\"~0.3.0\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.0.0\",\"dist\":{\"shasum\":\"049eebd141f7859cf6dded0818b45be250a6b1a2\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.0.0.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"1.0.1\":{\"name\":\"bower\",\"version\":\"1.0.1\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"archy\":\"0.0.2\",\"abbrev\":\"~1.0.4\",\"bower-config\":\"~0.2.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.2.0\",\"bower-logger\":\"~0.1.0\",\"bower-registry-client\":\"~0.1.1\",\"chmodr\":\"~0.1.0\",\"colors\":\"~0.6.0-1\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.25.0\",\"request-progress\":\"~0.2.0\",\"request-replay\":\"~0.1.2\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.0.8\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-execute\":\"~0.1.4\",\"grunt-shell\":\"~0.3.0\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.0.1\",\"dist\":{\"shasum\":\"2878db9554588fa3ada335c0308467a7ac4f4cab\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.0.1.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"1.0.2\":{\"name\":\"bower\",\"version\":\"1.0.2\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"archy\":\"0.0.2\",\"abbrev\":\"~1.0.4\",\"bower-config\":\"~0.2.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.2.0\",\"bower-logger\":\"~0.1.0\",\"bower-registry-client\":\"~0.1.1\",\"chmodr\":\"~0.1.0\",\"colors\":\"~0.6.0-1\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.25.0\",\"request-progress\":\"~0.2.0\",\"request-replay\":\"~0.1.2\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.0.8\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-execute\":\"~0.1.4\",\"grunt-shell\":\"~0.3.0\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.0.2\",\"dist\":{\"shasum\":\"48e23891ecdcb299dca8c86b29a18bd96a391456\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.0.2.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"1.0.3\":{\"name\":\"bower\",\"version\":\"1.0.3\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"archy\":\"0.0.2\",\"abbrev\":\"~1.0.4\",\"bower-config\":\"~0.2.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.2.0\",\"bower-logger\":\"~0.1.0\",\"bower-registry-client\":\"~0.1.1\",\"chmodr\":\"~0.1.0\",\"colors\":\"~0.6.0-1\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.25.0\",\"request-progress\":\"~0.2.0\",\"request-replay\":\"~0.1.2\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.0.8\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-execute\":\"~0.1.4\",\"grunt-shell\":\"~0.3.0\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.0.3\",\"dist\":{\"shasum\":\"30221d521ebeb7243ced1fefafa83c4910ea30d6\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.0.3.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"1.1.0\":{\"name\":\"bower\",\"version\":\"1.1.0\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"ansicolors\":\"~0.2.1\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.2.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.2.0\",\"bower-logger\":\"~0.1.0\",\"bower-registry-client\":\"~0.1.2\",\"cardinal\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"colors\":\"~0.6.0-1\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.25.0\",\"request-progress\":\"~0.2.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-execute\":\"~0.1.4\",\"grunt-shell\":\"~0.3.0\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.1.0\",\"dist\":{\"shasum\":\"fd30de015c254d53ddf2abd7ca086a36e1db64cd\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.1.0.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}],\"directories\":{}},\"1.1.1\":{\"name\":\"bower\",\"version\":\"1.1.1\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.3.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.3.0\",\"bower-logger\":\"~0.1.0\",\"bower-registry-client\":\"~0.1.2\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.25.0\",\"request-progress\":\"~0.2.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.1.1\",\"dist\":{\"shasum\":\"d3ac38b690c61460a76ebc5ddecd9e5ec8d65b75\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.1.1.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.1.2\":{\"name\":\"bower\",\"version\":\"1.1.2\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.3.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.3.0\",\"bower-logger\":\"~0.1.0\",\"bower-registry-client\":\"~0.1.2\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.25.0\",\"request-progress\":\"~0.2.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.1.2\",\"dist\":{\"shasum\":\"89c8d5c75b8359e06fc6a6e3cf4105c3bd6946a1\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.1.2.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.2.0\":{\"name\":\"bower\",\"version\":\"1.2.0\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.4.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.0\",\"bower-registry-client\":\"~0.1.2\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.25.0\",\"request-progress\":\"~0.2.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.2.0\",\"dist\":{\"shasum\":\"8ec3d0feb4dc2ea5d995f76801a7063ff497b8c3\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.2.0.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.2.1\":{\"name\":\"bower\",\"version\":\"1.2.1\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.4.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.0\",\"bower-registry-client\":\"~0.1.2\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.25.0\",\"request-progress\":\"~0.2.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.2.1\",\"dist\":{\"shasum\":\"e25fd6c7677205f04b0992f6725048b899f7d779\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.2.1.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.2.2\":{\"name\":\"bower\",\"version\":\"1.2.2\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.4.3\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.1\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.27.0\",\"request-progress\":\"~0.2.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.5.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.2.2\",\"dist\":{\"shasum\":\"f6bc27b0a3b87d201c9223792795b6d7fd31b6c0\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.2.2.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.2\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.2.3\":{\"name\":\"bower\",\"version\":\"1.2.3\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.4.3\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.1\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.27.0\",\"request-progress\":\"~0.2.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.5.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.2.3\",\"dist\":{\"shasum\":\"5a578d7f502074190ac30a35f6faf19847d0496f\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.2.3.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.8\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.2.4\":{\"name\":\"bower\",\"version\":\"1.2.4\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.4.3\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.1\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.2.2\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.27.0\",\"request-progress\":\"~0.2.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.5.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.2.4\",\"dist\":{\"shasum\":\"7dce66cef5ffab8ef56c053d8df5aa1f1356cfac\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.2.4.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.8\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.2.5\":{\"name\":\"bower\",\"version\":\"1.2.5\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.4.3\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.1\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.3.0\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"osenv\":\"0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.27.0\",\"request-progress\":\"~0.2.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.5.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.2.5\",\"dist\":{\"shasum\":\"2ef3f565fb6d143582318def68b4b084ac3e5a86\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.2.5.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.8\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.2.6\":{\"name\":\"bower\",\"version\":\"1.2.6\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.1\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.3.0\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.6.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"osenv\":\"0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.27.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.5.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.2.6\",\"dist\":{\"shasum\":\"a8b7bd344601554821957b9ab62fb436febc674d\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.2.6.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.8\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.2.7\":{\"name\":\"bower\",\"version\":\"1.2.7\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.1\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.3.0\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.7.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"osenv\":\"0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.27.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"unzip\":\"~0.1.7\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.5.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.2.7\",\"dist\":{\"shasum\":\"5b0505c8192bd61a752a7cf8b718d1b3054cd554\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.2.7.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.5\",\"_npmUser\":{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"}]},\"1.2.8\":{\"name\":\"bower\",\"version\":\"1.2.8\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.8.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.1\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.2.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.3\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.0.11\",\"inquirer\":\"~0.3.0\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.7.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.3.0\",\"open\":\"~0.0.3\",\"osenv\":\"0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~0.9.2\",\"request\":\"~2.27.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.1.0\",\"stringify-object\":\"~0.1.4\",\"sudo-block\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\",\"p-throttler\":\"~0.0.1\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.6.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"~1.12.0\",\"nock\":\"~0.22.0\",\"istanbul\":\"~0.1.42\",\"proxyquire\":\"~0.5.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.2.8\",\"dist\":{\"shasum\":\"f63c0804a267d5ffaf2fd3fd488367e73dce202f\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.2.8.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.14\",\"_npmUser\":{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"}]},\"1.3.0\":{\"name\":\"bower\",\"version\":\"1.3.0\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.3\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.4.0\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.9.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.5.0\",\"open\":\"~0.0.3\",\"osenv\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.0\",\"request\":\"~2.33.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.2.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\",\"p-throttler\":\"~0.0.1\",\"insight\":\"~0.3.0\",\"is-root\":\"~0.1.0\",\"shell-quote\":\"~1.4.1\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.8.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"*\",\"nock\":\"~0.27.2\",\"istanbul\":\"~0.2.4\",\"proxyquire\":\"~0.5.0\",\"load-grunt-tasks\":\"~0.3.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.0\",\"dist\":{\"shasum\":\"d615ad16859b64c02e3f6b584d3e0d5f669f4063\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.0.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.4.4\",\"_npmUser\":{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"}]},\"1.3.1\":{\"name\":\"bower\",\"version\":\"1.3.1\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.3\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.4.0\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.9.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.5.0\",\"open\":\"~0.0.3\",\"osenv\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.0\",\"request\":\"~2.33.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.2.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\",\"p-throttler\":\"~0.0.1\",\"insight\":\"~0.3.0\",\"is-root\":\"~0.1.0\",\"shell-quote\":\"~1.4.1\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.8.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"*\",\"nock\":\"~0.27.2\",\"istanbul\":\"~0.2.4\",\"proxyquire\":\"~0.5.0\",\"load-grunt-tasks\":\"~0.3.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.1\",\"dist\":{\"shasum\":\"60d564e774be4e60631a159566830fce260e469a\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.1.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.11\",\"_npmUser\":{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"}]},\"1.3.2\":{\"name\":\"bower\",\"version\":\"1.3.2\",\"description\":\"The browser package manager.\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.1.4\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.3\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.1\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.4.0\",\"junk\":\"~0.2.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.9.0\",\"nopt\":\"~2.1.1\",\"lru-cache\":\"~2.5.0\",\"open\":\"~0.0.3\",\"osenv\":\"~0.0.3\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.0\",\"request\":\"~2.33.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.2.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"update-notifier\":\"~0.1.3\",\"which\":\"~1.0.5\",\"p-throttler\":\"~0.0.1\",\"insight\":\"~0.3.0\",\"is-root\":\"~0.1.0\",\"shell-quote\":\"~1.4.1\",\"lockfile\":\"~0.4.2\"},\"devDependencies\":{\"expect.js\":\"~0.2.0\",\"grunt\":\"~0.4.1\",\"grunt-simple-mocha\":\"~0.4.0\",\"grunt-contrib-watch\":\"~0.5.0\",\"grunt-contrib-jshint\":\"~0.8.0\",\"grunt-exec\":\"~0.4.2\",\"mocha\":\"*\",\"nock\":\"~0.27.2\",\"istanbul\":\"~0.2.4\",\"proxyquire\":\"~0.5.0\",\"load-grunt-tasks\":\"~0.3.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.2\",\"dist\":{\"shasum\":\"ae1eeea5c3ba9300e10e55b193e9d2fd5407fb7b\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.2.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.4.4\",\"_npmUser\":{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"}]},\"1.3.3\":{\"name\":\"bower\",\"version\":\"1.3.3\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"~0.0.2\",\"bower-config\":\"~0.5.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.6\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.9\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.4.0\",\"insight\":\"~0.3.0\",\"is-root\":\"~0.1.0\",\"junk\":\"~0.3.0\",\"lockfile\":\"~0.4.2\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.9.1\",\"nopt\":\"~2.2.0\",\"opn\":\"~0.1.1\",\"osenv\":\"~0.0.3\",\"p-throttler\":\"~0.0.1\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.34.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.2.1\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"update-notifier\":\"~0.1.8\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.2.4\",\"load-grunt-tasks\":\"~0.4.0\",\"mocha\":\"~1.18\",\"nock\":\"~0.28.2\",\"proxyquire\":\"~0.6.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.3\",\"dist\":{\"shasum\":\"9aaed731c5d56a86ccdc8b6bcb0b9284b3a6b225\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.3.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.24\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"}]},\"1.3.4\":{\"name\":\"bower\",\"version\":\"1.3.4\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"~0.0.2\",\"bower-config\":\"~0.5.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.6\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.9\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.4.0\",\"insight\":\"~0.3.0\",\"is-root\":\"~0.1.0\",\"junk\":\"~0.3.0\",\"lockfile\":\"~0.4.2\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.9.1\",\"nopt\":\"~2.2.0\",\"opn\":\"~0.1.1\",\"osenv\":\"~0.0.3\",\"p-throttler\":\"~0.0.1\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.34.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.2.1\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"update-notifier\":\"~0.1.8\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.2.4\",\"load-grunt-tasks\":\"~0.4.0\",\"mocha\":\"~1.18\",\"nock\":\"~0.28.2\",\"proxyquire\":\"~0.6.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.4\",\"_shasum\":\"90f0c714a0ebac7bdf6b710e608077c4f128180f\",\"_from\":\".\",\"_npmVersion\":\"1.4.9\",\"_npmUser\":{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"}],\"dist\":{\"shasum\":\"90f0c714a0ebac7bdf6b710e608077c4f128180f\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.4.tgz\"}},\"1.3.5\":{\"name\":\"bower\",\"version\":\"1.3.5\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"~0.0.2\",\"bower-config\":\"~0.5.0\",\"bower-endpoint-parser\":\"~0.2.0\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.6\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~3.2.9\",\"graceful-fs\":\"~2.0.0\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.4.0\",\"insight\":\"~0.3.0\",\"is-root\":\"~0.1.0\",\"junk\":\"~0.3.0\",\"lockfile\":\"~0.4.2\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"~0.3.5\",\"mout\":\"~0.9.1\",\"nopt\":\"~2.2.0\",\"opn\":\"~0.1.1\",\"osenv\":\"~0.0.3\",\"p-throttler\":\"~0.0.1\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.34.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.2.1\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.20\",\"update-notifier\":\"~0.1.8\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.2.4\",\"load-grunt-tasks\":\"~0.4.0\",\"mocha\":\"~1.18\",\"nock\":\"~0.28.2\",\"proxyquire\":\"~0.6.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.5\",\"dist\":{\"shasum\":\"36a749fa8d0ac4d96609f721d15c93834bdaf98b\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.5.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.24\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"}]},\"1.3.6\":{\"name\":\"bower\",\"version\":\"1.3.6\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"~0.0.2\",\"bower-config\":\"~0.5.2\",\"bower-endpoint-parser\":\"~0.2.2\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.6\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~4.0.2\",\"graceful-fs\":\"~3.0.1\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.5.1\",\"insight\":\"~0.3.0\",\"is-root\":\"~0.1.0\",\"junk\":\"~0.3.0\",\"lockfile\":\"~0.4.2\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"~0.5.0\",\"mout\":\"~0.9.1\",\"nopt\":\"~3.0.0\",\"opn\":\"~0.1.1\",\"osenv\":\"~0.1.0\",\"p-throttler\":\"~0.0.1\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.36.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.3.0\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.23\",\"update-notifier\":\"~0.1.8\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.2.4\",\"load-grunt-tasks\":\"~0.4.0\",\"mocha\":\"~1.20.1\",\"nock\":\"~0.34.1\",\"proxyquire\":\"~1.0.1\",\"coveralls\":\"~2.10.0\",\"node-uuid\":\"~1.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.6\",\"dist\":{\"shasum\":\"db643fdaab0376c3c526939d709e9852a46ca2ed\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.6.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.24\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"}]},\"1.3.7\":{\"name\":\"bower\",\"version\":\"1.3.7\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"~0.0.2\",\"bower-config\":\"~0.5.2\",\"bower-endpoint-parser\":\"~0.2.2\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.6\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~4.0.2\",\"graceful-fs\":\"~3.0.1\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.5.1\",\"insight\":\"~0.3.0\",\"is-root\":\"~0.1.0\",\"junk\":\"~0.3.0\",\"lockfile\":\"~0.4.2\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"~0.5.0\",\"mout\":\"~0.9.1\",\"nopt\":\"~3.0.0\",\"opn\":\"~0.1.1\",\"osenv\":\"~0.1.0\",\"p-throttler\":\"~0.0.1\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.36.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.3.0\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"~0.0.23\",\"update-notifier\":\"~0.1.8\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.2.4\",\"load-grunt-tasks\":\"~0.4.0\",\"mocha\":\"~1.20.1\",\"nock\":\"~0.34.1\",\"proxyquire\":\"~1.0.1\",\"coveralls\":\"~2.10.0\",\"node-uuid\":\"~1.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.7\",\"dist\":{\"shasum\":\"498c3112c26d69eec3e17f00f760bccd7e4ac004\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.7.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.3.24\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"}]},\"1.3.8\":{\"name\":\"bower\",\"version\":\"1.3.8\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"~0.0.2\",\"bower-config\":\"~0.5.2\",\"bower-endpoint-parser\":\"~0.2.2\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.4.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"~0.0.6\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"~0.0.6\",\"glob\":\"~4.0.2\",\"graceful-fs\":\"~3.0.1\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.5.1\",\"insight\":\"~0.3.0\",\"is-root\":\"~0.1.0\",\"junk\":\"~0.3.0\",\"lockfile\":\"~0.4.2\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"~0.5.0\",\"mout\":\"~0.9.1\",\"nopt\":\"~3.0.0\",\"opn\":\"~0.1.1\",\"osenv\":\"~0.1.0\",\"p-throttler\":\"~0.0.1\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.36.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.3.0\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"0.0.23\",\"update-notifier\":\"~0.2.0\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.2.4\",\"load-grunt-tasks\":\"~0.4.0\",\"mocha\":\"~1.20.1\",\"nock\":\"~0.34.1\",\"proxyquire\":\"~1.0.1\",\"coveralls\":\"~2.10.0\",\"node-uuid\":\"~1.4.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.8\",\"dist\":{\"shasum\":\"afa3338a8a88a6e084c38112ea4a15998cbee3e6\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.8.tgz\"},\"_from\":\".\",\"_npmVersion\":\"1.4.6\",\"_npmUser\":{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"}]},\"1.3.9\":{\"name\":\"bower\",\"version\":\"1.3.9\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.2\",\"bower-endpoint-parser\":\"~0.2.2\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.5.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"0.0.6\",\"fstream\":\"~0.1.22\",\"fstream-ignore\":\"0.0.6\",\"glob\":\"~4.0.2\",\"graceful-fs\":\"~3.0.1\",\"handlebars\":\"~1.3.0\",\"inquirer\":\"~0.5.1\",\"insight\":\"~0.4.1\",\"is-root\":\"~0.1.0\",\"junk\":\"~0.3.0\",\"lockfile\":\"~0.4.2\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"~0.5.0\",\"mout\":\"~0.9.1\",\"nopt\":\"~3.0.0\",\"opn\":\"~0.1.1\",\"osenv\":\"~0.1.0\",\"p-throttler\":\"0.0.1\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.36.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.3.0\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~0.2.0\",\"tar\":\"~0.1.17\",\"tmp\":\"0.0.23\",\"update-notifier\":\"~0.2.0\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"coveralls\":\"~2.11.0\",\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.2.4\",\"load-grunt-tasks\":\"~0.6.0\",\"mocha\":\"~1.20.1\",\"nock\":\"~0.41.0\",\"node-uuid\":\"~1.4.1\",\"proxyquire\":\"~1.0.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"gitHead\":\"a069d1e07d46b81c5a69e391506028f9b076b39d\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.9\",\"_shasum\":\"786d4addfc523e875089ccc1ef8d5a6d6e91a2c6\",\"_from\":\".\",\"_npmVersion\":\"1.4.14\",\"_npmUser\":{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"}],\"dist\":{\"shasum\":\"786d4addfc523e875089ccc1ef8d5a6d6e91a2c6\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.9.tgz\"}},\"1.3.10\":{\"name\":\"bower\",\"version\":\"1.3.10\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.2\",\"bower-endpoint-parser\":\"~0.2.2\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.5.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"0.0.8\",\"fstream\":\"~1.0.2\",\"fstream-ignore\":\"~1.0.1\",\"glob\":\"~4.0.2\",\"graceful-fs\":\"~3.0.1\",\"handlebars\":\"~2.0.0\",\"inquirer\":\"~0.7.1\",\"insight\":\"~0.4.3\",\"is-root\":\"~1.0.0\",\"junk\":\"~1.0.0\",\"lockfile\":\"~1.0.0\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"~0.5.0\",\"mout\":\"~0.10.0\",\"nopt\":\"~3.0.0\",\"opn\":\"~1.0.0\",\"osenv\":\"~0.1.0\",\"p-throttler\":\"0.1.0\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.42.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.3.0\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~1.0.0\",\"tar-fs\":\"~0.5.0\",\"tmp\":\"0.0.23\",\"update-notifier\":\"~0.2.0\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"coveralls\":\"~2.11.0\",\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.3.2\",\"load-grunt-tasks\":\"~0.6.0\",\"mocha\":\"~1.21.4\",\"nock\":\"~0.46.0\",\"node-uuid\":\"~1.4.1\",\"proxyquire\":\"~1.0.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"gitHead\":\"fd4d68038bb8f96df4d16d70f38d6075ddbc0195\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.10\",\"_shasum\":\"f2153c1bf20ec868f5d80a04a61e0fd1547fa52a\",\"_from\":\".\",\"_npmVersion\":\"1.4.23\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"}],\"dist\":{\"shasum\":\"f2153c1bf20ec868f5d80a04a61e0fd1547fa52a\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.10.tgz\"}},\"1.3.11\":{\"name\":\"bower\",\"version\":\"1.3.11\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.2\",\"bower-endpoint-parser\":\"~0.2.2\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"~0.4.0\",\"chalk\":\"~0.5.0\",\"chmodr\":\"~0.1.0\",\"decompress-zip\":\"0.0.8\",\"fstream\":\"~1.0.2\",\"fstream-ignore\":\"~1.0.1\",\"glob\":\"~4.0.2\",\"graceful-fs\":\"~3.0.1\",\"handlebars\":\"~2.0.0\",\"inquirer\":\"~0.7.1\",\"insight\":\"~0.4.3\",\"is-root\":\"~1.0.0\",\"junk\":\"~1.0.0\",\"lockfile\":\"~1.0.0\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"~0.5.0\",\"mout\":\"~0.10.0\",\"nopt\":\"~3.0.0\",\"opn\":\"~1.0.0\",\"osenv\":\"~0.1.0\",\"p-throttler\":\"0.1.0\",\"promptly\":\"~0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.42.0\",\"request-progress\":\"~0.3.0\",\"retry\":\"~0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.3.0\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~1.0.0\",\"tar-fs\":\"~0.5.0\",\"tmp\":\"0.0.23\",\"update-notifier\":\"~0.2.0\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"coveralls\":\"~2.11.0\",\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.3.2\",\"load-grunt-tasks\":\"~0.6.0\",\"mocha\":\"~1.21.4\",\"nock\":\"~0.46.0\",\"node-uuid\":\"~1.4.1\",\"proxyquire\":\"~1.0.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"gitHead\":\"e97bf479fb804f57bb1437bf4ad14ce2cd2bf837\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.11\",\"_shasum\":\"174fe11dafb69d28478d2896878e06f1ed47b789\",\"_from\":\".\",\"_npmVersion\":\"1.4.23\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"}],\"dist\":{\"shasum\":\"174fe11dafb69d28478d2896878e06f1ed47b789\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.11.tgz\"}},\"1.3.12\":{\"name\":\"bower\",\"version\":\"1.3.12\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"~1.0.4\",\"archy\":\"0.0.2\",\"bower-config\":\"~0.5.2\",\"bower-endpoint-parser\":\"~0.2.2\",\"bower-json\":\"~0.4.0\",\"bower-logger\":\"~0.2.2\",\"bower-registry-client\":\"~0.2.0\",\"cardinal\":\"0.4.0\",\"chalk\":\"0.5.0\",\"chmodr\":\"0.1.0\",\"decompress-zip\":\"0.0.8\",\"fstream\":\"~1.0.2\",\"fstream-ignore\":\"~1.0.1\",\"glob\":\"~4.0.2\",\"graceful-fs\":\"~3.0.1\",\"handlebars\":\"~2.0.0\",\"inquirer\":\"0.7.1\",\"insight\":\"0.4.3\",\"is-root\":\"~1.0.0\",\"junk\":\"~1.0.0\",\"lockfile\":\"~1.0.0\",\"lru-cache\":\"~2.5.0\",\"mkdirp\":\"0.5.0\",\"mout\":\"~0.9.0\",\"nopt\":\"~3.0.0\",\"opn\":\"~1.0.0\",\"osenv\":\"0.1.0\",\"p-throttler\":\"0.1.0\",\"promptly\":\"0.2.0\",\"q\":\"~1.0.1\",\"request\":\"~2.42.0\",\"request-progress\":\"0.3.0\",\"retry\":\"0.6.0\",\"rimraf\":\"~2.2.0\",\"semver\":\"~2.3.0\",\"shell-quote\":\"~1.4.1\",\"stringify-object\":\"~1.0.0\",\"tar-fs\":\"0.5.2\",\"tmp\":\"0.0.23\",\"update-notifier\":\"0.2.0\",\"which\":\"~1.0.5\"},\"devDependencies\":{\"coveralls\":\"~2.11.0\",\"expect.js\":\"~0.3.1\",\"grunt\":\"~0.4.4\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"~0.10.0\",\"grunt-contrib-watch\":\"~0.6.1\",\"grunt-exec\":\"~0.4.2\",\"grunt-simple-mocha\":\"~0.4.0\",\"istanbul\":\"~0.3.2\",\"load-grunt-tasks\":\"~0.6.0\",\"mocha\":\"~1.21.4\",\"nock\":\"~0.46.0\",\"node-uuid\":\"~1.4.1\",\"proxyquire\":\"~1.0.1\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"gitHead\":\"b26c072f0db054a1902ec4d2e3726dbf8a1c799a\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.3.12\",\"_shasum\":\"37de0edb3904baf90aee13384a1a379a05ee214c\",\"_from\":\".\",\"_npmVersion\":\"2.0.0\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"}],\"dist\":{\"shasum\":\"37de0edb3904baf90aee13384a1a379a05ee214c\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.3.12.tgz\"}},\"1.4.0\":{\"name\":\"bower\",\"version\":\"1.4.0\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^0.6.0\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^0.2.1\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"0.1.0\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.8.0\",\"insight\":\"^0.5.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^0.56.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"gitHead\":\"ea1f5d1ff088a9397d7d0556c4f7a4597ec102fa\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.4.0\",\"_shasum\":\"87cd9fdec193cbda2379f9cc52977a5829078617\",\"_from\":\".\",\"_npmVersion\":\"2.5.1\",\"_nodeVersion\":\"0.12.0\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"}],\"dist\":{\"shasum\":\"87cd9fdec193cbda2379f9cc52977a5829078617\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.4.0.tgz\"}},\"1.4.1\":{\"name\":\"bower\",\"version\":\"1.4.1\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^0.6.1\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^0.3.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"0.1.0\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.8.0\",\"insight\":\"^0.5.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^0.56.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"gitHead\":\"a1287416d40f944d58cb8f2e774e2076bfffd32f\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.4.1\",\"_shasum\":\"a18be39d030792754f30f1c5b32d37b0156ba8dd\",\"_from\":\".\",\"_npmVersion\":\"2.7.4\",\"_nodeVersion\":\"0.12.0\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"fat\",\"email\":\"jacobthornton@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"}],\"dist\":{\"shasum\":\"a18be39d030792754f30f1c5b32d37b0156ba8dd\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.4.1.tgz\"}},\"1.5.0\":{\"name\":\"bower\",\"version\":\"1.5.0\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^0.6.1\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^0.3.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"0.1.0\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"deep-sort-object\":\"~0.1.1\",\"findup-sync\":\"^0.2.1\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.8.0\",\"insight\":\"^0.5.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^5.0.1\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^0.56.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"45fe5c37ccf1ec3fdfc7ac810ba7703ceb0bda08\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.5.0\",\"_shasum\":\"1279d29c08221443472f455acb4c71f3ebb9f504\",\"_from\":\".\",\"_npmVersion\":\"2.11.3\",\"_nodeVersion\":\"0.12.7\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"1279d29c08221443472f455acb4c71f3ebb9f504\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.5.0.tgz\"},\"maintainers\":[{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"}]},\"1.5.1\":{\"name\":\"bower\",\"version\":\"1.5.1\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^0.6.1\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^0.3.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"0.1.0\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"deep-sort-object\":\"~0.1.1\",\"findup-sync\":\"^0.2.1\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.8.0\",\"insight\":\"^0.5.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^5.0.1\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^0.56.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"23afb3a12964e3b6e0716a9e4eccdba6cbf60f27\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.5.1\",\"_shasum\":\"a099d02fcd3952edb326011234b4fc616dfc3f36\",\"_from\":\".\",\"_npmVersion\":\"2.11.3\",\"_nodeVersion\":\"0.12.7\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"a099d02fcd3952edb326011234b4fc616dfc3f36\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.5.1.tgz\"},\"maintainers\":[{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"}]},\"1.5.2\":{\"name\":\"bower\",\"version\":\"1.5.2\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^0.6.1\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^0.3.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"0.1.0\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"deep-sort-object\":\"~0.1.1\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.8.0\",\"insight\":\"^0.5.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^0.56.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"64d990ba102c8491c474dd99605b9a9725e62cbb\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.5.2\",\"_shasum\":\"be291d6c36f1740779abff1c61aca5633e265327\",\"_from\":\".\",\"_npmVersion\":\"2.11.3\",\"_nodeVersion\":\"0.12.7\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"be291d6c36f1740779abff1c61aca5633e265327\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.5.2.tgz\"},\"maintainers\":[{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"}]},\"1.5.3\":{\"name\":\"bower\",\"version\":\"1.5.3\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/bower/bower\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^0.6.1\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^0.3.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"0.1.0\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.8.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^0.56.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"66310523d16a1f342f3da2aa49ea90d927fe7d46\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.5.3\",\"_shasum\":\"ee5d7952e114e30b18795e20e9fefcc5b4cf963d\",\"_from\":\".\",\"_npmVersion\":\"1.4.28\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"maintainers\":[{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"}],\"dist\":{\"shasum\":\"ee5d7952e114e30b18795e20e9fefcc5b4cf963d\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.5.3.tgz\"}},\"1.6.2\":{\"name\":\"bower\",\"version\":\"1.6.2\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.2.1\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"^1.0.4\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^2.13.0\",\"node-uuid\":\"^1.4.2\",\"npm-shrinkwrap\":\"^5.4.1\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"52463dea099f73c5fcfa4858f9a89ff91f3ef147\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.6.2\",\"_shasum\":\"a5362d4dace0c106e2531143b72d862e4210805e\",\"_from\":\".\",\"_npmVersion\":\"2.14.7\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"a5362d4dace0c106e2531143b72d862e4210805e\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.6.2.tgz\"},\"maintainers\":[{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"}]},\"1.6.3\":{\"name\":\"bower\",\"version\":\"1.6.3\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.2.2\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"^1.0.4\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^2.13.0\",\"node-uuid\":\"^1.4.2\",\"npm-shrinkwrap\":\"^5.4.1\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"2330d59ffa8f4f543a9f6ee4b0301e396236bf45\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.6.3\",\"_shasum\":\"70ab999e25dec5c078afcaf545a991f683dc1ea6\",\"_from\":\".\",\"_npmVersion\":\"2.14.7\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"70ab999e25dec5c078afcaf545a991f683dc1ea6\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.6.3.tgz\"},\"maintainers\":[{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"}]},\"1.6.4\":{\"name\":\"bower\",\"version\":\"1.6.4\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.2.2\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"^1.0.4\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^2.13.0\",\"node-uuid\":\"^1.4.2\",\"npm-shrinkwrap\":\"^5.4.1\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"bfd1e933250d51794372d3a2eba169d94686eda7\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.6.4\",\"_shasum\":\"e2ea916e6b3d145c0e759f249b2e94157f201ee6\",\"_from\":\".\",\"_npmVersion\":\"2.14.8\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"e2ea916e6b3d145c0e759f249b2e94157f201ee6\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.6.4.tgz\"},\"maintainers\":[{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"}]},\"1.6.5\":{\"name\":\"bower\",\"version\":\"1.6.5\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.2.2\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"^1.0.4\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^2.13.0\",\"node-uuid\":\"^1.4.2\",\"npm-shrinkwrap\":\"^5.4.1\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"a022cdc75ee0693af813a87b40f5de4c74b7baae\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.6.5\",\"_shasum\":\"59d457122a161e42cc1625bbab8179c214b7ac11\",\"_from\":\".\",\"_npmVersion\":\"2.14.8\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"59d457122a161e42cc1625bbab8179c214b7ac11\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.6.5.tgz\"},\"maintainers\":[{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"}]},\"1.5.4\":{\"name\":\"bower\",\"version\":\"1.5.4\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^0.6.1\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^0.3.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"0.1.0\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.8.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"2.7.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^0.56.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"c50d11b04fa9a6b4675952909078af29a0439f95\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.5.4\",\"_shasum\":\"dae5c5c19b312161c6bbe5b71cf263e80d014bfb\",\"_from\":\".\",\"_npmVersion\":\"2.14.8\",\"_nodeVersion\":\"0.10.35\",\"_npmUser\":{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}],\"dist\":{\"shasum\":\"dae5c5c19b312161c6bbe5b71cf263e80d014bfb\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.5.4.tgz\"}},\"1.4.2\":{\"name\":\"bower\",\"version\":\"1.4.2\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"licenses\":[{\"type\":\"MIT\",\"url\":\"https://github.com/bower/bower/blob/master/LICENSE\"}],\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^0.6.1\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^0.3.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"0.1.0\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.8.0\",\"insight\":\"^0.5.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"2.7.0\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^0.56.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"preferGlobal\":true,\"gitHead\":\"47e583466217ce5f045b70fc3c8f5aedf665f5fa\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.4.2\",\"_shasum\":\"1b36b81cb7720e97b7abee4aa18cdc608e16e7a0\",\"_from\":\".\",\"_npmVersion\":\"2.14.8\",\"_nodeVersion\":\"0.10.35\",\"_npmUser\":{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}],\"dist\":{\"shasum\":\"1b36b81cb7720e97b7abee4aa18cdc608e16e7a0\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.4.2.tgz\"}},\"1.6.6\":{\"name\":\"bower\",\"version\":\"1.6.6\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.2.2\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"^1.0.4\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^2.13.0\",\"node-uuid\":\"^1.4.2\",\"npm-shrinkwrap\":\"^5.4.1\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"67bd5d026f58ba2f443ac9aa5f63d1b221c83fa2\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.6.6\",\"_shasum\":\"b49c022866811e70e014261fb0aac67c41c6ea91\",\"_from\":\".\",\"_npmVersion\":\"2.14.8\",\"_nodeVersion\":\"0.10.35\",\"_npmUser\":{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}],\"dist\":{\"shasum\":\"b49c022866811e70e014261fb0aac67c41c6ea91\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.6.6.tgz\"}},\"1.6.7\":{\"name\":\"bower\",\"version\":\"1.6.7\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.2.2\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"^1.0.4\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^2.13.0\",\"node-uuid\":\"^1.4.2\",\"npm-shrinkwrap\":\"^5.4.1\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"^1.0.5\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"1a990f4563c6d2733b38792cc0c140d38ea57d12\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.6.7\",\"_shasum\":\"bf7c8aa092b0096be53afbd039cfbb633c0ad457\",\"_from\":\".\",\"_npmVersion\":\"2.14.10\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"bf7c8aa092b0096be53afbd039cfbb633c0ad457\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.6.7.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}]},\"1.6.8\":{\"name\":\"bower\",\"version\":\"1.6.8\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.2.3\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"github:sheerun/fs-write-stream-atomic#v1.0.4-fix\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^3.1.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"1.0.13\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"50ed13e4eed2cbd684e534087fd5f67030ae738d\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.6.8\",\"_shasum\":\"4e9400d9f06efc97aed94518f42fceee93ec2a4d\",\"_from\":\".\",\"_npmVersion\":\"2.14.10\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"4e9400d9f06efc97aed94518f42fceee93ec2a4d\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.6.8.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}]},\"1.6.9\":{\"name\":\"bower\",\"version\":\"1.6.9\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.2.3\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"^1.0.5\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^3.1.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"1.0.13\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"fd4c9e6aca734ffe93170eb2998ea9168c65e968\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.6.9\",\"_shasum\":\"cdd7c908f88f8e8908a9ac237e34f591d7058b99\",\"_from\":\".\",\"_npmVersion\":\"2.14.4\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"cdd7c908f88f8e8908a9ac237e34f591d7058b99\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.6.9.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}]},\"1.7.0\":{\"name\":\"bower\",\"version\":\"1.7.0\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.3.0\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"^1.0.5\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.3.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-jscs\":\"^2.3.0\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^3.1.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"1.0.13\"},\"scripts\":{\"test\":\"grunt test\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"338ac99080d464cbc7c2c27cddae31207da6e527\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.7.0\",\"_shasum\":\"55c9bf39f5547c02ed5469f67635637128adae29\",\"_from\":\".\",\"_npmVersion\":\"2.14.4\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"55c9bf39f5547c02ed5469f67635637128adae29\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.7.0.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}]},\"1.7.1\":{\"name\":\"bower\",\"version\":\"1.7.1\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.3.0\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"^1.0.5\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"semver-utils\":\"^1.1.1\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.6.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-jscs\":\"^2.3.0\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^3.1.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"1.0.13\"},\"scripts\":{\"test\":\"grunt test\",\"ci\":\"grunt travis\",\"coveralls\":\"coveralls\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"e168c894a2a810b2e89c21320914029193a82c42\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.7.1\",\"_shasum\":\"8d0c1a31d85237b3629fd2af981bd11e1b1dca82\",\"_from\":\".\",\"_npmVersion\":\"2.14.4\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"8d0c1a31d85237b3629fd2af981bd11e1b1dca82\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.7.1.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}]},\"1.7.2\":{\"name\":\"bower\",\"version\":\"1.7.2\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"dependencies\":{\"abbrev\":\"^1.0.5\",\"archy\":\"1.0.0\",\"bower-config\":\"^1.3.0\",\"bower-endpoint-parser\":\"^0.2.2\",\"bower-json\":\"^0.4.0\",\"bower-logger\":\"^0.2.2\",\"bower-registry-client\":\"^1.0.0\",\"cardinal\":\"0.4.4\",\"chalk\":\"^1.0.0\",\"chmodr\":\"^1.0.2\",\"configstore\":\"^0.3.2\",\"decompress-zip\":\"^0.1.0\",\"destroy\":\"^1.0.3\",\"fs-write-stream-atomic\":\"1.0.5\",\"fstream\":\"^1.0.3\",\"fstream-ignore\":\"^1.0.2\",\"github\":\"^0.2.3\",\"glob\":\"^4.3.2\",\"graceful-fs\":\"^3.0.5\",\"handlebars\":\"^2.0.0\",\"inquirer\":\"0.10.0\",\"insight\":\"^0.7.0\",\"is-root\":\"^1.0.0\",\"junk\":\"^1.0.0\",\"lockfile\":\"^1.0.0\",\"lru-cache\":\"^2.5.0\",\"md5-hex\":\"^1.0.2\",\"mkdirp\":\"0.5.0\",\"mout\":\"^0.11.0\",\"nopt\":\"^3.0.1\",\"opn\":\"^1.0.1\",\"p-throttler\":\"0.1.1\",\"promptly\":\"0.2.0\",\"q\":\"^1.1.2\",\"request\":\"2.53.0\",\"request-progress\":\"0.3.1\",\"retry\":\"0.6.1\",\"rimraf\":\"^2.2.8\",\"semver\":\"^2.3.0\",\"semver-utils\":\"^1.1.1\",\"shell-quote\":\"^1.4.2\",\"stringify-object\":\"^1.0.0\",\"tar-fs\":\"^1.4.1\",\"tmp\":\"0.0.24\",\"update-notifier\":\"^0.6.0\",\"user-home\":\"^1.1.0\",\"which\":\"^1.0.8\"},\"devDependencies\":{\"chai\":\"^1.10.0\",\"coveralls\":\"^2.11.2\",\"expect.js\":\"^0.3.1\",\"grunt\":\"^0.4.5\",\"grunt-cli\":\"^0.1.13\",\"grunt-contrib-jshint\":\"^0.10.0\",\"grunt-contrib-watch\":\"^0.6.1\",\"grunt-exec\":\"^0.4.6\",\"grunt-jscs\":\"^2.3.0\",\"grunt-simple-mocha\":\"^0.4.0\",\"istanbul\":\"^0.3.5\",\"load-grunt-tasks\":\"^2.0.0\",\"mocha\":\"^2.1.0\",\"multiline\":\"^1.0.2\",\"nock\":\"^3.1.0\",\"node-uuid\":\"^1.4.2\",\"proxyquire\":\"^1.3.0\",\"spawn-sync\":\"1.0.13\"},\"scripts\":{\"test\":\"grunt test\",\"ci\":\"grunt travis\",\"coveralls\":\"coveralls\"},\"bin\":{\"bower\":\"bin/bower\"},\"files\":[\"bin\",\"lib\",\"templates\"],\"gitHead\":\"a2f21e2703df020617bc35bbc2fb823c8a14b885\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"bundleDependencies\":[\"abbrev\",\"archy\",\"bower-config\",\"bower-endpoint-parser\",\"bower-json\",\"bower-logger\",\"bower-registry-client\",\"cardinal\",\"chalk\",\"chmodr\",\"configstore\",\"decompress-zip\",\"destroy\",\"fs-write-stream-atomic\",\"fstream\",\"fstream-ignore\",\"github\",\"glob\",\"graceful-fs\",\"handlebars\",\"inquirer\",\"insight\",\"is-root\",\"junk\",\"lockfile\",\"lru-cache\",\"md5-hex\",\"mkdirp\",\"mout\",\"nopt\",\"opn\",\"p-throttler\",\"promptly\",\"q\",\"request\",\"request-progress\",\"retry\",\"rimraf\",\"semver\",\"shell-quote\",\"stringify-object\",\"tar-fs\",\"tmp\",\"update-notifier\",\"user-home\",\"which\"],\"_id\":\"bower@1.7.2\",\"_shasum\":\"b04228f9970f11777017e64ae39d71f9346c9575\",\"_from\":\".\",\"_npmVersion\":\"2.14.15\",\"_nodeVersion\":\"4.2.3\",\"_npmUser\":{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}],\"dist\":{\"shasum\":\"b04228f9970f11777017e64ae39d71f9346c9575\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.7.2.tgz\"}},\"1.7.5\":{\"name\":\"bower\",\"version\":\"1.7.5\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib/lib\",\"bin\":{\"bower\":\"lib/bin/bower\"},\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.7.5\",\"scripts\":{},\"_shasum\":\"7f8e28d0be97f727a87f1445c1bf4086a728279b\",\"_from\":\".\",\"_npmVersion\":\"3.5.3\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"7f8e28d0be97f727a87f1445c1bf4086a728279b\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.7.5.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}]},\"1.7.6\":{\"name\":\"bower\",\"version\":\"1.7.6\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"bin\":{\"bower\":\"bin/bower\"},\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.7.6\",\"scripts\":{},\"_shasum\":\"c06e77967f9f08892e6409d0151780695d1ced72\",\"_from\":\".\",\"_npmVersion\":\"3.5.3\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"c06e77967f9f08892e6409d0151780695d1ced72\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.7.6.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}]},\"1.7.7\":{\"name\":\"bower\",\"version\":\"1.7.7\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"bin\":{\"bower\":\"bin/bower\"},\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"files\":[\"bin\",\"lib\"],\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.7.7\",\"scripts\":{},\"_shasum\":\"2fd7ff3ebdcba5a8ffcd84c397c8fdfe9f825f92\",\"_from\":\".\",\"_npmVersion\":\"3.5.3\",\"_nodeVersion\":\"4.1.1\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"2fd7ff3ebdcba5a8ffcd84c397c8fdfe9f825f92\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.7.7.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}]},\"1.7.8\":{\"name\":\"bower\",\"version\":\"1.7.8\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"bin\":{\"bower\":\"bin/bower\"},\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"files\":[\"bin\",\"lib\"],\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.7.8\",\"scripts\":{},\"_shasum\":\"552714fd1582ff9628d0892c8eff18b43a957126\",\"_from\":\".\",\"_npmVersion\":\"3.7.3\",\"_nodeVersion\":\"5.9.0\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"552714fd1582ff9628d0892c8eff18b43a957126\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.7.8.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}],\"_npmOperationalInternal\":{\"host\":\"packages-12-west.internal.npmjs.com\",\"tmp\":\"tmp/bower-1.7.8.tgz_1459790075885_0.43250645138323307\"}},\"1.7.9\":{\"name\":\"bower\",\"version\":\"1.7.9\",\"description\":\"The browser package manager\",\"author\":{\"name\":\"Twitter\"},\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"main\":\"lib\",\"bin\":{\"bower\":\"bin/bower\"},\"homepage\":\"http://bower.io\",\"engines\":{\"node\":\">=0.10.0\"},\"keywords\":[\"bower\"],\"files\":[\"bin\",\"lib\"],\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"_id\":\"bower@1.7.9\",\"scripts\":{},\"_shasum\":\"b7296c2393e0d75edaa6ca39648132dd255812b0\",\"_from\":\".\",\"_npmVersion\":\"3.7.3\",\"_nodeVersion\":\"5.9.0\",\"_npmUser\":{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},\"dist\":{\"shasum\":\"b7296c2393e0d75edaa6ca39648132dd255812b0\",\"tarball\":\"http://registry.npmjs.org/bower/-/bower-1.7.9.tgz\"},\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}],\"_npmOperationalInternal\":{\"host\":\"packages-12-west.internal.npmjs.com\",\"tmp\":\"tmp/bower-1.7.9.tgz_1459857239351_0.9720134933013469\"}}},\"readme\":\"# Bower - A package manager for the web\\n\\n> Bower needs resources for its maintenance. Please fill [this form](https://docs.google.com/forms/d/1i-Opb-uPdqUBBZQSbngv3Y3bfolG1gbBvtRLfxMnzRE/viewform?c=0&w=1) if you think you can help.\\n\\n[![Build Status](https://travis-ci.org/bower/bower.svg?branch=master)](https://travis-ci.org/bower/bower)\\n[![Windows Build](https://ci.appveyor.com/api/projects/status/jr6vfra8w84plh2g/branch/master?svg=true)](https://ci.appveyor.com/project/sheerun/bower/history)\\n[![Coverage Status](https://img.shields.io/coveralls/bower/bower.svg)](https://coveralls.io/r/bower/bower?branch=master)\\n[![Discord chat](https://img.shields.io/badge/discord-join%20chat%20%E2%86%92-brightgreen.svg?style=flat)](https://discord.gg/0fFM7QF0KpZRh2cY)\\n[![Issue Stats](http://issuestats.com/github/bower/bower/badge/pr?style=flat)](http://issuestats.com/github/bower/bower)\\n[![Issue Stats](http://issuestats.com/github/bower/bower/badge/issue?style=flat)](http://issuestats.com/github/bower/bower)\\n\\n<img align=\\\"right\\\" height=\\\"300\\\" src=\\\"http://bower.io/img/bower-logo.png\\\">\\n\\n---\\n\\nBower offers a generic, unopinionated solution to the problem of **front-end package management**, while exposing the package dependency model via an API that can be consumed by a more opinionated build stack. There are no system wide dependencies, no dependencies are shared between different apps, and the dependency tree is flat.\\n\\nBower runs over Git, and is package-agnostic. A packaged component can be made up of any type of asset, and use any type of transport (e.g., AMD, CommonJS, etc.).\\n\\n**View complete docs on [bower.io](http://bower.io)**\\n\\n[View all packages available through Bower's registry](http://bower.io/search/).\\n\\n## Install\\n\\n```sh\\n$ npm install -g bower\\n```\\n\\nBower depends on [Node.js](http://nodejs.org/) and [npm](http://npmjs.org/). Also make sure that [git](http://git-scm.com/) is installed as some bower\\npackages require it to be fetched and installed.\\n\\n\\n## Usage\\n\\nSee complete command line reference at [bower.io/docs/api/](http://bower.io/docs/api/)\\n\\n### Installing packages and dependencies\\n\\n```sh\\n# install dependencies listed in bower.json\\n$ bower install\\n\\n# install a package and add it to bower.json\\n$ bower install <package> --save\\n\\n# install specific version of a package and add it to bower.json\\n$ bower install <package>#<version> --save\\n```\\n\\n### Using packages\\n\\nWe discourage using bower components statically for performance and security reasons (if component has an `upload.php` file that is not ignored, that can be easily exploited to do malicious stuff).\\n\\nThe best approach is to process components installed by bower with build tool (like [Grunt](http://gruntjs.com/) or [gulp](http://gulpjs.com/)), and serve them concatenated or using a module loader (like [RequireJS](http://requirejs.org/)).\\n\\n### Uninstalling packages\\n\\nTo uninstall a locally installed package:\\n\\n```sh\\n$ bower uninstall <package-name>\\n```\\n\\n### prezto and oh-my-zsh users\\n\\nOn `prezto` or `oh-my-zsh`, do not forget to `alias bower='noglob bower'` or `bower install jquery\\\\#1.9.1`\\n\\n### Never run Bower with sudo\\n\\nBower is a user command; there is no need to execute it with superuser permissions.\\n\\n### Windows users\\n\\nTo use Bower on Windows, you must install\\n[Git for Windows](http://git-for-windows.github.io/) correctly. Be sure to check the\\noptions shown below:\\n\\n<img src=\\\"https://cloud.githubusercontent.com/assets/10702007/10532690/d2e8991a-7386-11e5-9a57-613c7f92e84e.png\\\" width=\\\"534\\\" height=\\\"418\\\" alt=\\\"Git for Windows\\\" />\\n\\n<img src=\\\"https://cloud.githubusercontent.com/assets/10702007/10532694/dbe8857a-7386-11e5-9bd0-367e97644403.png\\\" width=\\\"534\\\" height=\\\"418\\\" alt=\\\"Git for Windows\\\" />\\n\\nNote that if you use TortoiseGit and if Bower keeps asking for your SSH\\npassword, you should add the following environment variable: `GIT_SSH -\\nC:\\\\Program Files\\\\TortoiseGit\\\\bin\\\\TortoisePlink.exe`. Adjust the `TortoisePlink`\\npath if needed.\\n\\n### Ubuntu users\\n\\nTo use Bower on Ubuntu, you might need to link `nodejs` executable to `node`:\\n\\n```\\nsudo ln -s /usr/bin/nodejs /usr/bin/node\\n```\\n\\n## Configuration\\n\\nBower can be configured using JSON in a `.bowerrc` file. Read over available options at [bower.io/docs/config](http://bower.io/docs/config).\\n\\n\\n## Support\\n\\n* [Discord chat](https://discord.gg/0fFM7QF0KpZRh2cY)\\n* [StackOverflow](http://stackoverflow.com/questions/tagged/bower)\\n* [Mailinglist](http://groups.google.com/group/twitter-bower) - twitter-bower@googlegroups.com\\n\\n## Contributing\\n\\nWe welcome [contributions](https://github.com/bower/bower/graphs/contributors) of all kinds from anyone. Please take a moment to review the [guidelines for contributing](CONTRIBUTING.md).\\n\\n* [Bug reports](https://github.com/bower/bower/wiki/Report-a-Bug)\\n* [Feature requests](CONTRIBUTING.md#features)\\n* [Pull requests](CONTRIBUTING.md#pull-requests)\\n\\n\\nNote that on Windows for tests to pass you need to configure Git before cloning:\\n\\n```\\ngit config --global core.autocrlf input\\n```\\n\\n## License\\n\\nCopyright (c) 2015 Twitter and [other contributors](https://github.com/bower/bower/graphs/contributors)\\n\\nLicensed under the MIT License\\n\",\"maintainers\":[{\"name\":\"desandro\",\"email\":\"desandrocodes@gmail.com\"},{\"name\":\"paulirish\",\"email\":\"paul.irish@gmail.com\"},{\"name\":\"satazor\",\"email\":\"andremiguelcruz@msn.com\"},{\"name\":\"sheerun\",\"email\":\"sheerun@sher.pl\"},{\"name\":\"sindresorhus\",\"email\":\"sindresorhus@gmail.com\"},{\"name\":\"vladikoff\",\"email\":\"vlad@vladikoff.com\"},{\"name\":\"wibblymat\",\"email\":\"mat@wibbly.org.uk\"}],\"time\":{\"modified\":\"2016-04-05T11:54:07.456Z\",\"created\":\"2012-09-04T23:58:48.836Z\",\"0.1.0\":\"2012-09-04T23:58:50.678Z\",\"0.1.2\":\"2012-09-16T21:38:38.487Z\",\"0.1.3\":\"2012-09-18T17:38:03.910Z\",\"0.2.0\":\"2012-09-25T20:56:59.910Z\",\"0.3.0\":\"2012-10-22T22:41:20.636Z\",\"0.3.1\":\"2012-10-31T17:59:13.303Z\",\"0.3.2\":\"2012-11-04T18:42:18.980Z\",\"0.4.0\":\"2012-11-12T01:12:39.383Z\",\"0.5.0\":\"2012-11-19T20:20:19.934Z\",\"0.5.1\":\"2012-11-20T21:29:33.849Z\",\"0.6.0\":\"2012-11-21T23:31:44.733Z\",\"0.6.1\":\"2012-11-23T01:44:49.331Z\",\"0.6.2\":\"2012-11-23T09:24:38.936Z\",\"0.6.3\":\"2012-11-24T15:37:36.332Z\",\"0.6.4\":\"2012-11-30T00:52:57.641Z\",\"0.6.5\":\"2012-12-01T14:37:55.875Z\",\"0.6.6\":\"2012-12-03T22:34:41.827Z\",\"0.6.7\":\"2012-12-10T17:57:46.128Z\",\"0.6.8\":\"2012-12-14T11:05:20.328Z\",\"0.7.0\":\"2013-02-01T00:42:17.216Z\",\"0.7.1\":\"2013-02-18T22:04:45.413Z\",\"0.8.0\":\"2013-02-24T16:23:48.343Z\",\"0.8.1\":\"2013-02-25T23:40:20.479Z\",\"0.8.2\":\"2013-02-26T21:04:33.825Z\",\"0.8.3\":\"2013-02-27T10:09:44.306Z\",\"0.8.4\":\"2013-03-01T11:49:09.335Z\",\"0.8.5\":\"2013-03-04T01:54:43.312Z\",\"0.8.6\":\"2013-04-03T22:54:55.735Z\",\"0.9.0\":\"2013-04-25T22:18:26.197Z\",\"0.9.1\":\"2013-04-27T11:04:53.116Z\",\"0.9.2\":\"2013-04-27T12:01:19.669Z\",\"0.10.0\":\"2013-07-23T00:08:34.010Z\",\"1.0.0\":\"2013-07-23T00:13:33.288Z\",\"1.0.1\":\"2013-07-29T22:59:09.752Z\",\"1.0.2\":\"2013-07-29T23:18:42.938Z\",\"1.0.3\":\"2013-07-30T08:00:06.322Z\",\"1.1.0\":\"2013-08-03T16:32:34.920Z\",\"1.1.1\":\"2013-08-08T13:14:56.837Z\",\"1.1.2\":\"2013-08-10T15:11:02.126Z\",\"1.2.0\":\"2013-08-19T07:44:52.060Z\",\"1.2.1\":\"2013-08-19T18:21:29.630Z\",\"1.2.2\":\"2013-08-20T22:33:43.236Z\",\"1.2.3\":\"2013-08-22T18:10:17.941Z\",\"1.2.4\":\"2013-08-23T22:13:55.396Z\",\"1.2.5\":\"2013-08-28T21:07:07.306Z\",\"1.2.6\":\"2013-09-04T01:44:14.517Z\",\"1.2.7\":\"2013-09-29T22:07:28.982Z\",\"1.2.8\":\"2013-12-02T13:45:49.498Z\",\"1.3.0\":\"2014-03-11T11:59:54.131Z\",\"1.3.1\":\"2014-03-11T23:39:04.294Z\",\"1.3.2\":\"2014-04-07T09:30:20.525Z\",\"1.3.3\":\"2014-04-24T20:58:42.126Z\",\"1.3.4\":\"2014-06-02T14:22:13.933Z\",\"1.3.5\":\"2014-06-08T10:15:37.883Z\",\"1.3.6\":\"2014-07-02T13:07:14.949Z\",\"1.3.7\":\"2014-07-04T12:07:43.581Z\",\"1.3.8\":\"2014-07-11T20:49:54.511Z\",\"1.3.9\":\"2014-08-06T19:38:50.570Z\",\"1.3.10\":\"2014-09-13T14:52:54.776Z\",\"1.3.11\":\"2014-09-18T00:25:38.248Z\",\"1.3.12\":\"2014-09-28T16:39:55.809Z\",\"1.4.0\":\"2015-03-30T22:50:49.524Z\",\"1.4.1\":\"2015-04-01T07:40:31.107Z\",\"1.5.0\":\"2015-08-23T13:27:00.845Z\",\"1.5.1\":\"2015-08-23T14:38:19.195Z\",\"1.5.2\":\"2015-08-25T20:39:48.951Z\",\"1.5.3\":\"2015-09-24T12:04:40.330Z\",\"1.6.0\":\"2015-10-15T12:00:03.357Z\",\"1.6.1\":\"2015-10-15T14:05:10.765Z\",\"1.6.2\":\"2015-10-15T14:22:04.139Z\",\"1.6.3\":\"2015-10-16T09:49:45.556Z\",\"1.6.4\":\"2015-10-24T10:08:33.516Z\",\"1.6.5\":\"2015-10-24T10:18:15.783Z\",\"1.5.4\":\"2015-11-24T17:03:15.020Z\",\"1.4.2\":\"2015-11-24T17:08:28.686Z\",\"1.6.6\":\"2015-11-25T15:46:50.838Z\",\"1.6.7\":\"2015-11-26T11:32:17.496Z\",\"1.6.8\":\"2015-11-27T14:57:54.108Z\",\"1.6.9\":\"2015-12-04T21:27:06.135Z\",\"1.7.0\":\"2015-12-07T12:52:40.494Z\",\"1.7.1\":\"2015-12-11T20:46:17.232Z\",\"1.7.2\":\"2015-12-31T02:09:32.462Z\",\"1.7.3\":\"2016-01-20T17:41:47.199Z\",\"1.7.4\":\"2016-01-21T13:16:25.843Z\",\"1.7.5\":\"2016-01-26T21:42:09.185Z\",\"1.7.6\":\"2016-01-27T10:59:15.570Z\",\"1.7.7\":\"2016-01-27T17:23:48.077Z\",\"1.7.8\":\"2016-04-04T17:14:39.664Z\",\"1.7.9\":\"2016-04-05T11:54:07.456Z\"},\"author\":{\"name\":\"Twitter\"},\"users\":{\"770554403\":true,\"sjonnet\":true,\"sjonnet19\":true,\"vincentmac\":true,\"liqweed\":true,\"alefteris\":true,\"maxmaximov\":true,\"cparker15\":true,\"passy\":true,\"jamesmgreene\":true,\"ianmcburnie\":true,\"moonpyk\":true,\"pid\":true,\"gableroux\":true,\"codylindley\":true,\"tigefa\":true,\"aniketpant\":true,\"mhaidarh\":true,\"cathymacars\":true,\"xtopher\":true,\"darosh\":true,\"denisix\":true,\"nuzoo\":true,\"oliversalzburg\":true,\"wibblymat\":true,\"priyaranjan\":true,\"davidrlee\":true,\"leodutra\":true,\"brentonhouse\":true,\"csbun\":true,\"celsogoya\":true,\"gion\":true,\"markymark\":true,\"fablouis\":true,\"evkline\":true,\"omichelsen\":true,\"davidhalldor\":true,\"hugojosefson\":true,\"lone112\":true,\"toogle\":true,\"runningtalus\":true,\"doriel\":true,\"sosana\":true,\"davidbaiguini\":true,\"agent_9191\":true,\"edalorzo\":true,\"sithengineer\":true,\"jayproulx\":true,\"dizlexik\":true,\"ssoldatenkov\":true,\"cfleschhut\":true,\"mikedfunk\":true,\"mswanson1524\":true,\"avelino\":true,\"orion-\":true,\"gabeio\":true,\"bkimminich\":true,\"arturmuller\":true,\"thebearingedge\":true,\"iisii\":true,\"jits\":true,\"llambda\":true,\"johno\":true,\"louxiaojian\":true,\"atheken\":true,\"marinangelo\":true,\"vsn4ik\":true,\"kewin\":true,\"cp102\":true,\"oakley349\":true,\"cwhopkins\":true,\"dgarlitt\":true,\"jostw\":true,\"ivangaravito\":true,\"swak\":true,\"limamedeiros\":true,\"kasperstuck\":true,\"richarddavenport\":true,\"modest\":true,\"rgraves90\":true,\"dimitriwalters\":true,\"cdubois\":true,\"alessiodionisi\":true,\"mavisland\":true,\"pillar0514\":true,\"aloesch\":true,\"azder\":true,\"bslayton\":true,\"stooboo\":true,\"chesleybrown\":true,\"codetheory\":true,\"danj\":true,\"io2work\":true,\"nmrony\":true,\"lucasmciruzzi\":true,\"saravntbe\":true,\"aitorllj93\":true,\"adamk\":true,\"stuligan\":true,\"dlpowless\":true,\"nitayneeman\":true,\"kenlimmj\":true,\"nadimix\":true,\"clhenrick\":true,\"squallium\":true,\"haeck\":true,\"pnevares\":true,\"princemaple\":true,\"dechowmedia\":true,\"lenage\":true,\"grimmjaw\":true,\"nachbar90\":true,\"stany\":true,\"itsnauman\":true,\"mykhael\":true,\"klarence1\":true,\"zmni\":true,\"sobering\":true,\"benittes\":true,\"gexplorer\":true,\"rebugger\":true,\"yoshihirootz\":true,\"gnostic\":true,\"noddycha\":true,\"fmoliveira\":true,\"mccarter\":true,\"rchanaud\":true,\"jimkropa\":true,\"jahnestacado\":true,\"emodus\":true,\"fleeting\":true,\"pedrofelipe\":true,\"joaocunha\":true,\"safinalexey\":true,\"f3r\":true,\"cannobbio\":true,\"dpkg\":true,\"yodairish\":true,\"shinyweb\":true,\"adambyrne\":true,\"john-cheesman\":true,\"asawq2006\":true,\"visormatt\":true,\"keeyanajones\":true,\"simplyianm\":true,\"risyasin\":true,\"joshterrill\":true,\"knugen\":true,\"alexandreferreira\":true,\"animezis\":true,\"darg\":true,\"josuehenry14\":true,\"leonardorb\":true,\"huntie\":true,\"itonyyo\":true,\"chrisdeaton\":true,\"jazoom\":true,\"vishnuvathsan\":true,\"mpcjazz\":true,\"marcghorayeb\":true,\"ericwbailey\":true,\"kilpiban\":true,\"coderaiser\":true,\"jackpinto\":true,\"alemohamad\":true,\"dcondrey\":true,\"malkaves\":true,\"dac2205\":true,\"felipemena1\":true,\"tagkiller\":true,\"wfsm\":true,\"deftbit\":true,\"chong.john\":true,\"yeltsin\":true,\"hughker\":true,\"mubaidr\":true,\"dolymood\":true,\"sanketss84\":true,\"duerer\":true,\"yasirmturk\":true,\"leidottw\":true,\"acterce\":true,\"a_cabello\":true,\"ishitcno1\":true,\"jakemiller\":true,\"francesco-nextology\":true,\"thefriendlydev\":true,\"nanhualyq\":true,\"aliemre\":true,\"disheart\":true,\"gokaygurcan\":true,\"modao\":true,\"hanksudo\":true,\"otravers\":true,\"steel1990\":true,\"maskedcoder\":true,\"abdullahceylan\":true,\"sublime718\":true,\"leejefon\":true,\"mauperruolo\":true,\"jyounce\":true,\"abrahamwilliams\":true,\"jota\":true,\"nex\":true,\"manten\":true,\"bertasus\":true,\"lmhs\":true,\"lukasjuhas\":true,\"niksudan\":true,\"arnoldstoba\":true,\"tamer1an\":true,\"gabrielscindian\":true,\"drewigg\":true,\"chsal2\":true,\"walkerbe\":true,\"felixjung\":true,\"lydiadugger\":true,\"dofy\":true,\"borriglione\":true,\"stretchgz\":true,\"theuves\":true,\"fvcproductions\":true,\"a7madev\":true,\"jshaw3\":true,\"chillcapped\":true,\"brentlintner\":true,\"octetstream\":true,\"dnedev\":true,\"m412c0\":true,\"shaddyhm\":true,\"zumanex\":true,\"despairblue\":true,\"grantgeorge\":true,\"dbck\":true,\"enriquecaballero\":true,\"liamcoded\":true,\"svgkrishnamurthy\":true,\"montyanderson\":true,\"joerice\":true,\"enricllagostera\":true,\"leandro.maioral\":true,\"labstersrak\":true,\"ibourgeois\":true,\"soluzionisubito\":true,\"fabian.schmid\":true,\"mavenrix\":true,\"justincann\":true,\"subarb\":true,\"karlbateman\":true,\"fleischer\":true,\"vishwasc\":true,\"kontrax\":true,\"freebird\":true,\"alagodich\":true,\"edusig\":true,\"decoda\":true,\"codeprowong\":true,\"matthewbauer\":true,\"trquoccuong\":true,\"utwo\":true,\"mamalat\":true,\"kurre\":true,\"micael-gabenna\":true,\"edwin_estrada\":true,\"vqoph\":true,\"starver\":true,\"antoinebou\":true,\"nicholaslp\":true,\"yanvalue\":true,\"charlestati\":true,\"quality520\":true,\"knoja4\":true,\"naokie\":true,\"gdaleson\":true,\"zava\":true,\"kparkov\":true,\"gnimuc\":true,\"helsner\":true,\"boterom89\":true,\"meligatt\":true,\"xgqfrms\":true,\"monadic.coffee\":true,\"gamr\":true,\"reekdeb\":true,\"alectic\":true,\"joanmi\":true,\"xeoneux\":true,\"n1kkou\":true,\"panoptican\":true,\"fafnirical\":true,\"kobleistvan\":true,\"milanowicz\":true,\"leoribeiro\":true,\"buzz-dee\":true,\"chharvey\":true,\"usedf295\":true,\"preco21\":true,\"luckyulin\":true,\"gustavomeloweb\":true,\"oscarelotero\":true,\"dubweis3r\":true,\"dreamseer\":true,\"kbarrows\":true,\"jclo\":true,\"klimnikita\":true,\"stigandr\":true,\"juk\":true,\"jaehong.lee\":true,\"diegoperini\":true,\"nickeltobias\":true,\"martl\":true,\"jerous\":true,\"tdy721\":true,\"arbourd\":true,\"lcdss\":true,\"mrasaint\":true,\"jaminroe\":true,\"egantz\":true,\"itskdk\":true,\"mrmalec\":true,\"amartelr\":true,\"ikeyan\":true,\"danail\":true,\"fadihania\":true,\"faelcorreia\":true,\"rsmccloskey\":true,\"artemigos\":true,\"iroc\":true,\"shinelin\":true,\"geese98\":true,\"potnox\":true,\"faicalbaki\":true,\"stuart.shi\":true,\"mccataldo\":true,\"arttse\":true,\"livfwds\":true,\"tobiasnickel\":true,\"djamseed\":true,\"medo_alouane\":true,\"anaumidis\":true,\"sternelee\":true,\"aditcmarix\":true,\"abdihaikal\":true,\"wolfhoundjesse\":true,\"corca\":true,\"jamesbedont\":true,\"msjcaetano\":true,\"redstrike\":true,\"nauwep\":true,\"jaredlinwood\":true,\"powellmedia\":true,\"bhenav\":true,\"txredking\":true,\"unkray\":true,\"porreh\":true,\"bruinebeer\":true,\"rplittle\":true,\"hyteer\":true,\"ismaelvsqz\":true,\"ansuman\":true,\"dennykuo\":true,\"shurickz\":true,\"chancearthur\":true,\"martijndevalk\":true,\"gooer\":true,\"bwade231\":true,\"thomas.miele\":true,\"hibrahimsafak\":true,\"favasconcelos\":true,\"demod\":true,\"demopark\":true,\"sopepos\":true,\"illuminator\":true,\"gabricom\":true,\"lucachaves\":true,\"pasimoes\":true,\"antoniordo\":true,\"filipve\":true,\"bemace\":true,\"hammedsal\":true,\"ristostevcev\":true,\"genediazjr\":true,\"joannerpena\":true,\"hngrhorace\":true,\"coalesce\":true,\"michelebroggi\":true,\"ahshum\":true,\"abdul\":true,\"reamd\":true,\"royling\":true,\"brend\":true,\"telco2011\":true,\"spencermathews\":true,\"tdmalone\":true,\"glider\":true,\"dangerdave\":true,\"lex_nel\":true,\"alexc1212\":true,\"lpelos\":true,\"alvajc\":true,\"muralibala\":true,\"ryanoasis\":true,\"decoded\":true,\"mate2\":true,\"miguelpalazzo\":true,\"giovannipds\":true,\"dnik\":true,\"net-burst\":true,\"sbvonline\":true,\"dbobrov\":true,\"tuomastolppi\":true,\"donkapetra\":true,\"asm2hex\":true,\"amandavianna\":true,\"yesseecity\":true,\"dahnielson\":true,\"nomedescargues\":true,\"eduardocereto\":true,\"mauriciolauffer\":true,\"garustar\":true,\"whatsamoorefor\":true,\"janggomgeun\":true,\"snarky\":true,\"cangulo\":true,\"narayanats\":true,\"cperezabo\":true,\"alimd\":true,\"angelxmoreno\":true,\"shanewholloway\":true,\"ions\":true},\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/bower/bower.git\"},\"homepage\":\"http://bower.io\",\"bugs\":{\"url\":\"https://github.com/bower/bower/issues\"},\"readmeFilename\":\"README.md\",\"keywords\":[\"bower\"],\"license\":\"MIT\"}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/index/ae18615611dfb3f32feaf1c607df7bac.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"CouchDB/1.5.0 (Erlang OTP/R16B03)\",\n    \"etag\": \"\\\"243-ee588285b884979435a37fcca5d73613\\\"\",\n    \"date\": \"Fri, 13 May 2016 18:07:11 GMT\",\n    \"content-type\": \"application/json\",\n    \"content-length\": \"171593\",\n    \"cache-control\": \"must-revalidate\"\n  },\n  \"url\": \"https://skimdb.npmjs.com:443/registry/bower\",\n  \"time\": 2077,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"content-type\": \"application/json\",\n      \"accept\": \"application/json\",\n      \"host\": \"skimdb.npmjs.com\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/index/d40cbb49129f01a9d5130a95f54d4f79",
    "content": "{\"error\":\"not_found\",\"reason\":\"missing\"}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/index/d40cbb49129f01a9d5130a95f54d4f79.headers",
    "content": "{\n  \"statusCode\": 404,\n  \"headers\": {\n    \"server\": \"CouchDB/1.5.0 (Erlang OTP/R16B03)\",\n    \"date\": \"Fri, 13 May 2016 18:07:13 GMT\",\n    \"content-type\": \"application/json\",\n    \"content-length\": \"41\",\n    \"cache-control\": \"must-revalidate\"\n  },\n  \"url\": \"https://skimdb.npmjs.com:443/registry/some-module-that-will-never-exist\",\n  \"time\": 469,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"content-type\": \"application/json\",\n      \"accept\": \"application/json\",\n      \"host\": \"skimdb.npmjs.com\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/npm/278e742ec691d9647761d9e06a93c852.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"nginx/1.4.6 (Ubuntu)\",\n    \"content-type\": \"application/json; charset=utf-8\",\n    \"access-control-allow-origin\": \"*\",\n    \"access-control-max-age\": \"86400\",\n    \"access-control-allow-methods\": \"GET, HEAD, POST, PUT, DELETE, OPTIONS\",\n    \"access-control-allow-headers\": \"Authorization, Content-Type, If-None-Match\",\n    \"access-control-expose-headers\": \"WWW-Authenticate, Server-Authorization\",\n    \"cache-control\": \"no-cache\",\n    \"content-encoding\": \"gzip\",\n    \"via\": \"1.1 varnish, 1.1 varnish\",\n    \"content-length\": \"2394\",\n    \"accept-ranges\": \"bytes\",\n    \"date\": \"Mon, 09 May 2016 17:08:04 GMT\",\n    \"age\": \"109\",\n    \"connection\": \"keep-alive\",\n    \"x-served-by\": \"cache-lax1435-LAX, cache-lcy1128-LCY\",\n    \"x-cache\": \"HIT, HIT\",\n    \"x-cache-hits\": \"1, 1\",\n    \"vary\": \"accept-encoding\"\n  },\n  \"url\": \"https://api.npmjs.org:443/downloads/range/2015-05-09:2016-05-08/cross-spawn\",\n  \"time\": 321,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/npm/6da574a19e30e15a2628bc2a7ae7d5a4",
    "content": "{\"rows\":[\r\n{\"key\":null,\"value\":149}\r\n]}\n"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/npm/6da574a19e30e15a2628bc2a7ae7d5a4.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"server\": \"CouchDB/1.5.0 (Erlang OTP/R16B03)\",\n    \"etag\": \"\\\"2WGXHV85LUY45038QDVTUJ9TP\\\"\",\n    \"date\": \"Mon, 09 May 2016 17:08:04 GMT\",\n    \"content-type\": \"application/json\",\n    \"cache-control\": \"must-revalidate\"\n  },\n  \"url\": \"https://skimdb.npmjs.com:443/registry/_design/app/_view/dependedUpon?startkey=%5B%22cross-spawn%22%5D&endkey=%5B%22cross-spawn%22%2C%22%EF%BF%B0%22%5D&limit=1&reduce=true&stale=update_after\",\n  \"time\": 615,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"content-type\": \"application/json\",\n      \"accept\": \"application/json\",\n      \"host\": \"skimdb.npmjs.com\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/0046732f19ee23072e08f55d2a400eca.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:22:40 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dbd00d19f0bb1c71fe2a951f525a1a6351490552559; expires=Mon, 26-Mar-18 18:22:39 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:40 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c22fbd86a621e-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/scrutinizer/coverage/g/MathieuTurcotte/node-backoff.json\",\n  \"time\": 755,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/02777f766910df6791475f44c0e2b57b.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:20:43 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d09460ff7acb1985cbc879d2f89afc3f81490552442; expires=Mon, 26-Mar-18 18:20:42 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:20:43 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c201f9f0d6236-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/codecov/c/github/IndigoUnited/node-cross-spawn.json\",\n  \"time\": 1059,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/0429ac4bdf217161d9a2772fdb7861e2.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"b978ab1afd96cd9c5b41a642f2821c453ec35ba7\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=IndigoUnited-node-planify-1.1.0-2-gb978ab1.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Sun, 26 Mar 2017 18:20:44 GMT\",\n    \"x-github-request-id\": \"E1BE:2FE62:6BB23D:8A96C3:58D8067C\"\n  },\n  \"url\": \"https://codeload.github.com:443/IndigoUnited/node-planify/legacy.tar.gz/b978ab1afd96cd9c5b41a642f2821c453ec35ba7\",\n  \"time\": 1121,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/0c774ab0c1fa72fb9dbba94b96693973.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"nginx/1.10.1\",\n    \"content-type\": \"application/octet-stream\",\n    \"last-modified\": \"Tue, 01 Apr 2014 22:51:11 GMT\",\n    \"etag\": \"\\\"533b42df-fa\\\"\",\n    \"expires\": \"Mon, 27 Mar 2017 00:22:36 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"access-control-allow-methods\": \"GET\",\n    \"cache-control\": \"max-age=21600\",\n    \"content-length\": \"250\",\n    \"accept-ranges\": \"bytes\",\n    \"date\": \"Sun, 26 Mar 2017 18:22:36 GMT\",\n    \"via\": \"1.1 varnish\",\n    \"age\": \"0\",\n    \"connection\": \"keep-alive\",\n    \"x-served-by\": \"cache-mad9430-MAD\",\n    \"x-cache\": \"MISS\",\n    \"x-cache-hits\": \"0\",\n    \"x-timer\": \"S1490552556.160551,VS0,VE217\"\n  },\n  \"url\": \"http://registry.npmjs.org:80/0/-/0-0.0.0.tgz\",\n  \"time\": 564,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/1152654e8bfc034a9d043925c55fbe48.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 05 May 2019 23:28:51 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d88526b8d07637636ab796ff79246051f1557098930; expires=Mon, 04-May-20 23:28:50 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"max-age=120\",\n    \"expires\": \"Sun, 05 May 2019 23:30:51 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"server\": \"cloudflare\",\n    \"cf-ray\": \"4d267e3e184ace23-LHR\",\n    \"content-encoding\": \"gzip\"\n  },\n  \"url\": \"https://img.shields.io:443/codeclimate/coverage/reacttraining/react-router.json\",\n  \"time\": 343,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.6.0 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/180995f905c69e6355ccbeb197109fb9.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"4637c5533ec7aa74b262da2fc353cdbf66826677\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=ReactTraining-react-router-v4.0.0-beta.8-210-g4637c55.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Sun, 02 Apr 2017 20:36:57 GMT\",\n    \"x-github-request-id\": \"D86E:0521:14D2FA:1A64C8:58E160E8\"\n  },\n  \"url\": \"https://codeload.github.com:443/ReactTraining/react-router/legacy.tar.gz/master\",\n  \"time\": 1693,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/1b4935ddf796087a37e45c313edddd4f.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"811118fd1f89e9ca4e6b67292b9ef5da6c4f60e9\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=MathieuTurcotte-node-backoff-v2.5.0-1-g811118f.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Sun, 26 Mar 2017 18:22:37 GMT\",\n    \"x-github-request-id\": \"2EF7:2FE62:6BB3B4:8A9912:58D806ED\"\n  },\n  \"url\": \"https://codeload.github.com:443/MathieuTurcotte/node-backoff/legacy.tar.gz/811118fd1f89e9ca4e6b67292b9ef5da6c4f60e9\",\n  \"time\": 2517,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/310c26a3622e22be3798b810bb056cd2.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:22:42 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d2a37657d7c9dc7b685ad80c8267b64b01539019361; expires=Tue, 08-Oct-19 17:22:41 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a4a82df0f623c-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"http://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=0&version=0.0.0\",\n  \"time\": 1252,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/32532aa076ea4d37a94def3f370e23fc",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/32532aa076ea4d37a94def3f370e23fc.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 26 Mar 2017 18:20:44 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"60\",\n    \"x-ratelimit-reset\": \"1490556044\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 26 Mar 2017 18:20:44 GMT\",\n    \"location\": \"https://codeload.github.com/IndigoUnited/node-planify/legacy.tar.gz/b978ab1afd96cd9c5b41a642f2821c453ec35ba7\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"593010132f82159af0ded24b4932e109\",\n    \"x-github-request-id\": \"2ED5:0CD4:117BCF3:15F8AF0:58D8067C\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-planify/tarball/b978ab1afd96cd9c5b41a642f2821c453ec35ba7\",\n  \"time\": 421,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/36d2b9e3113bb8656477a0866759fca3",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/36d2b9e3113bb8656477a0866759fca3.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 26 Mar 2017 18:22:37 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"60\",\n    \"x-ratelimit-reset\": \"1490556157\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:37 GMT\",\n    \"location\": \"https://codeload.github.com/MathieuTurcotte/node-backoff/legacy.tar.gz/811118fd1f89e9ca4e6b67292b9ef5da6c4f60e9\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"4537b68c46a1b65b106078b0a2578ee2\",\n    \"x-github-request-id\": \"E1D2:0CD5:2234A30:2B1D492:58D806ED\"\n  },\n  \"url\": \"https://api.github.com:443/repos/MathieuTurcotte/node-backoff/tarball/811118fd1f89e9ca4e6b67292b9ef5da6c4f60e9\",\n  \"time\": 523,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/3f5a8e5d9434bbd4ec976c36835cdc49",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/3f5a8e5d9434bbd4ec976c36835cdc49.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 26 Mar 2017 18:20:41 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"60\",\n    \"x-ratelimit-reset\": \"1490556041\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 26 Mar 2017 18:20:41 GMT\",\n    \"location\": \"https://codeload.github.com/IndigoUnited/node-cross-spawn/legacy.tar.gz/7bc71932e517c974c80f54ae9f7687c9cd25db74\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"88531cdcf1929112ec480e1806d44a33\",\n    \"x-github-request-id\": \"2ECD:0CD5:2232743:2B1A83D:58D80679\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn/tarball/7bc71932e517c974c80f54ae9f7687c9cd25db74\",\n  \"time\": 617,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/40971c651c26e9ab81128eb0c10f37af.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:22:42 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d2a37657d7c9dc7b685ad80c8267b64b01539019361; expires=Tue, 08-Oct-19 17:22:41 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a4a82df0f623c-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"https://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=0&version=0.0.0\",\n  \"time\": 1256,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/44c08d748b72275a181e7820e9c258e8.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 02 Apr 2017 20:41:18 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d184285d3d869a5acfbcd198f29ab5c591491165678; expires=Mon, 02-Apr-18 20:41:18 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 02 Apr 2017 20:41:18 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"34969baf9faa620c-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/codecov/c/github/facebook/jest.json\",\n  \"time\": 1187,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/4d7966a6e7249722abdff0a7555a2527.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:20:43 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d4e0e7fbaf565087824662da76ee0fee91490552442; expires=Mon, 26-Mar-18 18:20:42 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:20:42 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c201f8b43621e-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/scrutinizer/coverage/g/IndigoUnited/node-cross-spawn.json\",\n  \"time\": 579,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/4ece6fa3645c526294eaf1b270113e6d.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:22:41 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dfa14211698121ee4bc07ac3df52bee351490552560; expires=Mon, 26-Mar-18 18:22:40 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:40 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c23010d5861fa-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/codecov/c/github/lgeorgieff/ccbuild.json\",\n  \"time\": 522,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/50ec845be323513dc05d4ce6eeb56639.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:22:41 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d9f9e39152e0449c41ece80a33c6f352f1490552560; expires=Mon, 26-Mar-18 18:22:40 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:41 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c230108f76242-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/coveralls/lgeorgieff/ccbuild.json\",\n  \"time\": 576,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/586e879d6364ca5313dd5f956d47dbd4.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:20:16 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d06d16c9320a96aef1fec27178363f2df1539019215; expires=Tue, 08-Oct-19 17:20:15 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a46edccfa622a-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"http://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=cross-spawn&version=2.2.3\",\n  \"time\": 1192,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/5fcfa736ff5a936752226c33baab7ce5.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:20:43 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d7fe55f7e64eeb737ec185cd90fa4ffa81490552442; expires=Mon, 26-Mar-18 18:20:42 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:20:43 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c201f9f8f61fa-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/coveralls/IndigoUnited/node-cross-spawn.json\",\n  \"time\": 868,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/6566d9e3adefb1ed8fe60a17bbf13133.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:22:40 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dbd00d19f0bb1c71fe2a951f525a1a6351490552559; expires=Mon, 26-Mar-18 18:22:39 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:40 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c22fbd86b621e-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/coveralls/MathieuTurcotte/node-backoff.json\",\n  \"time\": 458,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/6632454a445cfcd8152c30b4b8c64783.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 05 May 2019 23:28:49 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d782b51846ef24e7c8cf4d8f364fe29e71557098929; expires=Mon, 04-May-20 23:28:49 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"max-age=120\",\n    \"expires\": \"Sun, 05 May 2019 23:30:49 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"server\": \"cloudflare\",\n    \"cf-ray\": \"4d267e324c69ce47-LHR\",\n    \"content-encoding\": \"gzip\"\n  },\n  \"url\": \"https://img.shields.io:443/codeclimate/coverage/hapijs/hapi.json\",\n  \"time\": 647,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.6.0 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/672a67ca0e6ca2125e9601f4e532dc2e.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"38ca942f6f2979ed25f54510173dbd2761dd7e04\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=facebook-jest-v19.0.2-122-g38ca942.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Sun, 02 Apr 2017 20:41:13 GMT\",\n    \"x-github-request-id\": \"D94B:0521:14D461:1A66D5:58E161E9\"\n  },\n  \"url\": \"https://codeload.github.com:443/facebook/jest/legacy.tar.gz/master\",\n  \"time\": 3364,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/6ef5fd0be1ac70c0cc78c63dc72f97da.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:22:47 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=de677e3befd62e9f48bcd5f30de7b2f691539019366; expires=Tue, 08-Oct-19 17:22:46 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a4aa2eceb623c-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"http://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=babel-jest&version=19.0.0\",\n  \"time\": 1320,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/6f6f60463501ffe7964700fdb5262ea7.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 02 Apr 2017 20:36:59 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dc4087a72274818a17976af8237e842b11491165418; expires=Mon, 02-Apr-18 20:36:58 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 02 Apr 2017 20:36:59 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"3496955aeaa36254-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/scrutinizer/coverage/g/reacttraining/react-router.json\",\n  \"time\": 1279,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/77c0ab2484ae068cadf90515cd2bb6d4.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:22:45 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dcbc3b030060742d490b32fe0226a01fa1539019364; expires=Tue, 08-Oct-19 17:22:44 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a4a94fa346224-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"https://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=react-router&version=4.0.0\",\n  \"time\": 1109,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/7fb20e04d9d456482d62b369a1c268c0.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:20:16 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d06d16c9320a96aef1fec27178363f2df1539019215; expires=Tue, 08-Oct-19 17:20:15 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a46edccfa622a-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"https://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=cross-spawn&version=2.2.3\",\n  \"time\": 1195,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/833f1d757cdb7cfa152b54680d0d2d73.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:20:18 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dfedc7409d369580f77705d82fccde3121539019217; expires=Tue, 08-Oct-19 17:20:17 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a46fd8dae622a-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"https://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=hapi&version=13.4.0\",\n  \"time\": 979,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/8881281d102f7688a2b0e5d7ffb48299",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/8881281d102f7688a2b0e5d7ffb48299.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 02 Apr 2017 20:36:56 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"59\",\n    \"x-ratelimit-reset\": \"1491168654\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 02 Apr 2017 20:36:56 GMT\",\n    \"location\": \"https://codeload.github.com/ReactTraining/react-router/legacy.tar.gz/master\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"c6c65e5196703428e7641f7d1e9bc353\",\n    \"x-github-request-id\": \"D86D:2C8E4:9F4B3F:CC69BB:58E160E8\"\n  },\n  \"url\": \"https://api.github.com:443/repos/reacttraining/react-router/tarball/\",\n  \"time\": 707,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/8acf97225f349b2c99978025ba5b8e92.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:22:35 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dfa6c13d9aca4bf96e2ca18462ef4be601490552555; expires=Mon, 26-Mar-18 18:22:35 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:35 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c22dd0bdf622a-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/scrutinizer/coverage/g/hapijs/hapi.json\",\n  \"time\": 1130,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/8dcbc0b25ce4f37fd5c0bc06d633eb52.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:20:45 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d5d64ff2f006597a9ca0647cf974a6c5a1490552445; expires=Mon, 26-Mar-18 18:20:45 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:20:45 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c20308de96236-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/coveralls/IndigoUnited/node-planify.json\",\n  \"time\": 492,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/92d4837e4094c3e096f398bc89aabb0f.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 02 Apr 2017 20:41:18 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d400a3137a45cec5914af7b281c042a751491165678; expires=Mon, 02-Apr-18 20:41:18 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 02 Apr 2017 20:41:18 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"34969baf9ebc61f4-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/coveralls/facebook/jest.json\",\n  \"time\": 682,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/981d42650123f10d1600074d65aa4f43.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:20:17 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d48668196819527ef3d4e374375d710ad1539019216; expires=Tue, 08-Oct-19 17:20:16 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a46f65bb96224-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"http://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=planify&version=1.2.0\",\n  \"time\": 962,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/9a7bfe12b0910e8bd69ed06184030276.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 05 May 2019 23:28:50 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d96a39157f9cf59acbae470eb88aef8c11557098929; expires=Mon, 04-May-20 23:28:49 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"max-age=120\",\n    \"expires\": \"Sun, 05 May 2019 23:30:50 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"server\": \"cloudflare\",\n    \"cf-ray\": \"4d267e37fbf7ce3f-LHR\",\n    \"content-encoding\": \"gzip\"\n  },\n  \"url\": \"https://img.shields.io:443/codeclimate/coverage/MathieuTurcotte/node-backoff.json\",\n  \"time\": 347,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.6.0 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/a27623f8433973cd8a3c9ac32782dd9b.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:22:47 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=de677e3befd62e9f48bcd5f30de7b2f691539019366; expires=Tue, 08-Oct-19 17:22:46 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a4aa2eceb623c-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"https://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=babel-jest&version=19.0.0\",\n  \"time\": 1323,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/a9be16a47e9b4e3762bfbcfbec14effd.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:22:43 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dcbfe66be84687e570cc2660aad8a01c91539019363; expires=Tue, 08-Oct-19 17:22:43 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a4a8b5bfd6212-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"https://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=backoff&version=2.5.0\",\n  \"time\": 1073,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/acd2d3271b8cd130cd75e572ada409c1.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:20:17 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d48668196819527ef3d4e374375d710ad1539019216; expires=Tue, 08-Oct-19 17:20:16 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a46f65bb96224-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"https://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=planify&version=1.2.0\",\n  \"time\": 965,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/afd6397af26789ff7e024c758e094e02.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 05 May 2019 23:28:48 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d7f82e796fecf2a782c9c6ddbca60a0731557098928; expires=Mon, 04-May-20 23:28:48 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"max-age=120\",\n    \"expires\": \"Sun, 05 May 2019 23:30:48 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"server\": \"cloudflare\",\n    \"cf-ray\": \"4d267e2c7b8bbc66-LHR\",\n    \"content-encoding\": \"gzip\"\n  },\n  \"url\": \"https://img.shields.io:443/codeclimate/coverage/IndigoUnited/node-cross-spawn.json\",\n  \"time\": 655,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.6.0 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/b00ce31e18a32896ac83d6819e9816fe",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/b00ce31e18a32896ac83d6819e9816fe.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 26 Mar 2017 18:22:31 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"60\",\n    \"x-ratelimit-reset\": \"1490556151\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:31 GMT\",\n    \"location\": \"https://codeload.github.com/hapijs/hapi/legacy.tar.gz/faacf022488bc30748bb8f35aca71a24343dc0fc\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"15bc4ab707db6d6b474783868c7cc828\",\n    \"x-github-request-id\": \"2EEF:0CD7:3A50257:49846FE:58D806E7\"\n  },\n  \"url\": \"https://api.github.com:443/repos/hapijs/hapi/tarball/faacf022488bc30748bb8f35aca71a24343dc0fc\",\n  \"time\": 948,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/b6d2435e45a7f8f3b88152e577c55b84.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 02 Apr 2017 20:36:59 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d9dbf0423a443cd9207c466a3eac00e921491165418; expires=Mon, 02-Apr-18 20:36:58 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 02 Apr 2017 20:36:59 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"3496955aeeab620c-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/codecov/c/github/reacttraining/react-router.json\",\n  \"time\": 1151,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/bb391b38e8f2529e20e3e313a7875566.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:22:40 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=defd02c2ba81a6c88bdfebf96364169ab1490552559; expires=Mon, 26-Mar-18 18:22:39 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:40 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c22fbda8d61fa-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/codecov/c/github/MathieuTurcotte/node-backoff.json\",\n  \"time\": 576,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/bbd9372c326ea4fb4acc82bd30e9491c.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:20:18 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dfedc7409d369580f77705d82fccde3121539019217; expires=Tue, 08-Oct-19 17:20:17 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a46fd8dae622a-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"http://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=hapi&version=13.4.0\",\n  \"time\": 976,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/c2a263604b39c741dcba960ab7bdf64e.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"faacf022488bc30748bb8f35aca71a24343dc0fc\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=hapijs-hapi-v13.4.0-0-gfaacf02.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Sun, 26 Mar 2017 18:22:32 GMT\",\n    \"x-github-request-id\": \"E1CC:2FE62:6BB3A8:8A9900:58D806E8\"\n  },\n  \"url\": \"https://codeload.github.com:443/hapijs/hapi/legacy.tar.gz/faacf022488bc30748bb8f35aca71a24343dc0fc\",\n  \"time\": 2770,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/ca1b5b9f76e662b613be43d64e92c4b4.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:22:35 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dba526d907b7b197cdf70684b9ef0bb161490552555; expires=Mon, 26-Mar-18 18:22:35 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:35 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c22dce9836236-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/coveralls/hapijs/hapi.json\",\n  \"time\": 518,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/d4bf4a43cf4e7b6c27e40c732c9d8bfa.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 02 Apr 2017 20:36:59 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dc4087a72274818a17976af8237e842b11491165418; expires=Mon, 02-Apr-18 20:36:58 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 02 Apr 2017 20:36:59 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"3496955aeaa46254-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/coveralls/reacttraining/react-router.json\",\n  \"time\": 1055,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/daaa6494600d82aa3e21e56452a8702a",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/daaa6494600d82aa3e21e56452a8702a.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 02 Apr 2017 20:41:12 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"59\",\n    \"x-ratelimit-reset\": \"1491168654\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 02 Apr 2017 20:41:12 GMT\",\n    \"location\": \"https://codeload.github.com/facebook/jest/legacy.tar.gz/master\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"a7f8a126c9ed3f1c4715a34c0ddc7290\",\n    \"x-github-request-id\": \"D948:2C8E6:3A0564E:4A8E10D:58E161E8\"\n  },\n  \"url\": \"https://api.github.com:443/repos/facebook/jest/tarball/\",\n  \"time\": 901,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/e2d10b245b6bce60976eb41c755c5333.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 05 May 2019 23:28:52 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=d61ddb34b9f12b0628801e07b7e48a61e1557098932; expires=Mon, 04-May-20 23:28:52 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"max-age=120\",\n    \"expires\": \"Sun, 05 May 2019 23:30:52 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"server\": \"cloudflare\",\n    \"cf-ray\": \"4d267e466c61ce1b-LHR\",\n    \"content-encoding\": \"gzip\"\n  },\n  \"url\": \"https://img.shields.io:443/codeclimate/coverage/facebook/jest.json\",\n  \"time\": 361,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.6.0 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/e66bf57e7754e3a75c0b3da3c7d3b894.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 26 Mar 2017 18:22:35 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=db5b57344bbeb9db9dc88805f5f6ae69f1490552555; expires=Mon, 26-Mar-18 18:22:35 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 26 Mar 2017 18:22:35 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"345c22dcebe6624e-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/codecov/c/github/hapijs/hapi.json\",\n  \"time\": 827,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/f13ef1d336f7343f21a8f1e755ee4a1d.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Sun, 02 Apr 2017 20:41:18 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=da57a43b87702fc5917579b9913835b271491165678; expires=Mon, 02-Apr-18 20:41:18 GMT; path=/; domain=.shields.io; HttpOnly\"\n    ],\n    \"cache-control\": \"no-cache, no-store, must-revalidate\",\n    \"expires\": \"Sun, 02 Apr 2017 20:41:18 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-encoding\": \"gzip\",\n    \"server\": \"cloudflare-nginx\",\n    \"cf-ray\": \"34969baf9d6a6254-LIS\"\n  },\n  \"url\": \"https://img.shields.io:443/scrutinizer/coverage/g/facebook/jest.json\",\n  \"time\": 601,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/f4fbc0e6ea0806cdebfe05e95480858f.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"7bc71932e517c974c80f54ae9f7687c9cd25db74\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=IndigoUnited-node-cross-spawn-2.2.3-0-g7bc7193.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Sun, 26 Mar 2017 18:20:42 GMT\",\n    \"x-github-request-id\": \"E1B8:2FE61:4463F6:590B41:58D8067A\"\n  },\n  \"url\": \"https://codeload.github.com:443/IndigoUnited/node-cross-spawn/legacy.tar.gz/7bc71932e517c974c80f54ae9f7687c9cd25db74\",\n  \"time\": 625,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/fba7a93bdb3f483048d32ccc0a105e2b.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:22:45 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dcbc3b030060742d490b32fe0226a01fa1539019364; expires=Tue, 08-Oct-19 17:22:44 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a4a94fa346224-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"http://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=react-router&version=4.0.0\",\n  \"time\": 1106,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/collect/recorded/source/febf07de22a7d2d7ffe02742c6b81857.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"date\": \"Mon, 08 Oct 2018 17:22:43 GMT\",\n    \"content-type\": \"application/json\",\n    \"transfer-encoding\": \"chunked\",\n    \"connection\": \"keep-alive\",\n    \"set-cookie\": [\n      \"__cfduid=dcbfe66be84687e570cc2660aad8a01c91539019363; expires=Tue, 08-Oct-19 17:22:43 GMT; path=/; domain=.registry.npmjs.org; HttpOnly\"\n    ],\n    \"content-encoding\": \"gzip\",\n    \"cf-ray\": \"466a4a8b5bfd6212-LIS\",\n    \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\",\n    \"vary\": \"Accept-Encoding\",\n    \"server\": \"cloudflare\"\n  },\n  \"url\": \"http://registry.npmjs.org:443/-/npm/v1/security/advisories/search?module=backoff&version=2.5.0\",\n  \"time\": 1071,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/9.2.2 (https://github.com/sindresorhus/got)\",\n      \"accept\": \"application/json\",\n      \"accept-encoding\": \"gzip, deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/mocked/broken-archive.tgz",
    "content": "broken tarball\n"
  },
  {
    "path": "test/fixtures/analyze/download/mocked/non-gzip-archive.tgz",
    "content": "<!doctype html>\n<html>\n<head>\n    <title>Example Domain</title>\n\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"Content-type\" content=\"text/html; charset=utf-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n    <style type=\"text/css\">\n    body {\n        background-color: #f0f0f2;\n        margin: 0;\n        padding: 0;\n        font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n        \n    }\n    div {\n        width: 600px;\n        margin: 5em auto;\n        padding: 50px;\n        background-color: #fff;\n        border-radius: 1em;\n    }\n    a:link, a:visited {\n        color: #38488f;\n        text-decoration: none;\n    }\n    @media (max-width: 700px) {\n        body {\n            background-color: #fff;\n        }\n        div {\n            width: auto;\n            margin: 0 auto;\n            border-radius: 0;\n            padding: 1em;\n        }\n    }\n    </style>    \n</head>\n\n<body>\n<div>\n    <h1>Example Domain</h1>\n    <p>This domain is established to be used for illustrative examples in documents. You may use this\n    domain in examples without prior coordination or asking for permission.</p>\n    <p><a href=\"http://www.iana.org/domains/example\">More information...</a></p>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/0ca08d9404d3be6b0f4b710e7dce325c",
    "content": "404: Not Found\n"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/0ca08d9404d3be6b0f4b710e7dce325c.headers",
    "content": "{\n  \"statusCode\": 404,\n  \"headers\": {\n    \"content-length\": \"15\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"date\": \"Sun, 02 Apr 2017 17:07:43 GMT\",\n    \"x-github-request-id\": \"FF27:0521:1476D9:19E431:58E12FDE\"\n  },\n  \"url\": \"https://codeload.github.com:443/IndigoUnited/node-cross-spawn/legacy.tar.gz/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n  \"time\": 615,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/0d6bf2e4d590ee9d6ece01c851500563.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"48573f1fb4e632add2c000bec3f95d88ebea4440\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=babel-babel-v6.23.0-0-g48573f1.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Sun, 02 Apr 2017 17:07:06 GMT\",\n    \"x-github-request-id\": \"FF00:0520:1EEDD5:26CA23:58E12FB9\"\n  },\n  \"url\": \"https://codeload.github.com:443/babel/babel/legacy.tar.gz/48573f1fb4e632add2c000bec3f95d88ebea4440\",\n  \"time\": 1759,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/2197e3675f7b1189860675d45228c712.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"b5239f25c0274feba89242b77d8f0ce57dce83ad\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=IndigoUnited-node-cross-spawn-1.0.0-0-gb5239f2.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Sun, 02 Apr 2017 17:07:41 GMT\",\n    \"x-github-request-id\": \"FF25:0521:1476D3:19E426:58E12FDD\"\n  },\n  \"url\": \"https://codeload.github.com:443/IndigoUnited/node-cross-spawn/legacy.tar.gz/b5239f25c0274feba89242b77d8f0ce57dce83ad\",\n  \"time\": 686,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/324da49a49b1bf9799ad0af735d42175",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/324da49a49b1bf9799ad0af735d42175.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 02 Apr 2017 17:07:05 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"60\",\n    \"x-ratelimit-reset\": \"1491156425\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 02 Apr 2017 17:07:05 GMT\",\n    \"location\": \"https://codeload.github.com/babel/babel/legacy.tar.gz/48573f1fb4e632add2c000bec3f95d88ebea4440\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"1e9204dbc0447a6f39c3b3c44d87b3f8\",\n    \"x-github-request-id\": \"FEFF:2C8E5:33F95D0:42DDB98:58E12FB9\"\n  },\n  \"url\": \"https://api.github.com:443/repos/babel/babel/tarball/48573f1fb4e632add2c000bec3f95d88ebea4440\",\n  \"time\": 753,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/347ad9c22b702976e2e6304bee584cd2.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"966a1275e8c522470cee0802e760ea34fa03d159\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=IndigoUnited-node-cross-spawn-5.1.0-1-g966a127.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Sun, 02 Apr 2017 17:07:44 GMT\",\n    \"x-github-request-id\": \"FF29:0520:1EEE22:26CA9C:58E12FE0\"\n  },\n  \"url\": \"https://codeload.github.com:443/IndigoUnited/node-cross-spawn/legacy.tar.gz/master\",\n  \"time\": 604,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/39c4db447b629049bd6c82625ecbb182",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/39c4db447b629049bd6c82625ecbb182.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Fri, 09 Mar 2018 17:13:35 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"51\",\n    \"x-ratelimit-reset\": \"1520618861\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Fri, 09 Mar 2018 17:13:35 GMT\",\n    \"location\": \"https://codeload.github.com/moxystudio/babel-preset-moxy/legacy.tar.gz/b77ba80b71d6898970e2541b1f1c34d86ba493f7\",\n    \"access-control-expose-headers\": \"ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"x-runtime-rack\": \"0.016191\",\n    \"x-github-request-id\": \"D83A:BE15:ED1B93:292501B:5AA2C0BF\"\n  },\n  \"url\": \"https://api.github.com:443/repos/moxystudio/babel-preset-moxy/tarball/b77ba80b71d6898970e2541b1f1c34d86ba493f7\",\n  \"time\": 657,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/598868e39b0c5f898b243dc6a7799590",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/598868e39b0c5f898b243dc6a7799590.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 02 Apr 2017 17:07:43 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"60\",\n    \"x-ratelimit-reset\": \"1491156463\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 02 Apr 2017 17:07:43 GMT\",\n    \"location\": \"https://codeload.github.com/IndigoUnited/node-cross-spawn/legacy.tar.gz/master\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"c6c65e5196703428e7641f7d1e9bc353\",\n    \"x-github-request-id\": \"FF28:2C8E5:33FAC68:42DF7E3:58E12FDF\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn/tarball/\",\n  \"time\": 592,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/6b4c11cf7f1c30a3c0f45d6dee2c98c8.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"transfer-encoding\": \"chunked\",\n    \"access-control-allow-origin\": \"https://render.githubusercontent.com\",\n    \"content-security-policy\": \"default-src 'none'; style-src 'unsafe-inline'; sandbox\",\n    \"strict-transport-security\": \"max-age=31536000\",\n    \"vary\": \"Authorization,Accept-Encoding\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"etag\": \"\\\"b77ba80b71d6898970e2541b1f1c34d86ba493f7\\\"\",\n    \"content-type\": \"application/x-gzip\",\n    \"content-disposition\": \"attachment; filename=moxystudio-babel-preset-moxy-v2.3.1-0-gb77ba80.tar.gz\",\n    \"x-geo-block-list\": \"\",\n    \"date\": \"Fri, 09 Mar 2018 17:13:36 GMT\",\n    \"x-github-request-id\": \"D843:7CA8:E679E:17FAA8:5AA2C0BF\"\n  },\n  \"url\": \"https://codeload.github.com:443/moxystudio/babel-preset-moxy/legacy.tar.gz/b77ba80b71d6898970e2541b1f1c34d86ba493f7\",\n  \"time\": 1037,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/ce4fa3241f0364d1ea4e654f3cf13cb9",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/ce4fa3241f0364d1ea4e654f3cf13cb9.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 02 Apr 2017 17:07:42 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"60\",\n    \"x-ratelimit-reset\": \"1491156462\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 02 Apr 2017 17:07:42 GMT\",\n    \"location\": \"https://codeload.github.com/IndigoUnited/node-cross-spawn/legacy.tar.gz/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"52189b7290fad804d77890ef34a1eeae\",\n    \"x-github-request-id\": \"FF26:2C8E6:384DCAA:48592E3:58E12FDE\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn/tarball/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n  \"time\": 756,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/d7c449b25de454b1b362bc5af32cc777",
    "content": ""
  },
  {
    "path": "test/fixtures/analyze/download/recorded/github/d7c449b25de454b1b362bc5af32cc777.headers",
    "content": "{\n  \"statusCode\": 302,\n  \"headers\": {\n    \"server\": \"GitHub.com\",\n    \"date\": \"Sun, 02 Apr 2017 17:07:41 GMT\",\n    \"content-type\": \"text/html;charset=utf-8\",\n    \"content-length\": \"0\",\n    \"status\": \"302 Found\",\n    \"x-ratelimit-limit\": \"60\",\n    \"x-ratelimit-remaining\": \"60\",\n    \"x-ratelimit-reset\": \"1491156461\",\n    \"cache-control\": \"public, must-revalidate, max-age=0\",\n    \"expires\": \"Sun, 02 Apr 2017 17:07:41 GMT\",\n    \"location\": \"https://codeload.github.com/IndigoUnited/node-cross-spawn/legacy.tar.gz/b5239f25c0274feba89242b77d8f0ce57dce83ad\",\n    \"access-control-expose-headers\": \"ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\",\n    \"access-control-allow-origin\": \"*\",\n    \"content-security-policy\": \"default-src 'none'\",\n    \"strict-transport-security\": \"max-age=31536000; includeSubdomains; preload\",\n    \"x-content-type-options\": \"nosniff\",\n    \"x-frame-options\": \"deny\",\n    \"x-xss-protection\": \"1; mode=block\",\n    \"vary\": \"Accept-Encoding\",\n    \"x-served-by\": \"77fbfb53269bbb85f82f23584d59f7c1\",\n    \"x-github-request-id\": \"FF23:2C8E5:33FAAAD:42DF577:58E12FDC\"\n  },\n  \"url\": \"https://api.github.com:443/repos/IndigoUnited/node-cross-spawn/tarball/b5239f25c0274feba89242b77d8f0ce57dce83ad\",\n  \"time\": 778,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.7.1 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\",\n      \"accept\": \"application/vnd.github.v3+json\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/npm/57f54040bdda5ac6ffd196cac24be2d8.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"nginx/1.4.6 (Ubuntu)\",\n    \"content-type\": \"application/octet-stream\",\n    \"last-modified\": \"Wed, 24 Feb 2016 17:10:22 GMT\",\n    \"etag\": \"\\\"56cde3fe-d0b\\\"\",\n    \"expires\": \"Tue, 26 Apr 2016 15:04:20 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"access-control-allow-methods\": \"GET\",\n    \"cache-control\": \"max-age=21600\",\n    \"content-length\": \"3339\",\n    \"accept-ranges\": \"bytes\",\n    \"date\": \"Sun, 01 May 2016 10:11:54 GMT\",\n    \"via\": \"1.1 varnish\",\n    \"age\": \"9067\",\n    \"connection\": \"keep-alive\",\n    \"x-served-by\": \"cache-ams4130-AMS\",\n    \"x-cache\": \"HIT\",\n    \"x-cache-hits\": \"1\",\n    \"x-timer\": \"S1462097514.552245,VS0,VE0\"\n  },\n  \"url\": \"https://registry.npmjs.org:443/cross-spawn/-/cross-spawn-1.0.0.tgz\",\n  \"time\": 4,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/fixtures/analyze/download/recorded/npm/afed24ca0f8e9f12344ae6a851b46159.headers",
    "content": "{\n  \"statusCode\": 200,\n  \"headers\": {\n    \"server\": \"nginx/1.4.6 (Ubuntu)\",\n    \"content-type\": \"application/octet-stream\",\n    \"last-modified\": \"Wed, 24 Feb 2016 17:10:10 GMT\",\n    \"etag\": \"\\\"56cde3f2-e51\\\"\",\n    \"expires\": \"Sun, 01 May 2016 13:40:45 GMT\",\n    \"access-control-allow-origin\": \"*\",\n    \"access-control-allow-methods\": \"GET\",\n    \"cache-control\": \"max-age=21600\",\n    \"content-length\": \"3665\",\n    \"accept-ranges\": \"bytes\",\n    \"date\": \"Sun, 01 May 2016 10:10:17 GMT\",\n    \"via\": \"1.1 varnish\",\n    \"age\": \"8972\",\n    \"connection\": \"keep-alive\",\n    \"x-served-by\": \"cache-lcy1128-LCY\",\n    \"x-cache\": \"HIT\",\n    \"x-cache-hits\": \"1\",\n    \"x-timer\": \"S1462097417.695732,VS0,VE0\"\n  },\n  \"url\": \"https://registry.npmjs.org:443/cross-spawn/-/cross-spawn-0.1.0.tgz\",\n  \"time\": 5,\n  \"request\": {\n    \"method\": \"GET\",\n    \"headers\": {\n      \"user-agent\": \"got/6.3.0 (https://github.com/sindresorhus/got)\",\n      \"accept-encoding\": \"gzip,deflate\"\n    }\n  }\n}"
  },
  {
    "path": "test/mocha.opts",
    "content": "--bail\n--timeout 60000"
  },
  {
    "path": "test/spec/analyze/collect/github.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst betray = require('betray');\nconst chronokinesis = require('chronokinesis');\nconst loadJsonFile = require('load-json-file');\nconst sepia = require(`${process.cwd()}/test/util/sepia`);\nconst packageJsonFromData = require(`${process.cwd()}/lib/analyze/util/packageJsonFromData`);\nconst github = require(`${process.cwd()}/lib/analyze/collect/github`);\n\nconst fixturesDir = `${process.cwd()}/test/fixtures/analyze/collect`;\n\ndescribe('github', () => {\n    before(() => {\n        sepia.fixtureDir(`${fixturesDir}/recorded/github`);\n        chronokinesis.travel('2016-05-09T18:00:00.000Z');\n    });\n    after(() => chronokinesis.reset());\n\n    ['cross-spawn'].forEach((name) => {\n        it(`should collect \\`${name}\\` correctly`, () => {\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/${name}/data.json`);\n            const expected = loadJsonFile.sync(`${fixturesDir}/modules/${name}/expected-github.json`);\n\n            sepia.enable();\n\n            return github(packageJsonFromData(name, data), {})\n            .then((collected) => expect(collected).to.eql(expected))\n            .finally(() => sepia.disable());\n        });\n    });\n\n    it('should skip if there\\'s no repository or if it\\'s not hosted on github', () => (\n        Promise.try(() => (\n            github({ name: 'cross-spawn' }, {})\n            .then((collected) => expect(collected).to.equal(null))\n        ))\n        .then(() => (\n            github({\n                name: 'cross-spawn',\n                repository: { type: 'git', url: 'https://foo.com/IndigoUnited/node-cross-spawn.git' },\n            }, {})\n            .then((collected) => expect(collected).to.equal(null))\n        ))\n    ));\n\n    it('should detect forks', () => {\n        sepia.enable();\n\n        return github({\n            name: 'strong-fork-syslog',\n            repository: { type: 'git', url: 'https://github.com/strongloop-forks/strong-fork-syslog' },\n        }, {})\n        .then((collected) => expect(collected.forkOf).to.equal('schamane/node-syslog'))\n        .finally(() => sepia.disable());\n    });\n\n    it('should deal with empty repositories', () => {\n        sepia.enable();\n\n        const betrayed = betray(logger.children['collect/github'], 'info');\n\n        return github({\n            name: 'Cat4D',\n            repository: { type: 'git', url: 'git://github.com/Cat4D/Cat4D.git' },\n        }, {})\n        .then((collected) => {\n            expect(betrayed.invoked).to.equal(1);\n            expect(betrayed.invocations[0][0]).to.match(/is empty/i);\n            expect(collected).to.equal(null);\n        })\n        .finally(() => {\n            sepia.disable();\n            betrayed.restore();\n        });\n    });\n\n    describe('commits activity', () => {\n        it('should retry requests if cache is building up', () => {\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n            const expected = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/expected-github.json`);\n\n            sepia.enable();\n\n            sepia.nock('https://api.github.com', { allowUnmocked: true })\n            .get('/repos/IndigoUnited/node-cross-spawn/stats/commit_activity')\n            .reply(202, () => {\n                sepia.nock.cleanAll();\n\n                return [];\n            });\n\n            return github(packageJsonFromData('cross-spawn', data), {})\n            .then((collected) => {\n                expect(sepia.nock.isDone()).to.equal(true);\n                expect(collected).to.eql(expected);\n            })\n            .finally(() => {\n                sepia.nock.cleanAll();\n                sepia.disable();\n            });\n        });\n\n        it('should not fail if all retries were exhausted');\n    });\n\n    describe('unavailable status codes', () => {\n        it('should deal with 404 - Not Found errors', () => {\n            sepia.enable();\n\n            const betrayed = betray(logger.children['collect/github'], 'info');\n\n            return github({\n                name: 'foo',\n                repository: { type: 'git', url: 'git://github.com/some-org-that-will-never-exist/some-repo-that-will-never-exist.git' },\n            }, {})\n            .then((collected) => {\n                expect(betrayed.invoked).to.greaterThan(0);\n                expect(betrayed.invocations[0][1]).to.match(/failed with 404/i);\n                expect(collected).to.equal(null);\n            })\n            .finally(() => {\n                sepia.disable();\n                betrayed.restore();\n            });\n        });\n\n        it('should deal with 400 - Invalid repository name', () => {\n            const betrayed = betray(logger.children['collect/github'], 'info');\n\n            // Can't use sepia because of https://github.com/linkedin/sepia/issues/15\n            sepia.nock('https://api.github.com')\n            .persist()\n            .get(/.*/)\n            .reply(400);\n\n            return github({\n                name: 'foo',\n                repository: { type: 'git', url: 'git://github.com/some-org/some-repó' },\n            }, {})\n            .then((collected) => {\n                expect(betrayed.invoked).to.be.greaterThan(1);\n                expect(betrayed.invocations[0][1]).to.match(/failed with 400/i);\n                expect(collected).to.equal(null);\n            })\n            .finally(() => {\n                betrayed.restore();\n                sepia.nock.cleanAll();\n            });\n        });\n\n        it('should deal with 403/451 - DMCA take down errors', () => {\n            sepia.enable();\n\n            const betrayed = betray(logger.children['collect/github'], 'info');\n\n            return github({\n                name: 'ps3mca-tool',\n                repository: { type: 'git', url: 'git://github.com/jimmikaelkael/ps3mca-tool.git' },\n            }, {})\n            .then((collected) => {\n                expect(betrayed.invoked).to.be.greaterThan(1);\n                expect(betrayed.invocations[0][1]).to.match(/failed with 451/i);\n                expect(collected).to.equal(null);\n            })\n            .finally(() => {\n                sepia.disable();\n                betrayed.restore();\n            });\n        });\n    });\n\n    describe('statuses', () => {\n        it('should use downloaded.gitRef when analyzing the commit status', () => {\n            const packageJson = {\n                name: 'cross-spawn',\n                repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn' },\n                gitHead: 'foo',\n            };\n\n            sepia.enable();\n\n            // See: https://github.com/IndigoUnited/node-cross-spawn/pull/27\n            return github(packageJson, { gitRef: '9b77a14a370a6f0b81c9eb58ccade0fad94fe249' })\n            .then((collected) => {\n                expect(collected.statuses).to.eql([\n                    { context: 'continuous-integration/appveyor/pr', state: 'failure' },\n                    { context: 'continuous-integration/travis-ci/pr', state: 'success' },\n                    { context: 'continuous-integration/appveyor/branch', state: 'failure' },\n                    { context: 'continuous-integration/travis-ci/push', state: 'success' },\n                ]);\n            })\n            .finally(() => sepia.disable());\n        });\n\n        it('should default to master if downloaded.gitHead is not set when analyzing the commit status', () => {\n            const packageJson = {\n                name: 'cross-spawn',\n                repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn' },\n            };\n\n            sepia.enable();\n\n            return github(packageJson, {})\n            .then((collected) => {\n                expect(collected.statuses).to.eql([\n                    { context: 'continuous-integration/appveyor/branch', state: 'success' },\n                    { context: 'continuous-integration/travis-ci/push', state: 'success' },\n                ]);\n            })\n            .finally(() => sepia.disable());\n        });\n    });\n\n    it('should retry on network errors');\n\n    it('should pass the correct options to token-dealer');\n\n    it('should handle rate limit errors (wait/bail)');\n});\n"
  },
  {
    "path": "test/spec/analyze/collect/index.js",
    "content": "'use strict';\n\nconst cp = require('child_process');\nconst loadJsonFile = require('load-json-file');\nconst nano = require('nano');\nconst expect = require('chai').expect;\nconst betray = require('betray');\nconst sepia = require(`${process.cwd()}/test/util/sepia`);\nconst collect = require(`${process.cwd()}/lib/analyze/collect`);\nconst packageJsonFromData = require(`${process.cwd()}/lib/analyze/util/packageJsonFromData`);\n\nconst tmpDir = `${process.cwd()}/test/tmp`;\nconst fixturesDir = `${process.cwd()}/test/fixtures/analyze/collect`;\nconst npmNano = Promise.promisifyAll(nano('https://skimdb.npmjs.com/registry'));\n\ndescribe('index', () => {\n    before(() => sepia.fixtureDir(`${fixturesDir}/recorded/index`));\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    it('should call all the collectors with the correct arguments', () => {\n        const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n        const packageJson = packageJsonFromData('cross-spawn', data);\n        const downloaded = { downloader: 'github', dir: tmpDir, packageJson, gitRef: packageJson.gitHead };\n        const options = { githubTokens: ['foo', 'bar'], waitRateLimit: true };\n\n        const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve('metadata'));\n        const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve('npm'));\n        const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve('github'));\n        const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve('source'));\n\n        return collect(data, packageJson, downloaded, npmNano, options)\n        .then((collected) => {\n            expect(betrayedMetadata.invoked).to.equal(1);\n            expect(betrayedMetadata.invocations[0]).to.eql([data, packageJson]);\n\n            expect(betrayedNpm.invoked).to.equal(1);\n            expect(betrayedNpm.invocations[0]).to.eql([data, packageJson, npmNano]);\n\n            expect(betrayedGithub.invoked).to.equal(1);\n            expect(betrayedGithub.invocations[0]).to.eql([packageJson, downloaded, {\n                tokens: options.githubTokens,\n                waitRateLimit: options.waitRateLimit,\n            }]);\n\n            expect(betrayedSource.invoked).to.equal(1);\n            expect(betrayedSource.invocations[0]).to.eql([data, packageJson, downloaded, {\n                npmRegistry: `${npmNano.config.url}/${npmNano.config.db}`,\n            }]);\n\n            expect(collected).to.eql({ metadata: 'metadata', npm: 'npm', github: 'github', source: 'source' });\n        });\n    });\n\n    describe('repository ownership', () => {\n        it('should detect if name is the same as the downloaded one', () => {\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n            const packageJson = packageJsonFromData('cross-spawn', data);\n            const downloaded = { downloader: 'github', dir: tmpDir, packageJson, gitRef: packageJson.gitHead };\n\n            const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve());\n            const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve());\n            const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve());\n            const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve());\n\n            return collect(data, packageJson, downloaded, npmNano)\n            .then(() => {\n                expect(betrayedMetadata.invoked).to.equal(1);\n                expect(betrayedNpm.invoked).to.equal(1);\n                expect(betrayedGithub.invoked).to.equal(1);\n                expect(betrayedSource.invoked).to.equal(1);\n            });\n        });\n\n        it('should detect if both have no repository', () => {\n            const data = { name: 'cross-spawn' };\n            const packageJson = { name: 'cross-spawn-foo' };\n            const downloaded = { downloader: 'github', dir: tmpDir, packageJson: data, gitRef: packageJson.gitHead };\n\n            const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve());\n            const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve());\n            const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve());\n            const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve());\n\n            return collect(data, packageJson, downloaded, npmNano)\n            .then(() => {\n                expect(betrayedMetadata.invoked).to.equal(1);\n                expect(betrayedNpm.invoked).to.equal(1);\n                expect(betrayedGithub.invoked).to.equal(1);\n                expect(betrayedSource.invoked).to.equal(1);\n            });\n        });\n\n        it('should detect empty downloaded package.json\\'s (download failed)', () => {\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n            const packageJson = packageJsonFromData('cross-spawn', data);\n            const downloaded = { downloader: 'github', dir: tmpDir, packageJson: {}, gitRef: packageJson.gitHead };\n\n            const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve());\n            const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve());\n            const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve());\n            const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve());\n\n            return collect(data, packageJson, downloaded, npmNano)\n            .then(() => {\n                expect(betrayedMetadata.invoked).to.equal(1);\n                expect(betrayedNpm.invoked).to.equal(1);\n                expect(betrayedGithub.invoked).to.equal(0);\n                expect(betrayedSource.invoked).to.equal(0);\n            });\n        });\n\n        it('should detect if any of maintainers are the same', () => {\n            sepia.enable();\n\n            const data = {\n                name: 'bower-fork',\n                maintainers: [{ name: 'André Cruz', email: 'andremiguelcruz@msn.com' }],\n            };\n            const packageJson = {\n                name: 'bower-fork',\n                repository: { type: 'git', url: 'git://github.com/user/bower.git' },\n            };\n            const downloadedPackageJson = {\n                name: 'bower',\n                repository: { type: 'git', url: 'git://github.com/bower/bower.git' },\n            };\n            const downloaded = { downloader: 'github', dir: tmpDir, packageJson: downloadedPackageJson, gitRef: null };\n\n            const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve());\n            const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve());\n            const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve());\n            const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve());\n\n            return collect(data, packageJson, downloaded, npmNano)\n            .then(() => {\n                expect(betrayedMetadata.invoked).to.equal(1);\n                expect(betrayedNpm.invoked).to.equal(1);\n                expect(betrayedGithub.invoked).to.equal(1);\n                expect(betrayedSource.invoked).to.equal(1);\n            })\n            .finally(() => sepia.disable());\n        });\n\n        it('should not assume ownership for malicious modules', () => {\n            sepia.enable();\n\n            // Complete example\n            return Promise.try(() => {\n                const data = { name: 'bower-fork', maintainers: [] };\n                const packageJson = {\n                    name: 'bower-fork',\n                    repository: { type: 'git', url: 'git://github.com/user/bower.git' },\n                };\n                const downloadedPackageJson = {\n                    name: 'bower',\n                    repository: { type: 'git', url: 'git://github.com/bower/bower.git' },\n                };\n                const downloaded = { downloader: 'github', dir: tmpDir, packageJson: downloadedPackageJson, gitRef: null };\n\n                const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve('metadata'));\n                const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve('npm'));\n                const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve('github'));\n                const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve('source'));\n\n                return collect(data, packageJson, downloaded, npmNano)\n                .then(() => {\n                    expect(betrayedMetadata.invoked).to.equal(1);\n                    expect(betrayedNpm.invoked).to.equal(1);\n                    expect(betrayedGithub.invoked).to.equal(0);\n                    expect(betrayedSource.invoked).to.equal(0);\n                });\n            })\n            // Without repository\n            .then(() => {\n                const data = { name: 'bower-fork' };\n                const packageJson = data;\n                const downloadedPackageJson = {\n                    name: 'bower',\n                    repository: { type: 'git', url: 'git://github.com/bower/bower.git' },\n                };\n                const downloaded = { downloader: 'github', dir: tmpDir, packageJson: downloadedPackageJson, gitRef: null };\n\n                const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve('metadata'));\n                const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve('npm'));\n                const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve('github'));\n                const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve('source'));\n\n                return collect(data, packageJson, downloaded, npmNano)\n                .then(() => {\n                    expect(betrayedMetadata.invoked).to.equal(1);\n                    expect(betrayedNpm.invoked).to.equal(1);\n                    expect(betrayedGithub.invoked).to.equal(0);\n                    expect(betrayedSource.invoked).to.equal(0);\n                });\n            })\n            // Without maintainers\n            .then(() => {\n                const data = { name: 'graphql-shorthand-parser-fork' };\n                const packageJson = {\n                    name: 'graphql-shorthand-parser-fork',\n                    repository: { type: 'git', url: 'git://github.com/user/graphql-shorthand-parser.git' },\n                };\n                const downloadedPackageJson = {\n                    name: 'graphql-shorthand-parser',\n                    repository: { type: 'git', url: 'git://github.com/other-user/graphql-shorthand-parser.git' },\n                };\n                const downloaded = { downloader: 'github', dir: tmpDir, packageJson: downloadedPackageJson, gitRef: null };\n\n                const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve('metadata'));\n                const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve('npm'));\n                const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve('github'));\n                const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve('source'));\n\n                return collect(data, packageJson, downloaded, npmNano)\n                .then(() => {\n                    expect(betrayedMetadata.invoked).to.equal(1);\n                    expect(betrayedNpm.invoked).to.equal(1);\n                    expect(betrayedGithub.invoked).to.equal(0);\n                    expect(betrayedSource.invoked).to.equal(0);\n                });\n            })\n            .finally(() => sepia.disable());\n        });\n\n        it('should still call the source collector if the downloaded source was not from a repository', () => {\n            const data = {\n                name: 'bower-fork',\n                repository: { type: 'git', url: 'git://github.com/user/bower.git' },\n            };\n            const packageJson = data;\n            const downloadedPackageJson = {\n                name: 'bower',\n                repository: { type: 'git', url: 'git://github.com/bower/bower.git' },\n            };\n            const downloaded = { downloader: 'npm', dir: tmpDir, packageJson: downloadedPackageJson };\n\n            const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve());\n            const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve());\n            const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve());\n            const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve());\n\n            return collect(data, packageJson, downloaded, npmNano)\n            .then(() => {\n                expect(betrayedMetadata.invoked).to.equal(1);\n                expect(betrayedNpm.invoked).to.equal(1);\n                expect(betrayedGithub.invoked).to.equal(0);\n                expect(betrayedSource.invoked).to.equal(1);\n            });\n        });\n\n        it('should work around not_found errors when fetching the downloaded data', () => {\n            sepia.enable();\n\n            const data = { name: 'bower-fork' };\n            const packageJson = {\n                name: 'bower-fork',\n                repository: { type: 'git', url: 'git://github.com/user/bower.git' },\n            };\n            const downloadedPackageJson = {\n                name: 'some-module-that-will-never-exist',\n            };\n            const downloaded = { downloader: 'github', dir: tmpDir, packageJson: downloadedPackageJson, gitRef: null };\n\n            const betrayedMetadata = betray(collect.collectors, 'metadata', () => Promise.resolve());\n            const betrayedNpm = betray(collect.collectors, 'npm', () => Promise.resolve());\n            const betrayedGithub = betray(collect.collectors, 'github', () => Promise.resolve());\n            const betrayedSource = betray(collect.collectors, 'source', () => Promise.resolve());\n\n            return collect(data, packageJson, downloaded, npmNano)\n            .then(() => {\n                expect(betrayedMetadata.invoked).to.equal(1);\n                expect(betrayedNpm.invoked).to.equal(1);\n                expect(betrayedGithub.invoked).to.equal(0);\n                expect(betrayedSource.invoked).to.equal(0);\n            })\n            .finally(() => sepia.disable());\n        });\n    });\n\n    describe('empty', () => {\n        it('should generate an empty collected object');\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/collect/metadata.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst sepia = require(`${process.cwd()}/test/util/sepia`);\nconst chronokinesis = require('chronokinesis');\nconst loadJsonFile = require('load-json-file');\nconst packageJsonFromData = require(`${process.cwd()}/lib/analyze/util/packageJsonFromData`);\nconst metadata = require(`${process.cwd()}/lib/analyze/collect/metadata`);\n\nconst fixturesDir = `${process.cwd()}/test/fixtures/analyze/collect`;\n\ndescribe('metadata', () => {\n    before(() => {\n        sepia.fixtureDir(`${fixturesDir}/recorded/metadata`);\n        chronokinesis.travel('2016-05-08T10:00:00.000Z');\n    });\n    after(() => chronokinesis.reset());\n\n    ['cross-spawn', '@bcoe/express-oauth-server'].forEach((name) => {\n        it(`should collect \\`${name}\\` correctly`, () => {\n            const escapedName = name.replace('/', '%2f');\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/${escapedName}/data.json`);\n            const expected = loadJsonFile.sync(`${fixturesDir}/modules/${escapedName}/expected-metadata.json`);\n\n            return metadata(data, packageJsonFromData(name, data))\n            .then((collected) => expect(collected).to.eql(expected));\n        });\n    });\n\n    it('should do a best effort to get the author username');\n\n    it('should do a best effort to extract the publisher', () => (\n        // Extract from npmUser\n        Promise.try(() => {\n            const packageJson = {\n                name: 'cross-spawn',\n                _npmUser: { name: 'satazor', email: 'andremiguelcruz@msn.com' },\n            };\n\n            return metadata({}, packageJson)\n            .then((collected) => expect(collected.publisher).to.eql({ username: 'satazor', email: 'andremiguelcruz@msn.com' }));\n        })\n        // Compare author with maintainers (top-level)\n        .then(() => {\n            const data = { maintainers: [{ name: 'satazor', email: 'andremiguelcruz@msn.com' }] };\n            const packageJson = {\n                name: 'cross-spawn',\n                author: { name: 'André Cruz', email: 'andremiguelcruz@msn.com' },\n            };\n\n            return metadata(data, packageJson)\n            .then((collected) => expect(collected.publisher).to.eql({ username: 'satazor', email: 'andremiguelcruz@msn.com' }));\n        })\n        // Compare author with maintainers\n        .then(() => {\n            const packageJson = {\n                name: 'cross-spawn',\n                author: { name: 'André Cruz', email: 'andremiguelcruz@msn.com' },\n                maintainers: [{ name: 'satazor', email: 'andremiguelcruz@msn.com' }],\n            };\n\n            return metadata({}, packageJson)\n            .then((collected) => expect(collected.publisher).to.eql({ username: 'satazor', email: 'andremiguelcruz@msn.com' }));\n        })\n    ));\n\n    it('should do a best effort to extract the maintainers', () => (\n        // Compare author with maintainers (top-level)\n        Promise.try(() => {\n            const data = { maintainers: [{ name: 'satazor', email: 'andremiguelcruz@msn.com' }] };\n            const packageJson = { name: 'cross-spawn' };\n\n            return metadata(data, packageJson)\n            .then((collected) => expect(collected.maintainers).to.eql([{ username: 'satazor', email: 'andremiguelcruz@msn.com' }]));\n        })\n        // Compare author with maintainers\n        .then(() => {\n            const packageJson = {\n                name: 'cross-spawn',\n                maintainers: [{ name: 'satazor', email: 'andremiguelcruz@msn.com' }],\n            };\n\n            return metadata({}, packageJson)\n            .then((collected) => expect(collected.maintainers).to.eql([{ username: 'satazor', email: 'andremiguelcruz@msn.com' }]));\n        })\n    ));\n\n    it('should not fail if there are no versions nor time properties', () => (\n        metadata({}, { name: 'cross-spawn' })\n        .then((collected) => expect(collected.name).to.equal('cross-spawn'))\n    ));\n\n    it('should handle strange README\\'s', () => (\n        // In old modules the README is an object, e.g.: `flatsite`\n        metadata({ readme: {} }, { name: 'flatsite' })\n        .then((collected) => expect(collected).to.not.have.property('readme'))\n    ));\n\n    it('should handle bundleDependencies compatibility', () => {\n        const packageJson = {\n            name: 'flatsite',\n            bundleDependencies: { react: '15.0.0' },\n        };\n\n        // In old modules the README is an object, e.g.: `flatsite`\n        return metadata({}, packageJson)\n        .then((collected) => expect(collected.bundledDependencies).to.eql({ react: '15.0.0' }));\n    });\n\n    it('should detect deprecated packages', () => (\n        Promise.try(() => (\n            metadata({}, { name: 'cross-spawn', deprecated: 'use something else' })\n            .then((collected) => expect(collected.deprecated).to.equal('use something else'))\n        )\n        // Test when deprecated is not a string\n        // There's some packages such as oh-flex that have an invalid deprecated field\n        // that was manually written in the package.json...\n        .then(() => (\n            metadata({}, { name: 'cross-spawn', deprecated: {} })\n            .then((collected) => expect(collected.deprecated).to.equal(undefined)))\n        ))\n    ));\n\n    it('should detect repositories with no test script', () => (\n        // No scripts\n        Promise.try(() => (\n            metadata({}, { name: 'cross-spawn' })\n            .then((collected) => expect(collected).to.not.have.property('hasTestScript'))\n        ))\n        // No test scripts\n        .then(() => (\n            metadata({}, { name: 'cross-spawn', scripts: {} })\n            .then((collected) => expect(collected).to.not.have.property('hasTestScript'))\n        ))\n        // No tests specified\n        .then(() => (\n            metadata({}, { name: 'cross-spawn', scripts: { test: 'no test specified' } })\n            .then((collected) => expect(collected).to.not.have.property('hasTestScript'))\n        ))\n        // Detect test\n        .then(() => (\n            metadata({}, { name: 'cross-spawn', scripts: { test: 'mocha' } })\n            .then((collected) => expect(collected.hasTestScript).to.equal(true))\n        ))\n    ));\n\n    it('should detect & remove broken links', () => (\n        // Test all broken\n        Promise.try(() => (\n            metadata({}, {\n                name: 'broken-link',\n                homepage: 'http://somedomainthatwillneverexist.org',\n                repository: { type: 'git', url: 'git://github.com/some-org/some-module-that-will-never-exist.git' },\n                bugs: 'http://somedomainthatwillneverexist.org',\n            })\n            .then((collected) => expect(Object.keys(collected.links)).to.eql(['npm']))\n        ))\n        // Test broken homepage (should fallback to repository)\n        .then(() => (\n            metadata({}, {\n                name: 'broken-link',\n                homepage: 'http://somedomainthatwillneverexist.org',\n                repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            })\n            .then((collected) => {\n                expect(Object.keys(collected.links)).to.eql(['npm', 'homepage', 'repository', 'bugs']);\n                expect(collected.links.homepage).to.equal('https://github.com/IndigoUnited/node-cross-spawn#readme');\n            })\n        ))\n    ));\n\n    describe('license', () => {\n        it('should deal with licenses as arrays of strings', () => (\n            metadata({}, { name: 'cross-spawn', license: ['MIT'] })\n            .then((collected) => expect(collected.license).to.equal('MIT'))\n        ));\n\n        it('should deal with licenses as arrays of objects', () => (\n            metadata({}, {\n                name: 'cross-spawn',\n                license: [\n                    { type: 'MIT', url: 'https://opensource.org/licenses/MIT' },\n                    { type: 'GPL-3.0', url: 'https://opensource.org/licenses/GPL-3.0' },\n                ],\n            })\n            .then((collected) => expect(collected.license).to.equal('MIT OR GPL-3.0'))\n        ));\n\n        it('should deal with licenses as objects', () => (\n            metadata({}, {\n                name: 'cross-spawn',\n                license: { type: 'MIT', url: 'https://opensource.org/licenses/MIT' },\n            })\n            .then((collected) => expect(collected.license).to.equal('MIT'))\n        ));\n\n        it('should deal with weird licenses value types', () => (\n            // Empty string\n            Promise.try(() => (\n                metadata({}, {\n                    name: 'cross-spawn',\n                    license: { type: '', url: 'https://opensource.org/licenses/MIT' },\n                })\n                .then((collected) => expect(collected.license).to.equal(undefined))\n            ))\n            // String with spaces (e.g.: webjs-cli)\n            .then(() => (\n                metadata({}, {\n                    name: 'cross-spawn',\n                    license: { type: ' ', url: 'https://opensource.org/licenses/MIT' },\n                })\n                .then((collected) => expect(collected.license).to.equal(undefined))\n            ))\n            // Nullish\n            .then(() => (\n                metadata({}, {\n                    name: 'cross-spawn',\n                    license: { type: null, url: 'https://opensource.org/licenses/MIT' },\n                })\n                .then((collected) => expect(collected.license).to.equal(undefined))\n            ))\n        ));\n\n        it('should preserve spdx expressions', () => (\n            metadata({}, {\n                name: 'cross-spawn',\n                license: 'MIT OR GPL-3.0',\n            })\n            .then((collected) => expect(collected.license).to.equal('MIT OR GPL-3.0'))\n        ));\n\n        it('should correct to spdx licenses', () => (\n            // Test auto-correct\n            Promise.try(() => (\n                metadata({}, {\n                    name: 'cross-spawn',\n                    license: 'GPL',\n                })\n                .then((collected) => expect(collected.license).to.equal('GPL-3.0-or-later'))\n            ))\n            // Test invalid license\n            .then(() => (\n                metadata({}, {\n                    name: 'cross-spawn',\n                    license: 'foobar',\n                })\n                .then((collected) => expect(collected.license).to.equal(undefined))\n            ))\n        ));\n    });\n\n    describe('empty', () => {\n        it('should generate an empty metadata object');\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/collect/npm.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst sepia = require(`${process.cwd()}/test/util/sepia`);\nconst chronokinesis = require('chronokinesis');\nconst nano = require('nano');\nconst loadJsonFile = require('load-json-file');\nconst packageJsonFromData = require(`${process.cwd()}/lib/analyze/util/packageJsonFromData`);\nconst npm = require(`${process.cwd()}/lib/analyze/collect/npm`);\n\nconst fixturesDir = `${process.cwd()}/test/fixtures/analyze/collect`;\nconst npmNano = Promise.promisifyAll(nano('https://skimdb.npmjs.com/registry'));\n\ndescribe('npm', () => {\n    before(() => {\n        sepia.fixtureDir(`${fixturesDir}/recorded/npm`);\n        chronokinesis.travel('2016-05-09T18:00:00.000Z');\n    });\n    after(() => chronokinesis.reset());\n\n    ['cross-spawn'].forEach((name) => {\n        it(`should collect \\`${name}\\` correctly`, () => {\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/${name}/data.json`);\n            const expected = loadJsonFile.sync(`${fixturesDir}/modules/${name}/expected-npm.json`);\n\n            sepia.enable();\n\n            return npm(data, packageJsonFromData(name, data), npmNano)\n            .then((collected) => expect(collected).to.eql(expected))\n            .finally(() => sepia.disable());\n        });\n    });\n\n    it('should handle no results when querying `app/dependedUpon` view');\n\n    // it('should handle no results when querying `app/dependedUpon` view', () => {\n    //     const betrayed = betray(npmNano, 'viewAsync', () => Promise.resolve({ rows: [] }));\n    //     const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n\n    //     return npm(data, packageJsonFromData('cross-spawn', data), npmNano)\n    //     .then((collected) => expect(collected.dependentsCount).to.equal(0))\n    //     .finally(() => betrayed.restore());\n    // });\n\n    it('should handle no stats yet error from api.npmjs.org (404)', () => {\n        sepia.nock('https://api.npmjs.org')\n        .get((path) => path.indexOf('/downloads/range/') === 0)\n        .reply(404, { error: 'package cross-spawn not found' });\n\n        const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n\n        return npm(data, packageJsonFromData('cross-spawn', data), npmNano)\n        .then((collected) => {\n            collected.downloads.forEach((download) => expect(download.count).to.equal(0));\n        })\n        .finally(() => sepia.nock.cleanAll());\n    });\n\n    it('should retry on network errors');\n});\n"
  },
  {
    "path": "test/spec/analyze/collect/source.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst cp = require('child_process');\nconst loadJsonFile = require('load-json-file');\nconst expect = require('chai').expect;\nconst betray = require('betray');\nconst sepia = require(`${process.cwd()}/test/util/sepia`);\nconst packageJsonFromData = require(`${process.cwd()}/lib/analyze/util/packageJsonFromData`);\nconst githubDownloader = require(`${process.cwd()}/lib/analyze/download/github`);\nconst npmDownloader = require(`${process.cwd()}/lib/analyze/download/npm`);\nconst source = require(`${process.cwd()}/lib/analyze/collect/source`);\n\nconst tmpDir = `${process.cwd()}/test/tmp`;\nconst fixturesDir = `${process.cwd()}/test/fixtures/analyze/collect`;\n\nfunction mockExternal(mocks, dir) {\n    mocks = Object.assign({ clone: () => {}, checkout: () => {} }, mocks);\n    dir = dir || tmpDir;\n\n    return betray(cp, 'exec', [\n        {\n            match: (command) => command.indexOf('bin/david') !== -1,\n            handle: (command, options, callback) => {\n                let json;\n\n                try {\n                    json = (mocks.david && mocks.david(command)) || {};\n                } catch (err) {\n                    return callback(err, err.stdout || '', err.stderr || '');\n                }\n\n                fs.writeFileSync(`${dir}/.npms-david.json`, JSON.stringify(json));\n                callback(null, '', '');\n            },\n        },\n        {\n            match: () => true,\n            handle: () => { throw new Error('Not mocked'); },\n        },\n    ]);\n}\n\ndescribe('source', () => {\n    before(() => sepia.fixtureDir(`${fixturesDir}/recorded/source`));\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    [\n        { name: 'cross-spawn', downloader: githubDownloader },\n        { name: 'planify', downloader: githubDownloader },\n        { name: 'hapi', downloader: githubDownloader },\n        { name: '0', downloader: npmDownloader },\n        { name: 'backoff', downloader: githubDownloader },\n    ].forEach((entry) => {\n        it(`should collect \\`${entry.name}\\` correctly`, () => {\n            sepia.enable();\n\n            const escapedName = entry.name.replace('/', '%2f');\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/${escapedName}/data.json`);\n            const packageJson = packageJsonFromData(entry.name, data);\n            const expected = loadJsonFile.sync(`${fixturesDir}/modules/${escapedName}/expected-source.json`);\n\n            return entry.downloader(packageJson)(tmpDir)\n            .then((downloaded) => {\n                const betrayed = mockExternal();\n\n                return source(data, packageJson, downloaded)\n                .then((collected) => expect(collected).to.eql(expected))\n                .finally(() => betrayed.restore());\n            })\n            .finally(() => sepia.disable());\n        });\n    });\n\n    describe('monorepos', () => {\n        [\n            { name: 'react-router', downloader: githubDownloader },\n            { name: 'babel-jest', downloader: githubDownloader },\n        ].forEach((entry) => {\n            it(`should collect \\`${entry.name}\\` correctly`, () => {\n                sepia.enable();\n\n                const data = loadJsonFile.sync(`${fixturesDir}/modules/${entry.name}/data.json`);\n                const packageJson = packageJsonFromData(entry.name, data);\n                const expected = loadJsonFile.sync(`${fixturesDir}/modules/${entry.name}/expected-source.json`);\n\n                return entry.downloader(packageJson)(tmpDir)\n                .then((downloaded) => {\n                    const betrayed = mockExternal(null, downloaded.packageDir);\n\n                    return source(data, packageJson, downloaded)\n                    .then((collected) => expect(collected).to.eql(expected))\n                    .finally(() => betrayed.restore());\n                })\n                .finally(() => sepia.disable());\n            });\n        });\n\n        it('should detect tests on the package dir and fallback to root', () => {\n            sepia.enable();\n            const betrayed = mockExternal(null, `${tmpDir}/cross-spawn`);\n\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n            const packageJson = packageJsonFromData('cross-spawn', data);\n\n            fs.mkdirSync(`${tmpDir}/cross-spawn`);\n            fs.writeFileSync(`${tmpDir}/cross-spawn/package.json`, JSON.stringify(packageJson));\n            fs.writeFileSync(`${tmpDir}/cross-spawn/test.js`, 'foo');\n            fs.writeFileSync(`${tmpDir}/test.js`, 'foobar');\n\n            return Promise.try(() => (\n                source(data, packageJson, { dir: tmpDir, packageDir: `${tmpDir}/cross-spawn` })\n                .then((collected) => expect(collected.files.testsSize).to.equal(3))\n            ))\n            .then(() => {\n                fs.unlinkSync(`${tmpDir}/cross-spawn/test.js`);\n\n                return source(data, packageJson, { dir: tmpDir, packageDir: `${tmpDir}/cross-spawn` })\n                .then((collected) => expect(collected.files.testsSize).to.equal(6));\n            })\n            .finally(() => {\n                sepia.disable();\n                betrayed.restore();\n            });\n        });\n\n        it('should detect changelog on the package dir and fallback to root', () => {\n            sepia.enable();\n            const betrayed = mockExternal(null, `${tmpDir}/cross-spawn`);\n\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n            const packageJson = packageJsonFromData('cross-spawn', data);\n\n            fs.mkdirSync(`${tmpDir}/cross-spawn`);\n            fs.writeFileSync(`${tmpDir}/cross-spawn/package.json`, JSON.stringify(packageJson));\n            fs.writeFileSync(`${tmpDir}/cross-spawn/CHANGELOG.md`, 'foo');\n\n            return Promise.try(() => (\n                source(data, packageJson, { dir: tmpDir, packageDir: `${tmpDir}/cross-spawn` })\n                .then((collected) => expect(collected.files.hasChangelog).to.equal(true))\n            ))\n            .then(() => {\n                fs.unlinkSync(`${tmpDir}/cross-spawn/CHANGELOG.md`);\n                fs.writeFileSync(`${tmpDir}/CHANGELOG.md`, 'foo');\n\n                return source(data, packageJson, { dir: tmpDir, packageDir: `${tmpDir}/cross-spawn` })\n                .then((collected) => expect(collected.files.hasChangelog).to.equal(true));\n            })\n            .finally(() => {\n                sepia.disable();\n                betrayed.restore();\n            });\n        });\n\n        it('should detect readme badges on the package dir and root', () => {\n            sepia.enable();\n            const betrayed = mockExternal(null, `${tmpDir}/cross-spawn`);\n\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n            const packageJson = packageJsonFromData('cross-spawn', data);\n\n            fs.mkdirSync(`${tmpDir}/cross-spawn`);\n            fs.writeFileSync(`${tmpDir}/cross-spawn/package.json`, JSON.stringify(packageJson));\n            fs.writeFileSync(`${tmpDir}/README.md`, `\n                # planify\n\n                [![NPM version][npm-image]][npm-url]\n\n                [npm-url]:https://npmjs.org/package/planify\n                [npm-image]:http://img.shields.io/npm/v/planify.svg\n            `);\n\n            return Promise.try(() => (\n                source(data, packageJson, { dir: tmpDir, packageDir: `${tmpDir}/cross-spawn` })\n                .then((collected) => expect(collected.badges).to.have.length(7))\n            ))\n            .then(() => {\n                delete data.readme;\n\n                return source(data, packageJson, { dir: tmpDir, packageDir: `${tmpDir}/cross-spawn` })\n                .then((collected) => expect(collected.badges).to.have.length(1));\n            })\n            .finally(() => {\n                sepia.disable();\n                betrayed.restore();\n            });\n        });\n\n        it('should detect linters on the package dir and root', () => {\n            sepia.enable();\n            const betrayed = mockExternal(null, `${tmpDir}/cross-spawn`);\n\n            const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n            const packageJson = packageJsonFromData('cross-spawn', data);\n\n            fs.mkdirSync(`${tmpDir}/cross-spawn`);\n            fs.writeFileSync(`${tmpDir}/cross-spawn/package.json`, JSON.stringify(packageJson));\n            fs.writeFileSync(`${tmpDir}/cross-spawn/.editorconfig`, 'foo');\n            fs.writeFileSync(`${tmpDir}/.eslintrc.json`, 'foo');\n\n            return Promise.try(() => (\n                source(data, packageJson, { dir: tmpDir, packageDir: `${tmpDir}/cross-spawn` })\n                .then((collected) => expect(collected.linters).to.eql(['editorconfig', 'eslint']))\n            ))\n            .then(() => {\n                fs.unlinkSync(`${tmpDir}/cross-spawn/.editorconfig`);\n\n                return source(data, packageJson, { dir: tmpDir, packageDir: `${tmpDir}/cross-spawn` })\n                .then((collected) => expect(collected.linters).to.eql(['eslint']));\n            })\n            .finally(() => {\n                sepia.disable();\n                betrayed.restore();\n            });\n        });\n\n        it('should ignore malformed downloaded package.json when detecting linters');\n    });\n\n    it('should work around NPM_TOKEN env var, e.g.: `babbel`');\n\n    it('should handle broken dependencies when checking outdated with david', () => {\n        sepia.enable();\n        const betrayed = mockExternal({\n            david: () => { throw Object.assign(new Error('foo'), { stderr: 'failed to get versions' }); },\n        });\n\n        const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n        const packageJson = packageJsonFromData('cross-spawn', data);\n\n        fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify(packageJson));\n\n        return source(data, packageJson, { dir: tmpDir, packageDir: tmpDir })\n        .then((collected) => expect(collected.outdatedDependencies).to.equal(false))\n        .finally(() => {\n            sepia.disable();\n            betrayed.restore();\n        });\n    });\n\n    it('should handle broken package data when checking outdated with david', () => {\n        sepia.enable();\n        const betrayed = mockExternal({\n            david: () => { throw Object.assign(new Error('foo'), { stderr: 'data[currentVersion].versions.sort is not a function' }); },\n        });\n\n        const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n        const packageJson = packageJsonFromData('cross-spawn', data);\n\n        fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify(packageJson));\n\n        return source(data, packageJson, { dir: tmpDir, packageDir: tmpDir })\n        .then((collected) => expect(collected.outdatedDependencies).to.equal(false))\n        .finally(() => {\n            sepia.disable();\n            betrayed.restore();\n        });\n    });\n\n    it('should handle broken package name when checking outdated with david', () => {\n        sepia.enable();\n        const betrayed = mockExternal({\n            david: () => { throw Object.assign(new Error('foo'), { stderr: 'AssertionError [ERR_ASSERTION]' }); },\n        });\n\n        const data = loadJsonFile.sync(`${fixturesDir}/modules/cross-spawn/data.json`);\n        const packageJson = packageJsonFromData('cross-spawn', data);\n\n        fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify(packageJson));\n\n        return source(data, packageJson, { dir: tmpDir, packageDir: tmpDir })\n        .then((collected) => expect(collected.outdatedDependencies).to.equal(false))\n        .finally(() => {\n            sepia.disable();\n            betrayed.restore();\n        });\n    });\n\n    it('should signal as unrecoverable if there\\'s a .npmrc pointing to a private registry');\n\n    it('should retry on network errors');\n});\n"
  },
  {
    "path": "test/spec/analyze/collect/util/fileContents.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst cp = require('child_process');\nconst expect = require('chai').expect;\nconst fileContents = require(`${process.cwd()}/lib/analyze/collect/util/fileContents`);\n\nconst tmpDir = `${process.cwd()}/test/tmp`;\n\ndescribe('fileContents', () => {\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    it('should return the file contents of the given path', () => {\n        fs.writeFileSync(`${tmpDir}/foo`, 'foo');\n\n        return fileContents(`${tmpDir}/foo`)\n        .then((contents) => expect(contents).to.equal('foo'));\n    });\n\n    it('should return 0 if the path does not exist', () => (\n        fileContents(`${tmpDir}/foo`)\n        .then((contents) => expect(contents).to.equal(null))\n    ));\n\n    it('should return 0 on recursive symlinks', () => {\n        fs.symlinkSync(`${tmpDir}/foo`, `${tmpDir}/bar`);\n        fs.symlinkSync(`${tmpDir}/bar`, `${tmpDir}/foo`);\n\n        return fileContents(`${tmpDir}/foo`)\n        .then((contents) => expect(contents).to.equal(null));\n    });\n\n    it('should return 0 for non-file paths', () => {\n        fs.mkdirSync(`${tmpDir}/foo`);\n\n        return fileContents(`${tmpDir}/foo`)\n        .then((contents) => expect(contents).to.equal(null));\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/collect/util/fileSize.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst cp = require('child_process');\nconst expect = require('chai').expect;\nconst fileSize = require(`${process.cwd()}/lib/analyze/collect/util/fileSize`);\n\nconst tmpDir = `${process.cwd()}/test/tmp`;\n\ndescribe('fileSize', () => {\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    it('should return the size of the given path', () => {\n        fs.writeFileSync(`${tmpDir}/foo`, 'foo');\n\n        return fileSize(`${tmpDir}/foo`)\n        .then((size) => expect(size).to.equal(3));\n    });\n\n    it('should return the size of the given paths', () => {\n        fs.writeFileSync(`${tmpDir}/foo`, 'foo');\n        fs.writeFileSync(`${tmpDir}/fooz`, 'fooz');\n\n        return fileSize([`${tmpDir}/foo`, `${tmpDir}/fooz`])\n        .then((size) => expect(size).to.equal(7));\n    });\n\n    it('should return 0 if the path does not exist', () => (\n        fileSize(`${tmpDir}/foo`)\n        .then((size) => expect(size).to.equal(0))\n        .then(() => fileSize([`${tmpDir}/foo`, `${tmpDir}/bar`]))\n        .then((size) => expect(size).to.equal(0))\n    ));\n\n    it('should return 0 on recursive symlinks', () => {\n        fs.symlinkSync(`${tmpDir}/foo`, `${tmpDir}/bar`);\n        fs.symlinkSync(`${tmpDir}/bar`, `${tmpDir}/foo`);\n\n        return fileSize(`${tmpDir}/foo`)\n        .then((size) => expect(size).to.equal(0));\n    });\n\n    it('should return 0 for non-file paths', () => {\n        fs.mkdirSync(`${tmpDir}/foo`);\n\n        return fileSize(`${tmpDir}/foo`)\n        .then((size) => expect(size).to.equal(0));\n    });\n\n    describe('dir', () => {\n        it('should recursively sum the size of all files in a directory', () => {\n            fs.writeFileSync(`${tmpDir}/foo`, 'foo');\n            fs.writeFileSync(`${tmpDir}/.foo`, '.foo'); // Test hidden files\n\n            fs.mkdirSync(`${tmpDir}/dir`);\n            fs.writeFileSync(`${tmpDir}/dir/bar`, 'bar');\n            fs.writeFileSync(`${tmpDir}/dir/.bar`, '.bar'); // Test hidden files\n\n            return fileSize.dir(`${tmpDir}`)\n            .then((size) => expect(size).to.equal(14));\n        });\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/collect/util/pointsToRanges.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst chronokinesis = require('chronokinesis');\nconst pointsToRanges = require(`${process.cwd()}/lib/analyze/collect/util/pointsToRanges`);\n\ndescribe('pointsToRanges', () => {\n    it('should arrange points into ranges', () => {\n        const points = {\n            a: {\n                date: '2016-05-01T00:00:00.000Z',\n                value: 'foo',\n            },\n            b: {\n                date: '2016-05-10T00:00:00.000Z',\n                value: 'foo',\n            },\n            c: {\n                date: '2016-05-20T00:00:00.000Z',\n                value: 'foo',\n            },\n            d: {\n                date: '2016-05-30T00:00:00.000Z',\n                value: 'foo',\n            },\n            e: {\n                date: '2016-06-10T00:00:00.000Z',\n                value: 'foo',\n            },\n            f: {\n                date: '2016-06-20T00:00:00.000Z',\n                value: 'foo',\n            },\n        };\n\n        const ranges = pointsToRanges(Object.values(points), [\n            { start: '2016-05-01T00:00:00.000Z', end: '2016-05-11T00:00:00.000Z' },\n            { start: '2016-05-11T00:00:00.000Z', end: '2016-05-12T00:00:00.000Z' },\n            { start: '2016-05-12T00:00:00.000Z', end: '2016-06-10T00:00:00.000Z' },\n            { start: '2016-06-10T00:00:00.000Z', end: '2017-01-01T00:00:00.000Z' },\n        ]);\n\n        expect(ranges).to.eql([\n            {\n                from: '2016-05-01T00:00:00.000Z',\n                to: '2016-05-11T00:00:00.000Z',\n                points: [points.a, points.b],\n            },\n            {\n                from: '2016-05-11T00:00:00.000Z',\n                to: '2016-05-12T00:00:00.000Z',\n                points: [],\n            },\n            {\n                from: '2016-05-12T00:00:00.000Z',\n                to: '2016-06-10T00:00:00.000Z',\n                points: [points.c, points.d],\n            },\n            {\n                from: '2016-06-10T00:00:00.000Z',\n                to: '2017-01-01T00:00:00.000Z',\n                points: [points.e, points.f],\n            },\n        ]);\n    });\n\n    describe('bucketsFromBreakpoints', () => {\n        before(() => chronokinesis.travel('2016-05-14T15:00:00.000Z'));\n        after(() => chronokinesis.reset());\n\n        it('should generate ranges based on breakpoints', () => {\n            const ranges = pointsToRanges.bucketsFromBreakpoints([1, 7, 15, 30, 90]);\n            const dates = ranges.map((range) => [range.start.toISOString(), range.end.toISOString()]);\n\n            expect(dates).to.eql([\n                ['2016-05-13T00:00:00.000Z', '2016-05-14T00:00:00.000Z'],\n                ['2016-05-07T00:00:00.000Z', '2016-05-14T00:00:00.000Z'],\n                ['2016-04-29T00:00:00.000Z', '2016-05-14T00:00:00.000Z'],\n                ['2016-04-14T00:00:00.000Z', '2016-05-14T00:00:00.000Z'],\n                ['2016-02-14T00:00:00.000Z', '2016-05-14T00:00:00.000Z'],\n            ]);\n        });\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/collect/util/promisePropsSettled.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst promisePropsSettled = require(`${process.cwd()}/lib/analyze/collect/util/promisePropsSettled`);\n\ndescribe('promisePropsSettled', () => {\n    it('should behave like Promise.props', () => (\n        promisePropsSettled({\n            foo: 'foo',\n            bar: Promise.resolve('bar'),\n        })\n        .then((props) => expect(props).to.eql({ foo: 'foo', bar: 'bar' }))\n    ));\n\n    it('should resolve only when all promises are finished', () => {\n        const startTime = Date.now();\n\n        return promisePropsSettled({\n            foo: Promise.delay(500),\n            bar: Promise.reject(new Error('foo')),\n        })\n        .then(() => {\n            throw new Error('Should have failed');\n        }, (err) => {\n            expect(err.message).to.equal('foo');\n            expect(Date.now() - startTime).to.be.above(498);\n        });\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/download/git.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst cp = require('child_process');\nconst loadJsonFile = require('load-json-file');\nconst expect = require('chai').expect;\nconst betray = require('betray');\nconst git = require(`${process.cwd()}/lib/analyze/download/git`);\n\nconst tmpDir = `${process.cwd()}/test/tmp`;\n\nfunction mock(mocks) {\n    mocks = Object.assign({ clone: () => {}, checkout: () => {} }, mocks);\n\n    return betray(cp, 'exec', [\n        {\n            match: (command) => command.indexOf('clone') !== -1,\n            handle: (command, options, callback) => {\n                try {\n                    mocks.clone && mocks.clone(command);\n                } catch (err) {\n                    return callback(err, err.stdout || '', err.stderr || '');\n                }\n\n                cp.execSync(`mkdir -p ${tmpDir}/.git`);\n                callback(null, '', '');\n            },\n        },\n        {\n            match: (command) => command.indexOf('checkout') !== -1,\n            handle: (command, options, callback) => {\n                try {\n                    mocks.checkout && mocks.checkout(command);\n                } catch (err) {\n                    return callback(err, err.stdout || '', err.stderr || '');\n                }\n\n                callback(null, '', '');\n            },\n        },\n    ]);\n}\n\ndescribe('git', () => {\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    it('should detect GitHub, GitLab and BitBucket endpoints', () => {\n        let download;\n\n        download = git({ repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' } });\n        expect(download).to.be.a('function');\n\n        download = git({ repository: { type: 'git', url: 'git@github.com:IndigoUnited/node-cross-spawn.git' } });\n        expect(download).to.be.a('function');\n\n        download = git({ repository: { type: 'git', url: 'https://github.com/IndigoUnited/node-cross-spawn.git' } });\n        expect(download).to.be.a('function');\n\n        download = git({ repository: { type: 'git', url: 'git@bitbucket.org:fvdm/node-xml2json.git' } });\n        expect(download).to.be.a('function');\n\n        download = git({ repository: { type: 'git', url: 'https://bitbucket.org/fvdm/node-xml2json.git' } });\n        expect(download).to.be.a('function');\n\n        download = git({ repository: { type: 'git', url: 'git@gitlab.com:codium/angular-ui-select.git' } });\n        expect(download).to.be.a('function');\n\n        download = git({ repository: { type: 'git', url: 'https://gitlab.com/codium/angular-ui-select.git' } });\n        expect(download).to.be.a('function');\n\n        download = git({ repository: { type: 'git', url: 'https://foo.com/IndigoUnited/node-cross-spawn.git' } });\n        expect(download).to.equal(null);\n\n        download = git({ repository: null });\n        expect(download).to.equal(null);\n\n        download = git({});\n        expect(download).to.equal(null);\n    });\n\n    it('should clone a GitHub repository and checkout a specific ref', () => {\n        const betrayed = mock({\n            checkout: () => fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({ name: 'cross-spawn', version: '0.1.0' })),\n        });\n\n        return Promise.each([\n            'git://github.com/IndigoUnited/node-cross-spawn.git',\n            'git@github.com:IndigoUnited/node-cross-spawn.git',\n            'https://github.com/IndigoUnited/node-cross-spawn.git',\n        ], (url) => {\n            const download = git({\n                name: 'cross-spawn',\n                repository: { type: 'git', url },\n                gitHead: '5fb20ce2f44d9947fcf59e8809fe6cb1d767433b',\n            });\n\n            return download(tmpDir)\n            .then((downloaded) => {\n                expect(downloaded.downloader).to.equal('git');\n                expect(downloaded.dir).to.equal(tmpDir);\n                expect(downloaded.packageDir).to.equal(tmpDir);\n                expect(downloaded.packageJson.name).to.equal('cross-spawn');\n                expect(downloaded.gitRef).to.equal('5fb20ce2f44d9947fcf59e8809fe6cb1d767433b');\n            })\n            .then(() => loadJsonFile.sync(`${tmpDir}/package.json`))\n            .then((packageJson) => {\n                expect(betrayed.invoked).to.be.greaterThan(1);\n                expect(packageJson.version).to.equal('0.1.0');\n\n                cp.execSync(`rm -rf ${tmpDir}`);\n                cp.execSync(`mkdir -p ${tmpDir}`);\n            });\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should clone a Bitbucket repository and checkout a specific ref', () => {\n        const betrayed = mock({\n            checkout: () => fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({ name: 'xml2json', version: '0.2.2' })),\n        });\n\n        return Promise.each([\n            'git@bitbucket.org:fvdm/node-xml2json.git',\n            'https://bitbucket.org/fvdm/node-xml2json.git',\n        ], (url) => {\n            const download = git({\n                name: 'xml2json',\n                repository: { type: 'git', url },\n                gitHead: '4c8dc5c636f7bbb746ed519a39bb1b183a27064d',\n            });\n\n            return download(tmpDir)\n            .then((downloaded) => {\n                expect(downloaded.downloader).to.equal('git');\n                expect(downloaded.dir).to.equal(tmpDir);\n                expect(downloaded.packageDir).to.equal(tmpDir);\n                expect(downloaded.packageJson.name).to.equal('xml2json');\n                expect(downloaded.gitRef).to.equal('4c8dc5c636f7bbb746ed519a39bb1b183a27064d');\n            })\n            .then(() => loadJsonFile.sync(`${tmpDir}/package.json`))\n            .then((packageJson) => {\n                expect(betrayed.invoked).to.be.greaterThan(1);\n                expect(packageJson.version).to.equal('0.2.2');\n\n                cp.execSync(`rm -rf ${tmpDir}`);\n                cp.execSync(`mkdir -p ${tmpDir}`);\n            });\n        })\n        .finally(() => betrayed.restore())\n        .then(() => expect(betrayed.invoked).to.be.greaterThan(1));\n    });\n\n    it('should clone a GitLab repository and checkout a specific ref', () => {\n        const betrayed = mock({\n            checkout: () => fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({ name: 'angular-ui-select', version: '0.2.0' })),\n        });\n\n        return Promise.each([\n            'git@gitlab.com:codium/angular-ui-select.git',\n            'https://gitlab.com/codium/angular-ui-select.git',\n        ], (url) => {\n            const download = git({\n                name: 'angular-ui-select',\n                repository: { type: 'git', url },\n                gitHead: '560042cc9005e5f2c2889a3c7e64ea3ea0b80c88',\n            });\n\n            return download(tmpDir)\n            .then((downloaded) => {\n                expect(downloaded.downloader).to.equal('git');\n                expect(downloaded.dir).to.equal(tmpDir);\n                expect(downloaded.packageDir).to.equal(tmpDir);\n                expect(downloaded.packageJson.name).to.equal('angular-ui-select');\n                expect(downloaded.gitRef).to.equal('560042cc9005e5f2c2889a3c7e64ea3ea0b80c88');\n            })\n            .then(() => loadJsonFile.sync(`${tmpDir}/package.json`))\n            .then((packageJson) => {\n                expect(betrayed.invoked).to.be.greaterThan(1);\n                expect(packageJson.version).to.equal('0.2.0');\n\n                cp.execSync(`rm -rf ${tmpDir}`);\n                cp.execSync(`mkdir -p ${tmpDir}`);\n            });\n        })\n        .finally(() => betrayed.restore())\n        .then(() => expect(betrayed.invoked).to.be.greaterThan(1));\n    });\n\n    it('should not fail if the ref does not exist (commit hash)', () => {\n        const betrayed = mock({\n            clone: () => {\n                fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({ name: 'cross-spawn' }));\n                fs.writeFileSync(`${tmpDir}/appveyor.yml`, '');\n            },\n            checkout: () => {\n                throw Object.assign(new Error('foo'),\n                    { stderr: 'fatal: reference is not a tree: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' });\n            },\n        });\n\n        const download = git({\n            name: 'cross-spawn',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n        });\n\n        return download(tmpDir)\n        .then((downloaded) => {\n            expect(betrayed.invoked).to.be.greaterThan(1);\n\n            expect(downloaded.downloader).to.equal('git');\n            expect(downloaded.dir).to.equal(tmpDir);\n            expect(downloaded.packageDir).to.equal(tmpDir);\n            expect(downloaded.packageJson.name).to.equal('cross-spawn');\n            expect(downloaded.gitRef).to.equal(null);\n\n            expect(() => fs.accessSync(`${tmpDir}/package.json`)).to.not.throw();\n            expect(() => fs.accessSync(`${tmpDir}/appveyor.yml`)).to.not.throw();\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should not fail if the ref does not exist (branch)', () => {\n        const betrayed = mock({\n            clone: () => {\n                fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({ name: 'cross-spawn' }));\n                fs.writeFileSync(`${tmpDir}/appveyor.yml`, '');\n            },\n            checkout: () => {\n                throw Object.assign(new Error('foo'),\n                    { stderr: 'error: pathspec \\'foo\\' did not match any file(s) known to git.' });\n            },\n        });\n\n        const download = git({\n            name: 'cross-spawn',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'foo',\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            expect(betrayed.invoked).to.be.greaterThan(1);\n            expect(() => fs.accessSync(`${tmpDir}/package.json`)).to.not.throw();\n            expect(() => fs.accessSync(`${tmpDir}/appveyor.yml`)).to.not.throw();\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should deal with non-existent repositories', () => {\n        const betrayed = mock({\n            clone: () => {\n                throw Object.assign(new Error('foo'),\n                    { stderr: '\\nline\\nERROR: Repository not found.\\nline\\nline' });\n            },\n        });\n\n        const download = git({\n            name: 'cool-module',\n            repository: { type: 'git', url: 'git://github.com/some-org/repo-404.git' },\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            expect(betrayed.invoked).to.be.greaterThan(1);\n            expect(fs.readdirSync(tmpDir)).to.eql(['package.json']);\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should deal with permission errors', () => {\n        const stderrArray = [\n            'not found',\n            '\\nline\\nfatal: Authentication failed for `url`.\\nline\\nline',\n        ];\n\n        return Promise.map(stderrArray, (stderr) => {\n            const betrayed = mock({\n                clone: () => {\n                    throw Object.assign(new Error('foo'), { stderr });\n                },\n            });\n\n            const download = git({\n                name: 'cool-module',\n                repository: { type: 'git', url: 'git://github.com/some-org/repo-private.git' },\n            });\n\n            return download(tmpDir)\n            .then(() => {\n                expect(betrayed.invoked).to.be.greaterThan(1);\n                expect(fs.readdirSync(tmpDir)).to.eql(['package.json']);\n            })\n            .finally(() => betrayed.restore());\n        });\n    });\n\n    it('should deal with invalid repositories', () => {\n        const stderrArray = [\n            '\\nline\\nfatal: unable to access url: The requested URL returned error: `code`',\n            'is this a git repository',\n        ];\n\n        return Promise.map(stderrArray, (stderr) => {\n            const betrayed = mock({\n                clone: () => {\n                    throw Object.assign(new Error('foo'), { stderr });\n                },\n            });\n\n            const download = git({\n                name: 'cool-module',\n                repository: { type: 'git', url: 'git://github.com/some-org/foo%25bar.git' },\n            });\n\n            return download(tmpDir)\n            .then(() => {\n                expect(betrayed.invoked).to.be.greaterThan(1);\n                expect(fs.readdirSync(tmpDir)).to.eql(['package.json']);\n            })\n            .finally(() => betrayed.restore());\n        });\n    });\n\n    it('should abort if it\\'s taking too much time');\n\n    it('should fail if the tarball has too many files', () => {\n        const betrayed = mock({\n            clone: () => fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({ name: 'cross-spawn', version: '0.1.0' })),\n        });\n\n        const download = git({\n            name: 'cross-spawn',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n        }, { maxFiles: 1 });\n\n        return download(tmpDir)\n        .then(() => {\n            throw new Error('Should have failed');\n        }, (err) => {\n            expect(err.message).to.match(/too many file/i);\n            expect(err.unrecoverable).to.equal(true);\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should delete the .git folder', () => {\n        const betrayed = mock();\n\n        const download = git({\n            name: 'cross-spawn',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            expect(betrayed.invoked).to.be.greaterThan(1);\n            expect(() => fs.accessSync(`${tmpDir}/.git`)).to.throw(/ENOENT/);\n\n            cp.execSync(`rm -rf ${tmpDir}`);\n            cp.execSync(`mkdir -p ${tmpDir}`);\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should merge package.json', () => {\n        const betrayed = mock({\n            checkout: () => fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({\n                name: 'cross-spawn',\n                version: '1.0.0',\n                description: 'Cross platform child_process#spawn and child_process#spawnSync',\n            })),\n        });\n\n        const npmPackageJson = {\n            name: 'cool-module',\n            version: '0.1.0',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'b5239f25c0274feba89242b77d8f0ce57dce83ad', // This is the ref for 1.0.0\n        };\n\n        const download = git(npmPackageJson);\n\n        return download(tmpDir)\n        .then(() => loadJsonFile.sync(`${tmpDir}/package.json`))\n        .then((packageJson) => {\n            expect(betrayed.invoked).to.be.greaterThan(1);\n\n            expect(packageJson.name).to.equal('cool-module');\n            expect(packageJson.version).to.equal('0.1.0');\n            expect(packageJson.description).to.equal('Cross platform child_process#spawn and child_process#spawnSync');\n\n            // Test if properties were merged back\n            expect(npmPackageJson.name).to.equal('cool-module');\n            expect(npmPackageJson.version).to.equal('0.1.0');\n            expect(npmPackageJson.description).to.equal('Cross platform child_process#spawn and child_process#spawnSync');\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should remove the package-lock.json file', () => {\n        const betrayed = mock({\n            checkout: () => {\n                fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({ version: '1.0.0' }));\n                fs.writeFileSync(`${tmpDir}/package-lock.json`, JSON.stringify({ version: '1.0.0' }));\n            },\n        });\n\n        const download = git({\n            name: 'babel-preset-moxy',\n            version: '2.3.1',\n            repository: { type: 'git', url: 'git://github.com/moxystudio/babel-preset-moxy' },\n            gitHead: 'b77ba80b71d6898970e2541b1f1c34d86ba493f7', // This is the ref for 2.3.1\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            expect(fs.existsSync(`${tmpDir}/package-lock.json`)).to.equal(false);\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should resolve with the downloaded object', () => {\n        const betrayed = mock({\n            checkout: () => fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({ name: 'cross-spawn', version: '1.0.0' })),\n        });\n\n        const download = git({\n            name: 'cool-module',\n            version: '0.1.0',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'b5239f25c0274feba89242b77d8f0ce57dce83ad', // This is the ref for 1.0.0\n        });\n\n        return download(tmpDir)\n        .then((downloaded) => {\n            expect(downloaded.dir).to.equal(tmpDir);\n            expect(downloaded.packageDir).to.equal(tmpDir);\n            expect(downloaded.packageJson.name).to.equal('cross-spawn');\n            expect(downloaded.packageJson.version).to.equal('1.0.0');\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should detect the proper `packageDir` for mono-repositories', () => {\n        const betrayed = mock({\n            checkout: () => {\n                fs.mkdirSync(`${tmpDir}/cool-module`);\n                fs.writeFileSync(`${tmpDir}/cool-module/package.json`, JSON.stringify({\n                    name: 'cool-module',\n                    version: '1.0.0',\n                }));\n            },\n        });\n\n        const download = git({\n            name: 'cool-module',\n            version: '0.1.0',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'b5239f25c0274feba89242b77d8f0ce57dce83ad', // This is the ref for 1.0.0\n        });\n\n        return download(tmpDir)\n        .then((downloaded) => {\n            expect(downloaded.dir).to.equal(tmpDir);\n            expect(downloaded.packageDir).to.equal(`${tmpDir}/cool-module`);\n            expect(downloaded.packageJson.name).to.equal('cool-module');\n            expect(downloaded.packageJson.version).to.equal('1.0.0');\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should retry on network errors');\n});\n"
  },
  {
    "path": "test/spec/analyze/download/github.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst cp = require('child_process');\nconst loadJsonFile = require('load-json-file');\nconst expect = require('chai').expect;\nconst sepia = require(`${process.cwd()}/test/util/sepia`);\nconst github = require(`${process.cwd()}/lib/analyze/download/github`);\n\nconst tmpDir = `${process.cwd()}/test/tmp`;\nconst fixturesDir = `${process.cwd()}/test/fixtures/analyze/download`;\n\ndescribe('github', () => {\n    before(() => sepia.fixtureDir(`${fixturesDir}/recorded/github`));\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    it('should detect various GitHub urls', () => {\n        let download;\n\n        download = github({ repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' } });\n        expect(download).to.be.a('function');\n\n        download = github({ repository: { type: 'git', url: 'git@github.com:IndigoUnited/node-cross-spawn.git' } });\n        expect(download).to.be.a('function');\n\n        download = github({ repository: { type: 'git', url: 'https://github.com/IndigoUnited/node-cross-spawn.git' } });\n        expect(download).to.be.a('function');\n\n        download = github({ repository: { type: 'git', url: 'https://foo.com/IndigoUnited/node-cross-spawn.git' } });\n        expect(download).to.equal(null);\n\n        download = github({ repository: null });\n        expect(download).to.equal(null);\n\n        download = github({});\n        expect(download).to.equal(null);\n    });\n\n    it('should download a specific commit hash', () => {\n        sepia.enable();\n\n        const download = github({\n            name: 'cross-spawn',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'b5239f25c0274feba89242b77d8f0ce57dce83ad',\n        });\n\n        return download(tmpDir)\n        .then((downloaded) => {\n            expect(downloaded.downloader).to.equal('github');\n            expect(downloaded.dir).to.equal(tmpDir);\n            expect(downloaded.packageDir).to.equal(tmpDir);\n            expect(downloaded.packageJson.name).to.equal('cross-spawn');\n            expect(downloaded.gitRef).to.equal('b5239f25c0274feba89242b77d8f0ce57dce83ad');\n        })\n        .then(() => loadJsonFile.sync(`${tmpDir}/package.json`))\n        .then((packageJson) => expect(packageJson.version).to.equal('1.0.0'))\n        .finally(() => sepia.disable());\n    });\n\n    it('should fallback to default branch if the commit hash does not exist', () => {\n        sepia.enable();\n\n        const download = github({\n            name: 'cross-spawn',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',\n        });\n\n        return download(tmpDir)\n        .then((downloaded) => {\n            expect(downloaded.downloader).to.equal('github');\n            expect(downloaded.dir).to.equal(tmpDir);\n            expect(downloaded.packageDir).to.equal(tmpDir);\n            expect(downloaded.packageJson.name).to.equal('cross-spawn');\n            expect(downloaded.gitRef).to.equal(null);\n\n            expect(() => fs.accessSync(`${tmpDir}/package.json`)).to.not.throw();\n            expect(() => fs.accessSync(`${tmpDir}/appveyor.yml`)).to.not.throw();\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should fail if the tarball is too large', () => {\n        sepia.nock('https://api.github.com')\n        .get('/repos/liferay/liferay-portal/tarball/')\n        .reply(200, 'foo', {\n            'Content-Length': '1000000000000',\n        });\n\n        const download = github({\n            name: 'liferay-frontend-theme-classic-web',\n            repository: { type: 'git', url: 'git+https://github.com/liferay/liferay-portal.git' },\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            throw new Error('Should have failed');\n        }, (err) => {\n            expect(sepia.nock.isDone()).to.equal(true);\n            expect(err.message).to.match(/too large/i);\n            expect(err.unrecoverable).to.equal(true);\n        })\n        .then(() => Promise.delay(2500)) // Wait some time because request.abort() might take a while\n        .finally(() => sepia.nock.cleanAll());\n    });\n\n    it('should fail if the tarball has too many files', () => {\n        sepia.enable();\n\n        const download = github({\n            name: 'cross-spawn',\n            version: '0.1.0',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'b5239f25c0274feba89242b77d8f0ce57dce83ad', // This is the ref for 1.0.0\n        }, { maxFiles: 1 });\n\n        return download(tmpDir)\n        .then(() => {\n            throw new Error('Should have failed');\n        }, (err) => {\n            expect(err.message).to.match(/too many file/i);\n            expect(err.unrecoverable).to.equal(true);\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should handle some 4xx errors', () => (\n        Promise.each([404, 403, 400], (code) => {\n            sepia.nock('https://api.github.com')\n            .get(`/repos/some-org/repo-${code}/tarball/`)\n            .reply(code);\n\n            const download = github({\n                name: 'cool-module',\n                repository: { type: 'git', url: `git+https://github.com/some-org/repo-${code}.git` },\n            });\n\n            return download(tmpDir)\n            .then(() => {\n                expect(sepia.nock.isDone()).to.equal(true);\n                expect(fs.readdirSync(tmpDir)).to.eql(['package.json']);\n            })\n            .finally(() => sepia.nock.cleanAll());\n        })\n    ));\n\n    it('should handle unavailable repositories');\n\n    it('should handle malformed URLs');\n\n    it('should prefer the passed package.json over the downloaded one', () => {\n        sepia.enable();\n\n        const npmPackageJson = {\n            name: 'cool-module',\n            version: '0.1.0',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'b5239f25c0274feba89242b77d8f0ce57dce83ad', // This is the ref for 1.0.0\n        };\n\n        const download = github(npmPackageJson);\n\n        return download(tmpDir)\n        .then(() => loadJsonFile.sync(`${tmpDir}/package.json`))\n        .then((packageJson) => {\n            expect(packageJson.name).to.equal('cool-module');\n            expect(packageJson.version).to.equal('0.1.0');\n            expect(packageJson.description).to.be.a('string');\n\n            // Test if properties were merged back\n            expect(npmPackageJson.name).to.equal('cool-module');\n            expect(npmPackageJson.version).to.equal('0.1.0');\n            expect(npmPackageJson.description).to.be.a('string');\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should remove the package-lock.json file', () => {\n        sepia.enable();\n\n        const download = github({\n            name: 'babel-preset-moxy',\n            version: '2.3.1',\n            repository: { type: 'git', url: 'git://github.com/moxystudio/babel-preset-moxy' },\n            gitHead: 'b77ba80b71d6898970e2541b1f1c34d86ba493f7', // This is the ref for 2.3.1\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            expect(fs.existsSync(`${tmpDir}/package-lock.json`)).to.equal(false);\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should resolve with the downloaded object', () => {\n        sepia.enable();\n\n        const download = github({\n            name: 'cool-module',\n            version: '0.1.0',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n            gitHead: 'b5239f25c0274feba89242b77d8f0ce57dce83ad', // This is the ref for 1.0.0\n        });\n\n        return download(tmpDir)\n        .then((downloaded) => {\n            expect(downloaded.dir).to.equal(tmpDir);\n            expect(downloaded.packageDir).to.equal(tmpDir);\n            expect(downloaded.packageJson.name).to.equal('cross-spawn');\n            expect(downloaded.packageJson.version).to.equal('1.0.0');\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should detect the proper `packageDir` for mono-repositories', () => {\n        sepia.enable();\n\n        const download = github({\n            name: 'babel-cli',\n            version: '6.23.0',\n            repository: { type: 'git', url: 'git://github.com/babel/babel.git' },\n            gitHead: '48573f1fb4e632add2c000bec3f95d88ebea4440', // This is the ref for 6.23.0\n        });\n\n        return download(tmpDir)\n        .then((downloaded) => {\n            expect(downloaded.dir).to.equal(tmpDir);\n            expect(downloaded.packageDir).to.equal(`${tmpDir}/packages/babel-cli`);\n            expect(downloaded.packageJson.name).to.equal('babel-cli');\n            expect(downloaded.packageJson.version).to.equal('6.23.0');\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should retry on network errors');\n\n    it('should pass the correct options to token-dealer');\n\n    it('should handle rate limit errors (wait/bail)');\n});\n"
  },
  {
    "path": "test/spec/analyze/download/index.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst os = require('os');\nconst cp = require('child_process');\nconst expect = require('chai').expect;\nconst betray = require('betray');\nconst download = require(`${process.cwd()}/lib/analyze/download`);\n\ndescribe('index', () => {\n    it('should use the github downloader, passing in the correct options', () => {\n        const betrayed = betray(download.downloaders, 'github', () => () => Promise.resolve({}));\n\n        const options = {\n            githubTokens: ['foo', 'bar'],\n            waitRateLimit: true,\n        };\n\n        return download({\n            name: 'cross-spawn',\n            repository: { type: 'git', url: 'git://github.com/IndigoUnited/node-cross-spawn.git' },\n        }, options)\n        .then((downloaded) => {\n            expect(betrayed.invoked).to.equal(1);\n\n            const invocation = betrayed.invocations[0];\n\n            expect(invocation[0].name).to.equal('cross-spawn');\n            expect(invocation[1]).to.eql({\n                tokens: options.githubTokens,\n                waitRateLimit: options.waitRateLimit,\n            });\n\n            expect(downloaded).to.eql({});\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should use the git downloader, passing in the correct options', () => {\n        const betrayed = betray(download.downloaders, 'git', () => () => Promise.resolve({}));\n\n        const options = {\n            githubTokens: ['foo', 'bar'],\n            waitRateLimit: true,\n        };\n\n        return download({\n            name: 'angular-ui-select',\n            repository: { type: 'git', url: 'git@gitlab.com:codium/angular-ui-select.git' },\n        }, options)\n        .then((downloaded) => {\n            expect(betrayed.invoked).to.equal(1);\n\n            const invocation = betrayed.invocations[0];\n\n            expect(invocation[0].name).to.equal('angular-ui-select');\n            expect(invocation[1]).to.equal(undefined);\n\n            expect(downloaded).to.eql({});\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should use the npm downloader, passing in the correct options', () => {\n        const betrayed = betray(download.downloaders, 'npm', () => () => Promise.resolve({}));\n\n        const options = {\n            githubTokens: ['foo', 'bar'],\n            waitRateLimit: true,\n        };\n\n        return download({\n            name: 'cross-spawn',\n            dist: { tarball: 'https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.0.tgz' },\n        }, options)\n        .then((downloaded) => {\n            expect(betrayed.invoked).to.equal(1);\n\n            const invocation = betrayed.invocations[0];\n\n            expect(invocation[0].name).to.equal('cross-spawn');\n            expect(invocation[1]).to.equal(undefined);\n\n            expect(downloaded).to.eql({});\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should call downloader with the temporary folder', () => {\n        let tmpDir;\n        const betrayed = betray(download.downloaders, 'npm', () => (tmpDir_) => {\n            tmpDir = tmpDir_;\n\n            return Promise.resolve({});\n        });\n\n        return download({\n            name: 'cross-spawn',\n            dist: { tarball: 'https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.0.tgz' },\n        })\n        .then(() => {\n            expect(betrayed.invoked).to.equal(1);\n            expect(tmpDir.indexOf(`${os.tmpdir()}/npms-analyzer/cross-spawn-`)).to.equal(0);\n            expect(tmpDir).to.match(/-[a-z0-9]+$/);\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    it('should create a unique and kebab-cased temporary folder');\n\n    it('should delete the temporary folder on failure', () => {\n        let tmpDir;\n        const betrayed = betray(download.downloaders, 'npm', () => (tmpDir_) => {\n            tmpDir = tmpDir_;\n\n            return Promise.reject(new Error('foo'));\n        });\n\n        return download({\n            name: 'cross-spawn',\n            dist: { tarball: 'https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.0.tgz' },\n        })\n        .then(() => {\n            throw new Error('Should have failed');\n        }, (err) => {\n            expect(err.message).to.equal('foo');\n            expect(betrayed.invoked).to.equal(1);\n            expect(() => fs.statSync(tmpDir)).to.throw(/ENOENT/i);\n        })\n        .finally(() => betrayed.restore());\n    });\n\n    describe('cleanTmpDir', () => {\n        const tmpDir = `${os.tmpdir()}/npms-analyzer`;\n\n        it('should clean old folders from the temporary folder', () => {\n            cp.execSync(`mkdir -p ${tmpDir}/foo`);\n            cp.execSync(`mkdir -p ${tmpDir}/bar`);\n            fs.utimesSync(`${tmpDir}/bar`, new Date(), new Date(Date.now() - (20 * 24 * 60 * 60 * 1000)));\n\n            return download.cleanTmpDir()\n            .then(() => fs.readdirSync(tmpDir))\n            .then((files) => {\n                expect(files).to.contain('foo');\n                expect(files).not.to.contain('bar');\n            });\n        });\n\n        it('should not fail to clean the folder if it doesn\\'t yet exists', () => {\n            cp.execSync(`rm -rf ${tmpDir}`);\n\n            return download.cleanTmpDir();\n        });\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/download/npm.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst cp = require('child_process');\nconst loadJsonFile = require('load-json-file');\nconst expect = require('chai').expect;\nconst sepia = require(`${process.cwd()}/test/util/sepia`);\nconst npm = require(`${process.cwd()}/lib/analyze/download/npm`);\n\nconst tmpDir = `${process.cwd()}/test/tmp`;\nconst fixturesDir = `${process.cwd()}/test/fixtures/analyze/download`;\n\ndescribe('npm', () => {\n    before(() => sepia.fixtureDir(`${fixturesDir}/recorded/npm`));\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    it('should download the dist tarball', () => {\n        sepia.enable();\n\n        const download = npm({\n            name: 'cross-spawn',\n            dist: { tarball: 'https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.0.tgz' },\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            expect(() => fs.accessSync(`${tmpDir}/package.json`)).to.not.throw();\n            expect(() => fs.accessSync(`${tmpDir}/appveyor.yml`)).to.throw(/ENOENT/);\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should still work if there\\'s no dist tarball', () => {\n        const download = npm({\n            name: 'cool-module',\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            expect(fs.readdirSync(tmpDir)).to.eql(['package.json']);\n        });\n    });\n\n    it('should fail if the tarball is too large', () => {\n        sepia.nock('https://registry.npmjs.org')\n        .get('/cross-spawn/-/cross-spawn-0.1.0.tgz')\n        .reply(200, 'foo', {\n            'Content-Length': '1000000000000',\n        });\n\n        const download = npm({\n            name: 'cross-spawn',\n            dist: { tarball: 'https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.0.tgz' },\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            throw new Error('Should have failed');\n        }, (err) => {\n            expect(sepia.nock.isDone()).to.equal(true);\n            expect(err.message).to.match(/too large/i);\n            expect(err.unrecoverable).to.equal(true);\n        })\n        .finally(() => sepia.nock.cleanAll());\n    });\n\n    it('should fail if the tarball has too many files', () => {\n        sepia.enable();\n\n        const download = npm({\n            name: 'cross-spawn',\n            dist: { tarball: 'https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.0.tgz' },\n        }, { maxFiles: 1 });\n\n        return download(tmpDir)\n        .then(() => {\n            throw new Error('Should have failed');\n        }, (err) => {\n            expect(err.message).to.match(/too many file/i);\n            expect(err.unrecoverable).to.equal(true);\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should handle 404 errors', () => {\n        sepia.nock('https://registry.npmjs.org')\n        .get('/cross-spawn/-/cross-spawn-0.1.0.tgz')\n        .reply(404);\n\n        const download = npm({\n            name: 'cool-module',\n            dist: { tarball: 'https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.0.tgz' },\n        });\n\n        return download(tmpDir)\n        .then(() => {\n            expect(sepia.nock.isDone()).to.equal(true);\n            expect(fs.readdirSync(tmpDir)).to.eql(['package.json']);\n        })\n        .finally(() => sepia.nock.cleanAll());\n    });\n\n    it('should merge package.json', () => {\n        sepia.enable();\n\n        const npmPackageJson = {\n            name: 'cool-module',\n            dist: { tarball: 'https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.1.0.tgz' },\n        };\n\n        const download = npm(npmPackageJson);\n\n        return download(tmpDir)\n        .then(() => loadJsonFile.sync(`${tmpDir}/package.json`))\n        .then((packageJson) => {\n            expect(packageJson.name).to.equal('cool-module');\n            expect(packageJson.version).to.equal('0.1.0');\n            expect(packageJson.description).to.be.a('string');\n\n            // Test if properties were merged back\n            expect(npmPackageJson.name).to.equal('cool-module');\n            expect(npmPackageJson.version).to.equal('0.1.0');\n            expect(npmPackageJson.description).to.be.a('string');\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should resolve with the downloaded object', () => {\n        sepia.enable();\n\n        const npmPackageJson = {\n            name: 'cool-module',\n            version: '0.1.0',\n            dist: { tarball: 'https://registry.npmjs.org/cross-spawn/-/cross-spawn-1.0.0.tgz' },\n        };\n\n        const download = npm(npmPackageJson);\n\n        return download(tmpDir)\n        .then((downloaded) => {\n            expect(downloaded.dir).to.equal(tmpDir);\n            expect(downloaded.packageDir).to.equal(tmpDir);\n            expect(downloaded.packageJson.name).to.equal('cross-spawn');\n            expect(downloaded.packageJson.version).to.equal('1.0.0');\n        })\n        .finally(() => sepia.disable());\n    });\n\n    it('should retry on network errors');\n});\n"
  },
  {
    "path": "test/spec/analyze/download/util/findPackageDir.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst cp = require('child_process');\nconst expect = require('chai').expect;\nconst findPackageDir = require(`${process.cwd()}/lib/analyze/download/util/findPackageDir`);\n\nconst tmpDir = `${process.cwd()}/test/tmp`;\n\ndescribe('findPackageDir', () => {\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    it('should return the same dir if the root package.json points to the same package', () => {\n        fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({\n            name: 'cool-module',\n        }));\n\n        const packageJson = {\n            name: 'cool-module',\n        };\n\n        return findPackageDir(packageJson, tmpDir)\n        .then((dir) => expect(dir).to.equal(tmpDir));\n    });\n\n    it('should return the dir by looking for it in the folder', () => {\n        fs.mkdirSync(`${tmpDir}/cool-module-foo`);\n        fs.writeFileSync(`${tmpDir}/cool-module-foo/package.json`, JSON.stringify({\n            name: 'cool-module',\n        }));\n        fs.mkdirSync(`${tmpDir}/cool-module-zoo`);\n        fs.writeFileSync(`${tmpDir}/cool-module-zoo/package.json`, JSON.stringify({\n            name: 'cool-module-zoo',\n        }));\n        fs.mkdirSync(`${tmpDir}/cool-module-bar`);\n        fs.writeFileSync(`${tmpDir}/cool-module-bar/package.json`, JSON.stringify({\n            name: 'cool-module-xxx',\n        }));\n        fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({\n            name: 'cool-module-builder',\n        }));\n\n        const packageJson = {\n            name: 'cool-module',\n        };\n\n        return findPackageDir(packageJson, tmpDir)\n        .then((dir) => expect(dir).to.equal(`${tmpDir}/cool-module-foo`));\n    });\n\n    it('should swallow invalid json errors', () => {\n        fs.mkdirSync(`${tmpDir}/cool-module-foo`);\n        fs.writeFileSync(`${tmpDir}/cool-module-foo/package.json`, 'wow');\n        fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({\n            name: 'cool-module-builder',\n        }));\n\n        const packageJson = {\n            name: 'cool-module',\n        };\n\n        return findPackageDir(packageJson, tmpDir)\n        .then((dir) => expect(dir).to.equal(tmpDir));\n    });\n\n    it('should not crash if there\\'s no package.json in the root', () => {\n        const packageJson = {\n            name: 'cool-module',\n        };\n\n        return findPackageDir(packageJson, tmpDir)\n        .then((dir) => expect(dir).to.equal(tmpDir));\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/download/util/mergePackageJson.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst cp = require('child_process');\nconst expect = require('chai').expect;\nconst mergePackageJson = require(`${process.cwd()}/lib/analyze/download/util/mergePackageJson`);\n\nconst tmpDir = `${process.cwd()}/test/tmp`;\n\ndescribe('mergePackageJson', () => {\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    it('should merge the files, preferring the passed one', () => {\n        fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({\n            name: 'cool-module',\n            version: '2.0.0',\n            description: 'bar',\n            dependencies: { 'foo-dep': '^1.0.0' },\n            scripts: {},\n        }));\n\n        const packageJson = {\n            name: 'cool-module',\n            version: '1.0.0',\n            keywords: ['cool'],\n            dependencies: { 'cool-dep': '^1.0.0' },\n            scripts: { test: 'mocha' },\n        };\n\n        return mergePackageJson(packageJson, tmpDir)\n        .then(() => {\n            expect(packageJson.name).to.equal('cool-module');\n            expect(packageJson.version).to.equal('1.0.0');\n            expect(packageJson.description).to.equal('bar');\n            expect(packageJson.keywords).to.eql(['cool']);\n            expect(packageJson.dependencies).to.eql({ 'cool-dep': '^1.0.0' });\n            expect(packageJson.scripts).to.eql({ test: 'mocha' });\n        });\n    });\n\n    it('should merge the files, preferring the passed one', () => {\n        fs.writeFileSync(`${tmpDir}/package.json`, JSON.stringify({\n            name: 'cool-module',\n            version: '2.0.0',\n            description: 'bar',\n            dependencies: { 'foo-dep': '^1.0.0' },\n        }));\n\n        const packageJson = {\n            name: 'cool-module',\n            version: '1.0.0',\n            keywords: ['cool'],\n            dependencies: { 'cool-dep': '^1.0.0' },\n        };\n\n        return mergePackageJson(packageJson, tmpDir)\n        .then(() => {\n            expect(packageJson.name).to.equal('cool-module');\n            expect(packageJson.version).to.equal('1.0.0');\n            expect(packageJson.description).to.equal('bar');\n            expect(packageJson.keywords).to.eql(['cool']);\n            expect(packageJson.dependencies).to.eql({ 'cool-dep': '^1.0.0' });\n        });\n    });\n\n    it('should deal with broken downloaded package.json files', () => {\n        fs.writeFileSync(`${tmpDir}/package.json`, 'brokenjson');\n\n        const packageJson = {\n            name: 'cool-module',\n            version: '1.0.0',\n            keywords: ['cool'],\n            dependencies: { 'cool-dep': '^1.0.0' },\n        };\n\n        return mergePackageJson(packageJson, tmpDir)\n        .then(() => {\n            expect(packageJson.name).to.equal('cool-module');\n            expect(packageJson.version).to.equal('1.0.0');\n            expect(packageJson.keywords).to.eql(['cool']);\n            expect(packageJson.dependencies).to.eql({ 'cool-dep': '^1.0.0' });\n        });\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/download/util/untar.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst cp = require('child_process');\nconst which = require('which');\nconst expect = require('chai').expect;\nconst untar = require(`${process.cwd()}/lib/analyze/download/util/untar`);\n\n/* eslint-disable max-statements-per-line */\nconst hasBsdTar = (() => { try { return !!which.sync('gtar'); } catch (err) { return false; } })();\n/* eslint-enable max-statements-per-line */\nconst tmpDir = `${process.cwd()}/test/tmp`;\nconst fixturesDir = `${process.cwd()}/test/fixtures/analyze/download`;\n\ndescribe('untar', () => {\n    beforeEach(() => cp.execSync(`mkdir -p ${tmpDir}`));\n    afterEach(() => cp.execSync(`rm -rf ${tmpDir}`));\n\n    it('should decompress a tar.gz archive file', () => {\n        fs.writeFileSync(`${tmpDir}/test.tgz`, fs.readFileSync(`${fixturesDir}/downloaded/couchdb-iterator-2.0.2.tgz`));\n\n        return untar(`${tmpDir}/test.tgz`)\n        .then(() => {\n            const files = fs.readdirSync(tmpDir);\n\n            expect(files).to.contain('index.js');\n            expect(files).to.contain('package.json');\n        });\n    });\n\n    it('should chmod 0777 extracted files recursively', () => {\n        fs.writeFileSync(`${tmpDir}/test.tgz`, fs.readFileSync(`${fixturesDir}/downloaded/couchdb-iterator-2.0.2.tgz`));\n\n        return untar(`${tmpDir}/test.tgz`)\n        .then(() => {\n            const stat = fs.statSync(`${tmpDir}/index.js`);\n            const permStr = `0${(stat.mode & 0o777).toString(8)}`; // eslint-disable-line no-bitwise\n\n            expect(permStr).to.equal('0777');\n        });\n    });\n\n    it('should deal with malformed archives', () => (\n        // Test malformed archive\n        Promise.try(() => {\n            fs.writeFileSync(`${tmpDir}/test.tgz`, fs.readFileSync(`${fixturesDir}/mocked/broken-archive.tgz`));\n\n            return untar(`${tmpDir}/test.tgz`)\n            .then(() => {\n                throw new Error('Should have failed');\n            }, (err) => {\n                expect(err.message).to.contain('malformed');\n            });\n        })\n        // Test non-gzip archive (e.g.: testing233 module)\n        .then(() => {\n            fs.writeFileSync(`${tmpDir}/test.tgz`, fs.readFileSync(`${fixturesDir}/mocked/non-gzip-archive.tgz`));\n\n            return untar(`${tmpDir}/test.tgz`)\n            .then(() => {\n                throw new Error('Should have failed');\n            }, (err) => {\n                expect(err.message).to.contain('malformed');\n            });\n        })\n    ));\n\n    it('should deal with archives that have extended/unknown headers', () => {\n        fs.writeFileSync(`${tmpDir}/test.tgz`, fs.readFileSync(`${fixturesDir}/downloaded/pickles2-contents-editor-2.0.0-alpha.1.tgz`));\n\n        return untar(`${tmpDir}/test.tgz`)\n        .then(() => {\n            const files = fs.readdirSync(tmpDir);\n\n            expect(files).to.contain('package.json');\n            expect(files).to.contain('tests');\n            expect(files).to.contain('src');\n            expect(files).to.contain('dist');\n        });\n    });\n\n    it('should deal with \"is out of uid_t range\" errors by using bsdtar', () => {\n        // Only bsdtar is benevolent with these kind of errors\n        if (!hasBsdTar) {\n            return;\n        }\n\n        fs.writeFileSync(`${tmpDir}/test.tgz`, fs.readFileSync(`${fixturesDir}/downloaded/citong-1.3.1.tgz`));\n\n        return untar(`${tmpDir}/test.tgz`)\n        .then(() => {\n            const files = fs.readdirSync(tmpDir);\n\n            expect(files).to.contain('package.json');\n        });\n    });\n\n    it('should fail if extraction fails', () => (\n        untar(`${tmpDir}/archive-that-will-never-exist.tgz`)\n        .then(() => {\n            throw new Error('Expected to fail');\n        }, (err) => {\n            expect(err.stderr).to.match(/(error opening|no such file)/i);\n        })\n    ));\n\n    it('should delete the archive file if successful', () => (\n        // Good tar\n        Promise.try(() => {\n            fs.writeFileSync(`${tmpDir}/test.tgz`, fs.readFileSync(`${fixturesDir}/downloaded/couchdb-iterator-2.0.2.tgz`));\n\n            return untar(`${tmpDir}/test.tgz`)\n            .then(() => expect(() => fs.accessSync(`${tmpDir}/test.tgz`)).to.throw(/ENOENT/));\n        })\n        // Broken tar\n        .then(() => {\n            cp.execSync(`rm -rf ${tmpDir}`);\n            cp.execSync(`mkdir -p ${tmpDir}`);\n            fs.writeFileSync(`${tmpDir}/test.tgz`, fs.readFileSync(`${fixturesDir}/mocked/broken-archive.tgz`));\n\n            return untar(`${tmpDir}/test.tgz`)\n            .catch(() => {})\n            .then(() => fs.accessSync(`${tmpDir}/test.tgz`));\n        })\n    ));\n});\n"
  },
  {
    "path": "test/spec/analyze/evaluate/index.js",
    "content": ""
  },
  {
    "path": "test/spec/analyze/evaluate/maintenance.js",
    "content": ""
  },
  {
    "path": "test/spec/analyze/evaluate/popularity.js",
    "content": ""
  },
  {
    "path": "test/spec/analyze/evaluate/quality.js",
    "content": ""
  },
  {
    "path": "test/spec/analyze/util/exec.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst exec = require(`${process.cwd()}/lib/analyze/util/exec`);\n\ndescribe('exec', () => {\n    it('should provide a promise based child_processed#exec', () => (\n        exec('echo foo')\n        .then(() => {})\n    ));\n\n    it('should resolve with an array with `stdout` and `stderr` items', () => (\n        Promise.try(() => (\n            exec('echo foo')\n            .spread((stdout, stderr) => {\n                expect(stdout).to.equal('foo\\n');\n                expect(stderr).to.equal('');\n            })\n        ))\n        .then(() => (\n            exec('echo foo 1>&2')\n            .spread((stdout, stderr) => {\n                expect(stdout).to.equal('');\n                expect(stderr).to.equal('foo\\n');\n            })\n        ))\n    ));\n\n    it('should reject with an error, containing an additional `stdout` and `stderr` properties', () => (\n        Promise.try(() => (\n            exec('echo foo && exit 1')\n            .then(() => {\n                throw new Error('Should have failed');\n            }, (err) => {\n                expect(err.exitCode).to.equal(1);\n                expect(err.stdout).to.equal('foo\\n');\n                expect(err.stderr).to.equal('');\n            })\n        ))\n        .then(() => (\n            exec('echo foo 1>&2 && exit 2')\n            .then(() => {\n                throw new Error('Should have failed');\n            }, (err) => {\n                expect(err.exitCode).to.equal(2);\n                expect(err.stdout).to.equal('');\n                expect(err.stderr).to.equal('foo\\n');\n            })\n        ))\n    ));\n\n    describe('escape', () => {\n        it('should offer an es6 template tag for escaping arguments', () => {\n            const command = exec.escape`echo ${'foo>bar'} ${'| something'}`;\n\n            expect(command).to.equal('echo \\'foo>bar\\' \\'| something\\'');\n        });\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/util/gotRetry.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst betray = require('betray');\nconst gotRetry = require(`${process.cwd()}/lib/analyze/util/gotRetry`);\n\nconst gotRetries = gotRetry.retries;\n\nconst transientError = Object.assign(new Error('foo'), { code: 'EAI_AGAIN', href: 'http://google.com' });\nconst httpError = Object.assign(new Error('foo'), { statusCode: 503, method: 'GET', href: 'http://google.com' });\n\ndescribe('gotRetry', () => {\n    it('should export an object', () => {\n        expect(gotRetry).to.be.an('object');\n        expect(gotRetry.retries).to.be.an('function');\n    });\n\n    it('should retry on transient errors', () => {\n        expect(gotRetries(1, transientError)).to.be.above(0);\n    });\n\n    it('should retry on some HTTP errors', () => {\n        expect(gotRetries(1, httpError)).to.be.above(0);\n    });\n\n    it('should not retry when an unrecognized error occurs', () => {\n        expect(gotRetries(1, new Error())).to.equal(0);\n    });\n\n    it('should not retry after attempt 5', () => {\n        expect(gotRetries(5 + 1, transientError)).to.equal(0);\n        expect(gotRetries(Number.MAX_VALUE, transientError)).to.equal(0);\n    });\n\n    it('should log when retrying', () => {\n        const betrayed = betray(logger.children['util/got-retry'], 'warn');\n\n        gotRetries(1, transientError);\n\n        expect(betrayed.invoked).to.greaterThan(0);\n        expect(betrayed.invocations[0][0]).to.eql({ url: transientError.href, iteration: 1, error: transientError });\n        expect(betrayed.invocations[0][1]).to.match(/retrying request../i);\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/util/hostedGitInfo.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst hostedGitInfo = require(`${process.cwd()}/lib/analyze/util/hostedGitInfo`);\n\ndescribe('hostedGitInfo', () => {\n    it('should be wrapper to hosted-git-info#fromUrl', () => {\n        [\n            'git://github.com/IndigoUnited/node-cross-spawn.git',\n            'git@github.com:IndigoUnited/node-cross-spawn.git',\n            'https://github.com/IndigoUnited/node-cross-spawn.git',\n        ].forEach((url) => {\n            const info = hostedGitInfo(url);\n\n            expect(info).to.be.an('object');\n            expect(info.type).to.equal('github');\n            expect(info.domain).to.equal('github.com');\n            expect(info.user).to.equal('IndigoUnited');\n            expect(info.project).to.equal('node-cross-spawn');\n        });\n\n        [\n            'git@gitlab.com:codium/angular-ui-select.git',\n            'https://gitlab.com/codium/angular-ui-select.git',\n        ].forEach((url) => {\n            const info = hostedGitInfo(url);\n\n            expect(info).to.be.an('object');\n            expect(info.type).to.equal('gitlab');\n            expect(info.domain).to.equal('gitlab.com');\n            expect(info.user).to.equal('codium');\n            expect(info.project).to.equal('angular-ui-select');\n        });\n\n        [\n            'git@bitbucket.org:fvdm/node-xml2json.git',\n            'https://bitbucket.org/fvdm/node-xml2json.git',\n        ].forEach((url) => {\n            const info = hostedGitInfo(url);\n\n            expect(info).to.be.an('object');\n            expect(info.type).to.equal('bitbucket');\n            expect(info.domain).to.equal('bitbucket.org');\n            expect(info.user).to.equal('fvdm');\n            expect(info.project).to.equal('node-xml2json');\n        });\n    });\n\n    it('should not crash on malformed URLs', () => {\n        let info;\n\n        try {\n            info = hostedGitInfo('git://github.com/balderdashy/waterline-%s.git');\n        } catch (e) {\n            throw new Error('Should not crash');\n        }\n\n        expect(info).to.equal(undefined);\n    });\n\n    it('should not crash on incomplete URLs', () => {\n        let info;\n\n        try {\n            info = hostedGitInfo('git://github.com');\n        } catch (e) {\n            throw new Error('Should not crash');\n        }\n\n        expect(info).to.equal(undefined);\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/util/normalizePackageJson.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst normalizePackageJson = require(`${process.cwd()}/lib/analyze/util/normalizePackageJson`);\n\ndescribe('normalizePackageJson', () => {\n    it('should mutate original object', () => {\n        const packageJson = { name: 'foo' };\n        const normalizedPackageJson = normalizePackageJson(packageJson);\n\n        expect(packageJson).to.equal(normalizedPackageJson);\n    });\n\n    it('should normalize package json', () => {\n        expect(normalizePackageJson({ name: 'foo' }).readme).to.equal('ERROR: No README data found!');\n    });\n\n    it('should throw an unrecoverable error if normalize-package-data crashes', () => {\n        try {\n            normalizePackageJson({\n                name: 'foo',\n                repository: { type: 'git', url: 'git://github.com/balderdashy/waterline-%s.git' },\n            });\n        } catch (err) {\n            expect(err.message).to.match(/uri malformed/i);\n            expect(err.unrecoverable).to.equal(true);\n        }\n    });\n\n    it('should throw an unrecoverable error if there\\'s no name', () => {\n        try {\n            normalizePackageJson({});\n        } catch (err) {\n            expect(err.message).to.match(/missing name/i);\n            expect(err.unrecoverable).to.equal(true);\n        }\n    });\n\n    it('should normalize repository trailing slashes', () => {\n        const packageJson = normalizePackageJson({\n            name: 'foo',\n            repository: { type: 'git', url: 'git://github.com/balderdashy/waterline.git/' },\n        });\n\n        expect(packageJson.repository.url).to.equal('git://github.com/balderdashy/waterline.git');\n    });\n\n    it('should remove paths from repository URLs', () => {\n        let packageJson;\n\n        packageJson = normalizePackageJson({\n            name: 'babel-helper-fixtures',\n            repository: 'https://github.com/babel/babel/tree/master/packages/babel-helper-fixtures',\n        });\n\n        expect(packageJson.repository.url).to.equal('git+https://github.com/babel/babel.git');\n\n        packageJson = normalizePackageJson({\n            name: 'babel-helper-fixtures',\n            repository: { type: 'git', url: 'https://github.com/babel/babel/tree/master/packages/babel-helper-fixtures' },\n        });\n\n        expect(packageJson.repository.url).to.equal('git+https://github.com/babel/babel.git');\n    });\n});\n"
  },
  {
    "path": "test/spec/analyze/util/packageJsonFromData.js",
    "content": "'use strict';\n\nconst expect = require('chai').expect;\nconst packageJsonFromData = require(`${process.cwd()}/lib/analyze/util/packageJsonFromData`);\n\ndescribe('packageJsonFromData', () => {\n    it('should return the latest package json', () => {\n        const packageJson = packageJsonFromData('foo', {\n            name: 'foo',\n            'dist-tags': { latest: '1.0.0' },\n            versions: {\n                '0.1.0': { name: 'foo', version: '0.1.0' },\n                '1.0.0': { name: 'foo', version: '1.0.0' },\n                '2.0.0': { name: 'foo', version: '2.0.0' },\n            },\n        });\n\n        expect(packageJson).to.be.an('object');\n        expect(packageJson.name).to.equal('foo');\n        expect(packageJson.version).to.equal('1.0.0');\n    });\n\n    it('should not crash if there\\'s no latest dist-tags', () => {\n        [\n            {\n                name: 'foo',\n                versions: {\n                    '1.0.0': { name: 'foo', version: '1.0.0' },\n                    '2.0.0': { name: 'foo', version: '2.0.0' },\n                },\n            },\n            {\n                name: 'foo',\n                'dist-tags': {},\n                versions: {\n                    '1.0.0': { name: 'foo', version: '1.0.0' },\n                    '2.0.0': { name: 'foo', version: '2.0.0' },\n                },\n            },\n        ].forEach((data) => {\n            const packageJson = packageJsonFromData('foo', data);\n\n            expect(packageJson).to.be.an('object');\n            expect(packageJson.name).to.equal('foo');\n            expect(packageJson.version).to.equal('0.0.1');\n        });\n    });\n\n    it('should not crash if there\\'s no matching version', () => {\n        let packageJson;\n\n        packageJson = packageJsonFromData('foo', {\n            name: 'foo',\n            'dist-tags': { latest: '1.0.0' },\n        });\n\n        expect(packageJson).to.be.an('object');\n        expect(packageJson.name).to.equal('foo');\n        expect(packageJson.version).to.equal('1.0.0');\n\n        packageJson = packageJsonFromData('foo', {\n            name: 'foo',\n            'dist-tags': { latest: '1.0.0' },\n            versions: {\n                '2.0.0': { name: 'foo', version: '2.0.0' },\n            },\n        });\n\n        expect(packageJson).to.be.an('object');\n        expect(packageJson.name).to.equal('foo');\n        expect(packageJson.version).to.equal('1.0.0');\n    });\n\n    it('should fail if names mismatch', () => {\n        expect(() => packageJsonFromData('foo', {\n            name: 'bar',\n            'dist-tags': { latest: '1.0.0' },\n            versions: {\n                '1.0.0': { name: 'foo', version: '2.0.0' },\n            },\n        })).to.throw(/name mismatch/i);\n\n        expect(() => packageJsonFromData('bar', {\n            name: 'foo',\n            'dist-tags': { latest: '1.0.0' },\n            versions: {\n                '1.0.0': { name: 'foo', version: '2.0.0' },\n            },\n        })).to.throw(/name mismatch/i);\n\n        // Data is ok but package.json is not, it should simply overwrite\n        expect(() => packageJsonFromData('foo', {\n            name: 'foo',\n            'dist-tags': { latest: '1.0.0' },\n            versions: {\n                '1.0.0': { name: 'bar', version: '2.0.0' },\n            },\n        })).to.throw(/name mismatch/i);\n\n        // All ok\n        expect(packageJsonFromData('foo', {\n            name: 'foo',\n            'dist-tags': { latest: '1.0.0' },\n            versions: {\n                '1.0.0': { name: 'foo', version: '2.0.0' },\n            },\n        }).name).to.equal('foo');\n    });\n\n    it('should check if versions mismatch', () => {\n        const packageJson = packageJsonFromData('foo', {\n            name: 'foo',\n            'dist-tags': { latest: '1.0.0' },\n            versions: {\n                '1.0.0': { name: 'foo', version: '2.0.0' },\n            },\n        });\n\n        expect(packageJson.version).to.equal('1.0.0');\n    });\n\n    it('should normalize package json with normalize-package-data', () => {\n        const packageJson = packageJsonFromData('foo', {\n            name: 'foo',\n            'dist-tags': { latest: '1.0.0' },\n            versions: {\n                '1.0.0': { name: 'foo', version: '1.0.0' },\n            },\n        });\n\n        expect(packageJson).to.be.an('object');\n        expect(packageJson.readme).to.equal('ERROR: No README data found!');\n    });\n});\n"
  },
  {
    "path": "test/test.js",
    "content": "/* eslint global-require:0 */\n\n'use strict';\n\nconst path = require('path');\nconst fs = require('fs');\n\nif (process.cwd() !== path.join(__dirname, '..')) {\n    throw new Error('Tests must be run from the project root');\n}\n\n// Configure\nrequire('../lib/configure');\nrequire('./util/sepia');\nlogger.level = 'fatal';\n\n// Auto-load tests\nconst walk = (dir) => fs.readdirSync(dir).forEach((file) => {\n    const filePath = `${dir}/${file}`;\n\n    if (fs.statSync(filePath).isDirectory()) {\n        describe(file, () => walk(filePath));\n    } else {\n        require(filePath);\n    }\n});\n\nwalk(`${__dirname}/spec`);\n"
  },
  {
    "path": "test/util/sepia.js",
    "content": "'use strict';\n\n/**\n * This file adds .enable() and .disable() to sepia.\n * Additionally any usage of nock must use sepia.nock so that interoperability with sepia works without issues.\n */\n\nconst glob = require('glob');\nconst http = require('http');\nconst https = require('https');\nconst wrap = require('lodash/wrap');\nconst mockRequire = require('mock-require');\n\n// Grab original requests\nconst originalRequests = { http: http.request, https: https.request };\n\n// Grab sepia requests + nock (used when enabled)\nconst sepia = require('sepia');\nconst enabledNock = require('nock');\nconst sepiaRequests = { http: http.request, https: https.request };\n\n// Grab standalone requests + nock (used when disabled)\nhttp.request = originalRequests.http;\nhttps.request = originalRequests.https;\ndelete require.cache[require.resolve('nock')];\nglob.sync('**/*.js', { cwd: `${process.cwd()}/node_modules/nock/lib` }).forEach((file) => {\n    delete require.cache[require.resolve(`nock/lib/${file}`)];\n});\nconst disabledNock = require('nock');\n\n// Map abort to end due to a bug in nock, see: https://github.com/nock/nock/issues/867\nhttp.request = wrap(http.request, (request, options, callback) => {\n    const req = request(options, callback);\n\n    return Object.assign(req, { abort: req.end });\n});\nhttps.request = wrap(https.request, (request, options, callback) => {\n    const req = request(options, callback);\n\n    return Object.assign(req, { abort: req.end });\n});\n\nconst nockedRequests = { http: http.request, https: https.request };\n\n// Mock the timed-out module used by got() to avoid timeouts being triggered: the socket 'connect' event\n// is never fired when using sepia/nock\n// See: https://github.com/floatdrop/timed-out/blob/bdc812346570a0ed4e6d7d5fdc668e2feb72f239/index.js#L21\nmockRequire('timed-out', (req) => req);\n\nfunction enable() {\n    http.request = sepiaRequests.http;\n    https.request = sepiaRequests.https;\n    sepia.nock = enabledNock;\n}\n\nfunction disable() {\n    http.request = nockedRequests.http;\n    https.request = nockedRequests.https;\n    sepia.nock = disabledNock;\n}\n\nsepia.enable = enable;\nsepia.disable = disable;\nsepia.nock = disabledNock;\n\nmodule.exports = sepia;\n"
  }
]