diff options
-rw-r--r-- | node_modules/chalk/index.js | 46 | ||||
-rw-r--r-- | node_modules/chalk/node_modules/ansi-regex/index.js | 4 | ||||
-rw-r--r-- | node_modules/chalk/node_modules/ansi-regex/license | 21 | ||||
-rw-r--r-- | node_modules/chalk/node_modules/ansi-regex/package.json | 110 | ||||
-rw-r--r-- | node_modules/chalk/node_modules/ansi-regex/readme.md | 31 | ||||
-rw-r--r-- | node_modules/chalk/node_modules/strip-ansi/index.js | 6 | ||||
-rw-r--r-- | node_modules/chalk/node_modules/strip-ansi/license | 21 | ||||
-rw-r--r-- | node_modules/chalk/node_modules/strip-ansi/package.json | 108 | ||||
-rw-r--r-- | node_modules/chalk/node_modules/strip-ansi/readme.md | 33 | ||||
-rw-r--r-- | node_modules/chalk/package.json | 51 | ||||
-rw-r--r-- | node_modules/chalk/readme.md | 31 |
11 files changed, 420 insertions, 42 deletions
diff --git a/node_modules/chalk/index.js b/node_modules/chalk/index.js index 4138a64dd..cbe928862 100644 --- a/node_modules/chalk/index.js +++ b/node_modules/chalk/index.js @@ -5,6 +5,7 @@ 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); function Chalk(options) { // detect mode if not set manually @@ -12,22 +13,10 @@ function Chalk(options) { } // use bright blue on Windows as the normal blue color is illegible -if (process.platform === 'win32') { +if (isSimpleWindowsTerm) { ansiStyles.blue.open = '\u001b[94m'; } -function build(_styles) { - var builder = function builder() { - 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. - builder.__proto__ = proto; - return builder; -} - var styles = (function () { var ret = {}; @@ -46,11 +35,27 @@ var styles = (function () { var proto = defineProps(function chalk() {}, styles); +function build(_styles) { + var builder = function builder() { + 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 no-proto: 0 */ + builder.__proto__ = 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]); + if (argsLen > 1) { // don't slice `arguments`, it prevents v8 optimizations for (var a = 1; a < argsLen; a++) { @@ -62,18 +67,29 @@ function applyStyle() { return str; } - /*jshint validthis: true */ 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)) { + ansiStyles.dim.open = ''; + } + while (i--) { var code = ansiStyles[nestedStyles[i]]; + // 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; } + // Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue. + ansiStyles.dim.open = originalDim; + return str; } diff --git a/node_modules/chalk/node_modules/ansi-regex/index.js b/node_modules/chalk/node_modules/ansi-regex/index.js new file mode 100644 index 000000000..4906755bc --- /dev/null +++ b/node_modules/chalk/node_modules/ansi-regex/index.js @@ -0,0 +1,4 @@ +'use strict'; +module.exports = function () { + return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; +}; diff --git a/node_modules/chalk/node_modules/ansi-regex/license b/node_modules/chalk/node_modules/ansi-regex/license new file mode 100644 index 000000000..654d0bfe9 --- /dev/null +++ b/node_modules/chalk/node_modules/ansi-regex/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +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/node_modules/chalk/node_modules/ansi-regex/package.json b/node_modules/chalk/node_modules/ansi-regex/package.json new file mode 100644 index 000000000..290fbfef1 --- /dev/null +++ b/node_modules/chalk/node_modules/ansi-regex/package.json @@ -0,0 +1,110 @@ +{ + "_args": [ + [ + "ansi-regex@^2.0.0", + "/Users/rebecca/code/npm/node_modules/chalk/node_modules/strip-ansi" + ] + ], + "_from": "ansi-regex@>=2.0.0 <3.0.0", + "_id": "ansi-regex@2.0.0", + "_inCache": true, + "_location": "/chalk/ansi-regex", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.11.2", + "_phantomChildren": {}, + "_requested": { + "name": "ansi-regex", + "raw": "ansi-regex@^2.0.0", + "rawSpec": "^2.0.0", + "scope": null, + "spec": ">=2.0.0 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/chalk/strip-ansi" + ], + "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", + "_shrinkwrap": null, + "_spec": "ansi-regex@^2.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/chalk/node_modules/strip-ansi", + "author": { + "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/ansi-regex/issues" + }, + "dependencies": {}, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "mocha": "*" + }, + "directories": {}, + "dist": { + "shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", + "tarball": "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "gitHead": "57c3f2941a73079fa8b081e02a522e3d29913e2f", + "homepage": "https://github.com/sindresorhus/ansi-regex", + "keywords": [ + "256", + "ansi", + "cli", + "color", + "colors", + "colour", + "command-line", + "console", + "escape", + "find", + "formatting", + "match", + "pattern", + "re", + "regex", + "regexp", + "rgb", + "shell", + "string", + "styles", + "terminal", + "test", + "text", + "tty", + "xterm" + ], + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "jbnicolai", + "email": "jappelman@xebia.com" + } + ], + "name": "ansi-regex", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/ansi-regex" + }, + "scripts": { + "test": "mocha test/test.js", + "view-supported": "node test/viewCodes.js" + }, + "version": "2.0.0" +} diff --git a/node_modules/chalk/node_modules/ansi-regex/readme.md b/node_modules/chalk/node_modules/ansi-regex/readme.md new file mode 100644 index 000000000..1a4894ec1 --- /dev/null +++ b/node_modules/chalk/node_modules/ansi-regex/readme.md @@ -0,0 +1,31 @@ +# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/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 +var 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'] +``` + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/chalk/node_modules/strip-ansi/index.js b/node_modules/chalk/node_modules/strip-ansi/index.js new file mode 100644 index 000000000..099480fbf --- /dev/null +++ b/node_modules/chalk/node_modules/strip-ansi/index.js @@ -0,0 +1,6 @@ +'use strict'; +var ansiRegex = require('ansi-regex')(); + +module.exports = function (str) { + return typeof str === 'string' ? str.replace(ansiRegex, '') : str; +}; diff --git a/node_modules/chalk/node_modules/strip-ansi/license b/node_modules/chalk/node_modules/strip-ansi/license new file mode 100644 index 000000000..654d0bfe9 --- /dev/null +++ b/node_modules/chalk/node_modules/strip-ansi/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +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/node_modules/chalk/node_modules/strip-ansi/package.json b/node_modules/chalk/node_modules/strip-ansi/package.json new file mode 100644 index 000000000..e1ed446b2 --- /dev/null +++ b/node_modules/chalk/node_modules/strip-ansi/package.json @@ -0,0 +1,108 @@ +{ + "_args": [ + [ + "strip-ansi@^3.0.0", + "/Users/rebecca/code/npm/node_modules/chalk" + ] + ], + "_from": "strip-ansi@>=3.0.0 <4.0.0", + "_id": "strip-ansi@3.0.0", + "_inCache": true, + "_location": "/chalk/strip-ansi", + "_nodeVersion": "0.12.5", + "_npmUser": { + "email": "sindresorhus@gmail.com", + "name": "sindresorhus" + }, + "_npmVersion": "2.11.2", + "_phantomChildren": {}, + "_requested": { + "name": "strip-ansi", + "raw": "strip-ansi@^3.0.0", + "rawSpec": "^3.0.0", + "scope": null, + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/chalk" + ], + "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "_shasum": "7510b665567ca914ccb5d7e072763ac968be3724", + "_shrinkwrap": null, + "_spec": "strip-ansi@^3.0.0", + "_where": "/Users/rebecca/code/npm/node_modules/chalk", + "author": { + "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "0.0.4" + }, + "directories": {}, + "dist": { + "shasum": "7510b665567ca914ccb5d7e072763ac968be3724", + "tarball": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "gitHead": "3f05b9810e1438f946e2eb84ee854cc00b972e9e", + "homepage": "https://github.com/sindresorhus/strip-ansi", + "keywords": [ + "256", + "ansi", + "color", + "colors", + "colour", + "command-line", + "console", + "escape", + "formatting", + "log", + "logging", + "remove", + "rgb", + "shell", + "string", + "strip", + "styles", + "terminal", + "text", + "trim", + "tty", + "xterm" + ], + "license": "MIT", + "maintainers": [ + { + "name": "sindresorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "jbnicolai", + "email": "jappelman@xebia.com" + } + ], + "name": "strip-ansi", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/strip-ansi" + }, + "scripts": { + "test": "node test.js" + }, + "version": "3.0.0" +} diff --git a/node_modules/chalk/node_modules/strip-ansi/readme.md b/node_modules/chalk/node_modules/strip-ansi/readme.md new file mode 100644 index 000000000..76091512d --- /dev/null +++ b/node_modules/chalk/node_modules/strip-ansi/readme.md @@ -0,0 +1,33 @@ +# strip-ansi [![Build Status](https://travis-ci.org/sindresorhus/strip-ansi.svg?branch=master)](https://travis-ci.org/sindresorhus/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/sindresorhus/strip-ansi-cli) - CLI for this module +- [has-ansi](https://github.com/sindresorhus/has-ansi) - Check if a string has 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/node_modules/chalk/package.json b/node_modules/chalk/package.json index a5060fd17..08a4a5a8e 100644 --- a/node_modules/chalk/package.json +++ b/node_modules/chalk/package.json @@ -6,15 +6,15 @@ ] ], "_from": "chalk@>=1.0.0 <2.0.0", - "_id": "chalk@1.0.0", + "_id": "chalk@1.1.0", "_inCache": true, "_location": "/chalk", - "_nodeVersion": "0.12.0", + "_nodeVersion": "0.12.4", "_npmUser": { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" + "email": "jappelman@xebia.com", + "name": "jbnicolai" }, - "_npmVersion": "2.5.1", + "_npmVersion": "2.10.1", "_phantomChildren": {}, "_requested": { "name": "chalk", @@ -27,30 +27,35 @@ "_requiredBy": [ "/har-validator" ], - "_resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz", - "_shasum": "b3cf4ed0ff5397c99c75b8f679db2f52831f96dc", + "_resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.0.tgz", + "_shasum": "09b453cec497a75520e4a60ae48214a8700e0921", "_shrinkwrap": null, "_spec": "chalk@^1.0.0", "_where": "/Users/rebecca/code/npm/node_modules/har-validator", "bugs": { - "url": "https://github.com/sindresorhus/chalk/issues" + "url": "https://github.com/chalk/chalk/issues" }, "dependencies": { - "ansi-styles": "^2.0.1", + "ansi-styles": "^2.1.0", "escape-string-regexp": "^1.0.2", - "has-ansi": "^1.0.3", - "strip-ansi": "^2.0.1", - "supports-color": "^1.3.0" + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "description": "Terminal string styling done right. Much color.", "devDependencies": { + "coveralls": "^2.11.2", "matcha": "^0.6.0", - "mocha": "*" + "mocha": "*", + "nyc": "^3.0.0", + "require-uncached": "^1.0.2", + "resolve-from": "^1.0.0", + "semver": "^4.3.3" }, "directories": {}, "dist": { - "shasum": "b3cf4ed0ff5397c99c75b8f679db2f52831f96dc", - "tarball": "http://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz" + "shasum": "09b453cec497a75520e4a60ae48214a8700e0921", + "tarball": "http://registry.npmjs.org/chalk/-/chalk-1.1.0.tgz" }, "engines": { "node": ">=0.10.0" @@ -58,8 +63,8 @@ "files": [ "index.js" ], - "gitHead": "8864d3563313ed15574a38dd5c9d5966080c46ce", - "homepage": "https://github.com/sindresorhus/chalk", + "gitHead": "e9bb6e6000b1c5d4508afabfdc85dd70f582f515", + "homepage": "https://github.com/chalk/chalk", "keywords": [ "256", "ansi", @@ -74,7 +79,9 @@ "logging", "rgb", "shell", + "str", "string", + "style", "styles", "terminal", "text", @@ -90,17 +97,23 @@ { "name": "jbnicolai", "email": "jappelman@xebia.com" + }, + { + "name": "unicorn", + "email": "sindresorhus+unicorn@gmail.com" } ], "name": "chalk", "optionalDependencies": {}, "repository": { "type": "git", - "url": "https://github.com/sindresorhus/chalk" + "url": "https://github.com/chalk/chalk" }, "scripts": { "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", "test": "mocha" }, - "version": "1.0.0" + "version": "1.1.0" } diff --git a/node_modules/chalk/readme.md b/node_modules/chalk/readme.md index 43c706433..f757e59d6 100644 --- a/node_modules/chalk/readme.md +++ b/node_modules/chalk/readme.md @@ -1,19 +1,24 @@ <h1 align="center"> <br> - <img width="360" src="https://cdn.rawgit.com/sindresorhus/chalk/19935d6484811c5e468817f846b7b3d417d7bf4a/logo.svg" alt="chalk"> + <br> + <img width="360" src="https://cdn.rawgit.com/chalk/chalk/19935d6484811c5e468817f846b7b3d417d7bf4a/logo.svg" alt="chalk"> + <br> <br> <br> </h1> > Terminal string styling done right -[![Build Status](https://travis-ci.org/sindresorhus/chalk.svg?branch=master)](https://travis-ci.org/sindresorhus/chalk) [![](http://img.shields.io/badge/unicorn-approved-ff69b4.svg?style=flat)](https://www.youtube.com/watch?v=Sm368W0OsHo) +[![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) + [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.** -![screenshot](https://github.com/sindresorhus/ansi-styles/raw/master/screenshot.png) +![](https://github.com/chalk/ansi-styles/raw/master/screenshot.png) ## Why @@ -25,7 +30,7 @@ - Clean and focused - Auto-detects color support - Actively maintained -- [Used by ~3000 modules](https://www.npmjs.com/browse/depended/chalk) +- [Used by ~4000 modules](https://www.npmjs.com/browse/depended/chalk) as of May 24, 2015 ## Install @@ -104,13 +109,13 @@ var ctx = new chalk.constructor({enabled: false}); ### chalk.supportsColor -Detect whether the terminal [supports color](https://github.com/sindresorhus/supports-color). Used internally and handled for you, but exposed for convenience. +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 -Exposes the styles as [ANSI escape codes](https://github.com/sindresorhus/ansi-styles). +Exposes the styles as [ANSI escape codes](https://github.com/chalk/ansi-styles). Generally not useful, but you might need just the `.open` or `.close` escape code if you're mixing externally styled strings with your own. @@ -125,11 +130,11 @@ console.log(chalk.styles.red.open + 'Hello' + chalk.styles.red.close); ### chalk.hasColor(string) -Check whether a string [has color](https://github.com/sindresorhus/has-ansi). +Check whether a string [has color](https://github.com/chalk/has-ansi). ### chalk.stripColor(string) -[Strip color](https://github.com/sindresorhus/strip-ansi) from a string. +[Strip color](https://github.com/chalk/strip-ansi) from a string. Can be useful in combination with `.supportsColor` to strip color on externally styled text when it's not supported. @@ -192,6 +197,16 @@ Chalk does not support support anything other than the base eight colors, which If you're on Windows, do yourself a favor and use [`cmder`](http://bliker.github.io/cmder/) instead of `cmd.exe`. +## 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 +- [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 + + ## License MIT © [Sindre Sorhus](http://sindresorhus.com) |