@rushstack/terminal 0.15.4 → 0.16.0
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/CHANGELOG.json +12 -0
- package/CHANGELOG.md +8 -1
- package/dist/terminal.d.ts +1 -2
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/Terminal.d.ts +1 -2
- package/lib/Terminal.d.ts.map +1 -1
- package/lib/Terminal.js +3 -197
- package/lib/Terminal.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rushstack/terminal",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.16.0",
|
|
6
|
+
"tag": "@rushstack/terminal_v0.16.0",
|
|
7
|
+
"date": "Thu, 11 Sep 2025 00:22:31 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"minor": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "(BREAKING CHANGE) Remove support for legacy `IColorableSequence` parameters passed to `Terminal` insance `write*` functions. Note that types for `IColorableSequence` were removed with #3176 in 2022."
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
},
|
|
4
16
|
{
|
|
5
17
|
"version": "0.15.4",
|
|
6
18
|
"tag": "@rushstack/terminal_v0.15.4",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# Change Log - @rushstack/terminal
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Thu, 11 Sep 2025 00:22:31 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 0.16.0
|
|
6
|
+
Thu, 11 Sep 2025 00:22:31 GMT
|
|
7
|
+
|
|
8
|
+
### Minor changes
|
|
9
|
+
|
|
10
|
+
- (BREAKING CHANGE) Remove support for legacy `IColorableSequence` parameters passed to `Terminal` insance `write*` functions. Note that types for `IColorableSequence` were removed with #3176 in 2022.
|
|
4
11
|
|
|
5
12
|
## 0.15.4
|
|
6
13
|
Wed, 23 Jul 2025 20:55:57 GMT
|
package/dist/terminal.d.ts
CHANGED
|
@@ -948,7 +948,7 @@ export declare class StringBufferTerminalProvider implements ITerminalProvider {
|
|
|
948
948
|
* @beta
|
|
949
949
|
*/
|
|
950
950
|
export declare class Terminal implements ITerminal {
|
|
951
|
-
private _providers;
|
|
951
|
+
private readonly _providers;
|
|
952
952
|
constructor(provider: ITerminalProvider);
|
|
953
953
|
/**
|
|
954
954
|
* {@inheritdoc ITerminal.registerProvider}
|
|
@@ -999,7 +999,6 @@ export declare class Terminal implements ITerminal {
|
|
|
999
999
|
*/
|
|
1000
1000
|
writeDebugLine(...messageParts: TerminalWriteParameters): void;
|
|
1001
1001
|
private _writeSegmentsToProviders;
|
|
1002
|
-
private _serializeLegacyColorableSequence;
|
|
1003
1002
|
private _normalizeWriteParameters;
|
|
1004
1003
|
}
|
|
1005
1004
|
|
package/dist/tsdoc-metadata.json
CHANGED
package/lib/Terminal.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { ITerminal, TerminalWriteParameters } from './ITerminal';
|
|
|
6
6
|
* @beta
|
|
7
7
|
*/
|
|
8
8
|
export declare class Terminal implements ITerminal {
|
|
9
|
-
private _providers;
|
|
9
|
+
private readonly _providers;
|
|
10
10
|
constructor(provider: ITerminalProvider);
|
|
11
11
|
/**
|
|
12
12
|
* {@inheritdoc ITerminal.registerProvider}
|
|
@@ -57,7 +57,6 @@ export declare class Terminal implements ITerminal {
|
|
|
57
57
|
*/
|
|
58
58
|
writeDebugLine(...messageParts: TerminalWriteParameters): void;
|
|
59
59
|
private _writeSegmentsToProviders;
|
|
60
|
-
private _serializeLegacyColorableSequence;
|
|
61
60
|
private _normalizeWriteParameters;
|
|
62
61
|
}
|
|
63
62
|
//# sourceMappingURL=Terminal.d.ts.map
|
package/lib/Terminal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../src/Terminal.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAA4B,MAAM,qBAAqB,CAAC;AAEvF,OAAO,KAAK,EAAE,SAAS,EAAyB,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../src/Terminal.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAA4B,MAAM,qBAAqB,CAAC;AAEvF,OAAO,KAAK,EAAE,SAAS,EAAyB,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAG7F;;;;GAIG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;gBAEjC,QAAQ,EAAE,iBAAiB;IAI9C;;OAEG;IACI,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAI1D;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAI5D;;OAEG;IACI,KAAK,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAK5D;;OAEG;IACI,SAAS,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAKhE;;OAEG;IACI,YAAY,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAcnE;;OAEG;IACI,gBAAgB,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAcvE;;OAEG;IACI,UAAU,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAYjE;;OAEG;IACI,cAAc,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAYrE;;OAEG;IACI,YAAY,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAKnE;;OAEG;IACI,gBAAgB,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAKvE;;OAEG;IACI,UAAU,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAKjE;;OAEG;IACI,cAAc,CAAC,GAAG,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAKrE,OAAO,CAAC,yBAAyB;IA0CjC,OAAO,CAAC,yBAAyB;CAelC"}
|
package/lib/Terminal.js
CHANGED
|
@@ -6,33 +6,6 @@ exports.Terminal = void 0;
|
|
|
6
6
|
const ITerminalProvider_1 = require("./ITerminalProvider");
|
|
7
7
|
const Colorize_1 = require("./Colorize");
|
|
8
8
|
const AnsiEscape_1 = require("./AnsiEscape");
|
|
9
|
-
/**
|
|
10
|
-
* Colors used with {@link ILegacyColorableSequence}.
|
|
11
|
-
*/
|
|
12
|
-
var ColorValue;
|
|
13
|
-
(function (ColorValue) {
|
|
14
|
-
ColorValue[ColorValue["Black"] = 0] = "Black";
|
|
15
|
-
ColorValue[ColorValue["Red"] = 1] = "Red";
|
|
16
|
-
ColorValue[ColorValue["Green"] = 2] = "Green";
|
|
17
|
-
ColorValue[ColorValue["Yellow"] = 3] = "Yellow";
|
|
18
|
-
ColorValue[ColorValue["Blue"] = 4] = "Blue";
|
|
19
|
-
ColorValue[ColorValue["Magenta"] = 5] = "Magenta";
|
|
20
|
-
ColorValue[ColorValue["Cyan"] = 6] = "Cyan";
|
|
21
|
-
ColorValue[ColorValue["White"] = 7] = "White";
|
|
22
|
-
ColorValue[ColorValue["Gray"] = 8] = "Gray";
|
|
23
|
-
})(ColorValue || (ColorValue = {}));
|
|
24
|
-
/**
|
|
25
|
-
* Text styles used with {@link ILegacyColorableSequence}.
|
|
26
|
-
*/
|
|
27
|
-
var TextAttribute;
|
|
28
|
-
(function (TextAttribute) {
|
|
29
|
-
TextAttribute[TextAttribute["Bold"] = 0] = "Bold";
|
|
30
|
-
TextAttribute[TextAttribute["Dim"] = 1] = "Dim";
|
|
31
|
-
TextAttribute[TextAttribute["Underline"] = 2] = "Underline";
|
|
32
|
-
TextAttribute[TextAttribute["Blink"] = 3] = "Blink";
|
|
33
|
-
TextAttribute[TextAttribute["InvertColor"] = 4] = "InvertColor";
|
|
34
|
-
TextAttribute[TextAttribute["Hidden"] = 5] = "Hidden";
|
|
35
|
-
})(TextAttribute || (TextAttribute = {}));
|
|
36
9
|
/**
|
|
37
10
|
* This class facilitates writing to a console.
|
|
38
11
|
*
|
|
@@ -40,8 +13,7 @@ var TextAttribute;
|
|
|
40
13
|
*/
|
|
41
14
|
class Terminal {
|
|
42
15
|
constructor(provider) {
|
|
43
|
-
this._providers = new Set();
|
|
44
|
-
this._providers.add(provider);
|
|
16
|
+
this._providers = new Set([provider]);
|
|
45
17
|
}
|
|
46
18
|
/**
|
|
47
19
|
* {@inheritdoc ITerminal.registerProvider}
|
|
@@ -53,9 +25,7 @@ class Terminal {
|
|
|
53
25
|
* {@inheritdoc ITerminal.unregisterProvider}
|
|
54
26
|
*/
|
|
55
27
|
unregisterProvider(provider) {
|
|
56
|
-
|
|
57
|
-
this._providers.delete(provider);
|
|
58
|
-
}
|
|
28
|
+
this._providers.delete(provider);
|
|
59
29
|
}
|
|
60
30
|
/**
|
|
61
31
|
* {@inheritdoc ITerminal.write}
|
|
@@ -132,26 +102,7 @@ class Terminal {
|
|
|
132
102
|
this._writeSegmentsToProviders(parts, ITerminalProvider_1.TerminalProviderSeverity.debug, true);
|
|
133
103
|
}
|
|
134
104
|
_writeSegmentsToProviders(segments, severity, followedByEol) {
|
|
135
|
-
const
|
|
136
|
-
let currentLineSegments = linesSegments[0];
|
|
137
|
-
for (const segment of segments) {
|
|
138
|
-
if (typeof segment === 'string') {
|
|
139
|
-
currentLineSegments.push(segment);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
if (segment.isEol) {
|
|
143
|
-
linesSegments.push([]);
|
|
144
|
-
currentLineSegments = linesSegments[linesSegments.length - 1];
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
currentLineSegments.push(this._serializeLegacyColorableSequence(segment));
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
const lines = [];
|
|
152
|
-
for (const lineSegments of linesSegments) {
|
|
153
|
-
lines.push(lineSegments.join(''));
|
|
154
|
-
}
|
|
105
|
+
const lines = [segments.join('')];
|
|
155
106
|
if (followedByEol) {
|
|
156
107
|
lines.push('');
|
|
157
108
|
}
|
|
@@ -184,151 +135,6 @@ class Terminal {
|
|
|
184
135
|
provider.write(textToWrite, severity);
|
|
185
136
|
}
|
|
186
137
|
}
|
|
187
|
-
_serializeLegacyColorableSequence(segment) {
|
|
188
|
-
const startColorCodes = [];
|
|
189
|
-
const endColorCodes = [];
|
|
190
|
-
switch (segment.foregroundColor) {
|
|
191
|
-
case ColorValue.Black: {
|
|
192
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.BlackForeground);
|
|
193
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultForeground);
|
|
194
|
-
break;
|
|
195
|
-
}
|
|
196
|
-
case ColorValue.Red: {
|
|
197
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.RedForeground);
|
|
198
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultForeground);
|
|
199
|
-
break;
|
|
200
|
-
}
|
|
201
|
-
case ColorValue.Green: {
|
|
202
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.GreenForeground);
|
|
203
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultForeground);
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
case ColorValue.Yellow: {
|
|
207
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.YellowForeground);
|
|
208
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultForeground);
|
|
209
|
-
break;
|
|
210
|
-
}
|
|
211
|
-
case ColorValue.Blue: {
|
|
212
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.BlueForeground);
|
|
213
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultForeground);
|
|
214
|
-
break;
|
|
215
|
-
}
|
|
216
|
-
case ColorValue.Magenta: {
|
|
217
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.MagentaForeground);
|
|
218
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultForeground);
|
|
219
|
-
break;
|
|
220
|
-
}
|
|
221
|
-
case ColorValue.Cyan: {
|
|
222
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.CyanForeground);
|
|
223
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultForeground);
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
case ColorValue.White: {
|
|
227
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.WhiteForeground);
|
|
228
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultForeground);
|
|
229
|
-
break;
|
|
230
|
-
}
|
|
231
|
-
case ColorValue.Gray: {
|
|
232
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.GrayForeground);
|
|
233
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultForeground);
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
switch (segment.backgroundColor) {
|
|
238
|
-
case ColorValue.Black: {
|
|
239
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.BlackBackground);
|
|
240
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultBackground);
|
|
241
|
-
break;
|
|
242
|
-
}
|
|
243
|
-
case ColorValue.Red: {
|
|
244
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.RedBackground);
|
|
245
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultBackground);
|
|
246
|
-
break;
|
|
247
|
-
}
|
|
248
|
-
case ColorValue.Green: {
|
|
249
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.GreenBackground);
|
|
250
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultBackground);
|
|
251
|
-
break;
|
|
252
|
-
}
|
|
253
|
-
case ColorValue.Yellow: {
|
|
254
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.YellowBackground);
|
|
255
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultBackground);
|
|
256
|
-
break;
|
|
257
|
-
}
|
|
258
|
-
case ColorValue.Blue: {
|
|
259
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.BlueBackground);
|
|
260
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultBackground);
|
|
261
|
-
break;
|
|
262
|
-
}
|
|
263
|
-
case ColorValue.Magenta: {
|
|
264
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.MagentaBackground);
|
|
265
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultBackground);
|
|
266
|
-
break;
|
|
267
|
-
}
|
|
268
|
-
case ColorValue.Cyan: {
|
|
269
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.CyanBackground);
|
|
270
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultBackground);
|
|
271
|
-
break;
|
|
272
|
-
}
|
|
273
|
-
case ColorValue.White: {
|
|
274
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.WhiteBackground);
|
|
275
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.DefaultBackground);
|
|
276
|
-
break;
|
|
277
|
-
}
|
|
278
|
-
case ColorValue.Gray: {
|
|
279
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.GrayBackground);
|
|
280
|
-
endColorCodes.push(49);
|
|
281
|
-
break;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
if (segment.textAttributes) {
|
|
285
|
-
for (const textAttribute of segment.textAttributes) {
|
|
286
|
-
switch (textAttribute) {
|
|
287
|
-
case TextAttribute.Bold: {
|
|
288
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.Bold);
|
|
289
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.NormalColorOrIntensity);
|
|
290
|
-
break;
|
|
291
|
-
}
|
|
292
|
-
case TextAttribute.Dim: {
|
|
293
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.Dim);
|
|
294
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.NormalColorOrIntensity);
|
|
295
|
-
break;
|
|
296
|
-
}
|
|
297
|
-
case TextAttribute.Underline: {
|
|
298
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.Underline);
|
|
299
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.UnderlineOff);
|
|
300
|
-
break;
|
|
301
|
-
}
|
|
302
|
-
case TextAttribute.Blink: {
|
|
303
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.Blink);
|
|
304
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.BlinkOff);
|
|
305
|
-
break;
|
|
306
|
-
}
|
|
307
|
-
case TextAttribute.InvertColor: {
|
|
308
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.InvertColor);
|
|
309
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.InvertColorOff);
|
|
310
|
-
break;
|
|
311
|
-
}
|
|
312
|
-
case TextAttribute.Hidden: {
|
|
313
|
-
startColorCodes.push(Colorize_1.SgrParameterAttribute.Hidden);
|
|
314
|
-
endColorCodes.push(Colorize_1.SgrParameterAttribute.HiddenOff);
|
|
315
|
-
break;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
const resultSegments = [];
|
|
321
|
-
for (let j = 0; j < startColorCodes.length; j++) {
|
|
322
|
-
const code = startColorCodes[j];
|
|
323
|
-
resultSegments.push(AnsiEscape_1.AnsiEscape.getEscapeSequenceForAnsiCode(code));
|
|
324
|
-
}
|
|
325
|
-
resultSegments.push(segment.text);
|
|
326
|
-
for (let j = endColorCodes.length - 1; j >= 0; j--) {
|
|
327
|
-
const code = endColorCodes[j];
|
|
328
|
-
resultSegments.push(AnsiEscape_1.AnsiEscape.getEscapeSequenceForAnsiCode(code));
|
|
329
|
-
}
|
|
330
|
-
return resultSegments.join('');
|
|
331
|
-
}
|
|
332
138
|
_normalizeWriteParameters(parameters) {
|
|
333
139
|
if (parameters.length === 0) {
|
|
334
140
|
return { parts: [], options: {} };
|
package/lib/Terminal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../src/Terminal.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 { type ITerminalProvider, TerminalProviderSeverity } from './ITerminalProvider';\nimport { Colorize, SgrParameterAttribute } from './Colorize';\nimport type { ITerminal, ITerminalWriteOptions, TerminalWriteParameters } from './ITerminal';\nimport { AnsiEscape } from './AnsiEscape';\n\n/**\n * Colors used with {@link ILegacyColorableSequence}.\n */\nenum ColorValue {\n Black,\n Red,\n Green,\n Yellow,\n Blue,\n Magenta,\n Cyan,\n White,\n Gray\n}\n\n/**\n * Text styles used with {@link ILegacyColorableSequence}.\n */\nenum TextAttribute {\n Bold,\n Dim,\n Underline,\n Blink,\n InvertColor,\n Hidden\n}\n\ninterface ILegacyColorableSequence {\n text: string;\n isEol?: boolean;\n foregroundColor?: ColorValue;\n backgroundColor?: ColorValue;\n textAttributes?: TextAttribute[];\n}\n\n/**\n * This class facilitates writing to a console.\n *\n * @beta\n */\nexport class Terminal implements ITerminal {\n private _providers: Set<ITerminalProvider>;\n\n public constructor(provider: ITerminalProvider) {\n this._providers = new Set<ITerminalProvider>();\n this._providers.add(provider);\n }\n\n /**\n * {@inheritdoc ITerminal.registerProvider}\n */\n public registerProvider(provider: ITerminalProvider): void {\n this._providers.add(provider);\n }\n\n /**\n * {@inheritdoc ITerminal.unregisterProvider}\n */\n public unregisterProvider(provider: ITerminalProvider): void {\n if (this._providers.has(provider)) {\n this._providers.delete(provider);\n }\n }\n\n /**\n * {@inheritdoc ITerminal.write}\n */\n public write(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.log, false);\n }\n\n /**\n * {@inheritdoc ITerminal.writeLine}\n */\n public writeLine(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.log, true);\n }\n\n /**\n * {@inheritdoc ITerminal.writeWarning}\n */\n public writeWarning(...messageParts: TerminalWriteParameters): void {\n const {\n parts,\n options: { doNotOverrideSgrCodes }\n } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(\n doNotOverrideSgrCodes\n ? parts\n : parts.map((part): string => Colorize.yellow(AnsiEscape.removeCodes(part))),\n TerminalProviderSeverity.warning,\n false\n );\n }\n\n /**\n * {@inheritdoc ITerminal.writeWarningLine}\n */\n public writeWarningLine(...messageParts: TerminalWriteParameters): void {\n const {\n parts,\n options: { doNotOverrideSgrCodes }\n } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(\n doNotOverrideSgrCodes\n ? parts\n : parts.map((part): string => Colorize.yellow(AnsiEscape.removeCodes(part))),\n TerminalProviderSeverity.warning,\n true\n );\n }\n\n /**\n * {@inheritdoc ITerminal.writeError}\n */\n public writeError(...messageParts: TerminalWriteParameters): void {\n const {\n parts,\n options: { doNotOverrideSgrCodes }\n } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(\n doNotOverrideSgrCodes ? parts : parts.map((part): string => Colorize.red(AnsiEscape.removeCodes(part))),\n TerminalProviderSeverity.error,\n false\n );\n }\n\n /**\n * {@inheritdoc ITerminal.writeErrorLine}\n */\n public writeErrorLine(...messageParts: TerminalWriteParameters): void {\n const {\n parts,\n options: { doNotOverrideSgrCodes }\n } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(\n doNotOverrideSgrCodes ? parts : parts.map((part): string => Colorize.red(AnsiEscape.removeCodes(part))),\n TerminalProviderSeverity.error,\n true\n );\n }\n\n /**\n * {@inheritdoc ITerminal.writeVerbose}\n */\n public writeVerbose(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.verbose, false);\n }\n\n /**\n * {@inheritdoc ITerminal.writeVerboseLine}\n */\n public writeVerboseLine(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.verbose, true);\n }\n\n /**\n * {@inheritdoc ITerminal.writeDebug}\n */\n public writeDebug(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.debug, false);\n }\n\n /**\n * {@inheritdoc ITerminal.writeDebugLine}\n */\n public writeDebugLine(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.debug, true);\n }\n\n private _writeSegmentsToProviders(\n segments: (string | ILegacyColorableSequence)[],\n severity: TerminalProviderSeverity,\n followedByEol: boolean\n ): void {\n const linesSegments: string[][] = [[]];\n let currentLineSegments: string[] = linesSegments[0];\n for (const segment of segments) {\n if (typeof segment === 'string') {\n currentLineSegments.push(segment);\n } else {\n if (segment.isEol) {\n linesSegments.push([]);\n currentLineSegments = linesSegments[linesSegments.length - 1];\n } else {\n currentLineSegments.push(this._serializeLegacyColorableSequence(segment));\n }\n }\n }\n\n const lines: string[] = [];\n for (const lineSegments of linesSegments) {\n lines.push(lineSegments.join(''));\n }\n\n if (followedByEol) {\n lines.push('');\n }\n\n let linesWithoutColor: string[] | undefined;\n\n const concatenatedLinesWithColorByNewlineChar: Map<string, string> = new Map();\n const concatenatedLinesWithoutColorByNewlineChar: Map<string, string> = new Map();\n for (const provider of this._providers) {\n let textToWrite: string | undefined;\n const eol: string = provider.eolCharacter;\n if (provider.supportsColor) {\n textToWrite = concatenatedLinesWithColorByNewlineChar.get(eol);\n if (!textToWrite) {\n textToWrite = lines.join(eol);\n concatenatedLinesWithColorByNewlineChar.set(eol, textToWrite);\n }\n } else {\n textToWrite = concatenatedLinesWithoutColorByNewlineChar.get(eol);\n if (!textToWrite) {\n if (!linesWithoutColor) {\n linesWithoutColor = [];\n for (const line of lines) {\n linesWithoutColor.push(AnsiEscape.removeCodes(line));\n }\n }\n\n textToWrite = linesWithoutColor.join(eol);\n concatenatedLinesWithoutColorByNewlineChar.set(eol, textToWrite);\n }\n }\n\n provider.write(textToWrite, severity);\n }\n }\n\n private _serializeLegacyColorableSequence(segment: ILegacyColorableSequence): string {\n const startColorCodes: number[] = [];\n const endColorCodes: number[] = [];\n switch (segment.foregroundColor) {\n case ColorValue.Black: {\n startColorCodes.push(SgrParameterAttribute.BlackForeground);\n endColorCodes.push(SgrParameterAttribute.DefaultForeground);\n break;\n }\n\n case ColorValue.Red: {\n startColorCodes.push(SgrParameterAttribute.RedForeground);\n endColorCodes.push(SgrParameterAttribute.DefaultForeground);\n break;\n }\n\n case ColorValue.Green: {\n startColorCodes.push(SgrParameterAttribute.GreenForeground);\n endColorCodes.push(SgrParameterAttribute.DefaultForeground);\n break;\n }\n\n case ColorValue.Yellow: {\n startColorCodes.push(SgrParameterAttribute.YellowForeground);\n endColorCodes.push(SgrParameterAttribute.DefaultForeground);\n break;\n }\n\n case ColorValue.Blue: {\n startColorCodes.push(SgrParameterAttribute.BlueForeground);\n endColorCodes.push(SgrParameterAttribute.DefaultForeground);\n break;\n }\n\n case ColorValue.Magenta: {\n startColorCodes.push(SgrParameterAttribute.MagentaForeground);\n endColorCodes.push(SgrParameterAttribute.DefaultForeground);\n break;\n }\n\n case ColorValue.Cyan: {\n startColorCodes.push(SgrParameterAttribute.CyanForeground);\n endColorCodes.push(SgrParameterAttribute.DefaultForeground);\n break;\n }\n\n case ColorValue.White: {\n startColorCodes.push(SgrParameterAttribute.WhiteForeground);\n endColorCodes.push(SgrParameterAttribute.DefaultForeground);\n break;\n }\n\n case ColorValue.Gray: {\n startColorCodes.push(SgrParameterAttribute.GrayForeground);\n endColorCodes.push(SgrParameterAttribute.DefaultForeground);\n break;\n }\n }\n\n switch (segment.backgroundColor) {\n case ColorValue.Black: {\n startColorCodes.push(SgrParameterAttribute.BlackBackground);\n endColorCodes.push(SgrParameterAttribute.DefaultBackground);\n break;\n }\n\n case ColorValue.Red: {\n startColorCodes.push(SgrParameterAttribute.RedBackground);\n endColorCodes.push(SgrParameterAttribute.DefaultBackground);\n break;\n }\n\n case ColorValue.Green: {\n startColorCodes.push(SgrParameterAttribute.GreenBackground);\n endColorCodes.push(SgrParameterAttribute.DefaultBackground);\n break;\n }\n\n case ColorValue.Yellow: {\n startColorCodes.push(SgrParameterAttribute.YellowBackground);\n endColorCodes.push(SgrParameterAttribute.DefaultBackground);\n break;\n }\n\n case ColorValue.Blue: {\n startColorCodes.push(SgrParameterAttribute.BlueBackground);\n endColorCodes.push(SgrParameterAttribute.DefaultBackground);\n break;\n }\n\n case ColorValue.Magenta: {\n startColorCodes.push(SgrParameterAttribute.MagentaBackground);\n endColorCodes.push(SgrParameterAttribute.DefaultBackground);\n break;\n }\n\n case ColorValue.Cyan: {\n startColorCodes.push(SgrParameterAttribute.CyanBackground);\n endColorCodes.push(SgrParameterAttribute.DefaultBackground);\n break;\n }\n\n case ColorValue.White: {\n startColorCodes.push(SgrParameterAttribute.WhiteBackground);\n endColorCodes.push(SgrParameterAttribute.DefaultBackground);\n break;\n }\n\n case ColorValue.Gray: {\n startColorCodes.push(SgrParameterAttribute.GrayBackground);\n endColorCodes.push(49);\n break;\n }\n }\n\n if (segment.textAttributes) {\n for (const textAttribute of segment.textAttributes) {\n switch (textAttribute) {\n case TextAttribute.Bold: {\n startColorCodes.push(SgrParameterAttribute.Bold);\n endColorCodes.push(SgrParameterAttribute.NormalColorOrIntensity);\n break;\n }\n\n case TextAttribute.Dim: {\n startColorCodes.push(SgrParameterAttribute.Dim);\n endColorCodes.push(SgrParameterAttribute.NormalColorOrIntensity);\n break;\n }\n\n case TextAttribute.Underline: {\n startColorCodes.push(SgrParameterAttribute.Underline);\n endColorCodes.push(SgrParameterAttribute.UnderlineOff);\n break;\n }\n\n case TextAttribute.Blink: {\n startColorCodes.push(SgrParameterAttribute.Blink);\n endColorCodes.push(SgrParameterAttribute.BlinkOff);\n break;\n }\n\n case TextAttribute.InvertColor: {\n startColorCodes.push(SgrParameterAttribute.InvertColor);\n endColorCodes.push(SgrParameterAttribute.InvertColorOff);\n break;\n }\n\n case TextAttribute.Hidden: {\n startColorCodes.push(SgrParameterAttribute.Hidden);\n endColorCodes.push(SgrParameterAttribute.HiddenOff);\n break;\n }\n }\n }\n }\n\n const resultSegments: string[] = [];\n for (let j: number = 0; j < startColorCodes.length; j++) {\n const code: number = startColorCodes[j];\n resultSegments.push(AnsiEscape.getEscapeSequenceForAnsiCode(code));\n }\n\n resultSegments.push(segment.text);\n\n for (let j: number = endColorCodes.length - 1; j >= 0; j--) {\n const code: number = endColorCodes[j];\n resultSegments.push(AnsiEscape.getEscapeSequenceForAnsiCode(code));\n }\n\n return resultSegments.join('');\n }\n\n private _normalizeWriteParameters(parameters: TerminalWriteParameters): {\n parts: string[];\n options: ITerminalWriteOptions;\n } {\n if (parameters.length === 0) {\n return { parts: [], options: {} };\n } else {\n const lastParameter: string | ITerminalWriteOptions = parameters[parameters.length - 1];\n if (typeof lastParameter === 'string') {\n return { parts: parameters as string[], options: {} };\n } else {\n return { parts: parameters.slice(0, -1) as string[], options: lastParameter };\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../src/Terminal.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 { type ITerminalProvider, TerminalProviderSeverity } from './ITerminalProvider';\nimport { Colorize } from './Colorize';\nimport type { ITerminal, ITerminalWriteOptions, TerminalWriteParameters } from './ITerminal';\nimport { AnsiEscape } from './AnsiEscape';\n\n/**\n * This class facilitates writing to a console.\n *\n * @beta\n */\nexport class Terminal implements ITerminal {\n private readonly _providers: Set<ITerminalProvider>;\n\n public constructor(provider: ITerminalProvider) {\n this._providers = new Set<ITerminalProvider>([provider]);\n }\n\n /**\n * {@inheritdoc ITerminal.registerProvider}\n */\n public registerProvider(provider: ITerminalProvider): void {\n this._providers.add(provider);\n }\n\n /**\n * {@inheritdoc ITerminal.unregisterProvider}\n */\n public unregisterProvider(provider: ITerminalProvider): void {\n this._providers.delete(provider);\n }\n\n /**\n * {@inheritdoc ITerminal.write}\n */\n public write(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.log, false);\n }\n\n /**\n * {@inheritdoc ITerminal.writeLine}\n */\n public writeLine(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.log, true);\n }\n\n /**\n * {@inheritdoc ITerminal.writeWarning}\n */\n public writeWarning(...messageParts: TerminalWriteParameters): void {\n const {\n parts,\n options: { doNotOverrideSgrCodes }\n } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(\n doNotOverrideSgrCodes\n ? parts\n : parts.map((part): string => Colorize.yellow(AnsiEscape.removeCodes(part))),\n TerminalProviderSeverity.warning,\n false\n );\n }\n\n /**\n * {@inheritdoc ITerminal.writeWarningLine}\n */\n public writeWarningLine(...messageParts: TerminalWriteParameters): void {\n const {\n parts,\n options: { doNotOverrideSgrCodes }\n } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(\n doNotOverrideSgrCodes\n ? parts\n : parts.map((part): string => Colorize.yellow(AnsiEscape.removeCodes(part))),\n TerminalProviderSeverity.warning,\n true\n );\n }\n\n /**\n * {@inheritdoc ITerminal.writeError}\n */\n public writeError(...messageParts: TerminalWriteParameters): void {\n const {\n parts,\n options: { doNotOverrideSgrCodes }\n } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(\n doNotOverrideSgrCodes ? parts : parts.map((part): string => Colorize.red(AnsiEscape.removeCodes(part))),\n TerminalProviderSeverity.error,\n false\n );\n }\n\n /**\n * {@inheritdoc ITerminal.writeErrorLine}\n */\n public writeErrorLine(...messageParts: TerminalWriteParameters): void {\n const {\n parts,\n options: { doNotOverrideSgrCodes }\n } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(\n doNotOverrideSgrCodes ? parts : parts.map((part): string => Colorize.red(AnsiEscape.removeCodes(part))),\n TerminalProviderSeverity.error,\n true\n );\n }\n\n /**\n * {@inheritdoc ITerminal.writeVerbose}\n */\n public writeVerbose(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.verbose, false);\n }\n\n /**\n * {@inheritdoc ITerminal.writeVerboseLine}\n */\n public writeVerboseLine(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.verbose, true);\n }\n\n /**\n * {@inheritdoc ITerminal.writeDebug}\n */\n public writeDebug(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.debug, false);\n }\n\n /**\n * {@inheritdoc ITerminal.writeDebugLine}\n */\n public writeDebugLine(...messageParts: TerminalWriteParameters): void {\n const { parts } = this._normalizeWriteParameters(messageParts);\n this._writeSegmentsToProviders(parts, TerminalProviderSeverity.debug, true);\n }\n\n private _writeSegmentsToProviders(\n segments: string[],\n severity: TerminalProviderSeverity,\n followedByEol: boolean\n ): void {\n const lines: string[] = [segments.join('')];\n if (followedByEol) {\n lines.push('');\n }\n\n let linesWithoutColor: string[] | undefined;\n\n const concatenatedLinesWithColorByNewlineChar: Map<string, string> = new Map();\n const concatenatedLinesWithoutColorByNewlineChar: Map<string, string> = new Map();\n for (const provider of this._providers) {\n let textToWrite: string | undefined;\n const eol: string = provider.eolCharacter;\n if (provider.supportsColor) {\n textToWrite = concatenatedLinesWithColorByNewlineChar.get(eol);\n if (!textToWrite) {\n textToWrite = lines.join(eol);\n concatenatedLinesWithColorByNewlineChar.set(eol, textToWrite);\n }\n } else {\n textToWrite = concatenatedLinesWithoutColorByNewlineChar.get(eol);\n if (!textToWrite) {\n if (!linesWithoutColor) {\n linesWithoutColor = [];\n for (const line of lines) {\n linesWithoutColor.push(AnsiEscape.removeCodes(line));\n }\n }\n\n textToWrite = linesWithoutColor.join(eol);\n concatenatedLinesWithoutColorByNewlineChar.set(eol, textToWrite);\n }\n }\n\n provider.write(textToWrite, severity);\n }\n }\n\n private _normalizeWriteParameters(parameters: TerminalWriteParameters): {\n parts: string[];\n options: ITerminalWriteOptions;\n } {\n if (parameters.length === 0) {\n return { parts: [], options: {} };\n } else {\n const lastParameter: string | ITerminalWriteOptions = parameters[parameters.length - 1];\n if (typeof lastParameter === 'string') {\n return { parts: parameters as string[], options: {} };\n } else {\n return { parts: parameters.slice(0, -1) as string[], options: lastParameter };\n }\n }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rushstack/terminal",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "User interface primitives for console applications",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "dist/terminal.d.ts",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"@rushstack/node-core-library": "5.14.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@rushstack/heft": "0.74.
|
|
18
|
+
"@rushstack/heft": "0.74.3",
|
|
19
19
|
"@types/supports-color": "8.1.3",
|
|
20
20
|
"eslint": "~9.25.1",
|
|
21
21
|
"decoupled-local-node-rig": "1.0.0"
|