@rushstack/terminal 0.7.24 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/terminal.d.ts +487 -2
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/AnsiEscape.d.ts +35 -0
- package/lib/AnsiEscape.d.ts.map +1 -0
- package/lib/AnsiEscape.js +136 -0
- package/lib/AnsiEscape.js.map +1 -0
- package/lib/Colorize.d.ts +79 -0
- package/lib/Colorize.d.ts.map +1 -0
- package/lib/Colorize.js +143 -0
- package/lib/Colorize.js.map +1 -0
- package/lib/ConsoleTerminalProvider.d.ts +48 -0
- package/lib/ConsoleTerminalProvider.d.ts.map +1 -0
- package/lib/ConsoleTerminalProvider.js +71 -0
- package/lib/ConsoleTerminalProvider.js.map +1 -0
- package/lib/ITerminal.d.ts +81 -0
- package/lib/ITerminal.d.ts.map +1 -0
- package/lib/ITerminal.js +5 -0
- package/lib/ITerminal.js.map +1 -0
- package/lib/ITerminalProvider.d.ts +54 -0
- package/lib/ITerminalProvider.d.ts.map +1 -0
- package/lib/ITerminalProvider.js +32 -0
- package/lib/ITerminalProvider.js.map +1 -0
- package/lib/MockWritable.d.ts.map +1 -1
- package/lib/MockWritable.js +3 -3
- package/lib/MockWritable.js.map +1 -1
- package/lib/PrefixProxyTerminalProvider.d.ts +57 -0
- package/lib/PrefixProxyTerminalProvider.d.ts.map +1 -0
- package/lib/PrefixProxyTerminalProvider.js +64 -0
- package/lib/PrefixProxyTerminalProvider.js.map +1 -0
- package/lib/PrintUtilities.d.ts +1 -1
- package/lib/PrintUtilities.d.ts.map +1 -1
- package/lib/PrintUtilities.js.map +1 -1
- package/lib/RemoveColorsTextRewriter.js +2 -2
- package/lib/RemoveColorsTextRewriter.js.map +1 -1
- package/lib/StringBufferTerminalProvider.d.ts +63 -0
- package/lib/StringBufferTerminalProvider.d.ts.map +1 -0
- package/lib/StringBufferTerminalProvider.js +107 -0
- package/lib/StringBufferTerminalProvider.js.map +1 -0
- package/lib/Terminal.d.ts +63 -0
- package/lib/Terminal.d.ts.map +1 -0
- package/lib/Terminal.js +348 -0
- package/lib/Terminal.js.map +1 -0
- package/lib/TerminalStreamWritable.d.ts +35 -0
- package/lib/TerminalStreamWritable.d.ts.map +1 -0
- package/lib/TerminalStreamWritable.js +53 -0
- package/lib/TerminalStreamWritable.js.map +1 -0
- package/lib/TerminalWritable.d.ts +1 -1
- package/lib/TerminalWritable.js +1 -1
- package/lib/TerminalWritable.js.map +1 -1
- package/lib/index.d.ts +24 -15
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +46 -29
- package/lib/index.js.map +1 -1
- package/package.json +8 -5
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
3
|
+
// See LICENSE in the project root for license information.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.AnsiEscape = void 0;
|
|
6
|
+
const Colorize_1 = require("./Colorize");
|
|
7
|
+
/**
|
|
8
|
+
* Operations for working with text strings that contain
|
|
9
|
+
* {@link https://en.wikipedia.org/wiki/ANSI_escape_code | ANSI escape codes}.
|
|
10
|
+
* The most commonly used escape codes set the foreground/background color for console output.
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
class AnsiEscape {
|
|
14
|
+
static getEscapeSequenceForAnsiCode(code) {
|
|
15
|
+
return `\u001b[${code}m`;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns the input text with all ANSI escape codes removed. For example, this is useful when saving
|
|
19
|
+
* colorized console output to a log file.
|
|
20
|
+
*/
|
|
21
|
+
static removeCodes(text) {
|
|
22
|
+
// eslint-disable-next-line no-control-regex
|
|
23
|
+
return text.replace(AnsiEscape._csiRegExp, '');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Replaces ANSI escape codes with human-readable tokens. This is useful for unit tests
|
|
27
|
+
* that compare text strings in test assertions or snapshot files.
|
|
28
|
+
*/
|
|
29
|
+
static formatForTests(text, options) {
|
|
30
|
+
if (!options) {
|
|
31
|
+
options = {};
|
|
32
|
+
}
|
|
33
|
+
let result = text.replace(AnsiEscape._csiRegExp, (capture, csiCode) => {
|
|
34
|
+
// If it is an SGR code, then try to show a friendly token
|
|
35
|
+
const match = csiCode.match(AnsiEscape._sgrRegExp);
|
|
36
|
+
if (match) {
|
|
37
|
+
const sgrParameter = parseInt(match[1], 10);
|
|
38
|
+
const sgrParameterName = AnsiEscape._tryGetSgrFriendlyName(sgrParameter);
|
|
39
|
+
if (sgrParameterName) {
|
|
40
|
+
// Example: "[black-bg]"
|
|
41
|
+
return `[${sgrParameterName}]`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Otherwise show the raw code, but without the "[" from the CSI prefix
|
|
45
|
+
// Example: "[31m]"
|
|
46
|
+
return `[${csiCode}]`;
|
|
47
|
+
});
|
|
48
|
+
if (options.encodeNewlines) {
|
|
49
|
+
result = result
|
|
50
|
+
.replace(AnsiEscape._backslashNRegExp, '[n]')
|
|
51
|
+
.replace(AnsiEscape._backslashRRegExp, `[r]`);
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
// Returns a human-readable token representing an SGR parameter, or undefined for parameter that is not well-known.
|
|
56
|
+
// The SGR parameter numbers are documented in this table:
|
|
57
|
+
// https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters
|
|
58
|
+
static _tryGetSgrFriendlyName(sgiParameter) {
|
|
59
|
+
switch (sgiParameter) {
|
|
60
|
+
case Colorize_1.SgrParameterAttribute.BlackForeground:
|
|
61
|
+
return 'black';
|
|
62
|
+
case Colorize_1.SgrParameterAttribute.RedForeground:
|
|
63
|
+
return 'red';
|
|
64
|
+
case Colorize_1.SgrParameterAttribute.GreenForeground:
|
|
65
|
+
return 'green';
|
|
66
|
+
case Colorize_1.SgrParameterAttribute.YellowForeground:
|
|
67
|
+
return 'yellow';
|
|
68
|
+
case Colorize_1.SgrParameterAttribute.BlueForeground:
|
|
69
|
+
return 'blue';
|
|
70
|
+
case Colorize_1.SgrParameterAttribute.MagentaForeground:
|
|
71
|
+
return 'magenta';
|
|
72
|
+
case Colorize_1.SgrParameterAttribute.CyanForeground:
|
|
73
|
+
return 'cyan';
|
|
74
|
+
case Colorize_1.SgrParameterAttribute.WhiteForeground:
|
|
75
|
+
return 'white';
|
|
76
|
+
case Colorize_1.SgrParameterAttribute.GrayForeground:
|
|
77
|
+
return 'gray';
|
|
78
|
+
case Colorize_1.SgrParameterAttribute.DefaultForeground:
|
|
79
|
+
return 'default';
|
|
80
|
+
case Colorize_1.SgrParameterAttribute.BlackBackground:
|
|
81
|
+
return 'black-bg';
|
|
82
|
+
case Colorize_1.SgrParameterAttribute.RedBackground:
|
|
83
|
+
return 'red-bg';
|
|
84
|
+
case Colorize_1.SgrParameterAttribute.GreenBackground:
|
|
85
|
+
return 'green-bg';
|
|
86
|
+
case Colorize_1.SgrParameterAttribute.YellowBackground:
|
|
87
|
+
return 'yellow-bg';
|
|
88
|
+
case Colorize_1.SgrParameterAttribute.BlueBackground:
|
|
89
|
+
return 'blue-bg';
|
|
90
|
+
case Colorize_1.SgrParameterAttribute.MagentaBackground:
|
|
91
|
+
return 'magenta-bg';
|
|
92
|
+
case Colorize_1.SgrParameterAttribute.CyanBackground:
|
|
93
|
+
return 'cyan-bg';
|
|
94
|
+
case Colorize_1.SgrParameterAttribute.WhiteBackground:
|
|
95
|
+
return 'white-bg';
|
|
96
|
+
case Colorize_1.SgrParameterAttribute.GrayBackground:
|
|
97
|
+
return 'gray-bg';
|
|
98
|
+
case Colorize_1.SgrParameterAttribute.DefaultBackground:
|
|
99
|
+
return 'default-bg';
|
|
100
|
+
case Colorize_1.SgrParameterAttribute.Bold:
|
|
101
|
+
return 'bold';
|
|
102
|
+
case Colorize_1.SgrParameterAttribute.Dim:
|
|
103
|
+
return 'dim';
|
|
104
|
+
case Colorize_1.SgrParameterAttribute.NormalColorOrIntensity:
|
|
105
|
+
return 'normal';
|
|
106
|
+
case Colorize_1.SgrParameterAttribute.Underline:
|
|
107
|
+
return 'underline';
|
|
108
|
+
case Colorize_1.SgrParameterAttribute.UnderlineOff:
|
|
109
|
+
return 'underline-off';
|
|
110
|
+
case Colorize_1.SgrParameterAttribute.Blink:
|
|
111
|
+
return 'blink';
|
|
112
|
+
case Colorize_1.SgrParameterAttribute.BlinkOff:
|
|
113
|
+
return 'blink-off';
|
|
114
|
+
case Colorize_1.SgrParameterAttribute.InvertColor:
|
|
115
|
+
return 'invert';
|
|
116
|
+
case Colorize_1.SgrParameterAttribute.InvertColorOff:
|
|
117
|
+
return 'invert-off';
|
|
118
|
+
case Colorize_1.SgrParameterAttribute.Hidden:
|
|
119
|
+
return 'hidden';
|
|
120
|
+
case Colorize_1.SgrParameterAttribute.HiddenOff:
|
|
121
|
+
return 'hidden-off';
|
|
122
|
+
default:
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.AnsiEscape = AnsiEscape;
|
|
128
|
+
// For now, we only care about the Control Sequence Introducer (CSI) commands which always start with "[".
|
|
129
|
+
// eslint-disable-next-line no-control-regex
|
|
130
|
+
AnsiEscape._csiRegExp = /\x1b\[([\x30-\x3f]*[\x20-\x2f]*[\x40-\x7e])/gu;
|
|
131
|
+
// Text coloring is performed using Select Graphic Rendition (SGR) codes, which come after the
|
|
132
|
+
// CSI introducer "ESC [". The SGR sequence is a number followed by "m".
|
|
133
|
+
AnsiEscape._sgrRegExp = /([0-9]+)m/u;
|
|
134
|
+
AnsiEscape._backslashNRegExp = /\n/g;
|
|
135
|
+
AnsiEscape._backslashRRegExp = /\r/g;
|
|
136
|
+
//# sourceMappingURL=AnsiEscape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnsiEscape.js","sourceRoot":"","sources":["../src/AnsiEscape.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport { SgrParameterAttribute } from './Colorize';\n\n/**\n * Options for {@link AnsiEscape.formatForTests}.\n * @public\n */\nexport interface IAnsiEscapeConvertForTestsOptions {\n /**\n * If true then `\\n` will be replaced by `[n]`, and `\\r` will be replaced by `[r]`.\n */\n encodeNewlines?: boolean;\n}\n\n/**\n * Operations for working with text strings that contain\n * {@link https://en.wikipedia.org/wiki/ANSI_escape_code | ANSI escape codes}.\n * The most commonly used escape codes set the foreground/background color for console output.\n * @public\n */\nexport class AnsiEscape {\n // For now, we only care about the Control Sequence Introducer (CSI) commands which always start with \"[\".\n // eslint-disable-next-line no-control-regex\n private static readonly _csiRegExp: RegExp = /\\x1b\\[([\\x30-\\x3f]*[\\x20-\\x2f]*[\\x40-\\x7e])/gu;\n\n // Text coloring is performed using Select Graphic Rendition (SGR) codes, which come after the\n // CSI introducer \"ESC [\". The SGR sequence is a number followed by \"m\".\n private static readonly _sgrRegExp: RegExp = /([0-9]+)m/u;\n\n private static readonly _backslashNRegExp: RegExp = /\\n/g;\n private static readonly _backslashRRegExp: RegExp = /\\r/g;\n\n public static getEscapeSequenceForAnsiCode(code: number): string {\n return `\\u001b[${code}m`;\n }\n\n /**\n * Returns the input text with all ANSI escape codes removed. For example, this is useful when saving\n * colorized console output to a log file.\n */\n public static removeCodes(text: string): string {\n // eslint-disable-next-line no-control-regex\n return text.replace(AnsiEscape._csiRegExp, '');\n }\n\n /**\n * Replaces ANSI escape codes with human-readable tokens. This is useful for unit tests\n * that compare text strings in test assertions or snapshot files.\n */\n public static formatForTests(text: string, options?: IAnsiEscapeConvertForTestsOptions): string {\n if (!options) {\n options = {};\n }\n\n let result: string = text.replace(AnsiEscape._csiRegExp, (capture: string, csiCode: string) => {\n // If it is an SGR code, then try to show a friendly token\n const match: RegExpMatchArray | null = csiCode.match(AnsiEscape._sgrRegExp);\n if (match) {\n const sgrParameter: number = parseInt(match[1], 10);\n const sgrParameterName: string | undefined = AnsiEscape._tryGetSgrFriendlyName(sgrParameter);\n if (sgrParameterName) {\n // Example: \"[black-bg]\"\n return `[${sgrParameterName}]`;\n }\n }\n\n // Otherwise show the raw code, but without the \"[\" from the CSI prefix\n // Example: \"[31m]\"\n return `[${csiCode}]`;\n });\n\n if (options.encodeNewlines) {\n result = result\n .replace(AnsiEscape._backslashNRegExp, '[n]')\n .replace(AnsiEscape._backslashRRegExp, `[r]`);\n }\n return result;\n }\n\n // Returns a human-readable token representing an SGR parameter, or undefined for parameter that is not well-known.\n // The SGR parameter numbers are documented in this table:\n // https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters\n private static _tryGetSgrFriendlyName(sgiParameter: number): string | undefined {\n switch (sgiParameter) {\n case SgrParameterAttribute.BlackForeground:\n return 'black';\n case SgrParameterAttribute.RedForeground:\n return 'red';\n case SgrParameterAttribute.GreenForeground:\n return 'green';\n case SgrParameterAttribute.YellowForeground:\n return 'yellow';\n case SgrParameterAttribute.BlueForeground:\n return 'blue';\n case SgrParameterAttribute.MagentaForeground:\n return 'magenta';\n case SgrParameterAttribute.CyanForeground:\n return 'cyan';\n case SgrParameterAttribute.WhiteForeground:\n return 'white';\n case SgrParameterAttribute.GrayForeground:\n return 'gray';\n case SgrParameterAttribute.DefaultForeground:\n return 'default';\n\n case SgrParameterAttribute.BlackBackground:\n return 'black-bg';\n case SgrParameterAttribute.RedBackground:\n return 'red-bg';\n case SgrParameterAttribute.GreenBackground:\n return 'green-bg';\n case SgrParameterAttribute.YellowBackground:\n return 'yellow-bg';\n case SgrParameterAttribute.BlueBackground:\n return 'blue-bg';\n case SgrParameterAttribute.MagentaBackground:\n return 'magenta-bg';\n case SgrParameterAttribute.CyanBackground:\n return 'cyan-bg';\n case SgrParameterAttribute.WhiteBackground:\n return 'white-bg';\n case SgrParameterAttribute.GrayBackground:\n return 'gray-bg';\n case SgrParameterAttribute.DefaultBackground:\n return 'default-bg';\n\n case SgrParameterAttribute.Bold:\n return 'bold';\n case SgrParameterAttribute.Dim:\n return 'dim';\n case SgrParameterAttribute.NormalColorOrIntensity:\n return 'normal';\n case SgrParameterAttribute.Underline:\n return 'underline';\n case SgrParameterAttribute.UnderlineOff:\n return 'underline-off';\n case SgrParameterAttribute.Blink:\n return 'blink';\n case SgrParameterAttribute.BlinkOff:\n return 'blink-off';\n case SgrParameterAttribute.InvertColor:\n return 'invert';\n case SgrParameterAttribute.InvertColorOff:\n return 'invert-off';\n case SgrParameterAttribute.Hidden:\n return 'hidden';\n case SgrParameterAttribute.HiddenOff:\n return 'hidden-off';\n default:\n return undefined;\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export declare enum SgrParameterAttribute {
|
|
2
|
+
BlackForeground = 30,
|
|
3
|
+
RedForeground = 31,
|
|
4
|
+
GreenForeground = 32,
|
|
5
|
+
YellowForeground = 33,
|
|
6
|
+
BlueForeground = 34,
|
|
7
|
+
MagentaForeground = 35,
|
|
8
|
+
CyanForeground = 36,
|
|
9
|
+
WhiteForeground = 37,
|
|
10
|
+
GrayForeground = 90,
|
|
11
|
+
DefaultForeground = 39,
|
|
12
|
+
BlackBackground = 40,
|
|
13
|
+
RedBackground = 41,
|
|
14
|
+
GreenBackground = 42,
|
|
15
|
+
YellowBackground = 43,
|
|
16
|
+
BlueBackground = 44,
|
|
17
|
+
MagentaBackground = 45,
|
|
18
|
+
CyanBackground = 46,
|
|
19
|
+
WhiteBackground = 47,
|
|
20
|
+
GrayBackground = 100,
|
|
21
|
+
DefaultBackground = 49,
|
|
22
|
+
Bold = 1,
|
|
23
|
+
Dim = 2,
|
|
24
|
+
NormalColorOrIntensity = 22,
|
|
25
|
+
Underline = 4,
|
|
26
|
+
UnderlineOff = 24,
|
|
27
|
+
Blink = 5,
|
|
28
|
+
BlinkOff = 25,
|
|
29
|
+
InvertColor = 7,
|
|
30
|
+
InvertColorOff = 27,
|
|
31
|
+
Hidden = 8,
|
|
32
|
+
HiddenOff = 28
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The static functions on this class are used to produce colored text
|
|
36
|
+
* for use with a terminal that supports ANSI escape codes.
|
|
37
|
+
*
|
|
38
|
+
* Note that this API always generates color codes, regardless of whether
|
|
39
|
+
* the process's stdout is a TTY. The reason is that, in a complex program, the
|
|
40
|
+
* code that is generating strings often does not know were those strings will end
|
|
41
|
+
* up. In some cases, the same log message may get printed both to a shell
|
|
42
|
+
* that supports color AND to a log file that does not.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* console.log(Colorize.red('Red Text!'))
|
|
47
|
+
* terminal.writeLine(Colorize.green('Green Text!'), ' ', Colorize.blue('Blue Text!'));
|
|
48
|
+
*```
|
|
49
|
+
*
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
export declare class Colorize {
|
|
53
|
+
static black(text: string): string;
|
|
54
|
+
static red(text: string): string;
|
|
55
|
+
static green(text: string): string;
|
|
56
|
+
static yellow(text: string): string;
|
|
57
|
+
static blue(text: string): string;
|
|
58
|
+
static magenta(text: string): string;
|
|
59
|
+
static cyan(text: string): string;
|
|
60
|
+
static white(text: string): string;
|
|
61
|
+
static gray(text: string): string;
|
|
62
|
+
static blackBackground(text: string): string;
|
|
63
|
+
static redBackground(text: string): string;
|
|
64
|
+
static greenBackground(text: string): string;
|
|
65
|
+
static yellowBackground(text: string): string;
|
|
66
|
+
static blueBackground(text: string): string;
|
|
67
|
+
static magentaBackground(text: string): string;
|
|
68
|
+
static cyanBackground(text: string): string;
|
|
69
|
+
static whiteBackground(text: string): string;
|
|
70
|
+
static grayBackground(text: string): string;
|
|
71
|
+
static bold(text: string): string;
|
|
72
|
+
static dim(text: string): string;
|
|
73
|
+
static underline(text: string): string;
|
|
74
|
+
static blink(text: string): string;
|
|
75
|
+
static invertColor(text: string): string;
|
|
76
|
+
static hidden(text: string): string;
|
|
77
|
+
private static _wrapTextInAnsiEscapeCodes;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=Colorize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Colorize.d.ts","sourceRoot":"","sources":["../src/Colorize.ts"],"names":[],"mappings":"AAKA,oBAAY,qBAAqB;IAC/B,eAAe,KAAK;IACpB,aAAa,KAAK;IAClB,eAAe,KAAK;IACpB,gBAAgB,KAAK;IACrB,cAAc,KAAK;IACnB,iBAAiB,KAAK;IACtB,cAAc,KAAK;IACnB,eAAe,KAAK;IACpB,cAAc,KAAK;IACnB,iBAAiB,KAAK;IAEtB,eAAe,KAAK;IACpB,aAAa,KAAK;IAClB,eAAe,KAAK;IACpB,gBAAgB,KAAK;IACrB,cAAc,KAAK;IACnB,iBAAiB,KAAK;IACtB,cAAc,KAAK;IACnB,eAAe,KAAK;IACpB,cAAc,MAAM;IACpB,iBAAiB,KAAK;IAEtB,IAAI,IAAI;IAOR,GAAG,IAAI;IACP,sBAAsB,KAAK;IAC3B,SAAS,IAAI;IACb,YAAY,KAAK;IACjB,KAAK,IAAI;IACT,QAAQ,KAAK;IACb,WAAW,IAAI;IACf,cAAc,KAAK;IACnB,MAAM,IAAI;IACV,SAAS,KAAK;CACf;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,QAAQ;WACL,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQzB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ3B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ1B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ7B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ3B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ1B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQrC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQnC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQrC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQtC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQpC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQvC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQpC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQrC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQpC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQzB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQ3B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAQjC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ1C,OAAO,CAAC,MAAM,CAAC,0BAA0B;CAO1C"}
|
package/lib/Colorize.js
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
3
|
+
// See LICENSE in the project root for license information.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.Colorize = exports.SgrParameterAttribute = void 0;
|
|
6
|
+
const AnsiEscape_1 = require("./AnsiEscape");
|
|
7
|
+
var SgrParameterAttribute;
|
|
8
|
+
(function (SgrParameterAttribute) {
|
|
9
|
+
SgrParameterAttribute[SgrParameterAttribute["BlackForeground"] = 30] = "BlackForeground";
|
|
10
|
+
SgrParameterAttribute[SgrParameterAttribute["RedForeground"] = 31] = "RedForeground";
|
|
11
|
+
SgrParameterAttribute[SgrParameterAttribute["GreenForeground"] = 32] = "GreenForeground";
|
|
12
|
+
SgrParameterAttribute[SgrParameterAttribute["YellowForeground"] = 33] = "YellowForeground";
|
|
13
|
+
SgrParameterAttribute[SgrParameterAttribute["BlueForeground"] = 34] = "BlueForeground";
|
|
14
|
+
SgrParameterAttribute[SgrParameterAttribute["MagentaForeground"] = 35] = "MagentaForeground";
|
|
15
|
+
SgrParameterAttribute[SgrParameterAttribute["CyanForeground"] = 36] = "CyanForeground";
|
|
16
|
+
SgrParameterAttribute[SgrParameterAttribute["WhiteForeground"] = 37] = "WhiteForeground";
|
|
17
|
+
SgrParameterAttribute[SgrParameterAttribute["GrayForeground"] = 90] = "GrayForeground";
|
|
18
|
+
SgrParameterAttribute[SgrParameterAttribute["DefaultForeground"] = 39] = "DefaultForeground";
|
|
19
|
+
SgrParameterAttribute[SgrParameterAttribute["BlackBackground"] = 40] = "BlackBackground";
|
|
20
|
+
SgrParameterAttribute[SgrParameterAttribute["RedBackground"] = 41] = "RedBackground";
|
|
21
|
+
SgrParameterAttribute[SgrParameterAttribute["GreenBackground"] = 42] = "GreenBackground";
|
|
22
|
+
SgrParameterAttribute[SgrParameterAttribute["YellowBackground"] = 43] = "YellowBackground";
|
|
23
|
+
SgrParameterAttribute[SgrParameterAttribute["BlueBackground"] = 44] = "BlueBackground";
|
|
24
|
+
SgrParameterAttribute[SgrParameterAttribute["MagentaBackground"] = 45] = "MagentaBackground";
|
|
25
|
+
SgrParameterAttribute[SgrParameterAttribute["CyanBackground"] = 46] = "CyanBackground";
|
|
26
|
+
SgrParameterAttribute[SgrParameterAttribute["WhiteBackground"] = 47] = "WhiteBackground";
|
|
27
|
+
SgrParameterAttribute[SgrParameterAttribute["GrayBackground"] = 100] = "GrayBackground";
|
|
28
|
+
SgrParameterAttribute[SgrParameterAttribute["DefaultBackground"] = 49] = "DefaultBackground";
|
|
29
|
+
SgrParameterAttribute[SgrParameterAttribute["Bold"] = 1] = "Bold";
|
|
30
|
+
// On Linux, the "BoldOff" code instead causes the text to be double-underlined:
|
|
31
|
+
// https://en.wikipedia.org/wiki/Talk:ANSI_escape_code#SGR_21%E2%80%94%60Bold_off%60_not_widely_supported
|
|
32
|
+
// Use "NormalColorOrIntensity" instead
|
|
33
|
+
// BoldOff = 21,
|
|
34
|
+
SgrParameterAttribute[SgrParameterAttribute["Dim"] = 2] = "Dim";
|
|
35
|
+
SgrParameterAttribute[SgrParameterAttribute["NormalColorOrIntensity"] = 22] = "NormalColorOrIntensity";
|
|
36
|
+
SgrParameterAttribute[SgrParameterAttribute["Underline"] = 4] = "Underline";
|
|
37
|
+
SgrParameterAttribute[SgrParameterAttribute["UnderlineOff"] = 24] = "UnderlineOff";
|
|
38
|
+
SgrParameterAttribute[SgrParameterAttribute["Blink"] = 5] = "Blink";
|
|
39
|
+
SgrParameterAttribute[SgrParameterAttribute["BlinkOff"] = 25] = "BlinkOff";
|
|
40
|
+
SgrParameterAttribute[SgrParameterAttribute["InvertColor"] = 7] = "InvertColor";
|
|
41
|
+
SgrParameterAttribute[SgrParameterAttribute["InvertColorOff"] = 27] = "InvertColorOff";
|
|
42
|
+
SgrParameterAttribute[SgrParameterAttribute["Hidden"] = 8] = "Hidden";
|
|
43
|
+
SgrParameterAttribute[SgrParameterAttribute["HiddenOff"] = 28] = "HiddenOff";
|
|
44
|
+
})(SgrParameterAttribute || (exports.SgrParameterAttribute = SgrParameterAttribute = {}));
|
|
45
|
+
/**
|
|
46
|
+
* The static functions on this class are used to produce colored text
|
|
47
|
+
* for use with a terminal that supports ANSI escape codes.
|
|
48
|
+
*
|
|
49
|
+
* Note that this API always generates color codes, regardless of whether
|
|
50
|
+
* the process's stdout is a TTY. The reason is that, in a complex program, the
|
|
51
|
+
* code that is generating strings often does not know were those strings will end
|
|
52
|
+
* up. In some cases, the same log message may get printed both to a shell
|
|
53
|
+
* that supports color AND to a log file that does not.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* console.log(Colorize.red('Red Text!'))
|
|
58
|
+
* terminal.writeLine(Colorize.green('Green Text!'), ' ', Colorize.blue('Blue Text!'));
|
|
59
|
+
*```
|
|
60
|
+
*
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
class Colorize {
|
|
64
|
+
static black(text) {
|
|
65
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.BlackForeground, SgrParameterAttribute.DefaultForeground, text);
|
|
66
|
+
}
|
|
67
|
+
static red(text) {
|
|
68
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.RedForeground, SgrParameterAttribute.DefaultForeground, text);
|
|
69
|
+
}
|
|
70
|
+
static green(text) {
|
|
71
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.GreenForeground, SgrParameterAttribute.DefaultForeground, text);
|
|
72
|
+
}
|
|
73
|
+
static yellow(text) {
|
|
74
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.YellowForeground, SgrParameterAttribute.DefaultForeground, text);
|
|
75
|
+
}
|
|
76
|
+
static blue(text) {
|
|
77
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.BlueForeground, SgrParameterAttribute.DefaultForeground, text);
|
|
78
|
+
}
|
|
79
|
+
static magenta(text) {
|
|
80
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.MagentaForeground, SgrParameterAttribute.DefaultForeground, text);
|
|
81
|
+
}
|
|
82
|
+
static cyan(text) {
|
|
83
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.CyanForeground, SgrParameterAttribute.DefaultForeground, text);
|
|
84
|
+
}
|
|
85
|
+
static white(text) {
|
|
86
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.WhiteForeground, SgrParameterAttribute.DefaultForeground, text);
|
|
87
|
+
}
|
|
88
|
+
static gray(text) {
|
|
89
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.GrayForeground, SgrParameterAttribute.DefaultForeground, text);
|
|
90
|
+
}
|
|
91
|
+
static blackBackground(text) {
|
|
92
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.BlackBackground, SgrParameterAttribute.DefaultBackground, text);
|
|
93
|
+
}
|
|
94
|
+
static redBackground(text) {
|
|
95
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.RedBackground, SgrParameterAttribute.DefaultBackground, text);
|
|
96
|
+
}
|
|
97
|
+
static greenBackground(text) {
|
|
98
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.GreenBackground, SgrParameterAttribute.DefaultBackground, text);
|
|
99
|
+
}
|
|
100
|
+
static yellowBackground(text) {
|
|
101
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.YellowBackground, SgrParameterAttribute.DefaultBackground, text);
|
|
102
|
+
}
|
|
103
|
+
static blueBackground(text) {
|
|
104
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.BlueBackground, SgrParameterAttribute.DefaultBackground, text);
|
|
105
|
+
}
|
|
106
|
+
static magentaBackground(text) {
|
|
107
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.MagentaBackground, SgrParameterAttribute.DefaultBackground, text);
|
|
108
|
+
}
|
|
109
|
+
static cyanBackground(text) {
|
|
110
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.CyanBackground, SgrParameterAttribute.DefaultBackground, text);
|
|
111
|
+
}
|
|
112
|
+
static whiteBackground(text) {
|
|
113
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.WhiteBackground, SgrParameterAttribute.DefaultBackground, text);
|
|
114
|
+
}
|
|
115
|
+
static grayBackground(text) {
|
|
116
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.GrayBackground, SgrParameterAttribute.DefaultBackground, text);
|
|
117
|
+
}
|
|
118
|
+
static bold(text) {
|
|
119
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.Bold, SgrParameterAttribute.NormalColorOrIntensity, text);
|
|
120
|
+
}
|
|
121
|
+
static dim(text) {
|
|
122
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.Dim, SgrParameterAttribute.NormalColorOrIntensity, text);
|
|
123
|
+
}
|
|
124
|
+
static underline(text) {
|
|
125
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.Underline, SgrParameterAttribute.UnderlineOff, text);
|
|
126
|
+
}
|
|
127
|
+
static blink(text) {
|
|
128
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.Blink, SgrParameterAttribute.BlinkOff, text);
|
|
129
|
+
}
|
|
130
|
+
static invertColor(text) {
|
|
131
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.InvertColor, SgrParameterAttribute.InvertColorOff, text);
|
|
132
|
+
}
|
|
133
|
+
static hidden(text) {
|
|
134
|
+
return Colorize._wrapTextInAnsiEscapeCodes(SgrParameterAttribute.Hidden, SgrParameterAttribute.HiddenOff, text);
|
|
135
|
+
}
|
|
136
|
+
static _wrapTextInAnsiEscapeCodes(startCode, endCode, text) {
|
|
137
|
+
return (AnsiEscape_1.AnsiEscape.getEscapeSequenceForAnsiCode(startCode) +
|
|
138
|
+
text +
|
|
139
|
+
AnsiEscape_1.AnsiEscape.getEscapeSequenceForAnsiCode(endCode));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.Colorize = Colorize;
|
|
143
|
+
//# sourceMappingURL=Colorize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Colorize.js","sourceRoot":"","sources":["../src/Colorize.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,6CAA0C;AAE1C,IAAY,qBAwCX;AAxCD,WAAY,qBAAqB;IAC/B,wFAAoB,CAAA;IACpB,oFAAkB,CAAA;IAClB,wFAAoB,CAAA;IACpB,0FAAqB,CAAA;IACrB,sFAAmB,CAAA;IACnB,4FAAsB,CAAA;IACtB,sFAAmB,CAAA;IACnB,wFAAoB,CAAA;IACpB,sFAAmB,CAAA;IACnB,4FAAsB,CAAA;IAEtB,wFAAoB,CAAA;IACpB,oFAAkB,CAAA;IAClB,wFAAoB,CAAA;IACpB,0FAAqB,CAAA;IACrB,sFAAmB,CAAA;IACnB,4FAAsB,CAAA;IACtB,sFAAmB,CAAA;IACnB,wFAAoB,CAAA;IACpB,uFAAoB,CAAA;IACpB,4FAAsB,CAAA;IAEtB,iEAAQ,CAAA;IAER,gFAAgF;IAChF,yGAAyG;IACzG,uCAAuC;IACvC,gBAAgB;IAEhB,+DAAO,CAAA;IACP,sGAA2B,CAAA;IAC3B,2EAAa,CAAA;IACb,kFAAiB,CAAA;IACjB,mEAAS,CAAA;IACT,0EAAa,CAAA;IACb,+EAAe,CAAA;IACf,sFAAmB,CAAA;IACnB,qEAAU,CAAA;IACV,4EAAc,CAAA;AAChB,CAAC,EAxCW,qBAAqB,qCAArB,qBAAqB,QAwChC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,QAAQ;IACZ,MAAM,CAAC,KAAK,CAAC,IAAY;QAC9B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,eAAe,EACrC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,IAAY;QAC5B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,aAAa,EACnC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAY;QAC9B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,eAAe,EACrC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAY;QAC/B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,gBAAgB,EACtC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAY;QAC7B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,cAAc,EACpC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,IAAY;QAChC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,iBAAiB,EACvC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAY;QAC7B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,cAAc,EACpC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAY;QAC9B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,eAAe,EACrC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAY;QAC7B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,cAAc,EACpC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAY;QACxC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,eAAe,EACrC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAY;QACtC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,aAAa,EACnC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAY;QACxC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,eAAe,EACrC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,IAAY;QACzC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,gBAAgB,EACtC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,IAAY;QACvC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,cAAc,EACpC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,IAAY;QAC1C,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,iBAAiB,EACvC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,IAAY;QACvC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,cAAc,EACpC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAY;QACxC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,eAAe,EACrC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,IAAY;QACvC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,cAAc,EACpC,qBAAqB,CAAC,iBAAiB,EACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,IAAY;QAC7B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,IAAI,EAC1B,qBAAqB,CAAC,sBAAsB,EAC5C,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,IAAY;QAC5B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,GAAG,EACzB,qBAAqB,CAAC,sBAAsB,EAC5C,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,IAAY;QAClC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,SAAS,EAC/B,qBAAqB,CAAC,YAAY,EAClC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAY;QAC9B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,KAAK,EAC3B,qBAAqB,CAAC,QAAQ,EAC9B,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,IAAY;QACpC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,WAAW,EACjC,qBAAqB,CAAC,cAAc,EACpC,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAY;QAC/B,OAAO,QAAQ,CAAC,0BAA0B,CACxC,qBAAqB,CAAC,MAAM,EAC5B,qBAAqB,CAAC,SAAS,EAC/B,IAAI,CACL,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,SAAiB,EAAE,OAAe,EAAE,IAAY;QACxF,OAAO,CACL,uBAAU,CAAC,4BAA4B,CAAC,SAAS,CAAC;YAClD,IAAI;YACJ,uBAAU,CAAC,4BAA4B,CAAC,OAAO,CAAC,CACjD,CAAC;IACJ,CAAC;CACF;AAxMD,4BAwMC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport { AnsiEscape } from './AnsiEscape';\n\nexport enum SgrParameterAttribute {\n BlackForeground = 30,\n RedForeground = 31,\n GreenForeground = 32,\n YellowForeground = 33,\n BlueForeground = 34,\n MagentaForeground = 35,\n CyanForeground = 36,\n WhiteForeground = 37,\n GrayForeground = 90,\n DefaultForeground = 39,\n\n BlackBackground = 40,\n RedBackground = 41,\n GreenBackground = 42,\n YellowBackground = 43,\n BlueBackground = 44,\n MagentaBackground = 45,\n CyanBackground = 46,\n WhiteBackground = 47,\n GrayBackground = 100,\n DefaultBackground = 49,\n\n Bold = 1,\n\n // On Linux, the \"BoldOff\" code instead causes the text to be double-underlined:\n // https://en.wikipedia.org/wiki/Talk:ANSI_escape_code#SGR_21%E2%80%94%60Bold_off%60_not_widely_supported\n // Use \"NormalColorOrIntensity\" instead\n // BoldOff = 21,\n\n Dim = 2,\n NormalColorOrIntensity = 22,\n Underline = 4,\n UnderlineOff = 24,\n Blink = 5,\n BlinkOff = 25,\n InvertColor = 7,\n InvertColorOff = 27,\n Hidden = 8,\n HiddenOff = 28\n}\n\n/**\n * The static functions on this class are used to produce colored text\n * for use with a terminal that supports ANSI escape codes.\n *\n * Note that this API always generates color codes, regardless of whether\n * the process's stdout is a TTY. The reason is that, in a complex program, the\n * code that is generating strings often does not know were those strings will end\n * up. In some cases, the same log message may get printed both to a shell\n * that supports color AND to a log file that does not.\n *\n * @example\n * ```ts\n * console.log(Colorize.red('Red Text!'))\n * terminal.writeLine(Colorize.green('Green Text!'), ' ', Colorize.blue('Blue Text!'));\n *```\n *\n * @public\n */\nexport class Colorize {\n public static black(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.BlackForeground,\n SgrParameterAttribute.DefaultForeground,\n text\n );\n }\n\n public static red(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.RedForeground,\n SgrParameterAttribute.DefaultForeground,\n text\n );\n }\n\n public static green(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.GreenForeground,\n SgrParameterAttribute.DefaultForeground,\n text\n );\n }\n\n public static yellow(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.YellowForeground,\n SgrParameterAttribute.DefaultForeground,\n text\n );\n }\n\n public static blue(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.BlueForeground,\n SgrParameterAttribute.DefaultForeground,\n text\n );\n }\n\n public static magenta(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.MagentaForeground,\n SgrParameterAttribute.DefaultForeground,\n text\n );\n }\n\n public static cyan(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.CyanForeground,\n SgrParameterAttribute.DefaultForeground,\n text\n );\n }\n\n public static white(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.WhiteForeground,\n SgrParameterAttribute.DefaultForeground,\n text\n );\n }\n\n public static gray(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.GrayForeground,\n SgrParameterAttribute.DefaultForeground,\n text\n );\n }\n\n public static blackBackground(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.BlackBackground,\n SgrParameterAttribute.DefaultBackground,\n text\n );\n }\n\n public static redBackground(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.RedBackground,\n SgrParameterAttribute.DefaultBackground,\n text\n );\n }\n\n public static greenBackground(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.GreenBackground,\n SgrParameterAttribute.DefaultBackground,\n text\n );\n }\n\n public static yellowBackground(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.YellowBackground,\n SgrParameterAttribute.DefaultBackground,\n text\n );\n }\n\n public static blueBackground(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.BlueBackground,\n SgrParameterAttribute.DefaultBackground,\n text\n );\n }\n\n public static magentaBackground(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.MagentaBackground,\n SgrParameterAttribute.DefaultBackground,\n text\n );\n }\n\n public static cyanBackground(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.CyanBackground,\n SgrParameterAttribute.DefaultBackground,\n text\n );\n }\n\n public static whiteBackground(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.WhiteBackground,\n SgrParameterAttribute.DefaultBackground,\n text\n );\n }\n\n public static grayBackground(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.GrayBackground,\n SgrParameterAttribute.DefaultBackground,\n text\n );\n }\n\n public static bold(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.Bold,\n SgrParameterAttribute.NormalColorOrIntensity,\n text\n );\n }\n\n public static dim(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.Dim,\n SgrParameterAttribute.NormalColorOrIntensity,\n text\n );\n }\n\n public static underline(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.Underline,\n SgrParameterAttribute.UnderlineOff,\n text\n );\n }\n\n public static blink(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.Blink,\n SgrParameterAttribute.BlinkOff,\n text\n );\n }\n\n public static invertColor(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.InvertColor,\n SgrParameterAttribute.InvertColorOff,\n text\n );\n }\n\n public static hidden(text: string): string {\n return Colorize._wrapTextInAnsiEscapeCodes(\n SgrParameterAttribute.Hidden,\n SgrParameterAttribute.HiddenOff,\n text\n );\n }\n\n private static _wrapTextInAnsiEscapeCodes(startCode: number, endCode: number, text: string): string {\n return (\n AnsiEscape.getEscapeSequenceForAnsiCode(startCode) +\n text +\n AnsiEscape.getEscapeSequenceForAnsiCode(endCode)\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type ITerminalProvider, TerminalProviderSeverity } from './ITerminalProvider';
|
|
2
|
+
/**
|
|
3
|
+
* Options to be provided to a {@link ConsoleTerminalProvider}
|
|
4
|
+
*
|
|
5
|
+
* @beta
|
|
6
|
+
*/
|
|
7
|
+
export interface IConsoleTerminalProviderOptions {
|
|
8
|
+
/**
|
|
9
|
+
* If true, print verbose logging messages.
|
|
10
|
+
*/
|
|
11
|
+
verboseEnabled: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* If true, print debug logging messages. Note that "verbose" and "debug" are considered
|
|
14
|
+
* separate message filters; if you want debug to imply verbose, it is up to your
|
|
15
|
+
* application code to enforce that.
|
|
16
|
+
*/
|
|
17
|
+
debugEnabled: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Terminal provider that prints to STDOUT (for log- and verbose-level messages) and
|
|
21
|
+
* STDERR (for warning- and error-level messsages).
|
|
22
|
+
*
|
|
23
|
+
* @beta
|
|
24
|
+
*/
|
|
25
|
+
export declare class ConsoleTerminalProvider implements ITerminalProvider {
|
|
26
|
+
/**
|
|
27
|
+
* If true, verbose-level messages should be written to the console.
|
|
28
|
+
*/
|
|
29
|
+
verboseEnabled: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* If true, debug-level messages should be written to the console.
|
|
32
|
+
*/
|
|
33
|
+
debugEnabled: boolean;
|
|
34
|
+
constructor(options?: Partial<IConsoleTerminalProviderOptions>);
|
|
35
|
+
/**
|
|
36
|
+
* {@inheritDoc ITerminalProvider.write}
|
|
37
|
+
*/
|
|
38
|
+
write(data: string, severity: TerminalProviderSeverity): void;
|
|
39
|
+
/**
|
|
40
|
+
* {@inheritDoc ITerminalProvider.eolCharacter}
|
|
41
|
+
*/
|
|
42
|
+
get eolCharacter(): string;
|
|
43
|
+
/**
|
|
44
|
+
* {@inheritDoc ITerminalProvider.supportsColor}
|
|
45
|
+
*/
|
|
46
|
+
get supportsColor(): boolean;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ConsoleTerminalProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleTerminalProvider.d.ts","sourceRoot":"","sources":["../src/ConsoleTerminalProvider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D;;OAEG;IACI,cAAc,EAAE,OAAO,CAAS;IAEvC;;OAEG;IACI,YAAY,EAAE,OAAO,CAAS;gBAElB,OAAO,GAAE,OAAO,CAAC,+BAA+B,CAAM;IAKzE;;OAEG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IA8BpE;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,OAAO,CAElC;CACF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
3
|
+
// See LICENSE in the project root for license information.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.ConsoleTerminalProvider = void 0;
|
|
6
|
+
const os_1 = require("os");
|
|
7
|
+
const safe_1 = require("colors/safe");
|
|
8
|
+
const ITerminalProvider_1 = require("./ITerminalProvider");
|
|
9
|
+
/**
|
|
10
|
+
* Terminal provider that prints to STDOUT (for log- and verbose-level messages) and
|
|
11
|
+
* STDERR (for warning- and error-level messsages).
|
|
12
|
+
*
|
|
13
|
+
* @beta
|
|
14
|
+
*/
|
|
15
|
+
class ConsoleTerminalProvider {
|
|
16
|
+
constructor(options = {}) {
|
|
17
|
+
/**
|
|
18
|
+
* If true, verbose-level messages should be written to the console.
|
|
19
|
+
*/
|
|
20
|
+
this.verboseEnabled = false;
|
|
21
|
+
/**
|
|
22
|
+
* If true, debug-level messages should be written to the console.
|
|
23
|
+
*/
|
|
24
|
+
this.debugEnabled = false;
|
|
25
|
+
this.verboseEnabled = !!options.verboseEnabled;
|
|
26
|
+
this.debugEnabled = !!options.debugEnabled;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* {@inheritDoc ITerminalProvider.write}
|
|
30
|
+
*/
|
|
31
|
+
write(data, severity) {
|
|
32
|
+
switch (severity) {
|
|
33
|
+
case ITerminalProvider_1.TerminalProviderSeverity.warning:
|
|
34
|
+
case ITerminalProvider_1.TerminalProviderSeverity.error: {
|
|
35
|
+
process.stderr.write(data);
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
case ITerminalProvider_1.TerminalProviderSeverity.verbose: {
|
|
39
|
+
if (this.verboseEnabled) {
|
|
40
|
+
process.stdout.write(data);
|
|
41
|
+
}
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case ITerminalProvider_1.TerminalProviderSeverity.debug: {
|
|
45
|
+
if (this.debugEnabled) {
|
|
46
|
+
process.stdout.write(data);
|
|
47
|
+
}
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
case ITerminalProvider_1.TerminalProviderSeverity.log:
|
|
51
|
+
default: {
|
|
52
|
+
process.stdout.write(data);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* {@inheritDoc ITerminalProvider.eolCharacter}
|
|
59
|
+
*/
|
|
60
|
+
get eolCharacter() {
|
|
61
|
+
return os_1.EOL;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* {@inheritDoc ITerminalProvider.supportsColor}
|
|
65
|
+
*/
|
|
66
|
+
get supportsColor() {
|
|
67
|
+
return safe_1.enabled;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.ConsoleTerminalProvider = ConsoleTerminalProvider;
|
|
71
|
+
//# sourceMappingURL=ConsoleTerminalProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleTerminalProvider.js","sourceRoot":"","sources":["../src/ConsoleTerminalProvider.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;AAE3D,2BAAyB;AACzB,sCAAuD;AAEvD,2DAAuF;AAqBvF;;;;;GAKG;AACH,MAAa,uBAAuB;IAWlC,YAAmB,UAAoD,EAAE;QAVzE;;WAEG;QACI,mBAAc,GAAY,KAAK,CAAC;QAEvC;;WAEG;QACI,iBAAY,GAAY,KAAK,CAAC;QAGnC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAY,EAAE,QAAkC;QAC3D,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,4CAAwB,CAAC,OAAO,CAAC;YACtC,KAAK,4CAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED,KAAK,4CAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,4CAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,4CAAwB,CAAC,GAAG,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAW,YAAY;QACrB,OAAO,QAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACtB,OAAO,cAAa,CAAC;IACvB,CAAC;CACF;AA9DD,0DA8DC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport { EOL } from 'os';\nimport { enabled as supportsColor } from 'colors/safe';\n\nimport { type ITerminalProvider, TerminalProviderSeverity } from './ITerminalProvider';\n\n/**\n * Options to be provided to a {@link ConsoleTerminalProvider}\n *\n * @beta\n */\nexport interface IConsoleTerminalProviderOptions {\n /**\n * If true, print verbose logging messages.\n */\n verboseEnabled: boolean;\n\n /**\n * If true, print debug logging messages. Note that \"verbose\" and \"debug\" are considered\n * separate message filters; if you want debug to imply verbose, it is up to your\n * application code to enforce that.\n */\n debugEnabled: boolean;\n}\n\n/**\n * Terminal provider that prints to STDOUT (for log- and verbose-level messages) and\n * STDERR (for warning- and error-level messsages).\n *\n * @beta\n */\nexport class ConsoleTerminalProvider implements ITerminalProvider {\n /**\n * If true, verbose-level messages should be written to the console.\n */\n public verboseEnabled: boolean = false;\n\n /**\n * If true, debug-level messages should be written to the console.\n */\n public debugEnabled: boolean = false;\n\n public constructor(options: Partial<IConsoleTerminalProviderOptions> = {}) {\n this.verboseEnabled = !!options.verboseEnabled;\n this.debugEnabled = !!options.debugEnabled;\n }\n\n /**\n * {@inheritDoc ITerminalProvider.write}\n */\n public write(data: string, severity: TerminalProviderSeverity): void {\n switch (severity) {\n case TerminalProviderSeverity.warning:\n case TerminalProviderSeverity.error: {\n process.stderr.write(data);\n break;\n }\n\n case TerminalProviderSeverity.verbose: {\n if (this.verboseEnabled) {\n process.stdout.write(data);\n }\n break;\n }\n\n case TerminalProviderSeverity.debug: {\n if (this.debugEnabled) {\n process.stdout.write(data);\n }\n break;\n }\n\n case TerminalProviderSeverity.log:\n default: {\n process.stdout.write(data);\n break;\n }\n }\n }\n\n /**\n * {@inheritDoc ITerminalProvider.eolCharacter}\n */\n public get eolCharacter(): string {\n return EOL;\n }\n\n /**\n * {@inheritDoc ITerminalProvider.supportsColor}\n */\n public get supportsColor(): boolean {\n return supportsColor;\n }\n}\n"]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { ITerminalProvider } from './ITerminalProvider';
|
|
2
|
+
/**
|
|
3
|
+
* @beta
|
|
4
|
+
*/
|
|
5
|
+
export interface ITerminalWriteOptions {
|
|
6
|
+
/**
|
|
7
|
+
* If set to true, SGR parameters will not be replaced by the terminal
|
|
8
|
+
* standard (i.e. - red for errors, yellow for warnings).
|
|
9
|
+
*/
|
|
10
|
+
doNotOverrideSgrCodes?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @beta
|
|
14
|
+
*/
|
|
15
|
+
export type TerminalWriteParameters = string[] | [...string[], ITerminalWriteOptions];
|
|
16
|
+
/**
|
|
17
|
+
* @beta
|
|
18
|
+
*/
|
|
19
|
+
export interface ITerminal {
|
|
20
|
+
/**
|
|
21
|
+
* Subscribe a new terminal provider.
|
|
22
|
+
*/
|
|
23
|
+
registerProvider(provider: ITerminalProvider): void;
|
|
24
|
+
/**
|
|
25
|
+
* Unsubscribe a terminal provider. If the provider isn't subscribed, this function does nothing.
|
|
26
|
+
*/
|
|
27
|
+
unregisterProvider(provider: ITerminalProvider): void;
|
|
28
|
+
/**
|
|
29
|
+
* Write a generic message to the terminal
|
|
30
|
+
*/
|
|
31
|
+
write(...messageParts: TerminalWriteParameters): void;
|
|
32
|
+
/**
|
|
33
|
+
* Write a generic message to the terminal, followed by a newline
|
|
34
|
+
*/
|
|
35
|
+
writeLine(...messageParts: TerminalWriteParameters): void;
|
|
36
|
+
/**
|
|
37
|
+
* Write a warning message to the console with yellow text.
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* The yellow color takes precedence over any other foreground colors set.
|
|
41
|
+
*/
|
|
42
|
+
writeWarning(...messageParts: TerminalWriteParameters): void;
|
|
43
|
+
/**
|
|
44
|
+
* Write a warning message to the console with yellow text, followed by a newline.
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* The yellow color takes precedence over any other foreground colors set.
|
|
48
|
+
*/
|
|
49
|
+
writeWarningLine(...messageParts: TerminalWriteParameters): void;
|
|
50
|
+
/**
|
|
51
|
+
* Write an error message to the console with red text.
|
|
52
|
+
*
|
|
53
|
+
* @remarks
|
|
54
|
+
* The red color takes precedence over any other foreground colors set.
|
|
55
|
+
*/
|
|
56
|
+
writeError(...messageParts: TerminalWriteParameters): void;
|
|
57
|
+
/**
|
|
58
|
+
* Write an error message to the console with red text, followed by a newline.
|
|
59
|
+
*
|
|
60
|
+
* @remarks
|
|
61
|
+
* The red color takes precedence over any other foreground colors set.
|
|
62
|
+
*/
|
|
63
|
+
writeErrorLine(...messageParts: TerminalWriteParameters): void;
|
|
64
|
+
/**
|
|
65
|
+
* Write a verbose-level message.
|
|
66
|
+
*/
|
|
67
|
+
writeVerbose(...messageParts: TerminalWriteParameters): void;
|
|
68
|
+
/**
|
|
69
|
+
* Write a verbose-level message followed by a newline.
|
|
70
|
+
*/
|
|
71
|
+
writeVerboseLine(...messageParts: TerminalWriteParameters): void;
|
|
72
|
+
/**
|
|
73
|
+
* Write a debug-level message.
|
|
74
|
+
*/
|
|
75
|
+
writeDebug(...messageParts: TerminalWriteParameters): void;
|
|
76
|
+
/**
|
|
77
|
+
* Write a debug-level message followed by a newline.
|
|
78
|
+
*/
|
|
79
|
+
writeDebugLine(...messageParts: TerminalWriteParameters): void;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=ITerminal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITerminal.d.ts","sourceRoot":"","sources":["../src/ITerminal.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEpD;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEtD;;OAEG;IACH,KAAK,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAEtD;;OAEG;IACH,SAAS,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAE1D;;;;;OAKG;IACH,YAAY,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAE7D;;;;;OAKG;IACH,gBAAgB,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAEjE;;;;;OAKG;IACH,UAAU,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAE3D;;;;;OAKG;IACH,cAAc,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,YAAY,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAE7D;;OAEG;IACH,gBAAgB,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAEjE;;OAEG;IACH,UAAU,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,cAAc,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAChE"}
|
package/lib/ITerminal.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
3
|
+
// See LICENSE in the project root for license information.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
//# sourceMappingURL=ITerminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITerminal.js","sourceRoot":"","sources":["../src/ITerminal.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport type { ITerminalProvider } from './ITerminalProvider';\n\n/**\n * @beta\n */\nexport interface ITerminalWriteOptions {\n /**\n * If set to true, SGR parameters will not be replaced by the terminal\n * standard (i.e. - red for errors, yellow for warnings).\n */\n doNotOverrideSgrCodes?: boolean;\n}\n\n/**\n * @beta\n */\nexport type TerminalWriteParameters = string[] | [...string[], ITerminalWriteOptions];\n\n/**\n * @beta\n */\nexport interface ITerminal {\n /**\n * Subscribe a new terminal provider.\n */\n registerProvider(provider: ITerminalProvider): void;\n\n /**\n * Unsubscribe a terminal provider. If the provider isn't subscribed, this function does nothing.\n */\n unregisterProvider(provider: ITerminalProvider): void;\n\n /**\n * Write a generic message to the terminal\n */\n write(...messageParts: TerminalWriteParameters): void;\n\n /**\n * Write a generic message to the terminal, followed by a newline\n */\n writeLine(...messageParts: TerminalWriteParameters): void;\n\n /**\n * Write a warning message to the console with yellow text.\n *\n * @remarks\n * The yellow color takes precedence over any other foreground colors set.\n */\n writeWarning(...messageParts: TerminalWriteParameters): void;\n\n /**\n * Write a warning message to the console with yellow text, followed by a newline.\n *\n * @remarks\n * The yellow color takes precedence over any other foreground colors set.\n */\n writeWarningLine(...messageParts: TerminalWriteParameters): void;\n\n /**\n * Write an error message to the console with red text.\n *\n * @remarks\n * The red color takes precedence over any other foreground colors set.\n */\n writeError(...messageParts: TerminalWriteParameters): void;\n\n /**\n * Write an error message to the console with red text, followed by a newline.\n *\n * @remarks\n * The red color takes precedence over any other foreground colors set.\n */\n writeErrorLine(...messageParts: TerminalWriteParameters): void;\n\n /**\n * Write a verbose-level message.\n */\n writeVerbose(...messageParts: TerminalWriteParameters): void;\n\n /**\n * Write a verbose-level message followed by a newline.\n */\n writeVerboseLine(...messageParts: TerminalWriteParameters): void;\n\n /**\n * Write a debug-level message.\n */\n writeDebug(...messageParts: TerminalWriteParameters): void;\n\n /**\n * Write a debug-level message followed by a newline.\n */\n writeDebugLine(...messageParts: TerminalWriteParameters): void;\n}\n"]}
|