summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/update-notifier/node_modules
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/update-notifier/node_modules')
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/index.js2
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/license20
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js17
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/index.js4
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/package.json84
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/readme.md39
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json12
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js8
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js285
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js37
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js41
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license20
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.editorconfig15
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.npmignore3
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.travis.yml7
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/README.md58
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/appveyor.yml30
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/index.js27
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/parse.js128
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md6
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/LICENSE (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/LICENSE)2
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md85
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js59
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/enoent.js (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/enoent.js)26
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js113
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js30
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js12
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js18
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js37
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/resolveCommand.js)7
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/index.js19
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/license)2
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/index.js2
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/license)0
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/package.json64
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/readme.md29
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/package.json71
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/readme.md39
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/package.json (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/package.json)52
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js51
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js51
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/license)0
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json80
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md117
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js34
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/index.js13
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/license (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/license)0
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/package.json (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/package.json)36
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/readme.md)6
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json32
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md27
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/index.js90
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/package.json78
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/readme.md61
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js15
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/license (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/license)0
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json74
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md47
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/index.js15
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md27
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt16
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md40
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js157
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json66
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js53
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json61
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md182
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json40
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md2
-rwxr-xr-xdeps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/macos/term-sizebin0 -> 8760 bytes
-rwxr-xr-xdeps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/resizebin67056 -> 0 bytes
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/windows/term-size.exe (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/win-term-size.exe)bin17408 -> 17408 bytes
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/package.json23
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md6
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/index.js228
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/license20
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js125
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license20
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/CHANGELOG.md54
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/LICENSE20
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/README.md68
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/conversions.js861
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/index.js78
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.eslintrc.json43
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.npmignore107
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/LICENSE8
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/README.md11
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/index.js152
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json53
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/test.js7
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json81
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/route.js97
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json52
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md87
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/index.js4
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/index.js4
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/readme.md39
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/package.json98
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/readme.md36
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/index.js6
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/index.js4
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/readme.md39
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/package.json101
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/readme.md33
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js2
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js107
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license20
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js10
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/license (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/license)0
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json93
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md67
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json58
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md38
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/package.json78
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md253
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/templates.js128
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/index.js6
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js5
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json15
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md6
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/package.json12
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/readme.md2
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/index.js5
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/license)0
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js89
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/license9
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json84
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/readme.md69
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/index.js14
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json68
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md31
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json83
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/readme.md39
135 files changed, 5255 insertions, 1898 deletions
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/index.js
index 2233e3d7b0..0fe96a5a44 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/index.js
@@ -118,7 +118,7 @@ module.exports = (text, opts) => {
const padWidth = (columns - contentWidth) / 2;
marginLeft = PAD.repeat(padWidth);
} else if (opts.float === 'right') {
- const padWidth = Math.max(columns - contentWidth - 2, 0);
+ const padWidth = Math.max(columns - contentWidth - margin.right - 2, 0);
marginLeft = PAD.repeat(padWidth);
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/license
index 654d0bfe94..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/license
@@ -1,21 +1,9 @@
-The MIT License (MIT)
+MIT License
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js
index 1f8a1f1134..bbc49d29b1 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js
@@ -7,10 +7,10 @@ module.exports = str => {
return 0;
}
- let width = 0;
-
str = stripAnsi(str);
+ let width = 0;
+
for (let i = 0; i < str.length; i++) {
const code = str.codePointAt(i);
@@ -19,16 +19,17 @@ module.exports = str => {
continue;
}
+ // Ignore combining characters
+ if (code >= 0x300 && code <= 0x36F) {
+ continue;
+ }
+
// Surrogates
- if (code >= 0x10000) {
+ if (code > 0xFFFF) {
i++;
}
- if (isFullwidthCodePoint(code)) {
- width += 2;
- } else {
- width++;
- }
+ width += isFullwidthCodePoint(code) ? 2 : 1;
}
return width;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/index.js
deleted file mode 100644
index 96e0292c8e..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-const ansiRegex = require('ansi-regex');
-
-module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/package.json
deleted file mode 100644
index a40c82aab2..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/package.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "_from": "strip-ansi@^4.0.0",
- "_id": "strip-ansi@4.0.0",
- "_inBundle": false,
- "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "_location": "/update-notifier/boxen/string-width/strip-ansi",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-ansi@^4.0.0",
- "name": "strip-ansi",
- "escapedName": "strip-ansi",
- "rawSpec": "^4.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "_shasum": "a8479022eb1ac368a871389b635262c505ee368f",
- "_spec": "strip-ansi@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/strip-ansi/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ansi-regex": "^3.0.0"
- },
- "deprecated": false,
- "description": "Strip ANSI escape codes",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/strip-ansi#readme",
- "keywords": [
- "strip",
- "trim",
- "remove",
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "license": "MIT",
- "name": "strip-ansi",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/strip-ansi.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/readme.md
deleted file mode 100644
index dc76f0cb1a..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/readme.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi)
-
-> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)
-
-
-## Install
-
-```
-$ npm install strip-ansi
-```
-
-
-## Usage
-
-```js
-const stripAnsi = require('strip-ansi');
-
-stripAnsi('\u001B[4mUnicorn\u001B[0m');
-//=> 'Unicorn'
-```
-
-
-## Related
-
-- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module
-- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
-- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
-- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
-
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
-
-## License
-
-MIT
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json
index f65eded9c5..52f250897c 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json
@@ -1,8 +1,8 @@
{
"_from": "string-width@^2.0.0",
- "_id": "string-width@2.1.0",
+ "_id": "string-width@2.1.1",
"_inBundle": false,
- "_integrity": "sha1-AwZkVh/BRslCPsfZeP4kV0N/5tA=",
+ "_integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"_location": "/update-notifier/boxen/string-width",
"_phantomChildren": {},
"_requested": {
@@ -19,10 +19,10 @@
"/update-notifier/boxen",
"/update-notifier/boxen/ansi-align"
],
- "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz",
- "_shasum": "030664561fc146c9423ec7d978fe2457437fe6d0",
+ "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "_shasum": "ab93f27a8dc13d28cac815c462143a6d9012ae9e",
"_spec": "string-width@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/boxen",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -84,5 +84,5 @@
"scripts": {
"test": "xo && ava"
},
- "version": "2.1.0"
+ "version": "2.1.1"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js
index c6974e2e34..95e410df26 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js
@@ -20,7 +20,7 @@ module.exports = () => {
return create(stderr.columns, stderr.rows);
}
- // these values are static, so not the first choice
+ // These values are static, so not the first choice
if (env.COLUMNS && env.LINES) {
return create(env.COLUMNS, env.LINES);
}
@@ -28,7 +28,7 @@ module.exports = () => {
if (process.platform === 'win32') {
try {
// Binary: https://github.com/sindresorhus/win-term-size
- const size = execa.sync(path.join(__dirname, 'vendor/win-term-size.exe')).stdout.split(/\r?\n/);
+ const size = execa.sync(path.join(__dirname, 'vendor/windows/term-size.exe')).stdout.split(/\r?\n/);
if (size.length === 2) {
return create(size[0], size[1]);
@@ -37,8 +37,8 @@ module.exports = () => {
} else {
if (process.platform === 'darwin') {
try {
- // Binary is from https://www.xquartz.org
- const size = execa.shellSync(path.join(__dirname, 'vendor/resize'), ['-u']).stdout.match(/\d+/g);
+ // Binary: https://github.com/sindresorhus/macos-term-size
+ const size = execa.shellSync(path.join(__dirname, 'vendor/macos/term-size')).stdout.split(/\r?\n/);
if (size.length === 2) {
return create(size[0], size[1]);
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js
index 5f3714a084..74ba8ee2de 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js
@@ -1,53 +1,64 @@
'use strict';
-var childProcess = require('child_process');
-var crossSpawnAsync = require('cross-spawn-async');
-var stripEof = require('strip-eof');
-var objectAssign = require('object-assign');
-var npmRunPath = require('npm-run-path');
-var isStream = require('is-stream');
-var pathKey = require('path-key')();
-var TEN_MEBIBYTE = 1024 * 1024 * 10;
+const childProcess = require('child_process');
+const util = require('util');
+const crossSpawn = require('cross-spawn');
+const stripEof = require('strip-eof');
+const npmRunPath = require('npm-run-path');
+const isStream = require('is-stream');
+const _getStream = require('get-stream');
+const pFinally = require('p-finally');
+const onExit = require('signal-exit');
+const errname = require('./lib/errname');
+const stdio = require('./lib/stdio');
+
+const TEN_MEGABYTES = 1000 * 1000 * 10;
function handleArgs(cmd, args, opts) {
- var parsed;
+ let parsed;
+
+ if (opts && opts.env && opts.extendEnv !== false) {
+ opts.env = Object.assign({}, process.env, opts.env);
+ }
if (opts && opts.__winShell === true) {
delete opts.__winShell;
parsed = {
command: cmd,
- args: args,
+ args,
options: opts,
file: cmd,
original: cmd
};
} else {
- parsed = crossSpawnAsync._parse(cmd, args, opts);
+ parsed = crossSpawn._parse(cmd, args, opts);
}
- opts = objectAssign({
- maxBuffer: TEN_MEBIBYTE,
+ opts = Object.assign({
+ maxBuffer: TEN_MEGABYTES,
stripEof: true,
preferLocal: true,
- encoding: 'utf8'
+ localDir: parsed.options.cwd || process.cwd(),
+ encoding: 'utf8',
+ reject: true,
+ cleanup: true
}, parsed.options);
+ opts.stdio = stdio(opts);
+
if (opts.preferLocal) {
- opts.env = objectAssign({}, opts.env || process.env);
- opts.env[pathKey] = npmRunPath({
- cwd: opts.cwd,
- path: opts.env[pathKey]
- });
+ opts.env = npmRunPath.env(Object.assign({}, opts, {cwd: opts.localDir}));
}
return {
cmd: parsed.command,
args: parsed.args,
- opts: opts
+ opts,
+ parsed
};
}
function handleInput(spawned, opts) {
- var input = opts.input;
+ const input = opts.input;
if (input === null || input === undefined) {
return;
@@ -61,7 +72,7 @@ function handleInput(spawned, opts) {
}
function handleOutput(opts, val) {
- if (opts.stripEof) {
+ if (val && opts.stripEof) {
val = stripEof(val);
}
@@ -69,54 +80,193 @@ function handleOutput(opts, val) {
}
function handleShell(fn, cmd, opts) {
- var file;
- var args;
+ let file = '/bin/sh';
+ let args = ['-c', cmd];
- opts = objectAssign({}, opts);
+ opts = Object.assign({}, opts);
if (process.platform === 'win32') {
opts.__winShell = true;
file = process.env.comspec || 'cmd.exe';
- args = ['/s', '/c', '"' + cmd + '"'];
+ args = ['/s', '/c', `"${cmd}"`];
opts.windowsVerbatimArguments = true;
- } else {
- file = '/bin/sh';
- args = ['-c', cmd];
}
if (opts.shell) {
file = opts.shell;
+ delete opts.shell;
}
return fn(file, args, opts);
}
-module.exports = function (cmd, args, opts) {
- var spawned;
+function getStream(process, stream, encoding, maxBuffer) {
+ if (!process[stream]) {
+ return null;
+ }
- var promise = new Promise(function (resolve, reject) {
- var parsed = handleArgs(cmd, args, opts);
+ let ret;
- spawned = childProcess.execFile(parsed.cmd, parsed.args, parsed.opts, function (err, stdout, stderr) {
- if (err) {
- err.stdout = stdout;
- err.stderr = stderr;
- err.message += stdout;
- reject(err);
- return;
- }
+ if (encoding) {
+ ret = _getStream(process[stream], {
+ encoding,
+ maxBuffer
+ });
+ } else {
+ ret = _getStream.buffer(process[stream], {maxBuffer});
+ }
- resolve({
- stdout: handleOutput(parsed.opts, stdout),
- stderr: handleOutput(parsed.opts, stderr)
- });
+ return ret.catch(err => {
+ err.stream = stream;
+ err.message = `${stream} ${err.message}`;
+ throw err;
+ });
+}
+
+module.exports = (cmd, args, opts) => {
+ let joinedCmd = cmd;
+
+ if (Array.isArray(args) && args.length > 0) {
+ joinedCmd += ' ' + args.join(' ');
+ }
+
+ const parsed = handleArgs(cmd, args, opts);
+ const encoding = parsed.opts.encoding;
+ const maxBuffer = parsed.opts.maxBuffer;
+
+ let spawned;
+ try {
+ spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts);
+ } catch (err) {
+ return Promise.reject(err);
+ }
+
+ let removeExitHandler;
+ if (parsed.opts.cleanup) {
+ removeExitHandler = onExit(() => {
+ spawned.kill();
+ });
+ }
+
+ let timeoutId = null;
+ let timedOut = false;
+
+ const cleanupTimeout = () => {
+ if (timeoutId) {
+ clearTimeout(timeoutId);
+ timeoutId = null;
+ }
+ };
+
+ if (parsed.opts.timeout > 0) {
+ timeoutId = setTimeout(() => {
+ timeoutId = null;
+ timedOut = true;
+ spawned.kill(parsed.opts.killSignal);
+ }, parsed.opts.timeout);
+ }
+
+ const processDone = new Promise(resolve => {
+ spawned.on('exit', (code, signal) => {
+ cleanupTimeout();
+ resolve({code, signal});
});
- crossSpawnAsync._enoent.hookChildProcess(spawned, parsed);
+ spawned.on('error', err => {
+ cleanupTimeout();
+ resolve({err});
+ });
- handleInput(spawned, parsed.opts);
+ if (spawned.stdin) {
+ spawned.stdin.on('error', err => {
+ cleanupTimeout();
+ resolve({err});
+ });
+ }
});
+ function destroy() {
+ if (spawned.stdout) {
+ spawned.stdout.destroy();
+ }
+
+ if (spawned.stderr) {
+ spawned.stderr.destroy();
+ }
+ }
+
+ const promise = pFinally(Promise.all([
+ processDone,
+ getStream(spawned, 'stdout', encoding, maxBuffer),
+ getStream(spawned, 'stderr', encoding, maxBuffer)
+ ]).then(arr => {
+ const result = arr[0];
+ const stdout = arr[1];
+ const stderr = arr[2];
+
+ let err = result.err;
+ const code = result.code;
+ const signal = result.signal;
+
+ if (removeExitHandler) {
+ removeExitHandler();
+ }
+
+ if (err || code !== 0 || signal !== null) {
+ if (!err) {
+ let output = '';
+
+ if (Array.isArray(parsed.opts.stdio)) {
+ if (parsed.opts.stdio[2] !== 'inherit') {
+ output += output.length > 0 ? stderr : `\n${stderr}`;
+ }
+
+ if (parsed.opts.stdio[1] !== 'inherit') {
+ output += `\n${stdout}`;
+ }
+ } else if (parsed.opts.stdio !== 'inherit') {
+ output = `\n${stderr}${stdout}`;
+ }
+
+ err = new Error(`Command failed: ${joinedCmd}${output}`);
+ err.code = code < 0 ? errname(code) : code;
+ }
+
+ // TODO: missing some timeout logic for killed
+ // https://github.com/nodejs/node/blob/master/lib/child_process.js#L203
+ // err.killed = spawned.killed || killed;
+ err.killed = err.killed || spawned.killed;
+
+ err.stdout = stdout;
+ err.stderr = stderr;
+ err.failed = true;
+ err.signal = signal || null;
+ err.cmd = joinedCmd;
+ err.timedOut = timedOut;
+
+ if (!parsed.opts.reject) {
+ return err;
+ }
+
+ throw err;
+ }
+
+ return {
+ stdout: handleOutput(parsed.opts, stdout),
+ stderr: handleOutput(parsed.opts, stderr),
+ code: 0,
+ failed: false,
+ killed: false,
+ signal: null,
+ cmd: joinedCmd,
+ timedOut: false
+ };
+ }), destroy);
+
+ crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed);
+
+ handleInput(spawned, parsed.opts);
+
spawned.then = promise.then.bind(promise);
spawned.catch = promise.catch.bind(promise);
@@ -125,48 +275,35 @@ module.exports = function (cmd, args, opts) {
module.exports.stdout = function () {
// TODO: set `stderr: 'ignore'` when that option is implemented
- return module.exports.apply(null, arguments).then(function (x) {
- return x.stdout;
- });
+ return module.exports.apply(null, arguments).then(x => x.stdout);
};
module.exports.stderr = function () {
// TODO: set `stdout: 'ignore'` when that option is implemented
- return module.exports.apply(null, arguments).then(function (x) {
- return x.stderr;
- });
+ return module.exports.apply(null, arguments).then(x => x.stderr);
};
-module.exports.shell = function (cmd, opts) {
- return handleShell(module.exports, cmd, opts);
-};
-
-module.exports.spawn = function (cmd, args, opts) {
- var parsed = handleArgs(cmd, args, opts);
- var spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts);
+module.exports.shell = (cmd, opts) => handleShell(module.exports, cmd, opts);
- crossSpawnAsync._enoent.hookChildProcess(spawned, parsed);
-
- return spawned;
-};
-
-module.exports.sync = function (cmd, args, opts) {
- var parsed = handleArgs(cmd, args, opts);
+module.exports.sync = (cmd, args, opts) => {
+ const parsed = handleArgs(cmd, args, opts);
if (isStream(parsed.opts.input)) {
throw new TypeError('The `input` option cannot be a stream in sync mode');
}
- var result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts);
+ const result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts);
- if (parsed.opts.stripEof) {
- result.stdout = stripEof(result.stdout);
- result.stderr = stripEof(result.stderr);
+ if (result.error || result.status !== 0) {
+ throw (result.error || new Error(result.stderr === '' ? result.stdout : result.stderr));
}
+ result.stdout = handleOutput(parsed.opts, result.stdout);
+ result.stderr = handleOutput(parsed.opts, result.stderr);
+
return result;
};
-module.exports.shellSync = function (cmd, opts) {
- return handleShell(module.exports.sync, cmd, opts);
-};
+module.exports.shellSync = (cmd, opts) => handleShell(module.exports.sync, cmd, opts);
+
+module.exports.spawn = util.deprecate(module.exports, 'execa.spawn() is deprecated. Use execa() instead.');
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js
new file mode 100644
index 0000000000..328f3e35da
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js
@@ -0,0 +1,37 @@
+'use strict';
+// The Node team wants to deprecate `process.bind(...)`.
+// https://github.com/nodejs/node/pull/2768
+//
+// However, we need the 'uv' binding for errname support.
+// This is a defensive wrapper around it so `execa` will not fail entirely if it stops working someday.
+//
+// If this ever stops working. See: https://github.com/sindresorhus/execa/issues/31#issuecomment-215939939 for another possible solution.
+let uv;
+
+try {
+ uv = process.binding('uv');
+
+ if (typeof uv.errname !== 'function') {
+ throw new TypeError('uv.errname is not a function');
+ }
+} catch (err) {
+ console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err);
+ uv = null;
+}
+
+function errname(uv, code) {
+ if (uv) {
+ return uv.errname(code);
+ }
+
+ if (!(code < 0)) {
+ throw new Error('err >= 0');
+ }
+
+ return `Unknown system error ${code}`;
+}
+
+module.exports = code => errname(uv, code);
+
+// Used for testing the fallback behavior
+module.exports.__test__ = errname;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js
new file mode 100644
index 0000000000..a82d46838a
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js
@@ -0,0 +1,41 @@
+'use strict';
+const alias = ['stdin', 'stdout', 'stderr'];
+
+const hasAlias = opts => alias.some(x => Boolean(opts[x]));
+
+module.exports = opts => {
+ if (!opts) {
+ return null;
+ }
+
+ if (opts.stdio && hasAlias(opts)) {
+ throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${alias.map(x => `\`${x}\``).join(', ')}`);
+ }
+
+ if (typeof opts.stdio === 'string') {
+ return opts.stdio;
+ }
+
+ const stdio = opts.stdio || [];
+
+ if (!Array.isArray(stdio)) {
+ throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``);
+ }
+
+ const result = [];
+ const len = Math.max(stdio.length, alias.length);
+
+ for (let i = 0; i < len; i++) {
+ let value = null;
+
+ if (stdio[i] !== undefined) {
+ value = stdio[i];
+ } else if (opts[alias[i]] !== undefined) {
+ value = opts[alias[i]];
+ }
+
+ result[i] = value;
+ }
+
+ return result;
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license
index 654d0bfe94..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license
@@ -1,21 +1,9 @@
-The MIT License (MIT)
+MIT License
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.editorconfig b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.editorconfig
deleted file mode 100644
index 8bc4f108d5..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.editorconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-root = true
-
-[*]
-indent_style = space
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[*.md]
-trim_trailing_whitespace = false
-
-[package.json]
-indent_size = 2
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.npmignore b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.npmignore
deleted file mode 100644
index 93f2f731a9..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules/
-npm-debug.*
-test/
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.travis.yml b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.travis.yml
deleted file mode 100644
index 22e38a0fdd..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/.travis.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-language: node_js
-node_js:
- - '0.10'
- - '0.12'
- - '4'
- - '5'
- - '6'
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/README.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/README.md
deleted file mode 100644
index 8b3bd69835..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# cross-spawn-async
-
-[![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]
-
-[npm-url]:https://npmjs.org/package/cross-spawn-async
-[downloads-image]:http://img.shields.io/npm/dm/cross-spawn-async.svg
-[npm-image]:http://img.shields.io/npm/v/cross-spawn-async.svg
-[travis-url]:https://travis-ci.org/IndigoUnited/node-cross-spawn-async
-[travis-image]:http://img.shields.io/travis/IndigoUnited/node-cross-spawn-async/master.svg
-[appveyor-url]:https://ci.appveyor.com/project/satazor/node-cross-spawn-async
-[appveyor-image]:https://img.shields.io/appveyor/ci/satazor/node-cross-spawn-async/master.svg
-[david-dm-url]:https://david-dm.org/IndigoUnited/node-cross-spawn-async
-[david-dm-image]:https://img.shields.io/david/IndigoUnited/node-cross-spawn-async.svg
-[david-dm-dev-url]:https://david-dm.org/IndigoUnited/node-cross-spawn-async#info=devDependencies
-[david-dm-dev-image]:https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn-async.svg
-
-A cross platform solution to node's spawn.
-
-**This module is deprecated, use [cross-spawn](https://github.com/IndigoUnited/node-cross-spawn) instead which no longer requires a build toolchain.**
-
-
-## Installation
-
-`$ npm install cross-spawn-async`
-
-
-## Why
-
-Node has issues when using spawn on Windows:
-
-- It ignores [PATHEXT](https://github.com/joyent/node/issues/2318)
-- It does not support [shebangs](http://pt.wikipedia.org/wiki/Shebang)
-- It does not allow you to run `del` or `dir`
-- It does not properly escape arguments with spaces or special characters
-
-All these issues are handled correctly by `cross-spawn-async`.
-There 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.
-
-
-## Usage
-
-Exactly the same way as node's [`spawn`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options), so it's a drop in replacement.
-
-```javascript
-var spawn = require('cross-spawn-async');
-
-var child = spawn('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });
-```
-
-
-## Tests
-
-`$ npm test`
-
-
-## License
-
-Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/appveyor.yml b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/appveyor.yml
deleted file mode 100644
index 9b92823ee7..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/appveyor.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-# appveyor file
-# http://www.appveyor.com/docs/appveyor-yml
-
-# build version format
-version: "{build}"
-
-# fix lineendings in Windows
-init:
- - git config --global core.autocrlf input
-
-# what combinations to test
-environment:
- matrix:
- - nodejs_version: 0.10
- - nodejs_version: 0.12
- - nodejs_version: 4
- - nodejs_version: 5
- - nodejs_version: 6
-
-# get the latest stable version of Node 0.STABLE.latest
-install:
- - ps: Install-Product node $env:nodejs_version
- - npm install
-
-build: off
-
-test_script:
- - node --version
- - npm --version
- - cmd: npm test --no-color
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/index.js
deleted file mode 100644
index 92afff0833..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/index.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-var cp = require('child_process');
-var parse = require('./lib/parse');
-var enoent = require('./lib/enoent');
-
-function spawn(command, args, options) {
- var parsed;
- var spawned;
-
- // Parse the arguments
- parsed = parse(command, args, options);
-
- // Spawn the child process
- spawned = cp.spawn(parsed.command, parsed.args, parsed.options);
-
- // Hook into child process "exit" event to emit an error if the command
- // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16
- enoent.hookChildProcess(spawned, parsed);
-
- return spawned;
-}
-
-module.exports = spawn;
-module.exports.spawn = spawn;
-module.exports._parse = parse;
-module.exports._enoent = enoent;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/parse.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/parse.js
deleted file mode 100644
index 923e05e7af..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/parse.js
+++ /dev/null
@@ -1,128 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-var LRU = require('lru-cache');
-var resolveCommand = require('./resolveCommand');
-
-var isWin = process.platform === 'win32';
-var shebangCache = new LRU({ max: 50, maxAge: 30 * 1000 }); // Cache just for 30sec
-
-function readShebang(command) {
- var buffer;
- var fd;
- var match;
- var shebang;
-
- // Check if it is in the cache first
- if (shebangCache.has(command)) {
- return shebangCache.get(command);
- }
-
- // Read the first 150 bytes from the file
- buffer = new Buffer(150);
-
- try {
- fd = fs.openSync(command, 'r');
- fs.readSync(fd, buffer, 0, 150, 0);
- fs.closeSync(fd);
- } catch (e) { /* empty */ }
-
- // Check if it is a shebang
- match = buffer.toString().trim().match(/#!(.+)/i);
-
- if (match) {
- shebang = match[1].replace(/\/usr\/bin\/env\s+/i, ''); // Remove /usr/bin/env
- }
-
- // Store the shebang in the cache
- shebangCache.set(command, shebang);
-
- return shebang;
-}
-
-function escapeArg(arg, quote) {
- // Convert to string
- arg = '' + arg;
-
- // If we are not going to quote the argument,
- // escape shell metacharacters, including double and single quotes:
- if (!quote) {
- arg = arg.replace(/([\(\)%!\^<>&|;,"'\s])/g, '^$1');
- } else {
- // Sequence of backslashes followed by a double quote:
- // double up all the backslashes and escape the double quote
- arg = arg.replace(/(\\*)"/g, '$1$1\\"');
-
- // Sequence of backslashes followed by the end of the string
- // (which will become a double quote later):
- // double up all the backslashes
- arg = arg.replace(/(\\*)$/, '$1$1');
-
- // All other backslashes occur literally
-
- // Quote the whole thing:
- arg = '"' + arg + '"';
- }
-
- return arg;
-}
-
-function escapeCommand(command) {
- // Do not escape if this command is not dangerous..
- // We do this so that commands like "echo" or "ifconfig" work
- // Quoting them, will make them unaccessible
- return /^[a-z0-9_-]+$/i.test(command) ? command : escapeArg(command, true);
-}
-
-function parse(command, args, options) {
- var shebang;
- var applyQuotes;
- var file;
- var original;
-
- // Normalize arguments, similar to nodejs
- if (args && !Array.isArray(args)) {
- options = args;
- args = null;
- }
-
- args = args ? args.slice(0) : []; // Clone array to avoid changing the original
- options = options || {};
- original = command;
-
- if (isWin) {
- // Detect & add support for shebangs
- file = resolveCommand(command);
- file = file || resolveCommand(command, true);
- shebang = file && readShebang(file);
-
- if (shebang) {
- args.unshift(file);
- command = shebang;
- }
-
- // Escape command & arguments
- applyQuotes = command !== 'echo'; // Do not quote arguments for the special "echo" command
- command = escapeCommand(command);
- args = args.map(function (arg) {
- return escapeArg(arg, applyQuotes);
- });
-
- // Use cmd.exe
- args = ['/s', '/c', '"' + command + (args.length ? ' ' + args.join(' ') : '') + '"'];
- command = process.env.comspec || 'cmd.exe';
-
- // Tell node's spawn that the arguments are already escaped
- options.windowsVerbatimArguments = true;
- }
-
- return {
- command: command,
- args: args,
- options: options,
- file: file,
- original: original,
- };
-}
-
-module.exports = parse;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md
new file mode 100644
index 0000000000..f1298a82f7
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md
@@ -0,0 +1,6 @@
+## 5.0.0 - 2016-10-30
+
+- Add support for `options.shell`
+- Improve parsing of shebangs by using [`shebang-command`](https://github.com/kevva/shebang-command) module
+- Refactor some code to make it more clear
+- Update README caveats
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/LICENSE b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/LICENSE
index e898822ad3..db5e914de1 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/LICENSE
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2015 IndigoUnited
+Copyright (c) 2014 IndigoUnited
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md
new file mode 100644
index 0000000000..dde730df1b
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md
@@ -0,0 +1,85 @@
+# cross-spawn
+
+[![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]
+
+[npm-url]:https://npmjs.org/package/cross-spawn
+[downloads-image]:http://img.shields.io/npm/dm/cross-spawn.svg
+[npm-image]:http://img.shields.io/npm/v/cross-spawn.svg
+[travis-url]:https://travis-ci.org/IndigoUnited/node-cross-spawn
+[travis-image]:http://img.shields.io/travis/IndigoUnited/node-cross-spawn/master.svg
+[appveyor-url]:https://ci.appveyor.com/project/satazor/node-cross-spawn
+[appveyor-image]:https://img.shields.io/appveyor/ci/satazor/node-cross-spawn/master.svg
+[david-dm-url]:https://david-dm.org/IndigoUnited/node-cross-spawn
+[david-dm-image]:https://img.shields.io/david/IndigoUnited/node-cross-spawn.svg
+[david-dm-dev-url]:https://david-dm.org/IndigoUnited/node-cross-spawn#info=devDependencies
+[david-dm-dev-image]:https://img.shields.io/david/dev/IndigoUnited/node-cross-spawn.svg
+
+A cross platform solution to node's spawn and spawnSync.
+
+
+## Installation
+
+`$ npm install cross-spawn`
+
+If you are using `spawnSync` on node 0.10 or older, you will also need to install `spawn-sync`:
+
+`$ npm install spawn-sync`
+
+
+## Why
+
+Node has issues when using spawn on Windows:
+
+- It ignores [PATHEXT](https://github.com/joyent/node/issues/2318)
+- It does not support [shebangs](http://pt.wikipedia.org/wiki/Shebang)
+- No `options.shell` support on node < v6
+- It does not allow you to run `del` or `dir`
+
+All these issues are handled correctly by `cross-spawn`.
+There 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.
+
+
+## Usage
+
+Exactly 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.
+
+
+```js
+var spawn = require('cross-spawn');
+
+// Spawn NPM asynchronously
+var child = spawn('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });
+
+// Spawn NPM synchronously
+var results = spawn.sync('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });
+```
+
+
+## Caveats
+
+#### `options.shell` as an alternative to `cross-spawn`
+
+Starting from node v6, `spawn` has a `shell` option that allows you run commands from within a shell. This new option solves most of the problems that `cross-spawn` attempts to solve, but:
+
+- It's not supported in node < v6
+- It has no support for shebangs on Windows
+- You must manually escape the command and arguments which is very error prone, specially when passing user input
+
+If you are using the `shell` option to spawn a command in a cross platform way, consider using `cross-spawn` instead. You have been warned.
+
+
+#### Shebangs
+
+While `cross-spawn` handles shebangs on Windows, its support is limited: e.g.: it doesn't handle arguments after the path, e.g.: `#!/bin/bash -e`.
+
+Remember to always test your code on Windows!
+
+
+## Tests
+
+`$ npm test`
+
+
+## License
+
+Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js
new file mode 100644
index 0000000000..7814a9692d
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js
@@ -0,0 +1,59 @@
+'use strict';
+
+var cp = require('child_process');
+var parse = require('./lib/parse');
+var enoent = require('./lib/enoent');
+
+var cpSpawnSync = cp.spawnSync;
+
+function spawn(command, args, options) {
+ var parsed;
+ var spawned;
+
+ // Parse the arguments
+ parsed = parse(command, args, options);
+
+ // Spawn the child process
+ spawned = cp.spawn(parsed.command, parsed.args, parsed.options);
+
+ // Hook into child process "exit" event to emit an error if the command
+ // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16
+ enoent.hookChildProcess(spawned, parsed);
+
+ return spawned;
+}
+
+function spawnSync(command, args, options) {
+ var parsed;
+ var result;
+
+ if (!cpSpawnSync) {
+ try {
+ cpSpawnSync = require('spawn-sync'); // eslint-disable-line global-require
+ } catch (ex) {
+ throw new Error(
+ 'In order to use spawnSync on node 0.10 or older, you must ' +
+ 'install spawn-sync:\n\n' +
+ ' npm install spawn-sync --save'
+ );
+ }
+ }
+
+ // Parse the arguments
+ parsed = parse(command, args, options);
+
+ // Spawn the child process
+ result = cpSpawnSync(parsed.command, parsed.args, parsed.options);
+
+ // Analyze if the command does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16
+ result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);
+
+ return result;
+}
+
+module.exports = spawn;
+module.exports.spawn = spawn;
+module.exports.sync = spawnSync;
+
+module.exports._parse = parse;
+module.exports._enoent = enoent;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/enoent.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/enoent.js
index 3254833ae7..d0a193aecd 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/enoent.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/enoent.js
@@ -1,6 +1,9 @@
'use strict';
var isWin = process.platform === 'win32';
+var resolveCommand = require('./util/resolveCommand');
+
+var isNode10 = process.version.indexOf('v0.10.') === 0;
function notFoundError(command, syscall) {
var err;
@@ -38,9 +41,27 @@ function hookChildProcess(cp, parsed) {
};
}
-function verifyENOENT(status, parsed, syscall) {
+function verifyENOENT(status, parsed) {
if (isWin && status === 1 && !parsed.file) {
- return notFoundError(parsed.original, syscall);
+ return notFoundError(parsed.original, 'spawn');
+ }
+
+ return null;
+}
+
+function verifyENOENTSync(status, parsed) {
+ if (isWin && status === 1 && !parsed.file) {
+ return notFoundError(parsed.original, 'spawnSync');
+ }
+
+ // If we are in node 10, then we are using spawn-sync; if it exited
+ // with -1 it probably means that the command does not exist
+ if (isNode10 && status === -1) {
+ parsed.file = isWin ? parsed.file : resolveCommand(parsed.original);
+
+ if (!parsed.file) {
+ return notFoundError(parsed.original, 'spawnSync');
+ }
}
return null;
@@ -48,4 +69,5 @@ function verifyENOENT(status, parsed, syscall) {
module.exports.hookChildProcess = hookChildProcess;
module.exports.verifyENOENT = verifyENOENT;
+module.exports.verifyENOENTSync = verifyENOENTSync;
module.exports.notFoundError = notFoundError;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js
new file mode 100644
index 0000000000..10a013625b
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js
@@ -0,0 +1,113 @@
+'use strict';
+
+var resolveCommand = require('./util/resolveCommand');
+var hasEmptyArgumentBug = require('./util/hasEmptyArgumentBug');
+var escapeArgument = require('./util/escapeArgument');
+var escapeCommand = require('./util/escapeCommand');
+var readShebang = require('./util/readShebang');
+
+var isWin = process.platform === 'win32';
+var skipShellRegExp = /\.(?:com|exe)$/i;
+
+// Supported in Node >= 6 and >= 4.8
+var supportsShellOption = parseInt(process.version.substr(1).split('.')[0], 10) >= 6 ||
+ parseInt(process.version.substr(1).split('.')[0], 10) === 4 && parseInt(process.version.substr(1).split('.')[1], 10) >= 8;
+
+function parseNonShell(parsed) {
+ var shebang;
+ var needsShell;
+ var applyQuotes;
+
+ if (!isWin) {
+ return parsed;
+ }
+
+ // Detect & add support for shebangs
+ parsed.file = resolveCommand(parsed.command);
+ parsed.file = parsed.file || resolveCommand(parsed.command, true);
+ shebang = parsed.file && readShebang(parsed.file);
+
+ if (shebang) {
+ parsed.args.unshift(parsed.file);
+ parsed.command = shebang;
+ needsShell = hasEmptyArgumentBug || !skipShellRegExp.test(resolveCommand(shebang) || resolveCommand(shebang, true));
+ } else {
+ needsShell = hasEmptyArgumentBug || !skipShellRegExp.test(parsed.file);
+ }
+
+ // If a shell is required, use cmd.exe and take care of escaping everything correctly
+ if (needsShell) {
+ // Escape command & arguments
+ applyQuotes = (parsed.command !== 'echo'); // Do not quote arguments for the special "echo" command
+ parsed.command = escapeCommand(parsed.command);
+ parsed.args = parsed.args.map(function (arg) {
+ return escapeArgument(arg, applyQuotes);
+ });
+
+ // Make use of cmd.exe
+ parsed.args = ['/d', '/s', '/c', '"' + parsed.command + (parsed.args.length ? ' ' + parsed.args.join(' ') : '') + '"'];
+ parsed.command = process.env.comspec || 'cmd.exe';
+ parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped
+ }
+
+ return parsed;
+}
+
+function parseShell(parsed) {
+ var shellCommand;
+
+ // If node supports the shell option, there's no need to mimic its behavior
+ if (supportsShellOption) {
+ return parsed;
+ }
+
+ // Mimic node shell option, see: https://github.com/nodejs/node/blob/b9f6a2dc059a1062776133f3d4fd848c4da7d150/lib/child_process.js#L335
+ shellCommand = [parsed.command].concat(parsed.args).join(' ');
+
+ if (isWin) {
+ parsed.command = typeof parsed.options.shell === 'string' ? parsed.options.shell : process.env.comspec || 'cmd.exe';
+ parsed.args = ['/d', '/s', '/c', '"' + shellCommand + '"'];
+ parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped
+ } else {
+ if (typeof parsed.options.shell === 'string') {
+ parsed.command = parsed.options.shell;
+ } else if (process.platform === 'android') {
+ parsed.command = '/system/bin/sh';
+ } else {
+ parsed.command = '/bin/sh';
+ }
+
+ parsed.args = ['-c', shellCommand];
+ }
+
+ return parsed;
+}
+
+// ------------------------------------------------
+
+function parse(command, args, options) {
+ var parsed;
+
+ // Normalize arguments, similar to nodejs
+ if (args && !Array.isArray(args)) {
+ options = args;
+ args = null;
+ }
+
+ args = args ? args.slice(0) : []; // Clone array to avoid changing the original
+ options = options || {};
+
+ // Build our parsed object
+ parsed = {
+ command: command,
+ args: args,
+ options: options,
+ file: undefined,
+ original: command,
+ };
+
+ // Delegate further parsing to shell or non-shell
+ return options.shell ? parseShell(parsed) : parseNonShell(parsed);
+}
+
+module.exports = parse;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js
new file mode 100644
index 0000000000..367263f669
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js
@@ -0,0 +1,30 @@
+'use strict';
+
+function escapeArgument(arg, quote) {
+ // Convert to string
+ arg = '' + arg;
+
+ // If we are not going to quote the argument,
+ // escape shell metacharacters, including double and single quotes:
+ if (!quote) {
+ arg = arg.replace(/([()%!^<>&|;,"'\s])/g, '^$1');
+ } else {
+ // Sequence of backslashes followed by a double quote:
+ // double up all the backslashes and escape the double quote
+ arg = arg.replace(/(\\*)"/g, '$1$1\\"');
+
+ // Sequence of backslashes followed by the end of the string
+ // (which will become a double quote later):
+ // double up all the backslashes
+ arg = arg.replace(/(\\*)$/, '$1$1');
+
+ // All other backslashes occur literally
+
+ // Quote the whole thing:
+ arg = '"' + arg + '"';
+ }
+
+ return arg;
+}
+
+module.exports = escapeArgument;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js
new file mode 100644
index 0000000000..d9c25b2656
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js
@@ -0,0 +1,12 @@
+'use strict';
+
+var escapeArgument = require('./escapeArgument');
+
+function escapeCommand(command) {
+ // Do not escape if this command is not dangerous..
+ // We do this so that commands like "echo" or "ifconfig" work
+ // Quoting them, will make them unaccessible
+ return /^[a-z0-9_-]+$/i.test(command) ? command : escapeArgument(command, true);
+}
+
+module.exports = escapeCommand;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js
new file mode 100644
index 0000000000..9f2eba6355
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js
@@ -0,0 +1,18 @@
+'use strict';
+
+// See: https://github.com/IndigoUnited/node-cross-spawn/pull/34#issuecomment-221623455
+function hasEmptyArgumentBug() {
+ var nodeVer;
+
+ if (process.platform !== 'win32') {
+ return false;
+ }
+
+ nodeVer = process.version.substr(1).split('.').map(function (num) {
+ return parseInt(num, 10);
+ });
+
+ return (nodeVer[0] === 0 && nodeVer[1] < 12);
+}
+
+module.exports = hasEmptyArgumentBug();
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js
new file mode 100644
index 0000000000..2cf3541c99
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js
@@ -0,0 +1,37 @@
+'use strict';
+
+var fs = require('fs');
+var LRU = require('lru-cache');
+var shebangCommand = require('shebang-command');
+
+var shebangCache = new LRU({ max: 50, maxAge: 30 * 1000 }); // Cache just for 30sec
+
+function readShebang(command) {
+ var buffer;
+ var fd;
+ var shebang;
+
+ // Check if it is in the cache first
+ if (shebangCache.has(command)) {
+ return shebangCache.get(command);
+ }
+
+ // Read the first 150 bytes from the file
+ buffer = new Buffer(150);
+
+ try {
+ fd = fs.openSync(command, 'r');
+ fs.readSync(fd, buffer, 0, 150, 0);
+ fs.closeSync(fd);
+ } catch (e) { /* empty */ }
+
+ // Attempt to extract shebang (null is returned if not a shebang)
+ shebang = shebangCommand(buffer.toString());
+
+ // Store the shebang in the cache
+ shebangCache.set(command, shebang);
+
+ return shebang;
+}
+
+module.exports = readShebang;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/resolveCommand.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js
index 391d3d9b07..b7a9490974 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/lib/resolveCommand.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js
@@ -5,17 +5,10 @@ var which = require('which');
var LRU = require('lru-cache');
var commandCache = new LRU({ max: 50, maxAge: 30 * 1000 }); // Cache just for 30sec
-var hasSepInPathRegExp = new RegExp(process.platform === 'win32' ? /[\/\\]/ : /\//);
function resolveCommand(command, noExtension) {
var resolved;
- // If command looks like a file path, make it absolute to make it canonical
- // and also to circuvent a bug in which, see: https://github.com/npm/node-which/issues/33
- if (hasSepInPathRegExp.test(command)) {
- command = path.resolve(command);
- }
-
noExtension = !!noExtension;
resolved = commandCache.get(command + '!' + noExtension);
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/index.js
new file mode 100644
index 0000000000..2de70b0742
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/index.js
@@ -0,0 +1,19 @@
+'use strict';
+var shebangRegex = require('shebang-regex');
+
+module.exports = function (str) {
+ var match = str.match(shebangRegex);
+
+ if (!match) {
+ return null;
+ }
+
+ var arr = match[0].replace(/#! ?/, '').split(' ');
+ var bin = arr[0].split('/').pop();
+ var arg = arr[1];
+
+ return (bin === 'env' ?
+ arg :
+ bin + (arg ? ' ' + arg : '')
+ );
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license
index 654d0bfe94..0f8cf79c3c 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+Copyright (c) Kevin Martensson <kevinmartensson@gmail.com> (github.com/kevva)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/index.js
new file mode 100644
index 0000000000..d052d2e05e
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/index.js
@@ -0,0 +1,2 @@
+'use strict';
+module.exports = /^#!.*/;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/license
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/package.json
new file mode 100644
index 0000000000..f394bdb1d6
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/package.json
@@ -0,0 +1,64 @@
+{
+ "_from": "shebang-regex@^1.0.0",
+ "_id": "shebang-regex@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "_location": "/update-notifier/boxen/term-size/execa/cross-spawn/shebang-command/shebang-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "shebang-regex@^1.0.0",
+ "name": "shebang-regex",
+ "escapedName": "shebang-regex",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/update-notifier/boxen/term-size/execa/cross-spawn/shebang-command"
+ ],
+ "_resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "_shasum": "da42f49740c0b42db2ca9728571cb190c98efea3",
+ "_spec": "shebang-regex@^1.0.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/shebang-regex/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Regular expression for matching a shebang",
+ "devDependencies": {
+ "ava": "0.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/shebang-regex#readme",
+ "keywords": [
+ "re",
+ "regex",
+ "regexp",
+ "shebang",
+ "match",
+ "test"
+ ],
+ "license": "MIT",
+ "name": "shebang-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/shebang-regex.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/readme.md
new file mode 100644
index 0000000000..ef75e51b5b
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/node_modules/shebang-regex/readme.md
@@ -0,0 +1,29 @@
+# shebang-regex [![Build Status](https://travis-ci.org/sindresorhus/shebang-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/shebang-regex)
+
+> Regular expression for matching a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix))
+
+
+## Install
+
+```
+$ npm install --save shebang-regex
+```
+
+
+## Usage
+
+```js
+var shebangRegex = require('shebang-regex');
+var str = '#!/usr/bin/env node\nconsole.log("unicorns");';
+
+shebangRegex.test(str);
+//=> true
+
+shebangRegex.exec(str)[0];
+//=> '#!/usr/bin/env node'
+```
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/package.json
new file mode 100644
index 0000000000..6375b89939
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "shebang-command@^1.2.0",
+ "_id": "shebang-command@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "_location": "/update-notifier/boxen/term-size/execa/cross-spawn/shebang-command",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "shebang-command@^1.2.0",
+ "name": "shebang-command",
+ "escapedName": "shebang-command",
+ "rawSpec": "^1.2.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.0"
+ },
+ "_requiredBy": [
+ "/update-notifier/boxen/term-size/execa/cross-spawn"
+ ],
+ "_resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "_shasum": "44aac65b695b03398968c39f363fee5deafdf1ea",
+ "_spec": "shebang-command@^1.2.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn",
+ "author": {
+ "name": "Kevin Martensson",
+ "email": "kevinmartensson@gmail.com",
+ "url": "github.com/kevva"
+ },
+ "bugs": {
+ "url": "https://github.com/kevva/shebang-command/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Get the command from a shebang",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/kevva/shebang-command#readme",
+ "keywords": [
+ "cmd",
+ "command",
+ "parse",
+ "shebang"
+ ],
+ "license": "MIT",
+ "name": "shebang-command",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/kevva/shebang-command.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.2.0",
+ "xo": {
+ "ignores": [
+ "test.js"
+ ]
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/readme.md
new file mode 100644
index 0000000000..16b0be4d7d
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/readme.md
@@ -0,0 +1,39 @@
+# shebang-command [![Build Status](https://travis-ci.org/kevva/shebang-command.svg?branch=master)](https://travis-ci.org/kevva/shebang-command)
+
+> Get the command from a shebang
+
+
+## Install
+
+```
+$ npm install --save shebang-command
+```
+
+
+## Usage
+
+```js
+const shebangCommand = require('shebang-command');
+
+shebangCommand('#!/usr/bin/env node');
+//=> 'node'
+
+shebangCommand('#!/bin/bash');
+//=> 'bash'
+```
+
+
+## API
+
+### shebangCommand(string)
+
+#### string
+
+Type: `string`
+
+String containing a shebang.
+
+
+## License
+
+MIT © [Kevin Martensson](http://github.com/kevva)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/package.json
index ca828c0505..d2fea962ce 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn-async/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/package.json
@@ -1,43 +1,43 @@
{
- "_from": "cross-spawn-async@^2.1.1",
- "_id": "cross-spawn-async@2.2.5",
- "_integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=",
- "_location": "/update-notifier/boxen/term-size/execa/cross-spawn-async",
+ "_from": "cross-spawn@^5.0.1",
+ "_id": "cross-spawn@5.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "_location": "/update-notifier/boxen/term-size/execa/cross-spawn",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
- "raw": "cross-spawn-async@^2.1.1",
- "name": "cross-spawn-async",
- "escapedName": "cross-spawn-async",
- "rawSpec": "^2.1.1",
+ "raw": "cross-spawn@^5.0.1",
+ "name": "cross-spawn",
+ "escapedName": "cross-spawn",
+ "rawSpec": "^5.0.1",
"saveSpec": null,
- "fetchSpec": "^2.1.1"
+ "fetchSpec": "^5.0.1"
},
"_requiredBy": [
"/update-notifier/boxen/term-size/execa"
],
- "_resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz",
- "_shasum": "845ff0c0834a3ded9d160daca6d390906bb288cc",
- "_shrinkwrap": null,
- "_spec": "cross-spawn-async@^2.1.1",
+ "_resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "_shasum": "e8bd0efee58fcff6f8f94510a0a554bbfa235449",
+ "_spec": "cross-spawn@^5.0.1",
"_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
"author": {
"name": "IndigoUnited",
"email": "hello@indigounited.com",
"url": "http://indigounited.com"
},
- "bin": null,
"bugs": {
- "url": "https://github.com/IndigoUnited/node-cross-spawn-async/issues/"
+ "url": "https://github.com/IndigoUnited/node-cross-spawn/issues/"
},
"bundleDependencies": false,
"dependencies": {
- "lru-cache": "^4.0.0",
- "which": "^1.2.8"
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
},
"deprecated": false,
- "description": "Cross platform child_process#spawn",
+ "description": "Cross platform child_process#spawn and child_process#spawnSync",
"devDependencies": {
"@satazor/eslint-config": "^3.0.0",
"eslint": "^3.0.0",
@@ -45,11 +45,17 @@
"glob": "^7.0.0",
"mkdirp": "^0.5.1",
"mocha": "^3.0.2",
+ "once": "^1.4.0",
"rimraf": "^2.5.0"
},
- "homepage": "https://github.com/IndigoUnited/node-cross-spawn-async#readme",
+ "files": [
+ "index.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/IndigoUnited/node-cross-spawn#readme",
"keywords": [
"spawn",
+ "spawnSync",
"windows",
"cross",
"platform",
@@ -64,16 +70,14 @@
],
"license": "MIT",
"main": "index.js",
- "name": "cross-spawn-async",
- "optionalDependencies": {},
- "peerDependencies": {},
+ "name": "cross-spawn",
"repository": {
"type": "git",
- "url": "git://github.com/IndigoUnited/node-cross-spawn-async.git"
+ "url": "git://github.com/IndigoUnited/node-cross-spawn.git"
},
"scripts": {
"lint": "eslint '{*.js,lib/**/*.js,test/**/*.js}'",
"test": "node test/prepare && mocha --bail test/test"
},
- "version": "2.2.5"
+ "version": "5.1.0"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js
new file mode 100644
index 0000000000..ae45d3d9e7
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js
@@ -0,0 +1,51 @@
+'use strict';
+const PassThrough = require('stream').PassThrough;
+
+module.exports = opts => {
+ opts = Object.assign({}, opts);
+
+ const array = opts.array;
+ let encoding = opts.encoding;
+ const buffer = encoding === 'buffer';
+ let objectMode = false;
+
+ if (array) {
+ objectMode = !(encoding || buffer);
+ } else {
+ encoding = encoding || 'utf8';
+ }
+
+ if (buffer) {
+ encoding = null;
+ }
+
+ let len = 0;
+ const ret = [];
+ const stream = new PassThrough({objectMode});
+
+ if (encoding) {
+ stream.setEncoding(encoding);
+ }
+
+ stream.on('data', chunk => {
+ ret.push(chunk);
+
+ if (objectMode) {
+ len = ret.length;
+ } else {
+ len += chunk.length;
+ }
+ });
+
+ stream.getBufferedValue = () => {
+ if (array) {
+ return ret;
+ }
+
+ return buffer ? Buffer.concat(ret, len) : ret.join('');
+ };
+
+ stream.getBufferedLength = () => len;
+
+ return stream;
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js
new file mode 100644
index 0000000000..2dc5ee96af
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js
@@ -0,0 +1,51 @@
+'use strict';
+const bufferStream = require('./buffer-stream');
+
+function getStream(inputStream, opts) {
+ if (!inputStream) {
+ return Promise.reject(new Error('Expected a stream'));
+ }
+
+ opts = Object.assign({maxBuffer: Infinity}, opts);
+
+ const maxBuffer = opts.maxBuffer;
+ let stream;
+ let clean;
+
+ const p = new Promise((resolve, reject) => {
+ const error = err => {
+ if (err) { // null check
+ err.bufferedData = stream.getBufferedValue();
+ }
+
+ reject(err);
+ };
+
+ stream = bufferStream(opts);
+ inputStream.once('error', error);
+ inputStream.pipe(stream);
+
+ stream.on('data', () => {
+ if (stream.getBufferedLength() > maxBuffer) {
+ reject(new Error('maxBuffer exceeded'));
+ }
+ });
+ stream.once('error', error);
+ stream.on('end', resolve);
+
+ clean = () => {
+ // some streams doesn't implement the `stream.Readable` interface correctly
+ if (inputStream.unpipe) {
+ inputStream.unpipe(stream);
+ }
+ };
+ });
+
+ p.then(clean, clean);
+
+ return p.then(() => stream.getBufferedValue());
+}
+
+module.exports = getStream;
+module.exports.buffer = (stream, opts) => getStream(stream, Object.assign({}, opts, {encoding: 'buffer'}));
+module.exports.array = (stream, opts) => getStream(stream, Object.assign({}, opts, {array: true}));
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/license
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json
new file mode 100644
index 0000000000..4dd1d9caf4
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json
@@ -0,0 +1,80 @@
+{
+ "_from": "get-stream@^3.0.0",
+ "_id": "get-stream@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "_location": "/update-notifier/boxen/term-size/execa/get-stream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "get-stream@^3.0.0",
+ "name": "get-stream",
+ "escapedName": "get-stream",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/update-notifier/boxen/term-size/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "_shasum": "8e943d1358dc37555054ecbe2edb05aa174ede14",
+ "_spec": "get-stream@^3.0.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/get-stream/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Get a stream as a string, buffer, or array",
+ "devDependencies": {
+ "ava": "*",
+ "into-stream": "^3.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js",
+ "buffer-stream.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/get-stream#readme",
+ "keywords": [
+ "get",
+ "stream",
+ "promise",
+ "concat",
+ "string",
+ "str",
+ "text",
+ "buffer",
+ "read",
+ "data",
+ "consume",
+ "readable",
+ "readablestream",
+ "array",
+ "object",
+ "obj"
+ ],
+ "license": "MIT",
+ "name": "get-stream",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/get-stream.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md
new file mode 100644
index 0000000000..73b188fb42
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md
@@ -0,0 +1,117 @@
+# get-stream [![Build Status](https://travis-ci.org/sindresorhus/get-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/get-stream)
+
+> Get a stream as a string, buffer, or array
+
+
+## Install
+
+```
+$ npm install --save get-stream
+```
+
+
+## Usage
+
+```js
+const fs = require('fs');
+const getStream = require('get-stream');
+const stream = fs.createReadStream('unicorn.txt');
+
+getStream(stream).then(str => {
+ console.log(str);
+ /*
+ ,,))))))));,
+ __)))))))))))))),
+ \|/ -\(((((''''((((((((.
+ -*-==//////(('' . `)))))),
+ /|\ ))| o ;-. '((((( ,(,
+ ( `| / ) ;))))' ,_))^;(~
+ | | | ,))((((_ _____------~~~-. %,;(;(>';'~
+ o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~
+ ; ''''```` `: `:::|\,__,%% );`'; ~
+ | _ ) / `:|`----' `-'
+ ______/\/~ | / /
+ /~;;.____/;;' / ___--,-( `;;;/
+ / // _;______;'------~~~~~ /;;/\ /
+ // | | / ; \;;,\
+ (<_ | ; /',/-----' _>
+ \_| ||_ //~;~~~~~~~~~
+ `\_| (,~~
+ \~\
+ ~~
+ */
+});
+```
+
+
+## API
+
+The methods returns a promise that resolves when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode.
+
+### getStream(stream, [options])
+
+Get the `stream` as a string.
+
+#### options
+
+##### encoding
+
+Type: `string`<br>
+Default: `utf8`
+
+[Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream.
+
+##### maxBuffer
+
+Type: `number`<br>
+Default: `Infinity`
+
+Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected.
+
+### getStream.buffer(stream, [options])
+
+Get the `stream` as a buffer.
+
+It honors the `maxBuffer` option as above, but it refers to byte length rather than string length.
+
+### getStream.array(stream, [options])
+
+Get the `stream` as an array of values.
+
+It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen:
+
+- When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes).
+
+- When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array.
+
+- When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array.
+
+
+## Errors
+
+If the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error.
+
+```js
+getStream(streamThatErrorsAtTheEnd('unicorn'))
+ .catch(err => {
+ console.log(err.bufferedData);
+ //=> 'unicorn'
+ });
+```
+
+
+## FAQ
+
+### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)?
+
+This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package.
+
+
+## Related
+
+- [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js
index 92b8d7dc3d..56f31e4712 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js
@@ -1,14 +1,16 @@
'use strict';
-var path = require('path');
-var pathKey = require('path-key');
+const path = require('path');
+const pathKey = require('path-key');
-module.exports = function (opts) {
- opts = opts || {};
+module.exports = opts => {
+ opts = Object.assign({
+ cwd: process.cwd(),
+ path: process.env[pathKey()]
+ }, opts);
- var prev;
- var pth = path.resolve(opts.cwd || '.');
-
- var ret = [];
+ let prev;
+ let pth = path.resolve(opts.cwd);
+ const ret = [];
while (prev !== pth) {
ret.push(path.join(pth, 'node_modules/.bin'));
@@ -19,5 +21,19 @@ module.exports = function (opts) {
// ensure the running `node` binary is used
ret.push(path.dirname(process.execPath));
- return ret.concat(opts.path || process.env[pathKey()]).join(path.delimiter);
+ return ret.concat(opts.path).join(path.delimiter);
+};
+
+module.exports.env = opts => {
+ opts = Object.assign({
+ env: process.env
+ }, opts);
+
+ const env = Object.assign({}, opts.env);
+ const path = pathKey({env});
+
+ opts.path = env[path];
+ env[path] = module.exports(opts);
+
+ return env;
};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/index.js
new file mode 100644
index 0000000000..62c8250ab4
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/index.js
@@ -0,0 +1,13 @@
+'use strict';
+module.exports = opts => {
+ opts = opts || {};
+
+ const env = opts.env || process.env;
+ const platform = opts.platform || process.platform;
+
+ if (platform !== 'win32') {
+ return 'PATH';
+ }
+
+ return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path';
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/license
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/package.json
index 9c1e20920d..75b08325d9 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/package.json
@@ -1,39 +1,36 @@
{
- "_from": "path-key@^1.0.0",
- "_id": "path-key@1.0.0",
- "_integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68=",
- "_location": "/update-notifier/boxen/term-size/execa/path-key",
+ "_from": "path-key@^2.0.0",
+ "_id": "path-key@2.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "_location": "/update-notifier/boxen/term-size/execa/npm-run-path/path-key",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
- "raw": "path-key@^1.0.0",
+ "raw": "path-key@^2.0.0",
"name": "path-key",
"escapedName": "path-key",
- "rawSpec": "^1.0.0",
+ "rawSpec": "^2.0.0",
"saveSpec": null,
- "fetchSpec": "^1.0.0"
+ "fetchSpec": "^2.0.0"
},
"_requiredBy": [
- "/update-notifier/boxen/term-size/execa",
"/update-notifier/boxen/term-size/execa/npm-run-path"
],
- "_resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz",
- "_shasum": "5d53d578019646c0d68800db4e146e6bdc2ac7af",
- "_shrinkwrap": null,
- "_spec": "path-key@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
+ "_resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "_shasum": "411cadb574c5a140d3a4b1910d40d80cc9f40b40",
+ "_spec": "path-key@^2.0.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/sindresorhus/path-key/issues"
},
"bundleDependencies": false,
- "dependencies": {},
"deprecated": false,
"description": "Get the PATH environment variable key cross-platform",
"devDependencies": {
@@ -41,7 +38,7 @@
"xo": "*"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"files": [
"index.js"
@@ -60,8 +57,6 @@
],
"license": "MIT",
"name": "path-key",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/path-key.git"
@@ -69,5 +64,8 @@
"scripts": {
"test": "xo && ava"
},
- "version": "1.0.0"
+ "version": "2.0.1",
+ "xo": {
+ "esnext": true
+ }
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/readme.md
index 799e8296e1..cb5710aace 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/node_modules/path-key/readme.md
@@ -33,14 +33,14 @@ const PATH = process.env[key];
##### env
-Type: `object`
+Type: `Object`<br>
Default: [`process.env`](https://nodejs.org/api/process.html#process_process_env)
Use a custom environment variables object.
#### platform
-Type: `string`
+Type: `string`<br>
Default: [`process.platform`](https://nodejs.org/api/process.html#process_process_platform)
Get the PATH key for a specific platform.
@@ -48,4 +48,4 @@ Get the PATH key for a specific platform.
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json
index 9b3b043084..357c5ceaf5 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json
@@ -1,39 +1,38 @@
{
- "_from": "npm-run-path@^1.0.0",
- "_id": "npm-run-path@1.0.0",
- "_integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=",
+ "_from": "npm-run-path@^2.0.0",
+ "_id": "npm-run-path@2.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
"_location": "/update-notifier/boxen/term-size/execa/npm-run-path",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
- "raw": "npm-run-path@^1.0.0",
+ "raw": "npm-run-path@^2.0.0",
"name": "npm-run-path",
"escapedName": "npm-run-path",
- "rawSpec": "^1.0.0",
+ "rawSpec": "^2.0.0",
"saveSpec": null,
- "fetchSpec": "^1.0.0"
+ "fetchSpec": "^2.0.0"
},
"_requiredBy": [
"/update-notifier/boxen/term-size/execa"
],
- "_resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz",
- "_shasum": "f5c32bf595fe81ae927daec52e82f8b000ac3c8f",
- "_shrinkwrap": null,
- "_spec": "npm-run-path@^1.0.0",
+ "_resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "_shasum": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
+ "_spec": "npm-run-path@^2.0.0",
"_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/sindresorhus/npm-run-path/issues"
},
"bundleDependencies": false,
"dependencies": {
- "path-key": "^1.0.0"
+ "path-key": "^2.0.0"
},
"deprecated": false,
"description": "Get your PATH prepended with locally installed binaries",
@@ -42,7 +41,7 @@
"xo": "*"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"files": [
"index.js"
@@ -64,8 +63,6 @@
],
"license": "MIT",
"name": "npm-run-path",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/npm-run-path.git"
@@ -73,5 +70,8 @@
"scripts": {
"test": "xo && ava"
},
- "version": "1.0.0"
+ "version": "2.0.2",
+ "xo": {
+ "esnext": true
+ }
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md
index c68017fdd1..4ff4722a6c 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md
@@ -26,9 +26,7 @@ console.log(npmRunPath());
// `foo` is a locally installed binary
childProcess.execFileSync('foo', {
- env: {
- PATH: npmRunPath()
- }
+ env: npmRunPath.env()
});
```
@@ -41,19 +39,36 @@ childProcess.execFileSync('foo', {
##### cwd
-Type: `string`
+Type: `string`<br>
Default: `process.cwd()`
Working directory.
##### path
-Type: `string`
+Type: `string`<br>
Default: [`PATH`](https://github.com/sindresorhus/path-key)
PATH to be appended.<br>
Set it to an empty string to exclude the default PATH.
+### npmRunPath.env([options])
+
+#### options
+
+##### cwd
+
+Type: `string`<br>
+Default: `process.cwd()`
+
+Working directory.
+
+##### env
+
+Type: `Object`
+
+Accepts an object of environment variables, like `process.env`, and modifies the PATH using the correct [PATH key](https://github.com/sindresorhus/path-key). Use this if you're modifying the PATH for use in the `child_process` options.
+
## Related
@@ -63,4 +78,4 @@ Set it to an empty string to exclude the default PATH.
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/index.js
deleted file mode 100644
index 0930cf8890..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/index.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-object-assign
-(c) Sindre Sorhus
-@license MIT
-*/
-
-'use strict';
-/* eslint-disable no-unused-vars */
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-function toObject(val) {
- if (val === null || val === undefined) {
- throw new TypeError('Object.assign cannot be called with null or undefined');
- }
-
- return Object(val);
-}
-
-function shouldUseNative() {
- try {
- if (!Object.assign) {
- return false;
- }
-
- // Detect buggy property enumeration order in older V8 versions.
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=4118
- var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
- test1[5] = 'de';
- if (Object.getOwnPropertyNames(test1)[0] === '5') {
- return false;
- }
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
- var test2 = {};
- for (var i = 0; i < 10; i++) {
- test2['_' + String.fromCharCode(i)] = i;
- }
- var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
- return test2[n];
- });
- if (order2.join('') !== '0123456789') {
- return false;
- }
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
- var test3 = {};
- 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
- test3[letter] = letter;
- });
- if (Object.keys(Object.assign({}, test3)).join('') !==
- 'abcdefghijklmnopqrst') {
- return false;
- }
-
- return true;
- } catch (err) {
- // We don't expect any of the above to throw, but better to be safe.
- return false;
- }
-}
-
-module.exports = shouldUseNative() ? Object.assign : function (target, source) {
- var from;
- var to = toObject(target);
- var symbols;
-
- for (var s = 1; s < arguments.length; s++) {
- from = Object(arguments[s]);
-
- for (var key in from) {
- if (hasOwnProperty.call(from, key)) {
- to[key] = from[key];
- }
- }
-
- if (getOwnPropertySymbols) {
- symbols = getOwnPropertySymbols(from);
- for (var i = 0; i < symbols.length; i++) {
- if (propIsEnumerable.call(from, symbols[i])) {
- to[symbols[i]] = from[symbols[i]];
- }
- }
- }
- }
-
- return to;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/package.json
deleted file mode 100644
index 85d97b9068..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "object-assign@^4.0.1",
- "_id": "object-assign@4.1.1",
- "_integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "_location": "/update-notifier/boxen/term-size/execa/object-assign",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "object-assign@^4.0.1",
- "name": "object-assign",
- "escapedName": "object-assign",
- "rawSpec": "^4.0.1",
- "saveSpec": null,
- "fetchSpec": "^4.0.1"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa"
- ],
- "_resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "_shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863",
- "_shrinkwrap": null,
- "_spec": "object-assign@^4.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/object-assign/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "ES2015 `Object.assign()` ponyfill",
- "devDependencies": {
- "ava": "^0.16.0",
- "lodash": "^4.16.4",
- "matcha": "^0.7.0",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/object-assign#readme",
- "keywords": [
- "object",
- "assign",
- "extend",
- "properties",
- "es2015",
- "ecmascript",
- "harmony",
- "ponyfill",
- "prollyfill",
- "polyfill",
- "shim",
- "browser"
- ],
- "license": "MIT",
- "name": "object-assign",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/object-assign.git"
- },
- "scripts": {
- "bench": "matcha bench.js",
- "test": "xo && ava"
- },
- "version": "4.1.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/readme.md
deleted file mode 100644
index 1be09d35c7..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/object-assign/readme.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# object-assign [![Build Status](https://travis-ci.org/sindresorhus/object-assign.svg?branch=master)](https://travis-ci.org/sindresorhus/object-assign)
-
-> ES2015 [`Object.assign()`](http://www.2ality.com/2014/01/object-assign.html) [ponyfill](https://ponyfill.com)
-
-
-## Use the built-in
-
-Node.js 4 and up, as well as every evergreen browser (Chrome, Edge, Firefox, Opera, Safari),
-support `Object.assign()` :tada:. If you target only those environments, then by all
-means, use `Object.assign()` instead of this package.
-
-
-## Install
-
-```
-$ npm install --save object-assign
-```
-
-
-## Usage
-
-```js
-const objectAssign = require('object-assign');
-
-objectAssign({foo: 0}, {bar: 1});
-//=> {foo: 0, bar: 1}
-
-// multiple sources
-objectAssign({foo: 0}, {bar: 1}, {baz: 2});
-//=> {foo: 0, bar: 1, baz: 2}
-
-// overwrites equal keys
-objectAssign({foo: 0}, {foo: 1}, {foo: 2});
-//=> {foo: 2}
-
-// ignores null and undefined sources
-objectAssign({foo: 0}, null, {bar: 1}, undefined);
-//=> {foo: 0, bar: 1}
-```
-
-
-## API
-
-### objectAssign(target, [source, ...])
-
-Assigns enumerable own properties of `source` objects to the `target` object and returns the `target` object. Additional `source` objects will overwrite previous ones.
-
-
-## Resources
-
-- [ES2015 spec - Object.assign](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign)
-
-
-## Related
-
-- [deep-assign](https://github.com/sindresorhus/deep-assign) - Recursive `Object.assign()`
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js
new file mode 100644
index 0000000000..52b7b49c5f
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js
@@ -0,0 +1,15 @@
+'use strict';
+module.exports = (promise, onFinally) => {
+ onFinally = onFinally || (() => {});
+
+ return promise.then(
+ val => new Promise(resolve => {
+ resolve(onFinally());
+ }).then(() => val),
+ err => new Promise(resolve => {
+ resolve(onFinally());
+ }).then(() => {
+ throw err;
+ })
+ );
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/license
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json
new file mode 100644
index 0000000000..902a8e39df
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json
@@ -0,0 +1,74 @@
+{
+ "_from": "p-finally@^1.0.0",
+ "_id": "p-finally@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "_location": "/update-notifier/boxen/term-size/execa/p-finally",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "p-finally@^1.0.0",
+ "name": "p-finally",
+ "escapedName": "p-finally",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/update-notifier/boxen/term-size/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "_shasum": "3fbcfb15b899a44123b34b6dcc18b724336a2cae",
+ "_spec": "p-finally@^1.0.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/p-finally/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "`Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/p-finally#readme",
+ "keywords": [
+ "promise",
+ "finally",
+ "handler",
+ "function",
+ "async",
+ "await",
+ "promises",
+ "settled",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "bluebird"
+ ],
+ "license": "MIT",
+ "name": "p-finally",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/p-finally.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md
new file mode 100644
index 0000000000..09ef36416b
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md
@@ -0,0 +1,47 @@
+# p-finally [![Build Status](https://travis-ci.org/sindresorhus/p-finally.svg?branch=master)](https://travis-ci.org/sindresorhus/p-finally)
+
+> [`Promise#finally()`](https://github.com/tc39/proposal-promise-finally) [ponyfill](https://ponyfill.com) - Invoked when the promise is settled regardless of outcome
+
+Useful for cleanup.
+
+
+## Install
+
+```
+$ npm install --save p-finally
+```
+
+
+## Usage
+
+```js
+const pFinally = require('p-finally');
+
+const dir = createTempDir();
+
+pFinally(write(dir), () => cleanup(dir));
+```
+
+
+## API
+
+### pFinally(promise, [onFinally])
+
+Returns a `Promise`.
+
+#### onFinally
+
+Type: `Function`
+
+Note: Throwing or returning a rejected promise will reject `promise` with the rejection reason.
+
+
+## Related
+
+- [p-try](https://github.com/sindresorhus/p-try) - `Promise#try()` ponyfill - Starts a promise chain
+- [More…](https://github.com/sindresorhus/promise-fun)
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/index.js
deleted file mode 100644
index 3233661e11..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/path-key/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-module.exports = function (opts) {
- opts = opts || {};
-
- var env = opts.env || process.env;
- var platform = opts.platform || process.platform;
-
- if (platform !== 'win32') {
- return 'PATH';
- }
-
- return Object.keys(env).filter(function (x) {
- return x.toUpperCase() === 'PATH';
- })[0] || 'Path';
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md
new file mode 100644
index 0000000000..e2f70d2250
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md
@@ -0,0 +1,27 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="3.0.1"></a>
+## [3.0.1](https://github.com/tapjs/signal-exit/compare/v3.0.0...v3.0.1) (2016-09-08)
+
+
+### Bug Fixes
+
+* do not listen on SIGBUS, SIGFPE, SIGSEGV and SIGILL ([#40](https://github.com/tapjs/signal-exit/issues/40)) ([5b105fb](https://github.com/tapjs/signal-exit/commit/5b105fb))
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/tapjs/signal-exit/compare/v2.1.2...v3.0.0) (2016-06-13)
+
+
+### Bug Fixes
+
+* get our test suite running on Windows ([#23](https://github.com/tapjs/signal-exit/issues/23)) ([6f3eda8](https://github.com/tapjs/signal-exit/commit/6f3eda8))
+* hooking SIGPROF was interfering with profilers see [#21](https://github.com/tapjs/signal-exit/issues/21) ([#24](https://github.com/tapjs/signal-exit/issues/24)) ([1248a4c](https://github.com/tapjs/signal-exit/commit/1248a4c))
+
+
+### BREAKING CHANGES
+
+* signal-exit no longer wires into SIGPROF
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt
new file mode 100644
index 0000000000..eead04a121
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt
@@ -0,0 +1,16 @@
+The ISC License
+
+Copyright (c) 2015, 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.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md
new file mode 100644
index 0000000000..8ebccabeca
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md
@@ -0,0 +1,40 @@
+# signal-exit
+
+[![Build Status](https://travis-ci.org/tapjs/signal-exit.png)](https://travis-ci.org/tapjs/signal-exit)
+[![Coverage](https://coveralls.io/repos/tapjs/signal-exit/badge.svg?branch=master)](https://coveralls.io/r/tapjs/signal-exit?branch=master)
+[![NPM version](https://img.shields.io/npm/v/signal-exit.svg)](https://www.npmjs.com/package/signal-exit)
+[![Windows Tests](https://img.shields.io/appveyor/ci/bcoe/signal-exit/master.svg?label=Windows%20Tests)](https://ci.appveyor.com/project/bcoe/signal-exit)
+[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
+
+When you want to fire an event no matter how a process exits:
+
+* reaching the end of execution.
+* explicitly having `process.exit(code)` called.
+* having `process.kill(pid, sig)` called.
+* receiving a fatal signal from outside the process
+
+Use `signal-exit`.
+
+```js
+var onExit = require('signal-exit')
+
+onExit(function (code, signal) {
+ console.log('process exited!')
+})
+```
+
+## API
+
+`var remove = onExit(function (code, signal) {}, options)`
+
+The return value of the function is a function that will remove the
+handler.
+
+Note that the function *only* fires for signals if the signal would
+cause the proces to exit. That is, there are no other listeners, and
+it is a fatal signal.
+
+## Options
+
+* `alwaysLast`: Run this handler after any other signal or exit
+ handlers. This causes `process.emit` to be monkeypatched.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js
new file mode 100644
index 0000000000..337f691ed2
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js
@@ -0,0 +1,157 @@
+// Note: since nyc uses this module to output coverage, any lines
+// that are in the direct sync flow of nyc's outputCoverage are
+// ignored, since we can never get coverage for them.
+var assert = require('assert')
+var signals = require('./signals.js')
+
+var EE = require('events')
+/* istanbul ignore if */
+if (typeof EE !== 'function') {
+ EE = EE.EventEmitter
+}
+
+var emitter
+if (process.__signal_exit_emitter__) {
+ emitter = process.__signal_exit_emitter__
+} else {
+ emitter = process.__signal_exit_emitter__ = new EE()
+ emitter.count = 0
+ emitter.emitted = {}
+}
+
+// Because this emitter is a global, we have to check to see if a
+// previous version of this library failed to enable infinite listeners.
+// I know what you're about to say. But literally everything about
+// signal-exit is a compromise with evil. Get used to it.
+if (!emitter.infinite) {
+ emitter.setMaxListeners(Infinity)
+ emitter.infinite = true
+}
+
+module.exports = function (cb, opts) {
+ assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')
+
+ if (loaded === false) {
+ load()
+ }
+
+ var ev = 'exit'
+ if (opts && opts.alwaysLast) {
+ ev = 'afterexit'
+ }
+
+ var remove = function () {
+ emitter.removeListener(ev, cb)
+ if (emitter.listeners('exit').length === 0 &&
+ emitter.listeners('afterexit').length === 0) {
+ unload()
+ }
+ }
+ emitter.on(ev, cb)
+
+ return remove
+}
+
+module.exports.unload = unload
+function unload () {
+ if (!loaded) {
+ return
+ }
+ loaded = false
+
+ signals.forEach(function (sig) {
+ try {
+ process.removeListener(sig, sigListeners[sig])
+ } catch (er) {}
+ })
+ process.emit = originalProcessEmit
+ process.reallyExit = originalProcessReallyExit
+ emitter.count -= 1
+}
+
+function emit (event, code, signal) {
+ if (emitter.emitted[event]) {
+ return
+ }
+ emitter.emitted[event] = true
+ emitter.emit(event, code, signal)
+}
+
+// { <signal>: <listener fn>, ... }
+var sigListeners = {}
+signals.forEach(function (sig) {
+ sigListeners[sig] = function listener () {
+ // If there are no other listeners, an exit is coming!
+ // Simplest way: remove us and then re-send the signal.
+ // We know that this will kill the process, so we can
+ // safely emit now.
+ var listeners = process.listeners(sig)
+ if (listeners.length === emitter.count) {
+ unload()
+ emit('exit', null, sig)
+ /* istanbul ignore next */
+ emit('afterexit', null, sig)
+ /* istanbul ignore next */
+ process.kill(process.pid, sig)
+ }
+ }
+})
+
+module.exports.signals = function () {
+ return signals
+}
+
+module.exports.load = load
+
+var loaded = false
+
+function load () {
+ if (loaded) {
+ return
+ }
+ loaded = true
+
+ // This is the number of onSignalExit's that are in play.
+ // It's important so that we can count the correct number of
+ // listeners on signals, and don't wait for the other one to
+ // handle it instead of us.
+ emitter.count += 1
+
+ signals = signals.filter(function (sig) {
+ try {
+ process.on(sig, sigListeners[sig])
+ return true
+ } catch (er) {
+ return false
+ }
+ })
+
+ process.emit = processEmit
+ process.reallyExit = processReallyExit
+}
+
+var originalProcessReallyExit = process.reallyExit
+function processReallyExit (code) {
+ process.exitCode = code || 0
+ emit('exit', process.exitCode, null)
+ /* istanbul ignore next */
+ emit('afterexit', process.exitCode, null)
+ /* istanbul ignore next */
+ originalProcessReallyExit.call(process, process.exitCode)
+}
+
+var originalProcessEmit = process.emit
+function processEmit (ev, arg) {
+ if (ev === 'exit') {
+ if (arg !== undefined) {
+ process.exitCode = arg
+ }
+ var ret = originalProcessEmit.apply(this, arguments)
+ emit('exit', process.exitCode, null)
+ /* istanbul ignore next */
+ emit('afterexit', process.exitCode, null)
+ return ret
+ } else {
+ return originalProcessEmit.apply(this, arguments)
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json
new file mode 100644
index 0000000000..92d88ba361
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "signal-exit@^3.0.0",
+ "_id": "signal-exit@3.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "_location": "/update-notifier/boxen/term-size/execa/signal-exit",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "signal-exit@^3.0.0",
+ "name": "signal-exit",
+ "escapedName": "signal-exit",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/update-notifier/boxen/term-size/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "_shasum": "b5fdc08f1287ea1178628e415e25132b73646c6d",
+ "_spec": "signal-exit@^3.0.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
+ "author": {
+ "name": "Ben Coe",
+ "email": "ben@npmjs.com"
+ },
+ "bugs": {
+ "url": "https://github.com/tapjs/signal-exit/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "when you want to fire an event no matter how a process exits.",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "coveralls": "^2.11.10",
+ "nyc": "^8.1.0",
+ "standard": "^7.1.2",
+ "standard-version": "^2.3.0",
+ "tap": "^8.0.1"
+ },
+ "files": [
+ "index.js",
+ "signals.js"
+ ],
+ "homepage": "https://github.com/tapjs/signal-exit",
+ "keywords": [
+ "signal",
+ "exit"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "signal-exit",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/tapjs/signal-exit.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "pretest": "standard",
+ "release": "standard-version",
+ "test": "tap --timeout=240 ./test/*.js --cov"
+ },
+ "version": "3.0.2"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js
new file mode 100644
index 0000000000..3bd67a8a55
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js
@@ -0,0 +1,53 @@
+// This is not the set of all possible signals.
+//
+// It IS, however, the set of all signals that trigger
+// an exit on either Linux or BSD systems. Linux is a
+// superset of the signal names supported on BSD, and
+// the unknown signals just fail to register, so we can
+// catch that easily enough.
+//
+// Don't bother with SIGKILL. It's uncatchable, which
+// means that we can't fire any callbacks anyway.
+//
+// If a user does happen to register a handler on a non-
+// fatal signal like SIGWINCH or something, and then
+// exit, it'll end up firing `process.emit('exit')`, so
+// the handler will be fired anyway.
+//
+// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised
+// artificially, inherently leave the process in a
+// state from which it is not safe to try and enter JS
+// listeners.
+module.exports = [
+ 'SIGABRT',
+ 'SIGALRM',
+ 'SIGHUP',
+ 'SIGINT',
+ 'SIGTERM'
+]
+
+if (process.platform !== 'win32') {
+ module.exports.push(
+ 'SIGVTALRM',
+ 'SIGXCPU',
+ 'SIGXFSZ',
+ 'SIGUSR2',
+ 'SIGTRAP',
+ 'SIGSYS',
+ 'SIGQUIT',
+ 'SIGIOT'
+ // should detect profiler and enable/disable accordingly.
+ // see #21
+ // 'SIGPROF'
+ )
+}
+
+if (process.platform === 'linux') {
+ module.exports.push(
+ 'SIGIO',
+ 'SIGPOLL',
+ 'SIGPWR',
+ 'SIGSTKFLT',
+ 'SIGUNUSED'
+ )
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json
index b66b770959..08df8f3b49 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json
@@ -1,46 +1,46 @@
{
- "_from": "execa@^0.4.0",
- "_id": "execa@0.4.0",
- "_integrity": "sha1-TrZGejaglfq7KXD/nV4/t7zm68M=",
+ "_from": "execa@^0.7.0",
+ "_id": "execa@0.7.0",
+ "_inBundle": false,
+ "_integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
"_location": "/update-notifier/boxen/term-size/execa",
"_phantomChildren": {
- "lru-cache": "4.0.2",
- "which": "1.2.14"
+ "lru-cache": "4.1.1",
+ "which": "1.3.0"
},
"_requested": {
"type": "range",
"registry": true,
- "raw": "execa@^0.4.0",
+ "raw": "execa@^0.7.0",
"name": "execa",
"escapedName": "execa",
- "rawSpec": "^0.4.0",
+ "rawSpec": "^0.7.0",
"saveSpec": null,
- "fetchSpec": "^0.4.0"
+ "fetchSpec": "^0.7.0"
},
"_requiredBy": [
"/update-notifier/boxen/term-size"
],
- "_resolved": "https://registry.npmjs.org/execa/-/execa-0.4.0.tgz",
- "_shasum": "4eb6467a36a095fabb2970ff9d5e3fb7bce6ebc3",
- "_shrinkwrap": null,
- "_spec": "execa@^0.4.0",
+ "_resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "_shasum": "944becd34cc41ee32a63a9faf27ad5a65fc59777",
+ "_spec": "execa@^0.7.0",
"_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/sindresorhus/execa/issues"
},
"bundleDependencies": false,
"dependencies": {
- "cross-spawn-async": "^2.1.1",
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
"is-stream": "^1.1.0",
- "npm-run-path": "^1.0.0",
- "object-assign": "^4.0.1",
- "path-key": "^1.0.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
"strip-eof": "^1.0.0"
},
"deprecated": false,
@@ -49,15 +49,18 @@
"ava": "*",
"cat-names": "^1.0.2",
"coveralls": "^2.11.9",
- "get-stream": "^2.0.0",
- "nyc": "^6.4.0",
+ "delay": "^2.0.0",
+ "is-running": "^2.0.0",
+ "nyc": "^11.0.2",
+ "tempfile": "^2.0.0",
"xo": "*"
},
"engines": {
- "node": ">=0.12"
+ "node": ">=4"
},
"files": [
- "index.js"
+ "index.js",
+ "lib"
],
"homepage": "https://github.com/sindresorhus/execa#readme",
"keywords": [
@@ -86,15 +89,23 @@
}
],
"name": "execa",
- "optionalDependencies": {},
- "peerDependencies": {},
+ "nyc": {
+ "reporter": [
+ "text",
+ "lcov"
+ ],
+ "exclude": [
+ "**/fixtures/**",
+ "**/test.js",
+ "**/test/**"
+ ]
+ },
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/execa.git"
},
"scripts": {
- "coveralls": "nyc report --reporter=text-lcov | coveralls",
"test": "xo && nyc ava"
},
- "version": "0.4.0"
+ "version": "0.7.0"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md
index 1231e6d8d7..18c808aa69 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md
@@ -8,9 +8,10 @@
- Promise interface.
- [Strips EOF](https://github.com/sindresorhus/strip-eof) from the output so you don't have to `stdout.trim()`.
- Supports [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) binaries cross-platform.
-- [Improved Windows support.](https://github.com/IndigoUnited/node-cross-spawn-async#why)
+- [Improved Windows support.](https://github.com/IndigoUnited/node-cross-spawn#why)
- Higher max buffer. 10 MB instead of 200 KB.
- [Executes locally installed binaries by name.](#preferlocal)
+- [Cleans up spawned processes when the parent process dies.](#cleanup)
## Install
@@ -30,6 +31,9 @@ execa('echo', ['unicorns']).then(result => {
//=> 'unicorns'
});
+// pipe the child process stdout to the current stdout
+execa('echo', ['unicorns']).stdout.pipe(process.stdout);
+
execa.shell('echo unicorns').then(result => {
console.log(result.stdout);
//=> 'unicorns'
@@ -46,7 +50,8 @@ execa.shell('exit 3').catch(error => {
signal: null,
cmd: '/bin/sh -c exit 3',
stdout: '',
- stderr: ''
+ stderr: '',
+ timedOut: false
}
*/
});
@@ -59,11 +64,9 @@ execa.shell('exit 3').catch(error => {
Execute a file.
-Same options as [`child_process.execFile`](https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback).
-
-Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess).
+Think of this as a mix of `child_process.execFile` and `child_process.spawn`.
-The `child_process` instance is enhanced to also be promise for a result object with `stdout` and `stderr` properties.
+Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties.
### execa.stdout(file, [arguments], [options])
@@ -77,37 +80,86 @@ Same as `execa()`, but returns only `stderr`.
Execute a command through the system shell. Prefer `execa()` whenever possible, as it's both faster and safer.
-Same options as [`child_process.exec`](https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback).
-
Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess).
The `child_process` instance is enhanced to also be promise for a result object with `stdout` and `stderr` properties.
-### execa.spawn(file, [arguments], [options])
-
-Spawn a file.
-
-Same API as [`child_process.spawn`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options).
-
### execa.sync(file, [arguments], [options])
Execute a file synchronously.
-Same options as [`child_process.execFileSync`](https://nodejs.org/api/child_process.html#child_process_child_process_execfilesync_file_args_options), except the default encoding is `utf8` instead of `buffer`.
-
Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options).
+This method throws an `Error` if the command fails.
+
### execa.shellSync(file, [options])
Execute a command synchronously through the system shell.
-Same options as [`child_process.execSync`](https://nodejs.org/api/child_process.html#child_process_child_process_execsync_command_options), except the default encoding is `utf8` instead of `buffer`.
-
Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options).
### options
-Additional options:
+Type: `Object`
+
+#### cwd
+
+Type: `string`<br>
+Default: `process.cwd()`
+
+Current working directory of the child process.
+
+#### env
+
+Type: `Object`<br>
+Default: `process.env`
+
+Environment key-value pairs. Extends automatically from `process.env`. Set `extendEnv` to `false` if you don't want this.
+
+#### extendEnv
+
+Type: `boolean`<br>
+Default: `true`
+
+Set to `false` if you don't want to extend the environment variables when providing the `env` property.
+
+#### argv0
+
+Type: `string`
+
+Explicitly set the value of `argv[0]` sent to the child process. This will be set to `command` or `file` if not specified.
+
+#### stdio
+
+Type: `Array` `string`<br>
+Default: `pipe`
+
+Child's [stdio](https://nodejs.org/api/child_process.html#child_process_options_stdio) configuration.
+
+#### detached
+
+Type: `boolean`
+
+Prepare child to run independently of its parent process. Specific behavior [depends on the platform](https://nodejs.org/api/child_process.html#child_process_options_detached).
+
+#### uid
+
+Type: `number`
+
+Sets the user identity of the process.
+
+#### gid
+
+Type: `number`
+
+Sets the group identity of the process.
+
+#### shell
+
+Type: `boolean` `string`<br>
+Default: `false`
+
+If `true`, runs `command` inside of a shell. Uses `/bin/sh` on UNIX and `cmd.exe` on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows.
#### stripEof
@@ -124,13 +176,103 @@ Default: `true`
Prefer locally installed binaries when looking for a binary to execute.<br>
If you `$ npm install foo`, you can then `execa('foo')`.
+#### localDir
+
+Type: `string`<br>
+Default: `process.cwd()`
+
+Preferred path to find locally installed binaries in (use with `preferLocal`).
+
#### input
-Type: `string` `Buffer` `ReadableStream`
+Type: `string` `Buffer` `stream.Readable`
Write some input to the `stdin` of your binary.<br>
Streams are not allowed when using the synchronous methods.
+#### reject
+
+Type: `boolean`<br>
+Default: `true`
+
+Setting this to `false` resolves the promise with the error instead of rejecting it.
+
+#### cleanup
+
+Type: `boolean`<br>
+Default: `true`
+
+Keep track of the spawned process and `kill` it when the parent process exits.
+
+#### encoding
+
+Type: `string`<br>
+Default: `utf8`
+
+Specify the character encoding used to decode the `stdout` and `stderr` output.
+
+#### timeout
+
+Type: `number`<br>
+Default: `0`
+
+If timeout is greater than `0`, the parent will send the signal identified by the `killSignal` property (the default is `SIGTERM`) if the child runs longer than timeout milliseconds.
+
+#### maxBuffer
+
+Type: `number`<br>
+Default: `10000000` (10MB)
+
+Largest amount of data in bytes allowed on `stdout` or `stderr`.
+
+#### killSignal
+
+Type: `string` `number`<br>
+Default: `SIGTERM`
+
+Signal value to be used when the spawned process will be killed.
+
+#### stdin
+
+Type: `string` `number` `Stream` `undefined` `null`<br>
+Default: `pipe`
+
+Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio).
+
+#### stdout
+
+Type: `string` `number` `Stream` `undefined` `null`<br>
+Default: `pipe`
+
+Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio).
+
+#### stderr
+
+Type: `string` `number` `Stream` `undefined` `null`<br>
+Default: `pipe`
+
+Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio).
+
+
+## Tips
+
+### Save and pipe output from a child process
+
+Let's say you want to show the output of a child process in real-time while also saving it to a variable.
+
+```js
+const execa = require('execa');
+const getStream = require('get-stream');
+
+const stream = execa('echo', ['foo']).stdout;
+
+stream.pipe(process.stdout);
+
+getStream(stream).then(value => {
+ console.log('child output:', value);
+});
+```
+
## License
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json
index 5fbea59b8b..b4b65c52e6 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json
@@ -1,48 +1,46 @@
{
- "_from": "term-size@^0.1.0",
- "_id": "term-size@0.1.1",
- "_integrity": "sha1-hzYLljlsq1dgljcUzaDQy+7K2co=",
+ "_from": "term-size@^1.2.0",
+ "_id": "term-size@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
"_location": "/update-notifier/boxen/term-size",
"_phantomChildren": {
- "lru-cache": "4.0.2",
- "which": "1.2.14"
+ "lru-cache": "4.1.1",
+ "which": "1.3.0"
},
"_requested": {
"type": "range",
"registry": true,
- "raw": "term-size@^0.1.0",
+ "raw": "term-size@^1.2.0",
"name": "term-size",
"escapedName": "term-size",
- "rawSpec": "^0.1.0",
+ "rawSpec": "^1.2.0",
"saveSpec": null,
- "fetchSpec": "^0.1.0"
+ "fetchSpec": "^1.2.0"
},
"_requiredBy": [
"/update-notifier/boxen"
],
- "_resolved": "https://registry.npmjs.org/term-size/-/term-size-0.1.1.tgz",
- "_shasum": "87360b96396cab5760963714cda0d0cbeecad9ca",
- "_shrinkwrap": null,
- "_spec": "term-size@^0.1.0",
+ "_resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
+ "_shasum": "458b83887f288fc56d6fffbfad262e26638efa69",
+ "_spec": "term-size@^1.2.0",
"_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/sindresorhus/term-size/issues"
},
"bundleDependencies": false,
"dependencies": {
- "execa": "^0.4.0"
+ "execa": "^0.7.0"
},
"deprecated": false,
- "description": "Reliably get the terminal window size",
+ "description": "Reliably get the terminal window size (columns & rows)",
"devDependencies": {
"ava": "*",
- "execa": "^0.4.0",
"xo": "*"
},
"engines": {
@@ -64,12 +62,11 @@
"columns",
"rows",
"lines",
- "tty"
+ "tty",
+ "redirected"
],
"license": "MIT",
"name": "term-size",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/term-size.git"
@@ -77,8 +74,5 @@
"scripts": {
"test": "xo && ava"
},
- "version": "0.1.1",
- "xo": {
- "esnext": true
- }
+ "version": "1.2.0"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md
index a067f80098..dd642cadc2 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md
@@ -2,7 +2,7 @@
> Reliably get the terminal window size
-Because [`process.stdout.columns`](https://nodejs.org/api/tty.html#tty_writestream_columns) doesn't exist when run [non-interactively](http://www.tldp.org/LDP/abs/html/intandnonint.html), for example, in a child process or when piped.
+Because [`process.stdout.columns`](https://nodejs.org/api/tty.html#tty_writestream_columns) doesn't exist when run [non-interactively](http://www.tldp.org/LDP/abs/html/intandnonint.html), for example, in a child process or when piped. This module even works when all the TTY file descriptors are redirected!
Confirmed working on macOS, Linux, and Windows.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/macos/term-size b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/macos/term-size
new file mode 100755
index 0000000000..e383cc737f
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/macos/term-size
Binary files differ
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/resize b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/resize
deleted file mode 100755
index 476ede4c07..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/resize
+++ /dev/null
Binary files differ
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/win-term-size.exe b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/windows/term-size.exe
index c7a170c964..c7a170c964 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/win-term-size.exe
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/windows/term-size.exe
Binary files differ
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/package.json
index 4b36119f9f..4b29403272 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/package.json
@@ -1,13 +1,13 @@
{
"_from": "boxen@^1.0.0",
- "_id": "boxen@1.1.0",
+ "_id": "boxen@1.2.1",
"_inBundle": false,
- "_integrity": "sha1-sbad1SIwXoB6md7ud329blFnsQI=",
+ "_integrity": "sha1-DxHn/jRO25OXl3/BPt5/ZNlWSB0=",
"_location": "/update-notifier/boxen",
"_phantomChildren": {
"lru-cache": "4.1.1",
"strip-ansi": "4.0.0",
- "which": "1.2.14"
+ "which": "1.3.0"
},
"_requested": {
"type": "range",
@@ -22,10 +22,10 @@
"_requiredBy": [
"/update-notifier"
],
- "_resolved": "https://registry.npmjs.org/boxen/-/boxen-1.1.0.tgz",
- "_shasum": "b1b69dd522305e807a99deee777dbd6e5167b102",
+ "_resolved": "https://registry.npmjs.org/boxen/-/boxen-1.2.1.tgz",
+ "_shasum": "0f11e7fe344edb9397977fc13ede7f64d956481d",
"_spec": "boxen@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -38,17 +38,17 @@
"dependencies": {
"ansi-align": "^2.0.0",
"camelcase": "^4.0.0",
- "chalk": "^1.1.1",
+ "chalk": "^2.0.1",
"cli-boxes": "^1.0.0",
"string-width": "^2.0.0",
- "term-size": "^0.1.0",
+ "term-size": "^1.2.0",
"widest-line": "^1.0.0"
},
"deprecated": false,
"description": "Create boxes in the terminal",
"devDependencies": {
"ava": "*",
- "nyc": "^10.3.0",
+ "nyc": "^11.0.3",
"xo": "*"
},
"engines": {
@@ -79,8 +79,5 @@
"scripts": {
"test": "xo && nyc ava"
},
- "version": "1.1.0",
- "xo": {
- "esnext": true
- }
+ "version": "1.2.1"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md
index abb78bff12..d8db8e98a2 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md
@@ -8,7 +8,7 @@
## Install
```
-$ npm install --save boxen
+$ npm install boxen
```
@@ -124,7 +124,7 @@ Reduce opacity of the border.
##### padding
-Type: `number` `object`<br>
+Type: `number` `Object`<br>
Default: `0`
Space between the text and box border.
@@ -133,7 +133,7 @@ Accepts a number or an object with any of the `top`, `right`, `bottom`, `left` p
##### margin
-Type: `number` `object`<br>
+Type: `number` `Object`<br>
Default: `0`
Space around the box.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/index.js
index 2d85a91747..4c81d6d20f 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/index.js
@@ -1,116 +1,220 @@
'use strict';
-var escapeStringRegexp = require('escape-string-regexp');
-var ansiStyles = require('ansi-styles');
-var stripAnsi = require('strip-ansi');
-var hasAnsi = require('has-ansi');
-var supportsColor = require('supports-color');
-var defineProps = Object.defineProperties;
-var isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(process.env.TERM);
+const escapeStringRegexp = require('escape-string-regexp');
+const ansiStyles = require('ansi-styles');
+const supportsColor = require('supports-color');
+
+const template = require('./templates.js');
+
+const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');
+
+// `supportsColor.level` → `ansiStyles.color[name]` mapping
+const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];
+
+// `color-convert` models to exclude from the Chalk API due to conflicts and such
+const skipModels = new Set(['gray']);
+
+const styles = Object.create(null);
+
+function applyOptions(obj, options) {
+ options = options || {};
+
+ // Detect level if not set manually
+ const scLevel = supportsColor ? supportsColor.level : 0;
+ obj.level = options.level === undefined ? scLevel : options.level;
+ obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;
+}
function Chalk(options) {
- // detect mode if not set manually
- this.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled;
+ // We check for this.template here since calling `chalk.constructor()`
+ // by itself will have a `this` of a previously constructed chalk object
+ if (!this || !(this instanceof Chalk) || this.template) {
+ const chalk = {};
+ applyOptions(chalk, options);
+
+ chalk.template = function () {
+ const args = [].slice.call(arguments);
+ return chalkTag.apply(null, [chalk.template].concat(args));
+ };
+
+ Object.setPrototypeOf(chalk, Chalk.prototype);
+ Object.setPrototypeOf(chalk.template, chalk);
+
+ chalk.template.constructor = Chalk;
+
+ return chalk.template;
+ }
+
+ applyOptions(this, options);
}
-// use bright blue on Windows as the normal blue color is illegible
+// Use bright blue on Windows as the normal blue color is illegible
if (isSimpleWindowsTerm) {
- ansiStyles.blue.open = '\u001b[94m';
+ ansiStyles.blue.open = '\u001B[94m';
}
-var styles = (function () {
- var ret = {};
+for (const key of Object.keys(ansiStyles)) {
+ ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
- Object.keys(ansiStyles).forEach(function (key) {
- ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
+ styles[key] = {
+ get() {
+ const codes = ansiStyles[key];
+ return build.call(this, this._styles ? this._styles.concat(codes) : [codes], key);
+ }
+ };
+}
- ret[key] = {
- get: function () {
- return build.call(this, this._styles.concat(key));
- }
- };
- });
+ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');
+for (const model of Object.keys(ansiStyles.color.ansi)) {
+ if (skipModels.has(model)) {
+ continue;
+ }
+
+ styles[model] = {
+ get() {
+ const level = this.level;
+ return function () {
+ const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
+ const codes = {
+ open,
+ close: ansiStyles.color.close,
+ closeRe: ansiStyles.color.closeRe
+ };
+ return build.call(this, this._styles ? this._styles.concat(codes) : [codes], model);
+ };
+ }
+ };
+}
- return ret;
-})();
+ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');
+for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
+ if (skipModels.has(model)) {
+ continue;
+ }
+
+ const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);
+ styles[bgModel] = {
+ get() {
+ const level = this.level;
+ return function () {
+ const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
+ const codes = {
+ open,
+ close: ansiStyles.bgColor.close,
+ closeRe: ansiStyles.bgColor.closeRe
+ };
+ return build.call(this, this._styles ? this._styles.concat(codes) : [codes], model);
+ };
+ }
+ };
+}
-var proto = defineProps(function chalk() {}, styles);
+const proto = Object.defineProperties(() => {}, styles);
-function build(_styles) {
- var builder = function () {
+function build(_styles, key) {
+ const builder = function () {
return applyStyle.apply(builder, arguments);
};
builder._styles = _styles;
- builder.enabled = this.enabled;
- // __proto__ is used because we must return a function, but there is
- // no way to create a function with a different prototype.
- /* eslint-disable no-proto */
- builder.__proto__ = proto;
+
+ const self = this;
+
+ Object.defineProperty(builder, 'level', {
+ enumerable: true,
+ get() {
+ return self.level;
+ },
+ set(level) {
+ self.level = level;
+ }
+ });
+
+ Object.defineProperty(builder, 'enabled', {
+ enumerable: true,
+ get() {
+ return self.enabled;
+ },
+ set(enabled) {
+ self.enabled = enabled;
+ }
+ });
+
+ // See below for fix regarding invisible grey/dim combination on Windows
+ builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';
+
+ // `__proto__` is used because we must return a function, but there is
+ // no way to create a function with a different prototype
+ builder.__proto__ = proto; // eslint-disable-line no-proto
return builder;
}
function applyStyle() {
- // support varags, but simply cast to string in case there's only one arg
- var args = arguments;
- var argsLen = args.length;
- var str = argsLen !== 0 && String(arguments[0]);
+ // Support varags, but simply cast to string in case there's only one arg
+ const args = arguments;
+ const argsLen = args.length;
+ let str = String(arguments[0]);
+
+ if (argsLen === 0) {
+ return '';
+ }
if (argsLen > 1) {
- // don't slice `arguments`, it prevents v8 optimizations
- for (var a = 1; a < argsLen; a++) {
+ // Don't slice `arguments`, it prevents V8 optimizations
+ for (let a = 1; a < argsLen; a++) {
str += ' ' + args[a];
}
}
- if (!this.enabled || !str) {
+ if (!this.enabled || this.level <= 0 || !str) {
return str;
}
- var nestedStyles = this._styles;
- var i = nestedStyles.length;
-
// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,
// see https://github.com/chalk/chalk/issues/58
// If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.
- var originalDim = ansiStyles.dim.open;
- if (isSimpleWindowsTerm && (nestedStyles.indexOf('gray') !== -1 || nestedStyles.indexOf('grey') !== -1)) {
+ const originalDim = ansiStyles.dim.open;
+ if (isSimpleWindowsTerm && this.hasGrey) {
ansiStyles.dim.open = '';
}
- while (i--) {
- var code = ansiStyles[nestedStyles[i]];
-
+ for (const code of this._styles.slice().reverse()) {
// Replace any instances already present with a re-opening code
// otherwise only the part of the string until said closing code
// will be colored, and the rest will simply be 'plain'.
str = code.open + str.replace(code.closeRe, code.open) + code.close;
+
+ // Close the styling before a linebreak and reopen
+ // after next line to fix a bleed issue on macOS
+ // https://github.com/chalk/chalk/pull/92
+ str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
}
- // Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue.
+ // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue
ansiStyles.dim.open = originalDim;
return str;
}
-function init() {
- var ret = {};
+function chalkTag(chalk, strings) {
+ if (!Array.isArray(strings)) {
+ // If chalk() was called by itself or with a string,
+ // return the string itself as a string.
+ return [].slice.call(arguments, 1).join(' ');
+ }
- Object.keys(styles).forEach(function (name) {
- ret[name] = {
- get: function () {
- return build.call(this, [name]);
- }
- };
- });
+ const args = [].slice.call(arguments, 2);
+ const parts = [strings.raw[0]];
+
+ for (let i = 1; i < strings.length; i++) {
+ parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&'));
+ parts.push(String(strings.raw[i]));
+ }
- return ret;
+ return template(chalk, parts.join(''));
}
-defineProps(Chalk.prototype, init());
+Object.defineProperties(Chalk.prototype, styles);
-module.exports = new Chalk();
-module.exports.styles = ansiStyles;
-module.exports.hasColor = hasAnsi;
-module.exports.stripColor = stripAnsi;
+module.exports = Chalk(); // eslint-disable-line new-cap
module.exports.supportsColor = supportsColor;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/license b/deps/npm/node_modules/update-notifier/node_modules/chalk/license
index 654d0bfe94..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/license
@@ -1,21 +1,9 @@
-The MIT License (MIT)
+MIT License
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js
index 78945278f7..3d3baa66d7 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js
@@ -1,10 +1,28 @@
'use strict';
+const colorConvert = require('color-convert');
-function assembleStyles () {
- var styles = {
- modifiers: {
+const wrapAnsi16 = (fn, offset) => function () {
+ const code = fn.apply(colorConvert, arguments);
+ return `\u001B[${code + offset}m`;
+};
+
+const wrapAnsi256 = (fn, offset) => function () {
+ const code = fn.apply(colorConvert, arguments);
+ return `\u001B[${38 + offset};5;${code}m`;
+};
+
+const wrapAnsi16m = (fn, offset) => function () {
+ const rgb = fn.apply(colorConvert, arguments);
+ return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
+};
+
+function assembleStyles() {
+ const codes = new Map();
+ const styles = {
+ modifier: {
reset: [0, 0],
- bold: [1, 22], // 21 isn't widely supported and 22 does the same thing
+ // 21 isn't widely supported and 22 does the same thing
+ bold: [1, 22],
dim: [2, 22],
italic: [3, 23],
underline: [4, 24],
@@ -12,7 +30,7 @@ function assembleStyles () {
hidden: [8, 28],
strikethrough: [9, 29]
},
- colors: {
+ color: {
black: [30, 39],
red: [31, 39],
green: [32, 39],
@@ -21,9 +39,18 @@ function assembleStyles () {
magenta: [35, 39],
cyan: [36, 39],
white: [37, 39],
- gray: [90, 39]
+ gray: [90, 39],
+
+ // Bright color
+ redBright: [91, 39],
+ greenBright: [92, 39],
+ yellowBright: [93, 39],
+ blueBright: [94, 39],
+ magentaBright: [95, 39],
+ cyanBright: [96, 39],
+ whiteBright: [97, 39]
},
- bgColors: {
+ bgColor: {
bgBlack: [40, 49],
bgRed: [41, 49],
bgGreen: [42, 49],
@@ -31,34 +58,94 @@ function assembleStyles () {
bgBlue: [44, 49],
bgMagenta: [45, 49],
bgCyan: [46, 49],
- bgWhite: [47, 49]
+ bgWhite: [47, 49],
+
+ // Bright color
+ bgBlackBright: [100, 49],
+ bgRedBright: [101, 49],
+ bgGreenBright: [102, 49],
+ bgYellowBright: [103, 49],
+ bgBlueBright: [104, 49],
+ bgMagentaBright: [105, 49],
+ bgCyanBright: [106, 49],
+ bgWhiteBright: [107, 49]
}
};
- // fix humans
- styles.colors.grey = styles.colors.gray;
+ // Fix humans
+ styles.color.grey = styles.color.gray;
- Object.keys(styles).forEach(function (groupName) {
- var group = styles[groupName];
+ for (const groupName of Object.keys(styles)) {
+ const group = styles[groupName];
- Object.keys(group).forEach(function (styleName) {
- var style = group[styleName];
+ for (const styleName of Object.keys(group)) {
+ const style = group[styleName];
- styles[styleName] = group[styleName] = {
- open: '\u001b[' + style[0] + 'm',
- close: '\u001b[' + style[1] + 'm'
+ styles[styleName] = {
+ open: `\u001B[${style[0]}m`,
+ close: `\u001B[${style[1]}m`
};
- });
+
+ group[styleName] = styles[styleName];
+
+ codes.set(style[0], style[1]);
+ }
Object.defineProperty(styles, groupName, {
value: group,
enumerable: false
});
- });
+
+ Object.defineProperty(styles, 'codes', {
+ value: codes,
+ enumerable: false
+ });
+ }
+
+ const rgb2rgb = (r, g, b) => [r, g, b];
+
+ styles.color.close = '\u001B[39m';
+ styles.bgColor.close = '\u001B[49m';
+
+ styles.color.ansi = {};
+ styles.color.ansi256 = {};
+ styles.color.ansi16m = {
+ rgb: wrapAnsi16m(rgb2rgb, 0)
+ };
+
+ styles.bgColor.ansi = {};
+ styles.bgColor.ansi256 = {};
+ styles.bgColor.ansi16m = {
+ rgb: wrapAnsi16m(rgb2rgb, 10)
+ };
+
+ for (const key of Object.keys(colorConvert)) {
+ if (typeof colorConvert[key] !== 'object') {
+ continue;
+ }
+
+ const suite = colorConvert[key];
+
+ if ('ansi16' in suite) {
+ styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
+ styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
+ }
+
+ if ('ansi256' in suite) {
+ styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
+ styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
+ }
+
+ if ('rgb' in suite) {
+ styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
+ styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
+ }
+ }
return styles;
}
+// Make the export immutable
Object.defineProperty(module, 'exports', {
enumerable: true,
get: assembleStyles
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license
index 654d0bfe94..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license
@@ -1,21 +1,9 @@
-The MIT License (MIT)
+MIT License
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/CHANGELOG.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/CHANGELOG.md
new file mode 100644
index 0000000000..0a7bce4fd5
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/CHANGELOG.md
@@ -0,0 +1,54 @@
+# 1.0.0 - 2016-01-07
+
+- Removed: unused speed test
+- Added: Automatic routing between previously unsupported conversions
+([#27](https://github.com/Qix-/color-convert/pull/27))
+- Removed: `xxx2xxx()` and `xxx2xxxRaw()` functions
+([#27](https://github.com/Qix-/color-convert/pull/27))
+- Removed: `convert()` class
+([#27](https://github.com/Qix-/color-convert/pull/27))
+- Changed: all functions to lookup dictionary
+([#27](https://github.com/Qix-/color-convert/pull/27))
+- Changed: `ansi` to `ansi256`
+([#27](https://github.com/Qix-/color-convert/pull/27))
+- Fixed: argument grouping for functions requiring only one argument
+([#27](https://github.com/Qix-/color-convert/pull/27))
+
+# 0.6.0 - 2015-07-23
+
+- Added: methods to handle
+[ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 16/256 colors:
+ - rgb2ansi16
+ - rgb2ansi
+ - hsl2ansi16
+ - hsl2ansi
+ - hsv2ansi16
+ - hsv2ansi
+ - hwb2ansi16
+ - hwb2ansi
+ - cmyk2ansi16
+ - cmyk2ansi
+ - keyword2ansi16
+ - keyword2ansi
+ - ansi162rgb
+ - ansi162hsl
+ - ansi162hsv
+ - ansi162hwb
+ - ansi162cmyk
+ - ansi162keyword
+ - ansi2rgb
+ - ansi2hsl
+ - ansi2hsv
+ - ansi2hwb
+ - ansi2cmyk
+ - ansi2keyword
+([#18](https://github.com/harthur/color-convert/pull/18))
+
+# 0.5.3 - 2015-06-02
+
+- Fixed: hsl2hsv does not return `NaN` anymore when using `[0,0,0]`
+([#15](https://github.com/harthur/color-convert/issues/15))
+
+---
+
+Check out commit logs for older releases
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/LICENSE b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/LICENSE
new file mode 100644
index 0000000000..0e2e490918
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2011-2016 Heather Arthur <fayearthur@gmail.com>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/README.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/README.md
new file mode 100644
index 0000000000..d4b08fc369
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/README.md
@@ -0,0 +1,68 @@
+# color-convert
+
+[![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert)
+
+Color-convert is a color conversion library for JavaScript and node.
+It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest):
+
+```js
+var convert = require('color-convert');
+
+convert.rgb.hsl(140, 200, 100); // [96, 48, 59]
+convert.keyword.rgb('blue'); // [0, 0, 255]
+
+var rgbChannels = convert.rgb.channels; // 3
+var cmykChannels = convert.cmyk.channels; // 4
+var ansiChannels = convert.ansi16.channels; // 1
+```
+
+# Install
+
+```console
+$ npm install color-convert
+```
+
+# API
+
+Simply get the property of the _from_ and _to_ conversion that you're looking for.
+
+All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function.
+
+All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha).
+
+```js
+var convert = require('color-convert');
+
+// Hex to LAB
+convert.hex.lab('DEADBF'); // [ 76, 21, -2 ]
+convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ]
+
+// RGB to CMYK
+convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ]
+convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ]
+```
+
+### Arrays
+All functions that accept multiple arguments also support passing an array.
+
+Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.)
+
+```js
+var convert = require('color-convert');
+
+convert.rgb.hex(123, 45, 67); // '7B2D43'
+convert.rgb.hex([123, 45, 67]); // '7B2D43'
+```
+
+## Routing
+
+Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex).
+
+Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js).
+
+# Contribute
+
+If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request.
+
+# License
+Copyright &copy; 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE).
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/conversions.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/conversions.js
new file mode 100644
index 0000000000..19ca4a9bf5
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/conversions.js
@@ -0,0 +1,861 @@
+/* MIT license */
+var cssKeywords = require('color-name');
+
+// NOTE: conversions should only return primitive values (i.e. arrays, or
+// values that give correct `typeof` results).
+// do not use box values types (i.e. Number(), String(), etc.)
+
+var reverseKeywords = {};
+for (var key in cssKeywords) {
+ if (cssKeywords.hasOwnProperty(key)) {
+ reverseKeywords[cssKeywords[key]] = key;
+ }
+}
+
+var convert = module.exports = {
+ rgb: {channels: 3, labels: 'rgb'},
+ hsl: {channels: 3, labels: 'hsl'},
+ hsv: {channels: 3, labels: 'hsv'},
+ hwb: {channels: 3, labels: 'hwb'},
+ cmyk: {channels: 4, labels: 'cmyk'},
+ xyz: {channels: 3, labels: 'xyz'},
+ lab: {channels: 3, labels: 'lab'},
+ lch: {channels: 3, labels: 'lch'},
+ hex: {channels: 1, labels: ['hex']},
+ keyword: {channels: 1, labels: ['keyword']},
+ ansi16: {channels: 1, labels: ['ansi16']},
+ ansi256: {channels: 1, labels: ['ansi256']},
+ hcg: {channels: 3, labels: ['h', 'c', 'g']},
+ apple: {channels: 3, labels: ['r16', 'g16', 'b16']},
+ gray: {channels: 1, labels: ['gray']}
+};
+
+// hide .channels and .labels properties
+for (var model in convert) {
+ if (convert.hasOwnProperty(model)) {
+ if (!('channels' in convert[model])) {
+ throw new Error('missing channels property: ' + model);
+ }
+
+ if (!('labels' in convert[model])) {
+ throw new Error('missing channel labels property: ' + model);
+ }
+
+ if (convert[model].labels.length !== convert[model].channels) {
+ throw new Error('channel and label counts mismatch: ' + model);
+ }
+
+ var channels = convert[model].channels;
+ var labels = convert[model].labels;
+ delete convert[model].channels;
+ delete convert[model].labels;
+ Object.defineProperty(convert[model], 'channels', {value: channels});
+ Object.defineProperty(convert[model], 'labels', {value: labels});
+ }
+}
+
+convert.rgb.hsl = function (rgb) {
+ var r = rgb[0] / 255;
+ var g = rgb[1] / 255;
+ var b = rgb[2] / 255;
+ var min = Math.min(r, g, b);
+ var max = Math.max(r, g, b);
+ var delta = max - min;
+ var h;
+ var s;
+ var l;
+
+ if (max === min) {
+ h = 0;
+ } else if (r === max) {
+ h = (g - b) / delta;
+ } else if (g === max) {
+ h = 2 + (b - r) / delta;
+ } else if (b === max) {
+ h = 4 + (r - g) / delta;
+ }
+
+ h = Math.min(h * 60, 360);
+
+ if (h < 0) {
+ h += 360;
+ }
+
+ l = (min + max) / 2;
+
+ if (max === min) {
+ s = 0;
+ } else if (l <= 0.5) {
+ s = delta / (max + min);
+ } else {
+ s = delta / (2 - max - min);
+ }
+
+ return [h, s * 100, l * 100];
+};
+
+convert.rgb.hsv = function (rgb) {
+ var r = rgb[0];
+ var g = rgb[1];
+ var b = rgb[2];
+ var min = Math.min(r, g, b);
+ var max = Math.max(r, g, b);
+ var delta = max - min;
+ var h;
+ var s;
+ var v;
+
+ if (max === 0) {
+ s = 0;
+ } else {
+ s = (delta / max * 1000) / 10;
+ }
+
+ if (max === min) {
+ h = 0;
+ } else if (r === max) {
+ h = (g - b) / delta;
+ } else if (g === max) {
+ h = 2 + (b - r) / delta;
+ } else if (b === max) {
+ h = 4 + (r - g) / delta;
+ }
+
+ h = Math.min(h * 60, 360);
+
+ if (h < 0) {
+ h += 360;
+ }
+
+ v = ((max / 255) * 1000) / 10;
+
+ return [h, s, v];
+};
+
+convert.rgb.hwb = function (rgb) {
+ var r = rgb[0];
+ var g = rgb[1];
+ var b = rgb[2];
+ var h = convert.rgb.hsl(rgb)[0];
+ var w = 1 / 255 * Math.min(r, Math.min(g, b));
+
+ b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
+
+ return [h, w * 100, b * 100];
+};
+
+convert.rgb.cmyk = function (rgb) {
+ var r = rgb[0] / 255;
+ var g = rgb[1] / 255;
+ var b = rgb[2] / 255;
+ var c;
+ var m;
+ var y;
+ var k;
+
+ k = Math.min(1 - r, 1 - g, 1 - b);
+ c = (1 - r - k) / (1 - k) || 0;
+ m = (1 - g - k) / (1 - k) || 0;
+ y = (1 - b - k) / (1 - k) || 0;
+
+ return [c * 100, m * 100, y * 100, k * 100];
+};
+
+/**
+ * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance
+ * */
+function comparativeDistance(x, y) {
+ return (
+ Math.pow(x[0] - y[0], 2) +
+ Math.pow(x[1] - y[1], 2) +
+ Math.pow(x[2] - y[2], 2)
+ );
+}
+
+convert.rgb.keyword = function (rgb) {
+ var reversed = reverseKeywords[rgb];
+ if (reversed) {
+ return reversed;
+ }
+
+ var currentClosestDistance = Infinity;
+ var currentClosestKeyword;
+
+ for (var keyword in cssKeywords) {
+ if (cssKeywords.hasOwnProperty(keyword)) {
+ var value = cssKeywords[keyword];
+
+ // Compute comparative distance
+ var distance = comparativeDistance(rgb, value);
+
+ // Check if its less, if so set as closest
+ if (distance < currentClosestDistance) {
+ currentClosestDistance = distance;
+ currentClosestKeyword = keyword;
+ }
+ }
+ }
+
+ return currentClosestKeyword;
+};
+
+convert.keyword.rgb = function (keyword) {
+ return cssKeywords[keyword];
+};
+
+convert.rgb.xyz = function (rgb) {
+ var r = rgb[0] / 255;
+ var g = rgb[1] / 255;
+ var b = rgb[2] / 255;
+
+ // assume sRGB
+ r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
+ g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
+ b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
+
+ var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
+ var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
+ var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
+
+ return [x * 100, y * 100, z * 100];
+};
+
+convert.rgb.lab = function (rgb) {
+ var xyz = convert.rgb.xyz(rgb);
+ var x = xyz[0];
+ var y = xyz[1];
+ var z = xyz[2];
+ var l;
+ var a;
+ var b;
+
+ x /= 95.047;
+ y /= 100;
+ z /= 108.883;
+
+ x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
+ y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
+ z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
+
+ l = (116 * y) - 16;
+ a = 500 * (x - y);
+ b = 200 * (y - z);
+
+ return [l, a, b];
+};
+
+convert.hsl.rgb = function (hsl) {
+ var h = hsl[0] / 360;
+ var s = hsl[1] / 100;
+ var l = hsl[2] / 100;
+ var t1;
+ var t2;
+ var t3;
+ var rgb;
+ var val;
+
+ if (s === 0) {
+ val = l * 255;
+ return [val, val, val];
+ }
+
+ if (l < 0.5) {
+ t2 = l * (1 + s);
+ } else {
+ t2 = l + s - l * s;
+ }
+
+ t1 = 2 * l - t2;
+
+ rgb = [0, 0, 0];
+ for (var i = 0; i < 3; i++) {
+ t3 = h + 1 / 3 * -(i - 1);
+ if (t3 < 0) {
+ t3++;
+ }
+ if (t3 > 1) {
+ t3--;
+ }
+
+ if (6 * t3 < 1) {
+ val = t1 + (t2 - t1) * 6 * t3;
+ } else if (2 * t3 < 1) {
+ val = t2;
+ } else if (3 * t3 < 2) {
+ val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
+ } else {
+ val = t1;
+ }
+
+ rgb[i] = val * 255;
+ }
+
+ return rgb;
+};
+
+convert.hsl.hsv = function (hsl) {
+ var h = hsl[0];
+ var s = hsl[1] / 100;
+ var l = hsl[2] / 100;
+ var smin = s;
+ var lmin = Math.max(l, 0.01);
+ var sv;
+ var v;
+
+ l *= 2;
+ s *= (l <= 1) ? l : 2 - l;
+ smin *= lmin <= 1 ? lmin : 2 - lmin;
+ v = (l + s) / 2;
+ sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);
+
+ return [h, sv * 100, v * 100];
+};
+
+convert.hsv.rgb = function (hsv) {
+ var h = hsv[0] / 60;
+ var s = hsv[1] / 100;
+ var v = hsv[2] / 100;
+ var hi = Math.floor(h) % 6;
+
+ var f = h - Math.floor(h);
+ var p = 255 * v * (1 - s);
+ var q = 255 * v * (1 - (s * f));
+ var t = 255 * v * (1 - (s * (1 - f)));
+ v *= 255;
+
+ switch (hi) {
+ case 0:
+ return [v, t, p];
+ case 1:
+ return [q, v, p];
+ case 2:
+ return [p, v, t];
+ case 3:
+ return [p, q, v];
+ case 4:
+ return [t, p, v];
+ case 5:
+ return [v, p, q];
+ }
+};
+
+convert.hsv.hsl = function (hsv) {
+ var h = hsv[0];
+ var s = hsv[1] / 100;
+ var v = hsv[2] / 100;
+ var vmin = Math.max(v, 0.01);
+ var lmin;
+ var sl;
+ var l;
+
+ l = (2 - s) * v;
+ lmin = (2 - s) * vmin;
+ sl = s * vmin;
+ sl /= (lmin <= 1) ? lmin : 2 - lmin;
+ sl = sl || 0;
+ l /= 2;
+
+ return [h, sl * 100, l * 100];
+};
+
+// http://dev.w3.org/csswg/css-color/#hwb-to-rgb
+convert.hwb.rgb = function (hwb) {
+ var h = hwb[0] / 360;
+ var wh = hwb[1] / 100;
+ var bl = hwb[2] / 100;
+ var ratio = wh + bl;
+ var i;
+ var v;
+ var f;
+ var n;
+
+ // wh + bl cant be > 1
+ if (ratio > 1) {
+ wh /= ratio;
+ bl /= ratio;
+ }
+
+ i = Math.floor(6 * h);
+ v = 1 - bl;
+ f = 6 * h - i;
+
+ if ((i & 0x01) !== 0) {
+ f = 1 - f;
+ }
+
+ n = wh + f * (v - wh); // linear interpolation
+
+ var r;
+ var g;
+ var b;
+ switch (i) {
+ default:
+ case 6:
+ case 0: r = v; g = n; b = wh; break;
+ case 1: r = n; g = v; b = wh; break;
+ case 2: r = wh; g = v; b = n; break;
+ case 3: r = wh; g = n; b = v; break;
+ case 4: r = n; g = wh; b = v; break;
+ case 5: r = v; g = wh; b = n; break;
+ }
+
+ return [r * 255, g * 255, b * 255];
+};
+
+convert.cmyk.rgb = function (cmyk) {
+ var c = cmyk[0] / 100;
+ var m = cmyk[1] / 100;
+ var y = cmyk[2] / 100;
+ var k = cmyk[3] / 100;
+ var r;
+ var g;
+ var b;
+
+ r = 1 - Math.min(1, c * (1 - k) + k);
+ g = 1 - Math.min(1, m * (1 - k) + k);
+ b = 1 - Math.min(1, y * (1 - k) + k);
+
+ return [r * 255, g * 255, b * 255];
+};
+
+convert.xyz.rgb = function (xyz) {
+ var x = xyz[0] / 100;
+ var y = xyz[1] / 100;
+ var z = xyz[2] / 100;
+ var r;
+ var g;
+ var b;
+
+ r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
+ g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
+ b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
+
+ // assume sRGB
+ r = r > 0.0031308
+ ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
+ : r * 12.92;
+
+ g = g > 0.0031308
+ ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
+ : g * 12.92;
+
+ b = b > 0.0031308
+ ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
+ : b * 12.92;
+
+ r = Math.min(Math.max(0, r), 1);
+ g = Math.min(Math.max(0, g), 1);
+ b = Math.min(Math.max(0, b), 1);
+
+ return [r * 255, g * 255, b * 255];
+};
+
+convert.xyz.lab = function (xyz) {
+ var x = xyz[0];
+ var y = xyz[1];
+ var z = xyz[2];
+ var l;
+ var a;
+ var b;
+
+ x /= 95.047;
+ y /= 100;
+ z /= 108.883;
+
+ x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
+ y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
+ z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
+
+ l = (116 * y) - 16;
+ a = 500 * (x - y);
+ b = 200 * (y - z);
+
+ return [l, a, b];
+};
+
+convert.lab.xyz = function (lab) {
+ var l = lab[0];
+ var a = lab[1];
+ var b = lab[2];
+ var x;
+ var y;
+ var z;
+
+ y = (l + 16) / 116;
+ x = a / 500 + y;
+ z = y - b / 200;
+
+ var y2 = Math.pow(y, 3);
+ var x2 = Math.pow(x, 3);
+ var z2 = Math.pow(z, 3);
+ y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
+ x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
+ z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
+
+ x *= 95.047;
+ y *= 100;
+ z *= 108.883;
+
+ return [x, y, z];
+};
+
+convert.lab.lch = function (lab) {
+ var l = lab[0];
+ var a = lab[1];
+ var b = lab[2];
+ var hr;
+ var h;
+ var c;
+
+ hr = Math.atan2(b, a);
+ h = hr * 360 / 2 / Math.PI;
+
+ if (h < 0) {
+ h += 360;
+ }
+
+ c = Math.sqrt(a * a + b * b);
+
+ return [l, c, h];
+};
+
+convert.lch.lab = function (lch) {
+ var l = lch[0];
+ var c = lch[1];
+ var h = lch[2];
+ var a;
+ var b;
+ var hr;
+
+ hr = h / 360 * 2 * Math.PI;
+ a = c * Math.cos(hr);
+ b = c * Math.sin(hr);
+
+ return [l, a, b];
+};
+
+convert.rgb.ansi16 = function (args) {
+ var r = args[0];
+ var g = args[1];
+ var b = args[2];
+ var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization
+
+ value = Math.round(value / 50);
+
+ if (value === 0) {
+ return 30;
+ }
+
+ var ansi = 30
+ + ((Math.round(b / 255) << 2)
+ | (Math.round(g / 255) << 1)
+ | Math.round(r / 255));
+
+ if (value === 2) {
+ ansi += 60;
+ }
+
+ return ansi;
+};
+
+convert.hsv.ansi16 = function (args) {
+ // optimization here; we already know the value and don't need to get
+ // it converted for us.
+ return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
+};
+
+convert.rgb.ansi256 = function (args) {
+ var r = args[0];
+ var g = args[1];
+ var b = args[2];
+
+ // we use the extended greyscale palette here, with the exception of
+ // black and white. normal palette only has 4 greyscale shades.
+ if (r === g && g === b) {
+ if (r < 8) {
+ return 16;
+ }
+
+ if (r > 248) {
+ return 231;
+ }
+
+ return Math.round(((r - 8) / 247) * 24) + 232;
+ }
+
+ var ansi = 16
+ + (36 * Math.round(r / 255 * 5))
+ + (6 * Math.round(g / 255 * 5))
+ + Math.round(b / 255 * 5);
+
+ return ansi;
+};
+
+convert.ansi16.rgb = function (args) {
+ var color = args % 10;
+
+ // handle greyscale
+ if (color === 0 || color === 7) {
+ if (args > 50) {
+ color += 3.5;
+ }
+
+ color = color / 10.5 * 255;
+
+ return [color, color, color];
+ }
+
+ var mult = (~~(args > 50) + 1) * 0.5;
+ var r = ((color & 1) * mult) * 255;
+ var g = (((color >> 1) & 1) * mult) * 255;
+ var b = (((color >> 2) & 1) * mult) * 255;
+
+ return [r, g, b];
+};
+
+convert.ansi256.rgb = function (args) {
+ // handle greyscale
+ if (args >= 232) {
+ var c = (args - 232) * 10 + 8;
+ return [c, c, c];
+ }
+
+ args -= 16;
+
+ var rem;
+ var r = Math.floor(args / 36) / 5 * 255;
+ var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
+ var b = (rem % 6) / 5 * 255;
+
+ return [r, g, b];
+};
+
+convert.rgb.hex = function (args) {
+ var integer = ((Math.round(args[0]) & 0xFF) << 16)
+ + ((Math.round(args[1]) & 0xFF) << 8)
+ + (Math.round(args[2]) & 0xFF);
+
+ var string = integer.toString(16).toUpperCase();
+ return '000000'.substring(string.length) + string;
+};
+
+convert.hex.rgb = function (args) {
+ var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
+ if (!match) {
+ return [0, 0, 0];
+ }
+
+ var colorString = match[0];
+
+ if (match[0].length === 3) {
+ colorString = colorString.split('').map(function (char) {
+ return char + char;
+ }).join('');
+ }
+
+ var integer = parseInt(colorString, 16);
+ var r = (integer >> 16) & 0xFF;
+ var g = (integer >> 8) & 0xFF;
+ var b = integer & 0xFF;
+
+ return [r, g, b];
+};
+
+convert.rgb.hcg = function (rgb) {
+ var r = rgb[0] / 255;
+ var g = rgb[1] / 255;
+ var b = rgb[2] / 255;
+ var max = Math.max(Math.max(r, g), b);
+ var min = Math.min(Math.min(r, g), b);
+ var chroma = (max - min);
+ var grayscale;
+ var hue;
+
+ if (chroma < 1) {
+ grayscale = min / (1 - chroma);
+ } else {
+ grayscale = 0;
+ }
+
+ if (chroma <= 0) {
+ hue = 0;
+ } else
+ if (max === r) {
+ hue = ((g - b) / chroma) % 6;
+ } else
+ if (max === g) {
+ hue = 2 + (b - r) / chroma;
+ } else {
+ hue = 4 + (r - g) / chroma + 4;
+ }
+
+ hue /= 6;
+ hue %= 1;
+
+ return [hue * 360, chroma * 100, grayscale * 100];
+};
+
+convert.hsl.hcg = function (hsl) {
+ var s = hsl[1] / 100;
+ var l = hsl[2] / 100;
+ var c = 1;
+ var f = 0;
+
+ if (l < 0.5) {
+ c = 2.0 * s * l;
+ } else {
+ c = 2.0 * s * (1.0 - l);
+ }
+
+ if (c < 1.0) {
+ f = (l - 0.5 * c) / (1.0 - c);
+ }
+
+ return [hsl[0], c * 100, f * 100];
+};
+
+convert.hsv.hcg = function (hsv) {
+ var s = hsv[1] / 100;
+ var v = hsv[2] / 100;
+
+ var c = s * v;
+ var f = 0;
+
+ if (c < 1.0) {
+ f = (v - c) / (1 - c);
+ }
+
+ return [hsv[0], c * 100, f * 100];
+};
+
+convert.hcg.rgb = function (hcg) {
+ var h = hcg[0] / 360;
+ var c = hcg[1] / 100;
+ var g = hcg[2] / 100;
+
+ if (c === 0.0) {
+ return [g * 255, g * 255, g * 255];
+ }
+
+ var pure = [0, 0, 0];
+ var hi = (h % 1) * 6;
+ var v = hi % 1;
+ var w = 1 - v;
+ var mg = 0;
+
+ switch (Math.floor(hi)) {
+ case 0:
+ pure[0] = 1; pure[1] = v; pure[2] = 0; break;
+ case 1:
+ pure[0] = w; pure[1] = 1; pure[2] = 0; break;
+ case 2:
+ pure[0] = 0; pure[1] = 1; pure[2] = v; break;
+ case 3:
+ pure[0] = 0; pure[1] = w; pure[2] = 1; break;
+ case 4:
+ pure[0] = v; pure[1] = 0; pure[2] = 1; break;
+ default:
+ pure[0] = 1; pure[1] = 0; pure[2] = w;
+ }
+
+ mg = (1.0 - c) * g;
+
+ return [
+ (c * pure[0] + mg) * 255,
+ (c * pure[1] + mg) * 255,
+ (c * pure[2] + mg) * 255
+ ];
+};
+
+convert.hcg.hsv = function (hcg) {
+ var c = hcg[1] / 100;
+ var g = hcg[2] / 100;
+
+ var v = c + g * (1.0 - c);
+ var f = 0;
+
+ if (v > 0.0) {
+ f = c / v;
+ }
+
+ return [hcg[0], f * 100, v * 100];
+};
+
+convert.hcg.hsl = function (hcg) {
+ var c = hcg[1] / 100;
+ var g = hcg[2] / 100;
+
+ var l = g * (1.0 - c) + 0.5 * c;
+ var s = 0;
+
+ if (l > 0.0 && l < 0.5) {
+ s = c / (2 * l);
+ } else
+ if (l >= 0.5 && l < 1.0) {
+ s = c / (2 * (1 - l));
+ }
+
+ return [hcg[0], s * 100, l * 100];
+};
+
+convert.hcg.hwb = function (hcg) {
+ var c = hcg[1] / 100;
+ var g = hcg[2] / 100;
+ var v = c + g * (1.0 - c);
+ return [hcg[0], (v - c) * 100, (1 - v) * 100];
+};
+
+convert.hwb.hcg = function (hwb) {
+ var w = hwb[1] / 100;
+ var b = hwb[2] / 100;
+ var v = 1 - b;
+ var c = v - w;
+ var g = 0;
+
+ if (c < 1) {
+ g = (v - c) / (1 - c);
+ }
+
+ return [hwb[0], c * 100, g * 100];
+};
+
+convert.apple.rgb = function (apple) {
+ return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];
+};
+
+convert.rgb.apple = function (rgb) {
+ return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];
+};
+
+convert.gray.rgb = function (args) {
+ return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
+};
+
+convert.gray.hsl = convert.gray.hsv = function (args) {
+ return [0, 0, args[0]];
+};
+
+convert.gray.hwb = function (gray) {
+ return [0, 100, gray[0]];
+};
+
+convert.gray.cmyk = function (gray) {
+ return [0, 0, 0, gray[0]];
+};
+
+convert.gray.lab = function (gray) {
+ return [gray[0], 0, 0];
+};
+
+convert.gray.hex = function (gray) {
+ var val = Math.round(gray[0] / 100 * 255) & 0xFF;
+ var integer = (val << 16) + (val << 8) + val;
+
+ var string = integer.toString(16).toUpperCase();
+ return '000000'.substring(string.length) + string;
+};
+
+convert.rgb.gray = function (rgb) {
+ var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
+ return [val / 255 * 100];
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/index.js
new file mode 100644
index 0000000000..e65b5d775d
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/index.js
@@ -0,0 +1,78 @@
+var conversions = require('./conversions');
+var route = require('./route');
+
+var convert = {};
+
+var models = Object.keys(conversions);
+
+function wrapRaw(fn) {
+ var wrappedFn = function (args) {
+ if (args === undefined || args === null) {
+ return args;
+ }
+
+ if (arguments.length > 1) {
+ args = Array.prototype.slice.call(arguments);
+ }
+
+ return fn(args);
+ };
+
+ // preserve .conversion property if there is one
+ if ('conversion' in fn) {
+ wrappedFn.conversion = fn.conversion;
+ }
+
+ return wrappedFn;
+}
+
+function wrapRounded(fn) {
+ var wrappedFn = function (args) {
+ if (args === undefined || args === null) {
+ return args;
+ }
+
+ if (arguments.length > 1) {
+ args = Array.prototype.slice.call(arguments);
+ }
+
+ var result = fn(args);
+
+ // we're assuming the result is an array here.
+ // see notice in conversions.js; don't use box types
+ // in conversion functions.
+ if (typeof result === 'object') {
+ for (var len = result.length, i = 0; i < len; i++) {
+ result[i] = Math.round(result[i]);
+ }
+ }
+
+ return result;
+ };
+
+ // preserve .conversion property if there is one
+ if ('conversion' in fn) {
+ wrappedFn.conversion = fn.conversion;
+ }
+
+ return wrappedFn;
+}
+
+models.forEach(function (fromModel) {
+ convert[fromModel] = {};
+
+ Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});
+ Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});
+
+ var routes = route(fromModel);
+ var routeModels = Object.keys(routes);
+
+ routeModels.forEach(function (toModel) {
+ var fn = routes[toModel];
+
+ convert[fromModel][toModel] = wrapRounded(fn);
+ convert[fromModel][toModel].raw = wrapRaw(fn);
+ });
+});
+
+module.exports = convert;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.eslintrc.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.eslintrc.json
new file mode 100644
index 0000000000..c50c250446
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.eslintrc.json
@@ -0,0 +1,43 @@
+{
+ "env": {
+ "browser": true,
+ "node": true,
+ "commonjs": true,
+ "es6": true
+ },
+ "extends": "eslint:recommended",
+ "rules": {
+ "strict": 2,
+ "indent": 0,
+ "linebreak-style": 0,
+ "quotes": 0,
+ "semi": 0,
+ "no-cond-assign": 1,
+ "no-constant-condition": 1,
+ "no-duplicate-case": 1,
+ "no-empty": 1,
+ "no-ex-assign": 1,
+ "no-extra-boolean-cast": 1,
+ "no-extra-semi": 1,
+ "no-fallthrough": 1,
+ "no-func-assign": 1,
+ "no-global-assign": 1,
+ "no-implicit-globals": 2,
+ "no-inner-declarations": ["error", "functions"],
+ "no-irregular-whitespace": 2,
+ "no-loop-func": 1,
+ "no-multi-str": 1,
+ "no-mixed-spaces-and-tabs": 1,
+ "no-proto": 1,
+ "no-sequences": 1,
+ "no-throw-literal": 1,
+ "no-unmodified-loop-condition": 1,
+ "no-useless-call": 1,
+ "no-void": 1,
+ "no-with": 2,
+ "wrap-iife": 1,
+ "no-redeclare": 1,
+ "no-unused-vars": ["error", { "vars": "all", "args": "none" }],
+ "no-sparse-arrays": 1
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.npmignore b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.npmignore
new file mode 100644
index 0000000000..3854c07dc6
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.npmignore
@@ -0,0 +1,107 @@
+//this will affect all the git repos
+git config --global core.excludesfile ~/.gitignore
+
+
+//update files since .ignore won't if already tracked
+git rm --cached <file>
+
+# Compiled source #
+###################
+*.com
+*.class
+*.dll
+*.exe
+*.o
+*.so
+
+# Packages #
+############
+# it's better to unpack these files and commit the raw source
+# git has its own built in compression methods
+*.7z
+*.dmg
+*.gz
+*.iso
+*.jar
+*.rar
+*.tar
+*.zip
+
+# Logs and databases #
+######################
+*.log
+*.sql
+*.sqlite
+
+# OS generated files #
+######################
+.DS_Store
+.DS_Store?
+._*
+.Spotlight-V100
+.Trashes
+# Icon?
+ehthumbs.db
+Thumbs.db
+.cache
+.project
+.settings
+.tmproj
+*.esproj
+nbproject
+
+# Numerous always-ignore extensions #
+#####################################
+*.diff
+*.err
+*.orig
+*.rej
+*.swn
+*.swo
+*.swp
+*.vi
+*~
+*.sass-cache
+*.grunt
+*.tmp
+
+# Dreamweaver added files #
+###########################
+_notes
+dwsync.xml
+
+# Komodo #
+###########################
+*.komodoproject
+.komodotools
+
+# Node #
+#####################
+node_modules
+
+# Bower #
+#####################
+bower_components
+
+# Folders to ignore #
+#####################
+.hg
+.svn
+.CVS
+intermediate
+publish
+.idea
+.graphics
+_test
+_archive
+uploads
+tmp
+
+# Vim files to ignore #
+#######################
+.VimballRecord
+.netrwhist
+
+bundle.*
+
+_demo \ No newline at end of file
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/LICENSE b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/LICENSE
new file mode 100644
index 0000000000..4d9802a89e
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/LICENSE
@@ -0,0 +1,8 @@
+The MIT License (MIT)
+Copyright (c) 2015 Dmitry Ivanov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/README.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/README.md
new file mode 100644
index 0000000000..3611a6b523
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/README.md
@@ -0,0 +1,11 @@
+A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors.
+
+[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/)
+
+
+```js
+var colors = require('color-name');
+colors.red //[255,0,0]
+```
+
+<a href="LICENSE"><img src="https://upload.wikimedia.org/wikipedia/commons/0/0c/MIT_logo.svg" width="120"/></a>
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/index.js
new file mode 100644
index 0000000000..e42aa68a54
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/index.js
@@ -0,0 +1,152 @@
+'use strict'
+
+module.exports = {
+ "aliceblue": [240, 248, 255],
+ "antiquewhite": [250, 235, 215],
+ "aqua": [0, 255, 255],
+ "aquamarine": [127, 255, 212],
+ "azure": [240, 255, 255],
+ "beige": [245, 245, 220],
+ "bisque": [255, 228, 196],
+ "black": [0, 0, 0],
+ "blanchedalmond": [255, 235, 205],
+ "blue": [0, 0, 255],
+ "blueviolet": [138, 43, 226],
+ "brown": [165, 42, 42],
+ "burlywood": [222, 184, 135],
+ "cadetblue": [95, 158, 160],
+ "chartreuse": [127, 255, 0],
+ "chocolate": [210, 105, 30],
+ "coral": [255, 127, 80],
+ "cornflowerblue": [100, 149, 237],
+ "cornsilk": [255, 248, 220],
+ "crimson": [220, 20, 60],
+ "cyan": [0, 255, 255],
+ "darkblue": [0, 0, 139],
+ "darkcyan": [0, 139, 139],
+ "darkgoldenrod": [184, 134, 11],
+ "darkgray": [169, 169, 169],
+ "darkgreen": [0, 100, 0],
+ "darkgrey": [169, 169, 169],
+ "darkkhaki": [189, 183, 107],
+ "darkmagenta": [139, 0, 139],
+ "darkolivegreen": [85, 107, 47],
+ "darkorange": [255, 140, 0],
+ "darkorchid": [153, 50, 204],
+ "darkred": [139, 0, 0],
+ "darksalmon": [233, 150, 122],
+ "darkseagreen": [143, 188, 143],
+ "darkslateblue": [72, 61, 139],
+ "darkslategray": [47, 79, 79],
+ "darkslategrey": [47, 79, 79],
+ "darkturquoise": [0, 206, 209],
+ "darkviolet": [148, 0, 211],
+ "deeppink": [255, 20, 147],
+ "deepskyblue": [0, 191, 255],
+ "dimgray": [105, 105, 105],
+ "dimgrey": [105, 105, 105],
+ "dodgerblue": [30, 144, 255],
+ "firebrick": [178, 34, 34],
+ "floralwhite": [255, 250, 240],
+ "forestgreen": [34, 139, 34],
+ "fuchsia": [255, 0, 255],
+ "gainsboro": [220, 220, 220],
+ "ghostwhite": [248, 248, 255],
+ "gold": [255, 215, 0],
+ "goldenrod": [218, 165, 32],
+ "gray": [128, 128, 128],
+ "green": [0, 128, 0],
+ "greenyellow": [173, 255, 47],
+ "grey": [128, 128, 128],
+ "honeydew": [240, 255, 240],
+ "hotpink": [255, 105, 180],
+ "indianred": [205, 92, 92],
+ "indigo": [75, 0, 130],
+ "ivory": [255, 255, 240],
+ "khaki": [240, 230, 140],
+ "lavender": [230, 230, 250],
+ "lavenderblush": [255, 240, 245],
+ "lawngreen": [124, 252, 0],
+ "lemonchiffon": [255, 250, 205],
+ "lightblue": [173, 216, 230],
+ "lightcoral": [240, 128, 128],
+ "lightcyan": [224, 255, 255],
+ "lightgoldenrodyellow": [250, 250, 210],
+ "lightgray": [211, 211, 211],
+ "lightgreen": [144, 238, 144],
+ "lightgrey": [211, 211, 211],
+ "lightpink": [255, 182, 193],
+ "lightsalmon": [255, 160, 122],
+ "lightseagreen": [32, 178, 170],
+ "lightskyblue": [135, 206, 250],
+ "lightslategray": [119, 136, 153],
+ "lightslategrey": [119, 136, 153],
+ "lightsteelblue": [176, 196, 222],
+ "lightyellow": [255, 255, 224],
+ "lime": [0, 255, 0],
+ "limegreen": [50, 205, 50],
+ "linen": [250, 240, 230],
+ "magenta": [255, 0, 255],
+ "maroon": [128, 0, 0],
+ "mediumaquamarine": [102, 205, 170],
+ "mediumblue": [0, 0, 205],
+ "mediumorchid": [186, 85, 211],
+ "mediumpurple": [147, 112, 219],
+ "mediumseagreen": [60, 179, 113],
+ "mediumslateblue": [123, 104, 238],
+ "mediumspringgreen": [0, 250, 154],
+ "mediumturquoise": [72, 209, 204],
+ "mediumvioletred": [199, 21, 133],
+ "midnightblue": [25, 25, 112],
+ "mintcream": [245, 255, 250],
+ "mistyrose": [255, 228, 225],
+ "moccasin": [255, 228, 181],
+ "navajowhite": [255, 222, 173],
+ "navy": [0, 0, 128],
+ "oldlace": [253, 245, 230],
+ "olive": [128, 128, 0],
+ "olivedrab": [107, 142, 35],
+ "orange": [255, 165, 0],
+ "orangered": [255, 69, 0],
+ "orchid": [218, 112, 214],
+ "palegoldenrod": [238, 232, 170],
+ "palegreen": [152, 251, 152],
+ "paleturquoise": [175, 238, 238],
+ "palevioletred": [219, 112, 147],
+ "papayawhip": [255, 239, 213],
+ "peachpuff": [255, 218, 185],
+ "peru": [205, 133, 63],
+ "pink": [255, 192, 203],
+ "plum": [221, 160, 221],
+ "powderblue": [176, 224, 230],
+ "purple": [128, 0, 128],
+ "rebeccapurple": [102, 51, 153],
+ "red": [255, 0, 0],
+ "rosybrown": [188, 143, 143],
+ "royalblue": [65, 105, 225],
+ "saddlebrown": [139, 69, 19],
+ "salmon": [250, 128, 114],
+ "sandybrown": [244, 164, 96],
+ "seagreen": [46, 139, 87],
+ "seashell": [255, 245, 238],
+ "sienna": [160, 82, 45],
+ "silver": [192, 192, 192],
+ "skyblue": [135, 206, 235],
+ "slateblue": [106, 90, 205],
+ "slategray": [112, 128, 144],
+ "slategrey": [112, 128, 144],
+ "snow": [255, 250, 250],
+ "springgreen": [0, 255, 127],
+ "steelblue": [70, 130, 180],
+ "tan": [210, 180, 140],
+ "teal": [0, 128, 128],
+ "thistle": [216, 191, 216],
+ "tomato": [255, 99, 71],
+ "turquoise": [64, 224, 208],
+ "violet": [238, 130, 238],
+ "wheat": [245, 222, 179],
+ "white": [255, 255, 255],
+ "whitesmoke": [245, 245, 245],
+ "yellow": [255, 255, 0],
+ "yellowgreen": [154, 205, 50]
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json
new file mode 100644
index 0000000000..f269d7266a
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json
@@ -0,0 +1,53 @@
+{
+ "_from": "color-name@^1.1.1",
+ "_id": "color-name@1.1.3",
+ "_inBundle": false,
+ "_integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "_location": "/update-notifier/chalk/ansi-styles/color-convert/color-name",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "color-name@^1.1.1",
+ "name": "color-name",
+ "escapedName": "color-name",
+ "rawSpec": "^1.1.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.1"
+ },
+ "_requiredBy": [
+ "/update-notifier/chalk/ansi-styles/color-convert"
+ ],
+ "_resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "_shasum": "a7d0558bd89c42f795dd42328f740831ca53bc25",
+ "_spec": "color-name@^1.1.1",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert",
+ "author": {
+ "name": "DY",
+ "email": "dfcreative@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/dfcreative/color-name/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "A list of color names and its values",
+ "homepage": "https://github.com/dfcreative/color-name",
+ "keywords": [
+ "color-name",
+ "color",
+ "color-keyword",
+ "keyword"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "color-name",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/dfcreative/color-name.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.1.3"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/test.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/test.js
new file mode 100644
index 0000000000..7a08746215
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/test.js
@@ -0,0 +1,7 @@
+'use strict'
+
+var names = require('./');
+var assert = require('assert');
+
+assert.deepEqual(names.red, [255,0,0]);
+assert.deepEqual(names.aliceblue, [240,248,255]);
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json
new file mode 100644
index 0000000000..b52844a38d
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json
@@ -0,0 +1,81 @@
+{
+ "_from": "color-convert@^1.9.0",
+ "_id": "color-convert@1.9.0",
+ "_inBundle": false,
+ "_integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "_location": "/update-notifier/chalk/ansi-styles/color-convert",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "color-convert@^1.9.0",
+ "name": "color-convert",
+ "escapedName": "color-convert",
+ "rawSpec": "^1.9.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.9.0"
+ },
+ "_requiredBy": [
+ "/update-notifier/chalk/ansi-styles"
+ ],
+ "_resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
+ "_shasum": "1accf97dd739b983bf994d56fec8f95853641b7a",
+ "_spec": "color-convert@^1.9.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles",
+ "author": {
+ "name": "Heather Arthur",
+ "email": "fayearthur@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/Qix-/color-convert/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "color-name": "^1.1.1"
+ },
+ "deprecated": false,
+ "description": "Plain color conversion functions",
+ "devDependencies": {
+ "chalk": "^1.1.1",
+ "xo": "^0.11.2"
+ },
+ "files": [
+ "index.js",
+ "conversions.js",
+ "css-keywords.js",
+ "route.js"
+ ],
+ "homepage": "https://github.com/Qix-/color-convert#readme",
+ "keywords": [
+ "color",
+ "colour",
+ "convert",
+ "converter",
+ "conversion",
+ "rgb",
+ "hsl",
+ "hsv",
+ "hwb",
+ "cmyk",
+ "ansi",
+ "ansi16"
+ ],
+ "license": "MIT",
+ "name": "color-convert",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/Qix-/color-convert.git"
+ },
+ "scripts": {
+ "pretest": "xo",
+ "test": "node test/basic.js"
+ },
+ "version": "1.9.0",
+ "xo": {
+ "rules": {
+ "default-case": 0,
+ "no-inline-comments": 0,
+ "operator-linebreak": 0
+ }
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/route.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/route.js
new file mode 100644
index 0000000000..cba36384cc
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/route.js
@@ -0,0 +1,97 @@
+var conversions = require('./conversions');
+
+/*
+ this function routes a model to all other models.
+
+ all functions that are routed have a property `.conversion` attached
+ to the returned synthetic function. This property is an array
+ of strings, each with the steps in between the 'from' and 'to'
+ color models (inclusive).
+
+ conversions that are not possible simply are not included.
+*/
+
+// https://jsperf.com/object-keys-vs-for-in-with-closure/3
+var models = Object.keys(conversions);
+
+function buildGraph() {
+ var graph = {};
+
+ for (var len = models.length, i = 0; i < len; i++) {
+ graph[models[i]] = {
+ // http://jsperf.com/1-vs-infinity
+ // micro-opt, but this is simple.
+ distance: -1,
+ parent: null
+ };
+ }
+
+ return graph;
+}
+
+// https://en.wikipedia.org/wiki/Breadth-first_search
+function deriveBFS(fromModel) {
+ var graph = buildGraph();
+ var queue = [fromModel]; // unshift -> queue -> pop
+
+ graph[fromModel].distance = 0;
+
+ while (queue.length) {
+ var current = queue.pop();
+ var adjacents = Object.keys(conversions[current]);
+
+ for (var len = adjacents.length, i = 0; i < len; i++) {
+ var adjacent = adjacents[i];
+ var node = graph[adjacent];
+
+ if (node.distance === -1) {
+ node.distance = graph[current].distance + 1;
+ node.parent = current;
+ queue.unshift(adjacent);
+ }
+ }
+ }
+
+ return graph;
+}
+
+function link(from, to) {
+ return function (args) {
+ return to(from(args));
+ };
+}
+
+function wrapConversion(toModel, graph) {
+ var path = [graph[toModel].parent, toModel];
+ var fn = conversions[graph[toModel].parent][toModel];
+
+ var cur = graph[toModel].parent;
+ while (graph[cur].parent) {
+ path.unshift(graph[cur].parent);
+ fn = link(conversions[graph[cur].parent][cur], fn);
+ cur = graph[cur].parent;
+ }
+
+ fn.conversion = path;
+ return fn;
+}
+
+module.exports = function (fromModel) {
+ var graph = deriveBFS(fromModel);
+ var conversion = {};
+
+ var models = Object.keys(graph);
+ for (var len = models.length, i = 0; i < len; i++) {
+ var toModel = models[i];
+ var node = graph[toModel];
+
+ if (node.parent === null) {
+ // no possible conversion, or this node is the source model.
+ continue;
+ }
+
+ conversion[toModel] = wrapConversion(toModel, graph);
+ }
+
+ return conversion;
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json
index a2c2431c05..c9c0f3af06 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json
@@ -1,45 +1,51 @@
{
- "_from": "ansi-styles@^2.2.1",
- "_id": "ansi-styles@2.2.1",
- "_integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "_from": "ansi-styles@^3.1.0",
+ "_id": "ansi-styles@3.2.0",
+ "_inBundle": false,
+ "_integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
"_location": "/update-notifier/chalk/ansi-styles",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
- "raw": "ansi-styles@^2.2.1",
+ "raw": "ansi-styles@^3.1.0",
"name": "ansi-styles",
"escapedName": "ansi-styles",
- "rawSpec": "^2.2.1",
+ "rawSpec": "^3.1.0",
"saveSpec": null,
- "fetchSpec": "^2.2.1"
+ "fetchSpec": "^3.1.0"
},
"_requiredBy": [
"/update-notifier/chalk"
],
- "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "_shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe",
- "_shrinkwrap": null,
- "_spec": "ansi-styles@^2.2.1",
+ "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "_shasum": "c159b8d5be0f9e5a6f346dab94f16ce022161b88",
+ "_spec": "ansi-styles@^3.1.0",
"_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
- "bin": null,
+ "ava": {
+ "require": "babel-polyfill"
+ },
"bugs": {
"url": "https://github.com/chalk/ansi-styles/issues"
},
"bundleDependencies": false,
- "dependencies": {},
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
"deprecated": false,
"description": "ANSI escape codes for styling strings in the terminal",
"devDependencies": {
- "mocha": "*"
+ "ava": "*",
+ "babel-polyfill": "^6.23.0",
+ "xo": "*"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"files": [
"index.js"
@@ -68,27 +74,13 @@
"text"
],
"license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- }
- ],
"name": "ansi-styles",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/chalk/ansi-styles.git"
},
"scripts": {
- "test": "mocha"
+ "test": "xo && ava"
},
- "version": "2.2.1"
+ "version": "3.2.0"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md
index 3f933f6162..dce368742b 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md
@@ -10,18 +10,27 @@ You probably want the higher-level [chalk](https://github.com/chalk/chalk) modul
## Install
```
-$ npm install --save ansi-styles
+$ npm install ansi-styles
```
## Usage
```js
-var ansi = require('ansi-styles');
+const style = require('ansi-styles');
+
+console.log(`${style.green.open}Hello world!${style.green.close}`);
-console.log(ansi.green.open + 'Hello world!' + ansi.green.close);
-```
+// Color conversion between 16/256/truecolor
+// NOTE: If conversion goes to 16 colors or 256 colors, the original color
+// may be degraded to fit that color palette. This means terminals
+// that do not support 16 million colors will best-match the
+// original color.
+console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close);
+console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close);
+console.log(style.color.ansi16m.hex('#ABCDEF') + 'Hello world!' + style.color.close);
+```
## API
@@ -35,11 +44,11 @@ Each style has an `open` and `close` property.
- `reset`
- `bold`
- `dim`
-- `italic` *(not widely supported)*
+- `italic` *(Not widely supported)*
- `underline`
- `inverse`
- `hidden`
-- `strikethrough` *(not widely supported)*
+- `strikethrough` *(Not widely supported)*
### Colors
@@ -51,7 +60,14 @@ Each style has an `open` and `close` property.
- `magenta`
- `cyan`
- `white`
-- `gray`
+- `gray` ("bright black")
+- `redBright`
+- `greenBright`
+- `yellowBright`
+- `blueBright`
+- `magentaBright`
+- `cyanBright`
+- `whiteBright`
### Background colors
@@ -63,24 +79,69 @@ Each style has an `open` and `close` property.
- `bgMagenta`
- `bgCyan`
- `bgWhite`
+- `bgBlackBright`
+- `bgRedBright`
+- `bgGreenBright`
+- `bgYellowBright`
+- `bgBlueBright`
+- `bgMagentaBright`
+- `bgCyanBright`
+- `bgWhiteBright`
## Advanced usage
-By default you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.
+By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.
+
+- `style.modifier`
+- `style.color`
+- `style.bgColor`
+
+###### Example
-- `ansi.modifiers`
-- `ansi.colors`
-- `ansi.bgColors`
+```js
+console.log(style.color.green.open);
+```
+Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values.
###### Example
```js
-console.log(ansi.colors.green.open);
+console.log(style.codes.get(36));
+//=> 39
```
+## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728)
+
+`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors.
+
+To use these, call the associated conversion function with the intended output, for example:
+
+```js
+style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code
+style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code
+
+style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
+style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
+
+style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code
+style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code
+```
+
+
+## Related
+
+- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal
+
+
+## Maintainers
+
+- [Sindre Sorhus](https://github.com/sindresorhus)
+- [Josh Junon](https://github.com/qix-)
+
+
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/index.js
deleted file mode 100644
index 98fae06767..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-var ansiRegex = require('ansi-regex');
-var re = new RegExp(ansiRegex().source); // remove the `g` flag
-module.exports = re.test.bind(re);
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/index.js
deleted file mode 100644
index b9574ed7e8..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-module.exports = function () {
- return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/package.json
deleted file mode 100644
index 9d0f936206..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "_from": "ansi-regex@^2.0.0",
- "_id": "ansi-regex@2.1.1",
- "_inBundle": false,
- "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "_location": "/update-notifier/chalk/has-ansi/ansi-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-regex@^2.0.0",
- "name": "ansi-regex",
- "escapedName": "ansi-regex",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/chalk/has-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "_spec": "ansi-regex@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/ansi-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching ANSI escape codes",
- "devDependencies": {
- "ava": "0.17.0",
- "xo": "0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/ansi-regex#readme",
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "ansi-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/ansi-regex.git"
- },
- "scripts": {
- "test": "xo && ava --verbose",
- "view-supported": "node fixtures/view-codes.js"
- },
- "version": "2.1.1",
- "xo": {
- "rules": {
- "guard-for-in": 0,
- "no-loop-func": 0
- }
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/readme.md
deleted file mode 100644
index 6a928edf0f..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/readme.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)
-
-> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
-
-
-## Install
-
-```
-$ npm install --save ansi-regex
-```
-
-
-## Usage
-
-```js
-const ansiRegex = require('ansi-regex');
-
-ansiRegex().test('\u001b[4mcake\u001b[0m');
-//=> true
-
-ansiRegex().test('cake');
-//=> false
-
-'\u001b[4mcake\u001b[0m'.match(ansiRegex());
-//=> ['\u001b[4m', '\u001b[0m']
-```
-
-## FAQ
-
-### Why do you test for codes not in the ECMA 48 standard?
-
-Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
-
-On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/package.json
deleted file mode 100644
index 363177f426..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/package.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
- "_from": "has-ansi@^2.0.0",
- "_id": "has-ansi@2.0.0",
- "_integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "_location": "/update-notifier/chalk/has-ansi",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "has-ansi@^2.0.0",
- "name": "has-ansi",
- "escapedName": "has-ansi",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/chalk"
- ],
- "_resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "_shasum": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91",
- "_shrinkwrap": null,
- "_spec": "has-ansi@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/has-ansi/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "deprecated": false,
- "description": "Check if a string has ANSI escape codes",
- "devDependencies": {
- "ava": "0.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/has-ansi#readme",
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "string",
- "tty",
- "escape",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern",
- "has"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- }
- ],
- "name": "has-ansi",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/has-ansi.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/readme.md
deleted file mode 100644
index 02bc7c2300..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/has-ansi/readme.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# has-ansi [![Build Status](https://travis-ci.org/sindresorhus/has-ansi.svg?branch=master)](https://travis-ci.org/sindresorhus/has-ansi)
-
-> Check if a string has [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
-
-
-## Install
-
-```
-$ npm install --save has-ansi
-```
-
-
-## Usage
-
-```js
-var hasAnsi = require('has-ansi');
-
-hasAnsi('\u001b[4mcake\u001b[0m');
-//=> true
-
-hasAnsi('cake');
-//=> false
-```
-
-
-## Related
-
-- [has-ansi-cli](https://github.com/sindresorhus/has-ansi-cli) - CLI for this module
-- [strip-ansi](https://github.com/sindresorhus/strip-ansi) - Strip ANSI escape codes
-- [ansi-regex](https://github.com/sindresorhus/ansi-regex) - Regular expression for matching ANSI escape codes
-- [chalk](https://github.com/sindresorhus/chalk) - Terminal string styling done right
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/index.js
deleted file mode 100644
index 099480fbfc..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-var ansiRegex = require('ansi-regex')();
-
-module.exports = function (str) {
- return typeof str === 'string' ? str.replace(ansiRegex, '') : str;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/index.js
deleted file mode 100644
index b9574ed7e8..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-module.exports = function () {
- return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/package.json
deleted file mode 100644
index d862639987..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "_from": "ansi-regex@^2.0.0",
- "_id": "ansi-regex@2.1.1",
- "_inBundle": false,
- "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "_location": "/update-notifier/chalk/strip-ansi/ansi-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-regex@^2.0.0",
- "name": "ansi-regex",
- "escapedName": "ansi-regex",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/chalk/strip-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "_spec": "ansi-regex@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/ansi-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching ANSI escape codes",
- "devDependencies": {
- "ava": "0.17.0",
- "xo": "0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/ansi-regex#readme",
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "ansi-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/ansi-regex.git"
- },
- "scripts": {
- "test": "xo && ava --verbose",
- "view-supported": "node fixtures/view-codes.js"
- },
- "version": "2.1.1",
- "xo": {
- "rules": {
- "guard-for-in": 0,
- "no-loop-func": 0
- }
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/readme.md
deleted file mode 100644
index 6a928edf0f..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/readme.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)
-
-> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
-
-
-## Install
-
-```
-$ npm install --save ansi-regex
-```
-
-
-## Usage
-
-```js
-const ansiRegex = require('ansi-regex');
-
-ansiRegex().test('\u001b[4mcake\u001b[0m');
-//=> true
-
-ansiRegex().test('cake');
-//=> false
-
-'\u001b[4mcake\u001b[0m'.match(ansiRegex());
-//=> ['\u001b[4m', '\u001b[0m']
-```
-
-## FAQ
-
-### Why do you test for codes not in the ECMA 48 standard?
-
-Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
-
-On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/package.json
deleted file mode 100644
index 1b040a1afa..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/package.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- "_from": "strip-ansi@^3.0.0",
- "_id": "strip-ansi@3.0.1",
- "_inBundle": false,
- "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "_location": "/update-notifier/chalk/strip-ansi",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-ansi@^3.0.0",
- "name": "strip-ansi",
- "escapedName": "strip-ansi",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/update-notifier/chalk"
- ],
- "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
- "_spec": "strip-ansi@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/chalk",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/strip-ansi/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "deprecated": false,
- "description": "Strip ANSI escape codes",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/strip-ansi#readme",
- "keywords": [
- "strip",
- "trim",
- "remove",
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Boy Nicolai Appelman",
- "email": "joshua@jbna.nl",
- "url": "jbna.nl"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "strip-ansi",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/strip-ansi.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/readme.md
deleted file mode 100644
index cb7d9ff7ee..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/readme.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi)
-
-> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
-
-
-## Install
-
-```
-$ npm install --save strip-ansi
-```
-
-
-## Usage
-
-```js
-var stripAnsi = require('strip-ansi');
-
-stripAnsi('\u001b[4mcake\u001b[0m');
-//=> 'cake'
-```
-
-
-## Related
-
-- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module
-- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
-- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
-- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js
new file mode 100644
index 0000000000..ae7c87b17c
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js
@@ -0,0 +1,2 @@
+'use strict';
+module.exports = false;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js
index 4346e272e1..a5d9331df1 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js
@@ -1,50 +1,115 @@
'use strict';
-var argv = process.argv;
+const os = require('os');
+const hasFlag = require('has-flag');
-var terminator = argv.indexOf('--');
-var hasFlag = function (flag) {
- flag = '--' + flag;
- var pos = argv.indexOf(flag);
- return pos !== -1 && (terminator !== -1 ? pos < terminator : true);
-};
+const env = process.env;
-module.exports = (function () {
- if ('FORCE_COLOR' in process.env) {
- return true;
+const support = level => {
+ if (level === 0) {
+ return false;
}
+ return {
+ level,
+ hasBasic: true,
+ has256: level >= 2,
+ has16m: level >= 3
+ };
+};
+
+let supportLevel = (() => {
if (hasFlag('no-color') ||
hasFlag('no-colors') ||
hasFlag('color=false')) {
- return false;
+ return 0;
+ }
+
+ if (hasFlag('color=16m') ||
+ hasFlag('color=full') ||
+ hasFlag('color=truecolor')) {
+ return 3;
+ }
+
+ if (hasFlag('color=256')) {
+ return 2;
}
if (hasFlag('color') ||
hasFlag('colors') ||
hasFlag('color=true') ||
hasFlag('color=always')) {
- return true;
+ return 1;
}
if (process.stdout && !process.stdout.isTTY) {
- return false;
+ return 0;
}
if (process.platform === 'win32') {
- return true;
+ // Node.js 7.5.0 is the first version of Node.js to include a patch to
+ // libuv that enables 256 color output on Windows. Anything earlier and it
+ // won't work. However, here we target Node.js 8 at minimum as it is an LTS
+ // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows
+ // release that supports 256 colors.
+ const osRelease = os.release().split('.');
+ if (
+ Number(process.versions.node.split('.')[0]) >= 8 &&
+ Number(osRelease[0]) >= 10 &&
+ Number(osRelease[2]) >= 10586
+ ) {
+ return 2;
+ }
+
+ return 1;
+ }
+
+ if ('CI' in env) {
+ if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
+ return 1;
+ }
+
+ return 0;
}
- if ('COLORTERM' in process.env) {
- return true;
+ if ('TEAMCITY_VERSION' in env) {
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
}
- if (process.env.TERM === 'dumb') {
- return false;
+ if ('TERM_PROGRAM' in env) {
+ const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
+
+ switch (env.TERM_PROGRAM) {
+ case 'iTerm.app':
+ return version >= 3 ? 3 : 2;
+ case 'Hyper':
+ return 3;
+ case 'Apple_Terminal':
+ return 2;
+ // No default
+ }
+ }
+
+ if (/-256(color)?$/i.test(env.TERM)) {
+ return 2;
}
- if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {
- return true;
+ if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(env.TERM)) {
+ return 1;
}
- return false;
+ if ('COLORTERM' in env) {
+ return 1;
+ }
+
+ if (env.TERM === 'dumb') {
+ return 0;
+ }
+
+ return 0;
})();
+
+if ('FORCE_COLOR' in env) {
+ supportLevel = parseInt(env.FORCE_COLOR, 10) === 0 ? 0 : (supportLevel || 1);
+}
+
+module.exports = process && support(supportLevel);
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license
index 654d0bfe94..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license
@@ -1,21 +1,9 @@
-The MIT License (MIT)
+MIT License
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js
new file mode 100644
index 0000000000..68820307dc
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js
@@ -0,0 +1,10 @@
+'use strict';
+module.exports = function (flag, argv) {
+ argv = argv || process.argv;
+
+ var terminatorPos = argv.indexOf('--');
+ var prefix = /^-{1,2}/.test(flag) ? '' : '--';
+ var pos = argv.indexOf(prefix + flag);
+
+ return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/license b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/strip-ansi/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/license
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json
new file mode 100644
index 0000000000..804a12fdcb
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json
@@ -0,0 +1,93 @@
+{
+ "_from": "has-flag@^2.0.0",
+ "_id": "has-flag@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "_location": "/update-notifier/chalk/supports-color/has-flag",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "has-flag@^2.0.0",
+ "name": "has-flag",
+ "escapedName": "has-flag",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/update-notifier/chalk/supports-color"
+ ],
+ "_resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "_shasum": "e8207af1cc7b30d446cc70b734b5e8be18f88d51",
+ "_spec": "has-flag@^2.0.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/has-flag/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Check if argv has a specific flag",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/has-flag#readme",
+ "keywords": [
+ "has",
+ "check",
+ "detect",
+ "contains",
+ "find",
+ "flag",
+ "cli",
+ "command-line",
+ "argv",
+ "process",
+ "arg",
+ "args",
+ "argument",
+ "arguments",
+ "getopt",
+ "minimist",
+ "optimist"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Appelman",
+ "email": "jappelman@xebia.com",
+ "url": "jbnicolai.com"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "has-flag",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/has-flag.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md
new file mode 100644
index 0000000000..0caca6cba1
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md
@@ -0,0 +1,67 @@
+# has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag)
+
+> Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag
+
+Correctly stops looking after an `--` argument terminator.
+
+
+## Install
+
+```
+$ npm install --save has-flag
+```
+
+
+## Usage
+
+```js
+// foo.js
+const hasFlag = require('has-flag');
+
+hasFlag('unicorn');
+//=> true
+
+hasFlag('--unicorn');
+//=> true
+
+hasFlag('-f');
+//=> true
+
+hasFlag('foo=bar');
+//=> true
+
+hasFlag('foo');
+//=> false
+
+hasFlag('rainbow');
+//=> false
+```
+
+```
+$ node foo.js -f --unicorn --foo=bar -- --rainbow
+```
+
+
+## API
+
+### hasFlag(flag, [argv])
+
+Returns a boolean whether the flag exists.
+
+#### flag
+
+Type: `string`
+
+CLI flag to look for. The `--` prefix is optional.
+
+#### argv
+
+Type: `array`<br>
+Default: `process.argv`
+
+CLI arguments.
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json
index 902348ca1d..6f0d0362b8 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json
@@ -1,49 +1,53 @@
{
- "_from": "supports-color@^2.0.0",
- "_id": "supports-color@2.0.0",
- "_integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "_from": "supports-color@^4.0.0",
+ "_id": "supports-color@4.4.0",
+ "_inBundle": false,
+ "_integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"_location": "/update-notifier/chalk/supports-color",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
- "raw": "supports-color@^2.0.0",
+ "raw": "supports-color@^4.0.0",
"name": "supports-color",
"escapedName": "supports-color",
- "rawSpec": "^2.0.0",
+ "rawSpec": "^4.0.0",
"saveSpec": null,
- "fetchSpec": "^2.0.0"
+ "fetchSpec": "^4.0.0"
},
"_requiredBy": [
"/update-notifier/chalk"
],
- "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "_shasum": "535d045ce6b6363fa40117084629995e9df324c7",
- "_shrinkwrap": null,
- "_spec": "supports-color@^2.0.0",
+ "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "_shasum": "883f7ddabc165142b2a61427f3352ded195d1a3e",
+ "_spec": "supports-color@^4.0.0",
"_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
- "bin": null,
+ "browser": "browser.js",
"bugs": {
"url": "https://github.com/chalk/supports-color/issues"
},
"bundleDependencies": false,
- "dependencies": {},
+ "dependencies": {
+ "has-flag": "^2.0.0"
+ },
"deprecated": false,
"description": "Detect whether a terminal supports color",
"devDependencies": {
- "mocha": "*",
- "require-uncached": "^1.0.2"
+ "ava": "*",
+ "import-fresh": "^2.0.0",
+ "xo": "*"
},
"engines": {
- "node": ">=0.8.0"
+ "node": ">=4"
},
"files": [
- "index.js"
+ "index.js",
+ "browser.js"
],
"homepage": "https://github.com/chalk/supports-color#readme",
"keywords": [
@@ -64,30 +68,18 @@
"support",
"supports",
"capability",
- "detect"
+ "detect",
+ "truecolor",
+ "16m"
],
"license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- }
- ],
"name": "supports-color",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/chalk/supports-color.git"
},
"scripts": {
- "test": "mocha"
+ "test": "xo && ava"
},
- "version": "2.0.0"
+ "version": "4.4.0"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md
index b4761f1ecd..3bef57db0e 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md
@@ -6,23 +6,47 @@
## Install
```
-$ npm install --save supports-color
+$ npm install supports-color
```
## Usage
```js
-var supportsColor = require('supports-color');
+const supportsColor = require('supports-color');
if (supportsColor) {
console.log('Terminal supports color');
}
+
+if (supportsColor.has256) {
+ console.log('Terminal supports 256 colors');
+}
+
+if (supportsColor.has16m) {
+ console.log('Terminal supports 16 million colors (truecolor)');
+}
```
+
+## API
+
+Returns an `Object`, or `false` if color is not supported.
+
+The returned object specifies a level of support for color through a `.level` property and a corresponding flag:
+
+- `.level = 1` and `.hasBasic = true`: Basic color support (16 colors)
+- `.level = 2` and `.has256 = true`: 256 color support
+- `.level = 3` and `.has16m = true`: Truecolor support (16 million colors)
+
+
+## Info
+
It obeys the `--color` and `--no-color` CLI flags.
-For situations where using `--color` is not possible, add an environment variable `FORCE_COLOR` with any value to force color. Trumps `--no-color`.
+Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add the environment variable `FORCE_COLOR=1` to forcefully enable color or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks.
+
+Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively.
## Related
@@ -31,6 +55,12 @@ For situations where using `--color` is not possible, add an environment variabl
- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
+## Maintainers
+
+- [Sindre Sorhus](https://github.com/sindresorhus)
+- [Josh Junon](https://github.com/qix-)
+
+
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/package.json
index 34954626c4..8433207ece 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/package.json
@@ -1,59 +1,55 @@
{
- "_from": "chalk@^1.0.0",
- "_id": "chalk@1.1.3",
- "_integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "_from": "chalk@^2.0.1",
+ "_id": "chalk@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
"_location": "/update-notifier/chalk",
- "_phantomChildren": {
- "ansi-regex": "2.1.1"
- },
+ "_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
- "raw": "chalk@^1.0.0",
+ "raw": "chalk@^2.0.1",
"name": "chalk",
"escapedName": "chalk",
- "rawSpec": "^1.0.0",
+ "rawSpec": "^2.0.1",
"saveSpec": null,
- "fetchSpec": "^1.0.0"
+ "fetchSpec": "^2.0.1"
},
"_requiredBy": [
"/update-notifier",
"/update-notifier/boxen"
],
- "_resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "_shasum": "a8115c55e4a702fe4d150abd3872822a7e09fc98",
- "_shrinkwrap": null,
- "_spec": "chalk@^1.0.0",
+ "_resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "_shasum": "ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e",
+ "_spec": "chalk@^2.0.1",
"_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
- "bin": null,
"bugs": {
"url": "https://github.com/chalk/chalk/issues"
},
"bundleDependencies": false,
"dependencies": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "ansi-styles": "^3.1.0",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^4.0.0"
},
"deprecated": false,
- "description": "Terminal string styling done right. Much color.",
+ "description": "Terminal string styling done right",
"devDependencies": {
+ "ava": "*",
"coveralls": "^2.11.2",
- "matcha": "^0.6.0",
- "mocha": "*",
- "nyc": "^3.0.0",
- "require-uncached": "^1.0.2",
- "resolve-from": "^1.0.0",
- "semver": "^4.3.3",
+ "execa": "^0.7.0",
+ "import-fresh": "^2.0.0",
+ "matcha": "^0.7.0",
+ "nyc": "^11.0.2",
+ "resolve-from": "^3.0.0",
"xo": "*"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"files": [
- "index.js"
+ "index.js",
+ "templates.js"
],
"homepage": "https://github.com/chalk/chalk#readme",
"keywords": [
@@ -80,37 +76,17 @@
"text"
],
"license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
"name": "chalk",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/chalk/chalk.git"
},
"scripts": {
"bench": "matcha benchmark.js",
- "coverage": "nyc npm test && nyc report",
- "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls",
- "test": "xo && mocha"
+ "coveralls": "nyc report --reporter=text-lcov | coveralls",
+ "test": "xo && nyc ava"
},
- "version": "1.1.3",
+ "version": "2.1.0",
"xo": {
"envs": [
"node",
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md
index 5cf111e353..dfcfdf25d8 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md
@@ -1,7 +1,7 @@
<h1 align="center">
<br>
<br>
- <img width="360" src="https://cdn.rawgit.com/chalk/chalk/19935d6484811c5e468817f846b7b3d417d7bf4a/logo.svg" alt="chalk">
+ <img width="320" src="https://cdn.rawgit.com/chalk/chalk/19935d6484811c5e468817f846b7b3d417d7bf4a/logo.svg" alt="chalk">
<br>
<br>
<br>
@@ -9,81 +9,104 @@
> Terminal string styling done right
-[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk)
-[![Coverage Status](https://coveralls.io/repos/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/r/chalk/chalk?branch=master)
-[![](http://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4)
+[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)
-
-[colors.js](https://github.com/Marak/colors.js) used to be the most popular string styling module, but it has serious deficiencies like extending `String.prototype` which causes all kinds of [problems](https://github.com/yeoman/yo/issues/68). Although there are other ones, they either do too much or not enough.
-
-**Chalk is a clean and focused alternative.**
+### [See what's new in Chalk 2](https://github.com/chalk/chalk/releases/tag/v2.0.0)
![](https://github.com/chalk/ansi-styles/raw/master/screenshot.png)
-## Why
+## Highlights
-- Highly performant
-- Doesn't extend `String.prototype`
- Expressive API
+- Highly performant
- Ability to nest styles
-- Clean and focused
+- [256/Truecolor color support](#256-and-truecolor-color-support)
- Auto-detects color support
+- Doesn't extend `String.prototype`
+- Clean and focused
- Actively maintained
-- [Used by ~4500 modules](https://www.npmjs.com/browse/depended/chalk) as of July 15, 2015
+- [Used by ~17,000 packages](https://www.npmjs.com/browse/depended/chalk) as of June 20th, 2017
## Install
-```
-$ npm install --save chalk
+```console
+$ npm install chalk
```
## Usage
+```js
+const chalk = require('chalk');
+
+console.log(chalk.blue('Hello world!'));
+```
+
Chalk comes with an easy to use composable API where you just chain and nest the styles you want.
```js
-var chalk = require('chalk');
-
-// style a string
-chalk.blue('Hello world!');
+const chalk = require('chalk');
+const log = console.log;
-// combine styled and normal strings
-chalk.blue('Hello') + 'World' + chalk.red('!');
+// Combine styled and normal strings
+log(chalk.blue('Hello') + 'World' + chalk.red('!'));
-// compose multiple styles using the chainable API
-chalk.blue.bgRed.bold('Hello world!');
+// Compose multiple styles using the chainable API
+log(chalk.blue.bgRed.bold('Hello world!'));
-// pass in multiple arguments
-chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz');
+// Pass in multiple arguments
+log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz'));
-// nest styles
-chalk.red('Hello', chalk.underline.bgBlue('world') + '!');
+// Nest styles
+log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!'));
-// nest styles of the same type even (color, underline, background)
-chalk.green(
+// Nest styles of the same type even (color, underline, background)
+log(chalk.green(
'I am a green line ' +
chalk.blue.underline.bold('with a blue substring') +
' that becomes green again!'
-);
+));
+
+// ES2015 template literal
+log(`
+CPU: ${chalk.red('90%')}
+RAM: ${chalk.green('40%')}
+DISK: ${chalk.yellow('70%')}
+`);
+
+// ES2015 tagged template literal
+log(chalk`
+CPU: {red ${cpu.totalPercent}%}
+RAM: {green ${ram.used / ram.total * 100}%}
+DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%}
+`);
+
+// Use RGB colors in terminal emulators that support it.
+log(chalk.keyword('orange')('Yay for orange colored text!'));
+log(chalk.rgb(123, 45, 67).underline('Underlined reddish color'));
+log(chalk.hex('#DEADED').bold('Bold gray!'));
```
-Easily define your own themes.
+Easily define your own themes:
```js
-var chalk = require('chalk');
-var error = chalk.bold.red;
+const chalk = require('chalk');
+
+const error = chalk.bold.red;
+const warning = chalk.keyword('orange');
+
console.log(error('Error!'));
+console.log(warning('Warning!'));
```
-Take advantage of console.log [string substitution](http://nodejs.org/docs/latest/api/console.html#console_console_log_data).
+Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args):
```js
-var name = 'Sindre';
+const name = 'Sindre';
console.log(chalk.green('Hello %s'), name);
-//=> Hello Sindre
+//=> 'Hello Sindre'
```
@@ -93,61 +116,46 @@ console.log(chalk.green('Hello %s'), name);
Example: `chalk.red.bold.underline('Hello', 'world');`
-Chain [styles](#styles) and call the last one as a method with a string argument. Order doesn't matter, and later styles take precedent in case of a conflict. This simply means that `Chalk.red.yellow.green` is equivalent to `Chalk.green`.
+Chain [styles](#styles) and call the last one as a method with a string argument. Order doesn't matter, and later styles take precedent in case of a conflict. This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`.
Multiple arguments will be separated by space.
### chalk.enabled
-Color support is automatically detected, but you can override it by setting the `enabled` property. You should however only do this in your own code as it applies globally to all chalk consumers.
+Color support is automatically detected, as is the level (see `chalk.level`). However, if you'd like to simply enable/disable Chalk, you can do so via the `.enabled` property.
+
+Chalk is enabled by default unless expicitly disabled via the constructor or `chalk.level` is `0`.
-If you need to change this in a reusable module create a new instance:
+If you need to change this in a reusable module, create a new instance:
```js
-var ctx = new chalk.constructor({enabled: false});
+const ctx = new chalk.constructor({enabled: false});
```
-### chalk.supportsColor
-
-Detect whether the terminal [supports color](https://github.com/chalk/supports-color). Used internally and handled for you, but exposed for convenience.
-
-Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add an environment variable `FORCE_COLOR` with any value to force color. Trumps `--no-color`.
-
-### chalk.styles
+### chalk.level
-Exposes the styles as [ANSI escape codes](https://github.com/chalk/ansi-styles).
+Color support is automatically detected, but you can override it by setting the `level` property. You should however only do this in your own code as it applies globally to all Chalk consumers.
-Generally not useful, but you might need just the `.open` or `.close` escape code if you're mixing externally styled strings with your own.
+If you need to change this in a reusable module, create a new instance:
```js
-var chalk = require('chalk');
-
-console.log(chalk.styles.red);
-//=> {open: '\u001b[31m', close: '\u001b[39m'}
-
-console.log(chalk.styles.red.open + 'Hello' + chalk.styles.red.close);
+const ctx = new chalk.constructor({level: 0});
```
-### chalk.hasColor(string)
-
-Check whether a string [has color](https://github.com/chalk/has-ansi).
-
-### chalk.stripColor(string)
+Levels are as follows:
-[Strip color](https://github.com/chalk/strip-ansi) from a string.
+0. All colors disabled
+1. Basic color support (16 colors)
+2. 256 color support
+3. Truecolor support (16 million colors)
-Can be useful in combination with `.supportsColor` to strip color on externally styled text when it's not supported.
+### chalk.supportsColor
-Example:
+Detect whether the terminal [supports color](https://github.com/chalk/supports-color). Used internally and handled for you, but exposed for convenience.
-```js
-var chalk = require('chalk');
-var styledString = getText();
+Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add the environment variable `FORCE_COLOR=1` to forcefully enable color or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks.
-if (!chalk.supportsColor) {
- styledString = chalk.stripColor(styledString);
-}
-```
+Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively.
## Styles
@@ -157,11 +165,11 @@ if (!chalk.supportsColor) {
- `reset`
- `bold`
- `dim`
-- `italic` *(not widely supported)*
+- `italic` *(Not widely supported)*
- `underline`
- `inverse`
- `hidden`
-- `strikethrough` *(not widely supported)*
+- `strikethrough` *(Not widely supported)*
### Colors
@@ -169,11 +177,18 @@ if (!chalk.supportsColor) {
- `red`
- `green`
- `yellow`
-- `blue` *(on Windows the bright version is used as normal blue is illegible)*
+- `blue` *(On Windows the bright version is used since normal blue is illegible)*
- `magenta`
- `cyan`
- `white`
-- `gray`
+- `gray` ("bright black")
+- `redBright`
+- `greenBright`
+- `yellowBright`
+- `blueBright`
+- `magentaBright`
+- `cyanBright`
+- `whiteBright`
### Background colors
@@ -185,29 +200,107 @@ if (!chalk.supportsColor) {
- `bgMagenta`
- `bgCyan`
- `bgWhite`
+- `bgBlackBright`
+- `bgRedBright`
+- `bgGreenBright`
+- `bgYellowBright`
+- `bgBlueBright`
+- `bgMagentaBright`
+- `bgCyanBright`
+- `bgWhiteBright`
+
+
+## Tagged template literal
+
+Chalk can be used as a [tagged template literal](http://exploringjs.com/es6/ch_template-literals.html#_tagged-template-literals).
+
+```js
+const chalk = require('chalk');
+
+const miles = 18;
+const calculateFeet = miles => miles * 5280;
+
+console.log(chalk`
+ There are {bold 5280 feet} in a mile.
+ In {bold ${miles} miles}, there are {green.bold ${calculateFeet(miles)} feet}.
+`);
+```
+
+Blocks are delimited by an opening curly brace (`{`), a style, some content, and a closing curly brace (`}`).
+
+Template styles are chained exactly like normal Chalk styles. The following two statements are equivalent:
+
+```js
+console.log(chalk.bold.rgb(10, 100, 200)('Hello!'));
+console.log(chalk`{bold.rgb(10,100,200) Hello!}`);
+```
+
+Note that function styles (`rgb()`, `hsl()`, `keyword()`, etc.) may not contain spaces between parameters.
+All interpolated values (`` chalk`${foo}` ``) are converted to strings via the `.toString()` method. All curly braces (`{` and `}`) in interpolated value strings are escaped.
-## 256-colors
-Chalk does not support anything other than the base eight colors, which guarantees it will work on all terminals and systems. Some terminals, specifically `xterm` compliant ones, will support the full range of 8-bit colors. For this the lower level [ansi-256-colors](https://github.com/jbnicolai/ansi-256-colors) package can be used.
+## 256 and Truecolor color support
+
+Chalk supports 256 colors and [Truecolor](https://gist.github.com/XVilka/8346728) (16 million colors) on supported terminal apps.
+
+Colors are downsampled from 16 million RGB values to an ANSI color format that is supported by the terminal emulator (or by specifying `{level: n}` as a Chalk option). For example, Chalk configured to run at level 1 (basic color support) will downsample an RGB value of #FF0000 (red) to 31 (ANSI escape for red).
+
+Examples:
+
+- `chalk.hex('#DEADED').underline('Hello, world!')`
+- `chalk.keyword('orange')('Some orange text')`
+- `chalk.rgb(15, 100, 204).inverse('Hello!')`
+
+Background versions of these models are prefixed with `bg` and the first level of the module capitalized (e.g. `keyword` for foreground colors and `bgKeyword` for background colors).
+
+- `chalk.bgHex('#DEADED').underline('Hello, world!')`
+- `chalk.bgKeyword('orange')('Some orange text')`
+- `chalk.bgRgb(15, 100, 204).inverse('Hello!')`
+
+The following color models can be used:
+
+- [`rgb`](https://en.wikipedia.org/wiki/RGB_color_model) - Example: `chalk.rgb(255, 136, 0).bold('Orange!')`
+- [`hex`](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet) - Example: `chalk.hex('#FF8800').bold('Orange!')`
+- [`keyword`](https://www.w3.org/wiki/CSS/Properties/color/keywords) (CSS keywords) - Example: `chalk.keyword('orange').bold('Orange!')`
+- [`hsl`](https://en.wikipedia.org/wiki/HSL_and_HSV) - Example: `chalk.hsl(32, 100, 50).bold('Orange!')`
+- [`hsv`](https://en.wikipedia.org/wiki/HSL_and_HSV) - Example: `chalk.hsl(32, 1, 1).bold('Orange!')`
+- [`hwb`](https://en.wikipedia.org/wiki/HWB_color_model) - Example: `chalk.hsl(32, 0, 50).bold('Orange!')`
+- `ansi16`
+- `ansi256`
## Windows
-If you're on Windows, do yourself a favor and use [`cmder`](http://bliker.github.io/cmder/) instead of `cmd.exe`.
+If you're on Windows, do yourself a favor and use [`cmder`](http://cmder.net/) instead of `cmd.exe`.
+
+
+## Origin story
+
+[colors.js](https://github.com/Marak/colors.js) used to be the most popular string styling module, but it has serious deficiencies like extending `String.prototype` which causes all kinds of [problems](https://github.com/yeoman/yo/issues/68) and the package is unmaintained. Although there are other packages, they either do too much or not enough. Chalk is a clean and focused alternative.
## Related
- [chalk-cli](https://github.com/chalk/chalk-cli) - CLI for this module
-- [ansi-styles](https://github.com/chalk/ansi-styles/) - ANSI escape codes for styling strings in the terminal
-- [supports-color](https://github.com/chalk/supports-color/) - Detect whether a terminal supports color
+- [ansi-styles](https://github.com/chalk/ansi-styles) - ANSI escape codes for styling strings in the terminal
+- [supports-color](https://github.com/chalk/supports-color) - Detect whether a terminal supports color
- [strip-ansi](https://github.com/chalk/strip-ansi) - Strip ANSI escape codes
- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
- [wrap-ansi](https://github.com/chalk/wrap-ansi) - Wordwrap a string with ANSI escape codes
+- [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes
+- [color-convert](https://github.com/qix-/color-convert) - Converts colors between different models
+- [chalk-animation](https://github.com/bokub/chalk-animation) - Animate strings in the terminal
+- [gradient-string](https://github.com/bokub/gradient-string) - Apply color gradients to strings
+
+
+## Maintainers
+
+- [Sindre Sorhus](https://github.com/sindresorhus)
+- [Josh Junon](https://github.com/qix-)
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/templates.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/templates.js
new file mode 100644
index 0000000000..101551528a
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/chalk/templates.js
@@ -0,0 +1,128 @@
+'use strict';
+const TEMPLATE_REGEX = /(?:\\(u[a-f0-9]{4}|x[a-f0-9]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
+const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
+const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
+const ESCAPE_REGEX = /\\(u[0-9a-f]{4}|x[0-9a-f]{2}|.)|([^\\])/gi;
+
+const ESCAPES = {
+ n: '\n',
+ r: '\r',
+ t: '\t',
+ b: '\b',
+ f: '\f',
+ v: '\v',
+ 0: '\0',
+ '\\': '\\',
+ e: '\u001b',
+ a: '\u0007'
+};
+
+function unescape(c) {
+ if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {
+ return String.fromCharCode(parseInt(c.slice(1), 16));
+ }
+
+ return ESCAPES[c] || c;
+}
+
+function parseArguments(name, args) {
+ const results = [];
+ const chunks = args.trim().split(/\s*,\s*/g);
+ let matches;
+
+ for (const chunk of chunks) {
+ if (!isNaN(chunk)) {
+ results.push(Number(chunk));
+ } else if ((matches = chunk.match(STRING_REGEX))) {
+ results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr));
+ } else {
+ throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
+ }
+ }
+
+ return results;
+}
+
+function parseStyle(style) {
+ STYLE_REGEX.lastIndex = 0;
+
+ const results = [];
+ let matches;
+
+ while ((matches = STYLE_REGEX.exec(style)) !== null) {
+ const name = matches[1];
+
+ if (matches[2]) {
+ const args = parseArguments(name, matches[2]);
+ results.push([name].concat(args));
+ } else {
+ results.push([name]);
+ }
+ }
+
+ return results;
+}
+
+function buildStyle(chalk, styles) {
+ const enabled = {};
+
+ for (const layer of styles) {
+ for (const style of layer.styles) {
+ enabled[style[0]] = layer.inverse ? null : style.slice(1);
+ }
+ }
+
+ let current = chalk;
+ for (const styleName of Object.keys(enabled)) {
+ if (Array.isArray(enabled[styleName])) {
+ if (!(styleName in current)) {
+ throw new Error(`Unknown Chalk style: ${styleName}`);
+ }
+
+ if (enabled[styleName].length > 0) {
+ current = current[styleName].apply(current, enabled[styleName]);
+ } else {
+ current = current[styleName];
+ }
+ }
+ }
+
+ return current;
+}
+
+module.exports = (chalk, tmp) => {
+ const styles = [];
+ const chunks = [];
+ let chunk = [];
+
+ // eslint-disable-next-line max-params
+ tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => {
+ if (escapeChar) {
+ chunk.push(unescape(escapeChar));
+ } else if (style) {
+ const str = chunk.join('');
+ chunk = [];
+ chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str));
+ styles.push({inverse, styles: parseStyle(style)});
+ } else if (close) {
+ if (styles.length === 0) {
+ throw new Error('Found extraneous } in Chalk template literal');
+ }
+
+ chunks.push(buildStyle(chalk, styles)(chunk.join('')));
+ chunk = [];
+ styles.pop();
+ } else {
+ chunk.push(chr);
+ }
+ });
+
+ chunks.push(chunk.join(''));
+
+ if (styles.length > 0) {
+ const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
+ throw new Error(errMsg);
+ }
+
+ return chunks.join('');
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/index.js b/deps/npm/node_modules/update-notifier/node_modules/configstore/index.js
index 166de5349f..4883613cad 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/configstore/index.js
@@ -10,7 +10,7 @@ const uniqueString = require('unique-string');
const configDir = xdgBasedir.config || path.join(os.tmpdir(), uniqueString());
const permissionError = 'You don\'t have access to this file.';
-const defaultPathMode = 0o0700;
+const makeDirOptions = {mode: 0o0700};
const writeFileOptions = {mode: 0o0600};
class Configstore {
@@ -30,7 +30,7 @@ class Configstore {
} catch (err) {
// Create dir if it doesn't exist
if (err.code === 'ENOENT') {
- makeDir.sync(path.dirname(this.path), defaultPathMode);
+ makeDir.sync(path.dirname(this.path), makeDirOptions);
return {};
}
@@ -51,7 +51,7 @@ class Configstore {
set all(val) {
try {
// Make sure the folder exists as it could have been deleted in the meantime
- makeDir.sync(path.dirname(this.path), defaultPathMode);
+ makeDir.sync(path.dirname(this.path), makeDirOptions);
writeFileAtomic.sync(this.path, JSON.stringify(val, null, '\t'), writeFileOptions);
} catch (err) {
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js
index 59a0e22644..15282bb392 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js
+++ b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js
@@ -53,9 +53,10 @@ module.exports = {
set(obj, path, value) {
if (!isObj(obj) || typeof path !== 'string') {
- return;
+ return obj;
}
+ const root = obj;
const pathArr = getPathSegments(path);
for (let i = 0; i < pathArr.length; i++) {
@@ -71,6 +72,8 @@ module.exports = {
obj = obj[p];
}
+
+ return root;
},
delete(obj, path) {
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json
index ae0d9f8b45..1512c61aff 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json
@@ -1,7 +1,8 @@
{
"_from": "dot-prop@^4.1.0",
- "_id": "dot-prop@4.1.1",
- "_integrity": "sha1-qEk/C3te7sglJbXHWH+n3nyoWcE=",
+ "_id": "dot-prop@4.2.0",
+ "_inBundle": false,
+ "_integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
"_location": "/update-notifier/configstore/dot-prop",
"_phantomChildren": {},
"_requested": {
@@ -17,9 +18,8 @@
"_requiredBy": [
"/update-notifier/configstore"
],
- "_resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.1.1.tgz",
- "_shasum": "a8493f0b7b5eeec82525b5c7587fa7de7ca859c1",
- "_shrinkwrap": null,
+ "_resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "_shasum": "1f19e0c2e1aa0e32797c49799f2837ac6af69c57",
"_spec": "dot-prop@^4.1.0",
"_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/configstore",
"author": {
@@ -27,7 +27,6 @@
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/sindresorhus/dot-prop/issues"
},
@@ -66,8 +65,6 @@
],
"license": "MIT",
"name": "dot-prop",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/dot-prop.git"
@@ -76,7 +73,7 @@
"bench": "matcha bench.js",
"test": "xo && ava"
},
- "version": "4.1.1",
+ "version": "4.2.0",
"xo": {
"esnext": true
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md
index f612c47f7a..fab3b7afe0 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md
@@ -34,6 +34,10 @@ dotProp.set(obj, 'foo.bar', 'b');
console.log(obj);
//=> {foo: {bar: 'b'}}
+const foo = dotProp.set({}, 'foo.bar', 'c');
+console.log(foo);
+//=> {foo: {bar: 'c'}}
+
dotProp.set(obj, 'foo.baz', 'x');
console.log(obj);
//=> {foo: {bar: 'b', baz: 'x'}}
@@ -61,6 +65,8 @@ console.log(obj);
### set(obj, path, value)
+Returns the object.
+
### has(obj, path)
### delete(obj, path)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/package.json b/deps/npm/node_modules/update-notifier/node_modules/configstore/package.json
index 3e86ca418e..46762de578 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/package.json
+++ b/deps/npm/node_modules/update-notifier/node_modules/configstore/package.json
@@ -1,8 +1,8 @@
{
"_from": "configstore@^3.0.0",
- "_id": "configstore@3.1.0",
+ "_id": "configstore@3.1.1",
"_inBundle": false,
- "_integrity": "sha1-Rd+QcHPibfoc9LLVL1tgVF6qEdE=",
+ "_integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==",
"_location": "/update-notifier/configstore",
"_phantomChildren": {},
"_requested": {
@@ -18,10 +18,10 @@
"_requiredBy": [
"/update-notifier"
],
- "_resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.0.tgz",
- "_shasum": "45df907073e26dfa1cf4b2d52f5b60545eaa11d1",
+ "_resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz",
+ "_shasum": "094ee662ab83fad9917678de114faaea8fcdca90",
"_spec": "configstore@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -75,5 +75,5 @@
"scripts": {
"test": "xo && ava"
},
- "version": "3.1.0"
+ "version": "3.1.1"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/readme.md b/deps/npm/node_modules/update-notifier/node_modules/configstore/readme.md
index 1613e5a833..6af37719bc 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/readme.md
+++ b/deps/npm/node_modules/update-notifier/node_modules/configstore/readme.md
@@ -5,7 +5,7 @@
Config is stored in a JSON file located in `$XDG_CONFIG_HOME` or `~/.config`.<br>
Example: `~/.config/configstore/some-id.json`
-*If you need this for Electron, check out [`electron-config`](https://github.com/sindresorhus/electron-config) instead.*
+*If you need this for Electron, check out [`electron-store`](https://github.com/sindresorhus/electron-store) instead.*
## Usage
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/index.js b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/index.js
new file mode 100644
index 0000000000..5092c2b2da
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/index.js
@@ -0,0 +1,5 @@
+'use strict';
+const globalDirs = require('global-dirs');
+const isPathInside = require('is-path-inside');
+
+module.exports = isPathInside(__dirname, globalDirs.yarn.packages) || isPathInside(__dirname, globalDirs.npm.packages);
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/license b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/strip-ansi/license
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/license
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js
new file mode 100644
index 0000000000..c88287c0b0
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js
@@ -0,0 +1,89 @@
+'use strict';
+const path = require('path');
+const os = require('os');
+const fs = require('fs');
+const ini = require('ini');
+
+const readRc = fp => {
+ try {
+ return ini.parse(fs.readFileSync(fp, 'utf8')).prefix;
+ } catch (err) {}
+};
+
+const defaultNpmPrefix = (() => {
+ if (process.env.PREFIX) {
+ return process.env.PREFIX;
+ }
+
+ if (process.platform === 'win32') {
+ // `c:\node\node.exe` → `prefix=c:\node\`
+ return path.dirname(process.execPath);
+ }
+
+ // `/usr/local/bin/node` → `prefix=/usr/local`
+ return path.dirname(path.dirname(process.execPath));
+})();
+
+const getNpmPrefix = () => {
+ if (process.env.PREFIX) {
+ return process.env.PREFIX;
+ }
+
+ const homePrefix = readRc(path.join(os.homedir(), '.npmrc'));
+ if (homePrefix) {
+ return homePrefix;
+ }
+
+ const globalConfigPrefix = readRc(path.resolve(defaultNpmPrefix, 'etc', 'npmrc'));
+ if (globalConfigPrefix) {
+ return globalConfigPrefix;
+ }
+
+ if (process.platform === 'win32') {
+ // Hardcoded contents of `c:\Program Files\nodejs\node_modules\npm\.npmrc`
+ return path.join(process.env.APPDATA, 'npm');
+ }
+
+ return defaultNpmPrefix;
+};
+
+const npmPrefix = path.resolve(getNpmPrefix());
+
+const getYarnPrefix = () => {
+ if (process.env.PREFIX) {
+ return process.env.PREFIX;
+ }
+
+ if (process.platform === 'win32') {
+ if (process.env.LOCALAPPDATA) {
+ const prefix = path.join(process.env.LOCALAPPDATA, 'Yarn');
+ if (fs.existsSync(prefix)) {
+ return prefix;
+ }
+ }
+ }
+
+ const configPrefix = path.join(os.homedir(), '.config/yarn');
+ if (fs.existsSync(configPrefix)) {
+ return configPrefix;
+ }
+
+ const homePrefix = path.join(os.homedir(), '.yarn-config');
+ if (fs.existsSync(homePrefix)) {
+ return homePrefix;
+ }
+
+ // Yarn supports the npm conventions but the inverse is not true
+ return npmPrefix;
+};
+
+exports.npm = {};
+exports.npm.prefix = npmPrefix;
+exports.npm.packages = path.join(npmPrefix, process.platform === 'win32' ? 'node_modules' : 'lib/node_modules');
+exports.npm.binaries = process.platform === 'win32' ? npmPrefix : path.join(npmPrefix, 'bin');
+
+const yarnPrefix = path.resolve(getYarnPrefix());
+exports.yarn = {};
+exports.yarn.prefix = yarnPrefix;
+exports.yarn.packages = path.join(yarnPrefix, process.platform === 'win32' ? 'config/global/node_modules' : 'global/node_modules');
+exports.yarn.binaries = path.join(exports.yarn.packages, '.bin');
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/license b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/license
new file mode 100644
index 0000000000..e7af2f7710
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/license
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json
new file mode 100644
index 0000000000..65334a0279
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json
@@ -0,0 +1,84 @@
+{
+ "_from": "global-dirs@^0.1.0",
+ "_id": "global-dirs@0.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-ENNAOeDfBCcuJizyQiT3IJQ0308=",
+ "_location": "/update-notifier/is-installed-globally/global-dirs",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "global-dirs@^0.1.0",
+ "name": "global-dirs",
+ "escapedName": "global-dirs",
+ "rawSpec": "^0.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.1.0"
+ },
+ "_requiredBy": [
+ "/update-notifier/is-installed-globally"
+ ],
+ "_resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.0.tgz",
+ "_shasum": "10d34039e0df04272e262cf24224f7209434df4f",
+ "_spec": "global-dirs@^0.1.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/is-installed-globally",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/global-dirs/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ini": "^1.3.4"
+ },
+ "deprecated": false,
+ "description": "Get the directory of globally installed packages and binaries",
+ "devDependencies": {
+ "ava": "*",
+ "execa": "^0.7.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/global-dirs#readme",
+ "keywords": [
+ "global",
+ "prefix",
+ "path",
+ "paths",
+ "npm",
+ "yarn",
+ "node",
+ "modules",
+ "node-modules",
+ "package",
+ "packages",
+ "binary",
+ "binaries",
+ "bin",
+ "directory",
+ "directories",
+ "npmrc",
+ "rc",
+ "config",
+ "root",
+ "resolve"
+ ],
+ "license": "MIT",
+ "name": "global-dirs",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/global-dirs.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "0.1.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/readme.md b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/readme.md
new file mode 100644
index 0000000000..1acea6d739
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/readme.md
@@ -0,0 +1,69 @@
+# global-dirs [![Build Status](https://travis-ci.org/sindresorhus/global-dirs.svg?branch=master)](https://travis-ci.org/sindresorhus/global-dirs)
+
+> Get the directory of globally installed packages and binaries
+
+Uses the same resolution logic as `npm` and `yarn`.
+
+
+## Install
+
+```
+$ npm install global-dirs
+```
+
+
+## Usage
+
+```js
+const globalDirs = require('global-dirs');
+
+console.log(globalDirs.npm.prefix);
+//=> '/usr/local'
+
+console.log(globalDirs.npm.packages);
+//=> '/usr/local/lib/node_modules'
+
+console.log(globalDirs.npm.binaries);
+//=> '/usr/local/bin'
+
+console.log(globalDirs.yarn.packages);
+//=> '/Users/sindresorhus/.config/yarn/global/node_modules'
+```
+
+
+## API
+
+### globalDirs
+
+#### npm
+#### yarn
+
+##### packages
+
+Directory with globally installed packages.
+
+Equivalent to `npm root --global`.
+
+##### binaries
+
+Directory with globally installed binaries.
+
+Equivalent to `npm bin --global`.
+
+##### prefix
+
+Directory with directories for packages and binaries. You probably want either of the above.
+
+Equivalent to `npm prefix --global`.
+
+
+## Related
+
+- [import-global](https://github.com/sindresorhus/import-global) - Import a globally installed module
+- [resolve-global](https://github.com/sindresorhus/resolve-global) - Resolve the path of a globally installed module
+- [is-installed-globally](https://github.com/sindresorhus/is-installed-globally) - Check if your package was installed globally
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/index.js b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/index.js
new file mode 100644
index 0000000000..0a4d2fd1e5
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/index.js
@@ -0,0 +1,14 @@
+'use strict';
+var path = require('path');
+var pathIsInside = require('path-is-inside');
+
+module.exports = function (a, b) {
+ a = path.resolve(a);
+ b = path.resolve(b);
+
+ if (a === b) {
+ return false;
+ }
+
+ return pathIsInside(a, b);
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json
new file mode 100644
index 0000000000..c56279c7cb
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json
@@ -0,0 +1,68 @@
+{
+ "_from": "is-path-inside@^1.0.0",
+ "_id": "is-path-inside@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
+ "_location": "/update-notifier/is-installed-globally/is-path-inside",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-path-inside@^1.0.0",
+ "name": "is-path-inside",
+ "escapedName": "is-path-inside",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/update-notifier/is-installed-globally"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
+ "_shasum": "fc06e5a1683fbda13de667aff717bbc10a48f37f",
+ "_spec": "is-path-inside@^1.0.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/is-installed-globally",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "http://sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-path-inside/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "path-is-inside": "^1.0.1"
+ },
+ "deprecated": false,
+ "description": "Check if a path is inside another path",
+ "devDependencies": {
+ "mocha": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-path-inside#readme",
+ "keywords": [
+ "path",
+ "inside",
+ "folder",
+ "directory",
+ "dir",
+ "file",
+ "resolve"
+ ],
+ "license": "MIT",
+ "name": "is-path-inside",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-path-inside.git"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md
new file mode 100644
index 0000000000..0e4eb74f75
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md
@@ -0,0 +1,31 @@
+# is-path-inside [![Build Status](https://travis-ci.org/sindresorhus/is-path-inside.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-inside)
+
+> Check if a path is inside another path
+
+
+## Install
+
+```sh
+$ npm install --save is-path-inside
+```
+
+
+## Usage
+
+```js
+var isPathInside = require('is-path-inside');
+
+isPathInside('a/b', 'a/b/c');
+//=> true
+
+isPathInside('x/y', 'a/b/c');
+//=> false
+
+isPathInside('a/b/c', 'a/b/c');
+//=> false
+```
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json
new file mode 100644
index 0000000000..d89580e7d1
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json
@@ -0,0 +1,83 @@
+{
+ "_from": "is-installed-globally@^0.1.0",
+ "_id": "is-installed-globally@0.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
+ "_location": "/update-notifier/is-installed-globally",
+ "_phantomChildren": {
+ "ini": "1.3.4",
+ "path-is-inside": "1.0.2"
+ },
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-installed-globally@^0.1.0",
+ "name": "is-installed-globally",
+ "escapedName": "is-installed-globally",
+ "rawSpec": "^0.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.1.0"
+ },
+ "_requiredBy": [
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
+ "_shasum": "0dfd98f5a9111716dd535dda6492f67bf3d25a80",
+ "_spec": "is-installed-globally@^0.1.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-installed-globally/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Check if your package was installed globally",
+ "devDependencies": {
+ "ava": "*",
+ "execa": "^0.7.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-installed-globally#readme",
+ "keywords": [
+ "global",
+ "package",
+ "globally",
+ "module",
+ "install",
+ "installed",
+ "npm",
+ "yarn",
+ "is",
+ "check",
+ "detect",
+ "local",
+ "locally",
+ "cli",
+ "bin",
+ "binary"
+ ],
+ "license": "MIT",
+ "name": "is-installed-globally",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-installed-globally.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "0.1.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/readme.md b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/readme.md
new file mode 100644
index 0000000000..f3c93386d3
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/readme.md
@@ -0,0 +1,39 @@
+# is-installed-globally [![Build Status](https://travis-ci.org/sindresorhus/is-installed-globally.svg?branch=master)](https://travis-ci.org/sindresorhus/is-installed-globally)
+
+> Check if your package was installed globally
+
+Can be useful if your CLI needs different behavior when installed globally and locally.
+
+
+## Install
+
+```
+$ npm install is-installed-globally
+```
+
+
+## Usage
+
+```js
+const isInstalledGlobally = require('is-installed-globally');
+
+// With `npm install your-package`
+console.log(isInstalledGlobally);
+//=> false
+
+// With `npm install --global your-package`
+console.log(isInstalledGlobally);
+//=> true
+```
+
+
+## Related
+
+- [import-global](https://github.com/sindresorhus/import-global) - Import a globally installed module
+- [resolve-global](https://github.com/sindresorhus/resolve-global) - Resolve the path of a globally installed module
+- [global-dirs](https://github.com/sindresorhus/global-dirs) - Get the directory of globally installed packages and binaries
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)