pax_global_header00006660000000000000000000000064131377505210014516gustar00rootroot0000000000000052 comment=49961dd14d9892be39f07d3f71e265d852abbff1 node-which-1.3.0/000077500000000000000000000000001313775052100135445ustar00rootroot00000000000000node-which-1.3.0/.gitignore000066400000000000000000000000451313775052100155330ustar00rootroot00000000000000.nyc_output/ coverage/ node_modules/ node-which-1.3.0/.travis.yml000066400000000000000000000000671313775052100156600ustar00rootroot00000000000000sudo: false language: node_js node_js: - '4' - '6' node-which-1.3.0/CHANGELOG.md000066400000000000000000000044431313775052100153620ustar00rootroot00000000000000# Changes ## v1.2.14 * appveyor: drop node 5 and 0.x * travis-ci: add node 6, drop 0.x ## v1.2.13 * test: Pass missing option to pass on windows * update tap * update isexe to 2.0.0 * neveragain.tech pledge request ## v1.2.12 * Removed unused require ## v1.2.11 * Prevent changelog script from being included in package ## v1.2.10 * Use env.PATH only, not env.Path ## v1.2.9 * fix for paths starting with ../ * Remove unused `is-absolute` module ## v1.2.8 * bullet items in changelog that contain (but don't start with) # ## v1.2.7 * strip 'update changelog' changelog entries out of changelog ## v1.2.6 * make the changelog bulleted ## v1.2.5 * make a changelog, and keep it up to date * don't include tests in package * Properly handle relative-path executables * appveyor * Attach error code to Not Found error * Make tests pass on Windows ## v1.2.4 * Fix typo ## v1.2.3 * update isexe, fix regression in pathExt handling ## v1.2.2 * update deps, use isexe module, test windows ## v1.2.1 * Sometimes windows PATH entries are quoted * Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode. * doc cli ## v1.2.0 * Add support for opt.all and -as cli flags * test the bin * update travis * Allow checking for multiple programs in bin/which * tap 2 ## v1.1.2 * travis * Refactored and fixed undefined error on Windows * Support strict mode ## v1.1.1 * test +g exes against secondary groups, if available * Use windows exe semantics on cygwin & msys * cwd should be first in path on win32, not last * Handle lower-case 'env.Path' on Windows * Update docs * use single-quotes ## v1.1.0 * Add tests, depend on is-absolute ## v1.0.9 * which.js: root is allowed to execute files owned by anyone ## v1.0.8 * don't use graceful-fs ## v1.0.7 * add license to package.json ## v1.0.6 * isc license ## 1.0.5 * Awful typo ## 1.0.4 * Test for path absoluteness properly * win: Allow '' as a pathext if cmd has a . in it ## 1.0.3 * Remove references to execPath * Make `which.sync()` work on Windows by honoring the PATHEXT variable. * Make `isExe()` always return true on Windows. * MIT ## 1.0.2 * Only files can be exes ## 1.0.1 * Respect the PATHEXT env for win32 support * should 0755 the bin * binary * guts * package * 1st node-which-1.3.0/CONTRIBUTING.md000066400000000000000000000001161313775052100157730ustar00rootroot00000000000000Please consider signing [the neveragain.tech pledge](http://neveragain.tech/) node-which-1.3.0/LICENSE000066400000000000000000000013751313775052100145570ustar00rootroot00000000000000The ISC License Copyright (c) Isaac Z. Schlueter and Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. node-which-1.3.0/README.md000066400000000000000000000023521313775052100150250ustar00rootroot00000000000000# which Like the unix `which` utility. Finds the first instance of a specified executable in the PATH environment variable. Does not cache the results, so `hash -r` is not needed when the PATH changes. ## USAGE ```javascript var which = require('which') // async usage which('node', function (er, resolvedPath) { // er is returned if no "node" is found on the PATH // if it is found, then the absolute path to the exec is returned }) // sync usage // throws if not found var resolved = which.sync('node') // if nothrow option is used, returns null if not found resolved = which.sync('node', {nothrow: true}) // Pass options to override the PATH and PATHEXT environment vars. which('node', { path: someOtherPath }, function (er, resolved) { if (er) throw er console.log('found at %j', resolved) }) ``` ## CLI USAGE Same as the BSD `which(1)` binary. ``` usage: which [-as] program ... ``` ## OPTIONS You may pass an options object as the second argument. - `path`: Use instead of the `PATH` environment variable. - `pathExt`: Use instead of the `PATHEXT` environment variable. - `all`: Return all matches, instead of just the first one. Note that this means the function returns an array of strings instead of a single string. node-which-1.3.0/appveyor.yml000066400000000000000000000005341313775052100161360ustar00rootroot00000000000000environment: matrix: - nodejs_version: '6' - nodejs_version: '4' install: - ps: Install-Product node $env:nodejs_version - set CI=true - npm -g install npm@latest - set PATH=%APPDATA%\npm;%PATH% - npm install matrix: fast_finish: true build: off version: '{build}' shallow_clone: true clone_depth: 1 test_script: - npm test node-which-1.3.0/bin/000077500000000000000000000000001313775052100143145ustar00rootroot00000000000000node-which-1.3.0/bin/which000077500000000000000000000017311313775052100153460ustar00rootroot00000000000000#!/usr/bin/env node var which = require("../") if (process.argv.length < 3) usage() function usage () { console.error('usage: which [-as] program ...') process.exit(1) } var all = false var silent = false var dashdash = false var args = process.argv.slice(2).filter(function (arg) { if (dashdash || !/^-/.test(arg)) return true if (arg === '--') { dashdash = true return false } var flags = arg.substr(1).split('') for (var f = 0; f < flags.length; f++) { var flag = flags[f] switch (flag) { case 's': silent = true break case 'a': all = true break default: console.error('which: illegal option -- ' + flag) usage() } } return false }) process.exit(args.reduce(function (pv, current) { try { var f = which.sync(current, { all: all }) if (all) f = f.join('\n') if (!silent) console.log(f) return pv; } catch (e) { return 1; } }, 0)) node-which-1.3.0/gen-changelog.sh000066400000000000000000000003561313775052100166020ustar00rootroot00000000000000#!/bin/bash ( echo '# Changes' echo '' git log --first-parent --pretty=format:'%s' \ | grep -v '^update changelog' \ | perl -p -e 's/^((v?[0-9]+\.?)+)$/\n## \1\n/g' \ | perl -p -e 's/^([^#\s].*)$/* \1/g' )> CHANGELOG.md node-which-1.3.0/package-lock.json000066400000000000000000002206011313775052100167610ustar00rootroot00000000000000{ "name": "which", "version": "1.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "argparse": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { "sprintf-js": "1.0.3" } }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true }, "assert-plus": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "dev": true }, "aws4": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, "optional": true, "requires": { "tweetnacl": "0.14.5" } }, "bind-obj-methods": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz", "integrity": "sha1-T1l5ysFXk633DkiBYeRj4gnKUJw=", "dev": true }, "bluebird": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", "dev": true }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "caseless": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", "dev": true }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", "has-ansi": "2.0.0", "strip-ansi": "3.0.1", "supports-color": "2.0.0" } }, "clean-yaml-object": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", "dev": true }, "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { "delayed-stream": "1.0.0" } }, "commander": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "coveralls": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.1.tgz", "integrity": "sha1-1wu5rMGDXsTwY/+drFQjwXsR8Xg=", "dev": true, "requires": { "js-yaml": "3.6.1", "lcov-parse": "0.0.10", "log-driver": "1.2.5", "minimist": "1.2.0", "request": "2.79.0" }, "dependencies": { "js-yaml": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", "dev": true, "requires": { "argparse": "1.0.9", "esprima": "2.7.3" } }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "cross-spawn": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { "lru-cache": "4.1.1", "which": "1.2.14" } }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true } } }, "debug": { "version": "2.6.8", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "dev": true, "requires": { "ms": "2.0.0" } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "diff": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", "dev": true }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, "optional": true, "requires": { "jsbn": "0.1.1" } }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esprima": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", "dev": true }, "events-to-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", "dev": true }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true }, "extsprintf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", "dev": true }, "foreground-child": { "version": "1.5.6", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" } }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, "form-data": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.5", "mime-types": "2.1.15" } }, "fs-exists-cached": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=", "dev": true }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "function-loop": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.1.tgz", "integrity": "sha1-gHa7MF6OajzO7ikgdl8zDRkPNAw=", "dev": true }, "generate-function": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", "dev": true }, "generate-object-property": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, "requires": { "is-property": "1.0.2" } }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true } } }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", "inherits": "2.0.3", "minimatch": "3.0.4", "once": "1.4.0", "path-is-absolute": "1.0.1" } }, "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true, "requires": { "chalk": "1.1.3", "commander": "2.11.0", "is-my-json-valid": "2.16.0", "pinkie-promise": "2.0.1" } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", "hoek": "2.16.3", "sntp": "1.0.9" } }, "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { "assert-plus": "0.2.0", "jsprim": "1.4.0", "sshpk": "1.13.1" } }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "is-my-json-valid": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", "dev": true, "requires": { "generate-function": "2.0.0", "generate-object-property": "1.2.0", "jsonpointer": "4.0.1", "xtend": "4.0.1" } }, "is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", "dev": true }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, "js-yaml": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.0.tgz", "integrity": "sha512-0LoUNELX4S+iofCT8f4uEHIiRBR+c2AINyC8qRWfC6QNruLtxVZRJaPcu/xwMgFIgDxF25tGHaDjvxzJCNE9yw==", "dev": true, "requires": { "argparse": "1.0.9", "esprima": "4.0.0" }, "dependencies": { "esprima": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", "dev": true } } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "jsonpointer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", "dev": true }, "jsprim": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.0.2", "json-schema": "0.2.3", "verror": "1.3.6" }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true } } }, "lcov-parse": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", "dev": true }, "log-driver": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", "dev": true }, "lru-cache": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" } }, "mime-db": { "version": "1.27.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", "dev": true }, "mime-types": { "version": "2.1.15", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "dev": true, "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.8" } }, "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "nyc": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.0.3.tgz", "integrity": "sha1-DCi8ZpqFFiFwm/eghQMDS+44ErY=", "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", "caching-transform": "1.0.1", "convert-source-map": "1.5.0", "debug-log": "1.0.1", "default-require-extensions": "1.0.0", "find-cache-dir": "0.1.1", "find-up": "2.1.0", "foreground-child": "1.5.6", "glob": "7.1.2", "istanbul-lib-coverage": "1.1.1", "istanbul-lib-hook": "1.0.7", "istanbul-lib-instrument": "1.7.3", "istanbul-lib-report": "1.1.1", "istanbul-lib-source-maps": "1.2.1", "istanbul-reports": "1.1.1", "md5-hex": "1.3.0", "merge-source-map": "1.0.4", "micromatch": "2.3.11", "mkdirp": "0.5.1", "resolve-from": "2.0.0", "rimraf": "2.6.1", "signal-exit": "3.0.2", "spawn-wrap": "1.3.7", "test-exclude": "4.1.1", "yargs": "8.0.2", "yargs-parser": "5.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", "repeat-string": "1.6.1" } }, "amdefine": { "version": "1.0.1", "bundled": true, "dev": true }, "ansi-regex": { "version": "2.1.1", "bundled": true, "dev": true }, "ansi-styles": { "version": "2.2.1", "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", "bundled": true, "dev": true, "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", "bundled": true, "dev": true }, "arr-diff": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "arr-flatten": "1.0.3" } }, "arr-flatten": { "version": "1.0.3", "bundled": true, "dev": true }, "array-unique": { "version": "0.2.1", "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", "bundled": true, "dev": true }, "async": { "version": "1.5.2", "bundled": true, "dev": true }, "babel-code-frame": { "version": "6.22.0", "bundled": true, "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", "js-tokens": "3.0.1" } }, "babel-generator": { "version": "6.25.0", "bundled": true, "dev": true, "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.23.0", "babel-types": "6.25.0", "detect-indent": "4.0.0", "jsesc": "1.3.0", "lodash": "4.17.4", "source-map": "0.5.6", "trim-right": "1.0.1" } }, "babel-messages": { "version": "6.23.0", "bundled": true, "dev": true, "requires": { "babel-runtime": "6.23.0" } }, "babel-runtime": { "version": "6.23.0", "bundled": true, "dev": true, "requires": { "core-js": "2.4.1", "regenerator-runtime": "0.10.5" } }, "babel-template": { "version": "6.25.0", "bundled": true, "dev": true, "requires": { "babel-runtime": "6.23.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0", "babylon": "6.17.4", "lodash": "4.17.4" } }, "babel-traverse": { "version": "6.25.0", "bundled": true, "dev": true, "requires": { "babel-code-frame": "6.22.0", "babel-messages": "6.23.0", "babel-runtime": "6.23.0", "babel-types": "6.25.0", "babylon": "6.17.4", "debug": "2.6.8", "globals": "9.18.0", "invariant": "2.2.2", "lodash": "4.17.4" } }, "babel-types": { "version": "6.25.0", "bundled": true, "dev": true, "requires": { "babel-runtime": "6.23.0", "esutils": "2.0.2", "lodash": "4.17.4", "to-fast-properties": "1.0.3" } }, "babylon": { "version": "6.17.4", "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", "bundled": true, "dev": true }, "brace-expansion": { "version": "1.1.8", "bundled": true, "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "1.8.5", "bundled": true, "dev": true, "requires": { "expand-range": "1.8.2", "preserve": "0.2.0", "repeat-element": "1.1.2" } }, "builtin-modules": { "version": "1.1.1", "bundled": true, "dev": true }, "caching-transform": { "version": "1.0.1", "bundled": true, "dev": true, "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", "write-file-atomic": "1.3.4" } }, "camelcase": { "version": "1.2.1", "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, "dev": true, "optional": true, "requires": { "align-text": "0.1.4", "lazy-cache": "1.0.4" } }, "chalk": { "version": "1.1.3", "bundled": true, "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", "has-ansi": "2.0.0", "strip-ansi": "3.0.1", "supports-color": "2.0.0" } }, "cliui": { "version": "2.1.0", "bundled": true, "dev": true, "optional": true, "requires": { "center-align": "0.1.3", "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", "bundled": true, "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", "bundled": true, "dev": true }, "commondir": { "version": "1.0.1", "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.0", "bundled": true, "dev": true }, "core-js": { "version": "2.4.1", "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, "dev": true, "requires": { "lru-cache": "4.1.1", "which": "1.2.14" } }, "debug": { "version": "2.6.8", "bundled": true, "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, "dev": true, "requires": { "strip-bom": "2.0.0" } }, "detect-indent": { "version": "4.0.0", "bundled": true, "dev": true, "requires": { "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", "bundled": true, "dev": true, "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", "bundled": true, "dev": true }, "esutils": { "version": "2.0.2", "bundled": true, "dev": true }, "execa": { "version": "0.5.1", "bundled": true, "dev": true, "requires": { "cross-spawn": "4.0.2", "get-stream": "2.3.1", "is-stream": "1.1.0", "npm-run-path": "2.0.2", "p-finally": "1.0.0", "signal-exit": "3.0.2", "strip-eof": "1.0.0" } }, "expand-brackets": { "version": "0.1.5", "bundled": true, "dev": true, "requires": { "is-posix-bracket": "0.1.1" } }, "expand-range": { "version": "1.8.2", "bundled": true, "dev": true, "requires": { "fill-range": "2.2.3" } }, "extglob": { "version": "0.3.2", "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" } }, "filename-regex": { "version": "2.0.1", "bundled": true, "dev": true }, "fill-range": { "version": "2.2.3", "bundled": true, "dev": true, "requires": { "is-number": "2.1.0", "isobject": "2.1.0", "randomatic": "1.1.7", "repeat-element": "1.1.2", "repeat-string": "1.6.1" } }, "find-cache-dir": { "version": "0.1.1", "bundled": true, "dev": true, "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", "pkg-dir": "1.0.0" } }, "find-up": { "version": "2.1.0", "bundled": true, "dev": true, "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", "bundled": true, "dev": true }, "for-own": { "version": "0.1.5", "bundled": true, "dev": true, "requires": { "for-in": "1.0.2" } }, "foreground-child": { "version": "1.5.6", "bundled": true, "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" } }, "fs.realpath": { "version": "1.0.0", "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", "bundled": true, "dev": true }, "get-stream": { "version": "2.3.1", "bundled": true, "dev": true, "requires": { "object-assign": "4.1.1", "pinkie-promise": "2.0.1" } }, "glob": { "version": "7.1.2", "bundled": true, "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", "inherits": "2.0.3", "minimatch": "3.0.4", "once": "1.4.0", "path-is-absolute": "1.0.1" } }, "glob-base": { "version": "0.3.0", "bundled": true, "dev": true, "requires": { "glob-parent": "2.0.0", "is-glob": "2.0.1" } }, "glob-parent": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "is-glob": "2.0.1" } }, "globals": { "version": "9.18.0", "bundled": true, "dev": true }, "graceful-fs": { "version": "4.1.11", "bundled": true, "dev": true }, "handlebars": { "version": "4.0.10", "bundled": true, "dev": true, "requires": { "async": "1.5.2", "optimist": "0.6.1", "source-map": "0.4.4", "uglify-js": "2.8.29" }, "dependencies": { "source-map": { "version": "0.4.4", "bundled": true, "dev": true, "requires": { "amdefine": "1.0.1" } } } }, "has-ansi": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", "bundled": true, "dev": true }, "hosted-git-info": { "version": "2.4.2", "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", "bundled": true, "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", "bundled": true, "dev": true }, "invariant": { "version": "2.2.2", "bundled": true, "dev": true, "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", "bundled": true, "dev": true }, "is-arrayish": { "version": "0.2.1", "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.5", "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, "dev": true, "requires": { "builtin-modules": "1.1.1" } }, "is-dotfile": { "version": "1.0.3", "bundled": true, "dev": true }, "is-equal-shallow": { "version": "0.1.3", "bundled": true, "dev": true, "requires": { "is-primitive": "2.0.0" } }, "is-extendable": { "version": "0.1.1", "bundled": true, "dev": true }, "is-extglob": { "version": "1.0.0", "bundled": true, "dev": true }, "is-finite": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-glob": { "version": "2.0.1", "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" } }, "is-number": { "version": "2.1.0", "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" } }, "is-posix-bracket": { "version": "0.1.1", "bundled": true, "dev": true }, "is-primitive": { "version": "2.0.0", "bundled": true, "dev": true }, "is-stream": { "version": "1.1.0", "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", "bundled": true, "dev": true }, "isobject": { "version": "2.1.0", "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" } }, "istanbul-lib-coverage": { "version": "1.1.1", "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.0.7", "bundled": true, "dev": true, "requires": { "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.7.3", "bundled": true, "dev": true, "requires": { "babel-generator": "6.25.0", "babel-template": "6.25.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0", "babylon": "6.17.4", "istanbul-lib-coverage": "1.1.1", "semver": "5.3.0" } }, "istanbul-lib-report": { "version": "1.1.1", "bundled": true, "dev": true, "requires": { "istanbul-lib-coverage": "1.1.1", "mkdirp": "0.5.1", "path-parse": "1.0.5", "supports-color": "3.2.3" }, "dependencies": { "supports-color": { "version": "3.2.3", "bundled": true, "dev": true, "requires": { "has-flag": "1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.1", "bundled": true, "dev": true, "requires": { "debug": "2.6.8", "istanbul-lib-coverage": "1.1.1", "mkdirp": "0.5.1", "rimraf": "2.6.1", "source-map": "0.5.6" } }, "istanbul-reports": { "version": "1.1.1", "bundled": true, "dev": true, "requires": { "handlebars": "4.0.10" } }, "js-tokens": { "version": "3.0.1", "bundled": true, "dev": true }, "jsesc": { "version": "1.3.0", "bundled": true, "dev": true }, "kind-of": { "version": "3.2.2", "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.5" } }, "lazy-cache": { "version": "1.0.4", "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, "dev": true, "requires": { "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", "pify": "2.3.0", "pinkie-promise": "2.0.1", "strip-bom": "2.0.0" } }, "locate-path": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", "bundled": true, "dev": true } } }, "lodash": { "version": "4.17.4", "bundled": true, "dev": true }, "longest": { "version": "1.0.1", "bundled": true, "dev": true }, "loose-envify": { "version": "1.3.1", "bundled": true, "dev": true, "requires": { "js-tokens": "3.0.1" } }, "lru-cache": { "version": "4.1.1", "bundled": true, "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" } }, "md5-hex": { "version": "1.3.0", "bundled": true, "dev": true, "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", "bundled": true, "dev": true }, "mem": { "version": "1.1.0", "bundled": true, "dev": true, "requires": { "mimic-fn": "1.1.0" } }, "merge-source-map": { "version": "1.0.4", "bundled": true, "dev": true, "requires": { "source-map": "0.5.6" } }, "micromatch": { "version": "2.3.11", "bundled": true, "dev": true, "requires": { "arr-diff": "2.0.0", "array-unique": "0.2.1", "braces": "1.8.5", "expand-brackets": "0.1.5", "extglob": "0.3.2", "filename-regex": "2.0.1", "is-extglob": "1.0.0", "is-glob": "2.0.1", "kind-of": "3.2.2", "normalize-path": "2.1.1", "object.omit": "2.0.1", "parse-glob": "3.0.4", "regex-cache": "0.4.3" } }, "mimic-fn": { "version": "1.1.0", "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", "bundled": true, "dev": true, "requires": { "brace-expansion": "1.1.8" } }, "minimist": { "version": "0.0.8", "bundled": true, "dev": true }, "mkdirp": { "version": "0.5.1", "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", "bundled": true, "dev": true }, "normalize-package-data": { "version": "2.3.8", "bundled": true, "dev": true, "requires": { "hosted-git-info": "2.4.2", "is-builtin-module": "1.0.0", "semver": "5.3.0", "validate-npm-package-license": "3.0.1" } }, "normalize-path": { "version": "2.1.1", "bundled": true, "dev": true, "requires": { "remove-trailing-separator": "1.0.2" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, "dev": true, "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", "bundled": true, "dev": true }, "object.omit": { "version": "2.0.1", "bundled": true, "dev": true, "requires": { "for-own": "0.1.5", "is-extendable": "0.1.1" } }, "once": { "version": "1.4.0", "bundled": true, "dev": true, "requires": { "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", "bundled": true, "dev": true, "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" } }, "os-homedir": { "version": "1.0.2", "bundled": true, "dev": true }, "os-locale": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "execa": "0.5.1", "lcid": "1.0.0", "mem": "1.1.0" } }, "p-finally": { "version": "1.0.0", "bundled": true, "dev": true }, "p-limit": { "version": "1.1.0", "bundled": true, "dev": true }, "p-locate": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "p-limit": "1.1.0" } }, "parse-glob": { "version": "3.0.4", "bundled": true, "dev": true, "requires": { "glob-base": "0.3.0", "is-dotfile": "1.0.3", "is-extglob": "1.0.0", "is-glob": "2.0.1" } }, "parse-json": { "version": "2.2.0", "bundled": true, "dev": true, "requires": { "error-ex": "1.3.1" } }, "path-exists": { "version": "2.1.0", "bundled": true, "dev": true, "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", "pinkie-promise": "2.0.1" } }, "pify": { "version": "2.3.0", "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, "dev": true, "requires": { "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", "bundled": true, "dev": true, "requires": { "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" } } } }, "preserve": { "version": "0.2.0", "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", "bundled": true, "dev": true }, "randomatic": { "version": "1.1.7", "bundled": true, "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.5" } } } }, "kind-of": { "version": "4.0.0", "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.5" } } } }, "read-pkg": { "version": "1.1.0", "bundled": true, "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.3.8", "path-type": "1.1.0" } }, "read-pkg-up": { "version": "1.0.1", "bundled": true, "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" } } } }, "regenerator-runtime": { "version": "0.10.5", "bundled": true, "dev": true }, "regex-cache": { "version": "0.4.3", "bundled": true, "dev": true, "requires": { "is-equal-shallow": "0.1.3", "is-primitive": "2.0.0" } }, "remove-trailing-separator": { "version": "1.0.2", "bundled": true, "dev": true }, "repeat-element": { "version": "1.1.2", "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", "bundled": true, "dev": true }, "repeating": { "version": "2.0.1", "bundled": true, "dev": true, "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", "bundled": true, "dev": true, "optional": true, "requires": { "align-text": "0.1.4" } }, "rimraf": { "version": "2.6.1", "bundled": true, "dev": true, "requires": { "glob": "7.1.2" } }, "semver": { "version": "5.3.0", "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", "bundled": true, "dev": true }, "slide": { "version": "1.1.6", "bundled": true, "dev": true }, "source-map": { "version": "0.5.6", "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.3.7", "bundled": true, "dev": true, "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", "os-homedir": "1.0.2", "rimraf": "2.6.1", "signal-exit": "3.0.2", "which": "1.2.14" } }, "spdx-correct": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { "spdx-license-ids": "1.2.2" } }, "spdx-expression-parse": { "version": "1.0.4", "bundled": true, "dev": true }, "spdx-license-ids": { "version": "1.2.2", "bundled": true, "dev": true }, "string-width": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", "bundled": true, "dev": true } } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", "bundled": true, "dev": true }, "supports-color": { "version": "2.0.0", "bundled": true, "dev": true }, "test-exclude": { "version": "4.1.1", "bundled": true, "dev": true, "requires": { "arrify": "1.0.1", "micromatch": "2.3.11", "object-assign": "4.1.1", "read-pkg-up": "1.0.1", "require-main-filename": "1.0.1" } }, "to-fast-properties": { "version": "1.0.3", "bundled": true, "dev": true }, "trim-right": { "version": "1.0.1", "bundled": true, "dev": true }, "uglify-js": { "version": "2.8.29", "bundled": true, "dev": true, "optional": true, "requires": { "source-map": "0.5.6", "uglify-to-browserify": "1.0.2", "yargs": "3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", "bundled": true, "dev": true, "optional": true, "requires": { "camelcase": "1.2.1", "cliui": "2.1.0", "decamelize": "1.2.0", "window-size": "0.1.0" } } } }, "uglify-to-browserify": { "version": "1.0.2", "bundled": true, "dev": true, "optional": true }, "validate-npm-package-license": { "version": "3.0.1", "bundled": true, "dev": true, "requires": { "spdx-correct": "1.0.2", "spdx-expression-parse": "1.0.4" } }, "which": { "version": "1.2.14", "bundled": true, "dev": true, "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", "strip-ansi": "3.0.1" } } } }, "wrappy": { "version": "1.0.2", "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", "slide": "1.1.6" } }, "y18n": { "version": "3.2.1", "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", "bundled": true, "dev": true }, "yargs": { "version": "8.0.2", "bundled": true, "dev": true, "requires": { "camelcase": "4.1.0", "cliui": "3.2.0", "decamelize": "1.2.0", "get-caller-file": "1.0.2", "os-locale": "2.0.0", "read-pkg-up": "2.0.0", "require-directory": "2.1.1", "require-main-filename": "1.0.1", "set-blocking": "2.0.0", "string-width": "2.0.0", "which-module": "2.0.0", "y18n": "3.2.1", "yargs-parser": "7.0.0" }, "dependencies": { "camelcase": { "version": "4.1.0", "bundled": true, "dev": true }, "cliui": { "version": "3.2.0", "bundled": true, "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1", "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", "strip-ansi": "3.0.1" } } } }, "load-json-file": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", "pify": "2.3.0", "strip-bom": "3.0.0" } }, "path-type": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "pify": "2.3.0" } }, "read-pkg": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "load-json-file": "2.0.0", "normalize-package-data": "2.3.8", "path-type": "2.0.0" } }, "read-pkg-up": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { "find-up": "2.1.0", "read-pkg": "2.0.0" } }, "strip-bom": { "version": "3.0.0", "bundled": true, "dev": true }, "yargs-parser": { "version": "7.0.0", "bundled": true, "dev": true, "requires": { "camelcase": "4.1.0" } } } }, "yargs-parser": { "version": "5.0.0", "bundled": true, "dev": true, "requires": { "camelcase": "3.0.0" }, "dependencies": { "camelcase": { "version": "3.0.0", "bundled": true, "dev": true } } } } }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" } }, "opener": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=", "dev": true }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "own-or": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=", "dev": true }, "own-or-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.0.tgz", "integrity": "sha1-nvkg/IHi5jz1nUEQElg2jPT8pPs=", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "2.0.4" } }, "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, "qs": { "version": "6.3.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", "dev": true }, "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", "isarray": "1.0.0", "process-nextick-args": "1.0.7", "safe-buffer": "5.1.1", "string_decoder": "1.0.3", "util-deprecate": "1.0.2" } }, "request": { "version": "2.79.0", "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", "dev": true, "requires": { "aws-sign2": "0.6.0", "aws4": "1.6.0", "caseless": "0.11.0", "combined-stream": "1.0.5", "extend": "3.0.1", "forever-agent": "0.6.1", "form-data": "2.1.4", "har-validator": "2.0.6", "hawk": "3.1.3", "http-signature": "1.1.1", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", "mime-types": "2.1.15", "oauth-sign": "0.8.2", "qs": "6.3.2", "stringstream": "0.0.5", "tough-cookie": "2.3.2", "tunnel-agent": "0.4.3", "uuid": "3.1.0" } }, "rimraf": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "dev": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { "hoek": "2.16.3" } }, "source-map": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true }, "source-map-support": { "version": "0.4.15", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", "dev": true, "requires": { "source-map": "0.5.6" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "dev": true, "requires": { "asn1": "0.2.3", "assert-plus": "1.0.0", "bcrypt-pbkdf": "1.0.1", "dashdash": "1.14.1", "ecc-jsbn": "0.1.1", "getpass": "0.1.7", "jsbn": "0.1.1", "tweetnacl": "0.14.5" }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true } } }, "stack-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", "dev": true }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { "safe-buffer": "5.1.1" } }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "dev": true }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "tap": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/tap/-/tap-10.7.0.tgz", "integrity": "sha512-rIKS3HvtA+/6weSQW8zgA8bKHt//Srucp6P1pugHUVZ+SexZcPw6N3n8LCAoH2okp/js+honhxwBl7bomZ9+7w==", "dev": true, "requires": { "bind-obj-methods": "1.0.0", "bluebird": "3.5.0", "clean-yaml-object": "0.1.0", "color-support": "1.1.3", "coveralls": "2.13.1", "foreground-child": "1.5.6", "fs-exists-cached": "1.0.0", "function-loop": "1.0.1", "glob": "7.1.2", "isexe": "2.0.0", "js-yaml": "3.9.0", "nyc": "11.0.3", "opener": "1.4.3", "os-homedir": "1.0.2", "own-or": "1.0.0", "own-or-env": "1.0.0", "readable-stream": "2.3.3", "signal-exit": "3.0.2", "source-map-support": "0.4.15", "stack-utils": "1.0.1", "tap-mocha-reporter": "3.0.6", "tap-parser": "5.4.0", "tmatch": "3.1.0", "trivial-deferred": "1.0.1", "tsame": "1.1.2", "yapool": "1.0.0" } }, "tap-mocha-reporter": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.6.tgz", "integrity": "sha512-UImgw3etckDQCoqZIAIKcQDt0w1JLVs3v0yxLlmwvGLZl6MGFxF7JME5PElXjAoDklVDU42P3vVu5jgr37P4Yg==", "dev": true, "requires": { "color-support": "1.1.3", "debug": "2.6.8", "diff": "1.4.0", "escape-string-regexp": "1.0.5", "glob": "7.1.2", "js-yaml": "3.9.0", "readable-stream": "2.3.3", "tap-parser": "5.4.0", "unicode-length": "1.0.3" } }, "tap-parser": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-5.4.0.tgz", "integrity": "sha512-BIsIaGqv7uTQgTW1KLTMNPSEQf4zDDPgYOBRdgOfuB+JFOLRBfEu6cLa/KvMvmqggu1FKXDfitjLwsq4827RvA==", "dev": true, "requires": { "events-to-array": "1.1.2", "js-yaml": "3.9.0", "readable-stream": "2.3.3" } }, "tmatch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-3.1.0.tgz", "integrity": "sha512-W3MSATOCN4pVu2qFxmJLIArSifeSOFqnfx9hiUaVgOmeRoI2NbU7RNga+6G+L8ojlFeQge+ZPCclWyUpQ8UeNQ==", "dev": true }, "tough-cookie": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "dev": true, "requires": { "punycode": "1.4.1" } }, "trivial-deferred": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=", "dev": true }, "tsame": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/tsame/-/tsame-1.1.2.tgz", "integrity": "sha512-ovCs24PGjmByVPr9tSIOs/yjUX9sJl0grEmOsj9dZA/UknQkgPOKcUqM84aSCvt9awHuhc/boMzTg3BHFalxWw==", "dev": true }, "tunnel-agent": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", "dev": true }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true, "optional": true }, "unicode-length": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", "dev": true, "requires": { "punycode": "1.4.1", "strip-ansi": "3.0.1" } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "uuid": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", "dev": true }, "verror": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "dev": true, "requires": { "extsprintf": "1.0.2" } }, "which": { "version": "1.2.14", "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", "dev": true, "requires": { "isexe": "2.0.0" } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yapool": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz", "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=", "dev": true } } } node-which-1.3.0/package.json000066400000000000000000000014231313775052100160320ustar00rootroot00000000000000{ "author": "Isaac Z. Schlueter (http://blog.izs.me)", "name": "which", "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", "version": "1.3.0", "repository": { "type": "git", "url": "git://github.com/isaacs/node-which.git" }, "main": "which.js", "bin": "./bin/which", "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, "devDependencies": { "mkdirp": "^0.5.0", "rimraf": "^2.3.3", "tap": "^10.7.0" }, "scripts": { "test": "tap test/*.js --cov", "changelog": "bash gen-changelog.sh", "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}" }, "files": [ "which.js", "bin/which" ] } node-which-1.3.0/test/000077500000000000000000000000001313775052100145235ustar00rootroot00000000000000node-which-1.3.0/test/basic.js000066400000000000000000000076671313775052100161620ustar00rootroot00000000000000var t = require('tap') var fs = require('fs') var rimraf = require('rimraf') var mkdirp = require('mkdirp') var fixture = __dirname + '/fixture' var which = require('../which.js') var path = require('path') var isWindows = process.platform === 'win32' || process.env.OSTYPE === 'cygwin' || process.env.OSTYPE === 'msys' var skip = { skip: isWindows ? 'not relevant on windows' : false } t.test('setup', function (t) { rimraf.sync(fixture) mkdirp.sync(fixture) fs.writeFileSync(fixture + '/foo.sh', 'echo foo\n') t.end() }) t.test('does not find missed', function(t) { t.plan(4) which(fixture + '/foobar.sh', function (er) { t.isa(er, Error) t.equal(er.code, 'ENOENT') }) t.throws(function () { which.sync(fixture + '/foobar.sh') }, {code: 'ENOENT'}) t.equal(which.sync(fixture + '/foobar.sh', {nothrow:true}), null) }) t.test('does not find non-executable', skip, function (t) { t.plan(2) t.test('absolute', function (t) { t.plan(3) which(fixture + '/foo.sh', function (er) { t.isa(er, Error) t.equal(er.code, 'ENOENT') }) t.throws(function () { which.sync(fixture + '/foo.sh') }, {code: 'ENOENT'}) }) t.test('with path', function (t) { t.plan(3) which('foo.sh', { path: fixture }, function (er) { t.isa(er, Error) t.equal(er.code, 'ENOENT') }) t.throws(function () { which.sync('foo.sh', { path: fixture }) }, {code: 'ENOENT'}) }) }) t.test('make executable', function (t) { fs.chmodSync(fixture + '/foo.sh', '0755') t.end() }) t.test('find when executable', function (t) { var opt = { pathExt: '.sh' } var expect = path.resolve(fixture, 'foo.sh').toLowerCase() var PATH = process.env.PATH t.test('absolute', function (t) { runTest(fixture + '/foo.sh', t) }) t.test('with process.env.PATH', function (t) { process.env.PATH = fixture runTest('foo.sh', t) }) t.test('with pathExt', { skip: isWindows ? false : 'Only for Windows' }, function (t) { var pe = process.env.PATHEXT process.env.PATHEXT = '.SH' process.env.PATH = fixture t.test('foo.sh', function (t) { process.env.PATH = fixture runTest('foo.sh', t) }) t.test('foo', function (t) { process.env.PATH = fixture runTest('foo', t) }) t.test('replace', function (t) { process.env.PATHEXT = pe t.end() }) t.end() }) t.test('with path opt', function (t) { opt.path = fixture runTest('foo.sh', t) }) t.test('relative path', function (t) { var opt = { pathExt: '.sh' } var expect = path.join('test/fixture/foo.sh') t.plan(3) t.test('no ./', function (t) { t.plan(2) var actual = which.sync('test/fixture/foo.sh', opt) t.equal(actual, expect) which('test/fixture/foo.sh', opt, function (er, actual) { if (er) throw er t.equal(actual, expect) }) }) t.test('with ./', function (t) { t.plan(2) expect = './' + expect var actual = which.sync('./test/fixture/foo.sh', opt) t.equal(actual, expect) which('./test/fixture/foo.sh', opt, function (er, actual) { if (er) throw er t.equal(actual, expect) }) }) t.test('with ../', function (t) { t.plan(2) var dir = path.basename(process.cwd()) expect = path.join('..', dir, 'test/fixture/foo.sh') var actual = which.sync(expect, opt) t.equal(actual, expect) which(expect, opt, function (er, actual) { if (er) throw er t.equal(actual, expect) }) }) }) function runTest(exec, t) { t.plan(2) var found = which.sync(exec, opt).toLowerCase() t.equal(found, expect) which(exec, opt, function (er, found) { if (er) throw er t.equal(found.toLowerCase(), expect) t.end() process.env.PATH = PATH }) } t.end() }) t.test('clean', function (t) { rimraf.sync(fixture) t.end() }) node-which-1.3.0/test/bin.js000066400000000000000000000062021313775052100156310ustar00rootroot00000000000000var t = require('tap') var spawn = require('child_process').spawn var node = process.execPath var bin = require.resolve('../bin/which') function which (args, extraPath, cb) { if (typeof extraPath === 'function') cb = extraPath, extraPath = null var options = {} if (extraPath) { var sep = process.platform === 'win32' ? ';' : ':' var p = process.env.PATH + sep + extraPath options.env = Object.keys(process.env).reduce(function (env, k) { if (!k.match(/^path$/i)) env[k] = process.env[k] return env }, { PATH: p }) } var out = '' var err = '' var child = spawn(node, [bin].concat(args), options) child.stdout.on('data', function (c) { out += c }) child.stderr.on('data', function (c) { err += c }) child.on('close', function (code, signal) { cb(code, signal, out.trim(), err.trim()) }) } t.test('finds node', function (t) { which('node', function (code, signal, out, err) { t.equal(signal, null) t.equal(code, 0) t.equal(err, '') t.match(out, /[\\\/]node(\.exe)?$/i) t.end() }) }) t.test('does not find flergyderp', function (t) { which('flergyderp', function (code, signal, out, err) { t.equal(signal, null) t.equal(code, 1) t.equal(err, '') t.match(out, '') t.end() }) }) t.test('finds node and tap', function (t) { which(['node', 'tap'], function (code, signal, out, err) { t.equal(signal, null) t.equal(code, 0) t.equal(err, '') t.match(out.split(/[\r\n]+/), [ /[\\\/]node(\.exe)?$/i, /[\\\/]tap(\.cmd)?$/i ]) t.end() }) }) t.test('finds node and tap, but not flergyderp', function (t) { which(['node', 'flergyderp', 'tap'], function (code, signal, out, err) { t.equal(signal, null) t.equal(code, 1) t.equal(err, '') t.match(out.split(/[\r\n]+/), [ /[\\\/]node(\.exe)?$/i, /[\\\/]tap(\.cmd)?$/i ]) t.end() }) }) t.test('cli flags', function (t) { var p = require('path').dirname(bin) var cases = [ '-a', '-s', '-as', '-sa' ] t.plan(cases.length) cases.forEach(function (c) { t.test(c, function (t) { which(['which', c], p, function (code, signal, out, err) { t.equal(signal, null) t.equal(code, 0) t.equal(err, '') if (/s/.test(c)) t.equal(out, '', 'should be silent') else if (/a/.test(c)) { out = out.split(/[\r\n]+/) var opt = { actual: out } if (process.platform === 'win32') { opt.skip = 'windows does not have builtin "which"' } t.ok(out.length > 1, 'should have more than 1 result', opt) } t.end() }) }) }) }) t.test('shows usage', function (t) { which([], function (code, signal, out, err) { t.equal(signal, null) t.equal(code, 1) t.equal(err, 'usage: which [-as] program ...') t.equal(out, '') t.end() }) }) t.test('complains about unknown flag', function (t) { which(['node', '-sax'], function (code, signal, out, err) { t.equal(signal, null) t.equal(code, 1) t.equal(out, '') t.equal(err, 'which: illegal option -- x\nusage: which [-as] program ...') t.end() }) }) node-which-1.3.0/test/windows.js000066400000000000000000000003731313775052100165560ustar00rootroot00000000000000// pretend to be Windows. if (process.platform === 'win32') { var t = require('tap') t.plan(0, 'already on windows') process.exit(0) } process.env.Path = process.env.PATH.split(':').join(';') process.env.OSTYPE = 'cygwin' require('./basic.js') node-which-1.3.0/which.js000066400000000000000000000061601313775052100152070ustar00rootroot00000000000000module.exports = which which.sync = whichSync var isWindows = process.platform === 'win32' || process.env.OSTYPE === 'cygwin' || process.env.OSTYPE === 'msys' var path = require('path') var COLON = isWindows ? ';' : ':' var isexe = require('isexe') function getNotFoundError (cmd) { var er = new Error('not found: ' + cmd) er.code = 'ENOENT' return er } function getPathInfo (cmd, opt) { var colon = opt.colon || COLON var pathEnv = opt.path || process.env.PATH || '' var pathExt = [''] pathEnv = pathEnv.split(colon) var pathExtExe = '' if (isWindows) { pathEnv.unshift(process.cwd()) pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM') pathExt = pathExtExe.split(colon) // Always test the cmd itself first. isexe will check to make sure // it's found in the pathExt set. if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') pathExt.unshift('') } // If it has a slash, then we don't bother searching the pathenv. // just check the file itself, and that's it. if (cmd.match(/\//) || isWindows && cmd.match(/\\/)) pathEnv = [''] return { env: pathEnv, ext: pathExt, extExe: pathExtExe } } function which (cmd, opt, cb) { if (typeof opt === 'function') { cb = opt opt = {} } var info = getPathInfo(cmd, opt) var pathEnv = info.env var pathExt = info.ext var pathExtExe = info.extExe var found = [] ;(function F (i, l) { if (i === l) { if (opt.all && found.length) return cb(null, found) else return cb(getNotFoundError(cmd)) } var pathPart = pathEnv[i] if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') pathPart = pathPart.slice(1, -1) var p = path.join(pathPart, cmd) if (!pathPart && (/^\.[\\\/]/).test(cmd)) { p = cmd.slice(0, 2) + p } ;(function E (ii, ll) { if (ii === ll) return F(i + 1, l) var ext = pathExt[ii] isexe(p + ext, { pathExt: pathExtExe }, function (er, is) { if (!er && is) { if (opt.all) found.push(p + ext) else return cb(null, p + ext) } return E(ii + 1, ll) }) })(0, pathExt.length) })(0, pathEnv.length) } function whichSync (cmd, opt) { opt = opt || {} var info = getPathInfo(cmd, opt) var pathEnv = info.env var pathExt = info.ext var pathExtExe = info.extExe var found = [] for (var i = 0, l = pathEnv.length; i < l; i ++) { var pathPart = pathEnv[i] if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') pathPart = pathPart.slice(1, -1) var p = path.join(pathPart, cmd) if (!pathPart && /^\.[\\\/]/.test(cmd)) { p = cmd.slice(0, 2) + p } for (var j = 0, ll = pathExt.length; j < ll; j ++) { var cur = p + pathExt[j] var is try { is = isexe.sync(cur, { pathExt: pathExtExe }) if (is) { if (opt.all) found.push(cur) else return cur } } catch (ex) {} } } if (opt.all && found.length) return found if (opt.nothrow) return null throw getNotFoundError(cmd) }