You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
22 KiB

4 years ago
{"ast":null,"code":"'use strict';\n\nconst escapeStringRegexp = require('escape-string-regexp');\n\nconst ansiStyles = require('ansi-styles');\n\nconst stdoutColor = require('supports-color').stdout;\n\nconst template = require('./templates.js');\n\nconst isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); // `supportsColor.level` `ansiStyles.color[name]` mapping\n\nconst levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; // `color-convert` models to exclude from the Chalk API due to conflicts and such\n\nconst skipModels = new Set(['gray']);\nconst styles = Object.create(null);\n\nfunction applyOptions(obj, options) {\n options = options || {}; // Detect level if not set manually\n\n const scLevel = stdoutColor ? stdoutColor.level : 0;\n obj.level = options.level === undefined ? scLevel : options.level;\n obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;\n}\n\nfunction Chalk(options) {\n // We check for this.template here since calling `chalk.constructor()`\n // by itself will have a `this` of a previously constructed chalk object\n if (!this || !(this instanceof Chalk) || this.template) {\n const chalk = {};\n applyOptions(chalk, options);\n\n chalk.template = function () {\n const args = [].slice.call(arguments);\n return chalkTag.apply(null, [chalk.template].concat(args));\n };\n\n Object.setPrototypeOf(chalk, Chalk.prototype);\n Object.setPrototypeOf(chalk.template, chalk);\n chalk.template.constructor = Chalk;\n return chalk.template;\n }\n\n applyOptions(this, options);\n} // Use bright blue on Windows as the normal blue color is illegible\n\n\nif (isSimpleWindowsTerm) {\n ansiStyles.blue.open = '\\u001B[94m';\n}\n\nfor (const key of Object.keys(ansiStyles)) {\n ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n styles[key] = {\n get() {\n const codes = ansiStyles[key];\n return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);\n }\n\n };\n}\n\nstyles.visible = {\n get() {\n return build.call(this, this._styles || [], true, 'visible');\n }\n\n};\nansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');\n\nfor (const model of Object.keys(ansiStyles.color.ansi)) {\n if (skipModels.has(model)) {\n continue;\n }\n\n styles[model] = {\n get() {\n const level = this.level;\n return function () {\n const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);\n const codes = {\n open,\n close: ansiStyles.color.close,\n closeRe: ansiStyles.color.closeRe\n };\n return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);\n };\n }\n\n };\n}\n\nansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');\n\nfor (const model of Object.keys(ansiStyles.bgColor.ansi)) {\n if (skipModels.has(model)) {\n continue;\n }\n\n const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n styles[bgModel] = {\n get() {\n const level = this.level;\n return function () {\n const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);\n const codes = {\n open,\n close: ansiStyles.bgColor.close,\n closeRe: ansiStyles.bgColor.closeRe\n };\n return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);\n };\n }\n\n };\n}\n\nconst proto = Object.defineProperties(() => {}, styles);\n\nfunction build(_styles, _empty, key) {\n const builder = function () {\n return applyStyle.apply(builder, arguments);\n };\n\n builder._styles = _styles;\n builder._empty = _empty;\n const self = this;\n Object.defineProperty(builder, 'level', {\n enumerable: true,\n\n get() {\n return self.level;\n },\n\n set(level) {\n self.level = level;\n }\n\n });\n Ob