@matter/tools 0.12.2-alpha.0-20250201-eb5d40a2f → 0.12.3-alpha.0-20250203-34ba45cae
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/cjs/ansi-text/chars.d.ts +11 -0
- package/dist/cjs/ansi-text/chars.d.ts.map +1 -0
- package/dist/cjs/ansi-text/chars.js +57 -0
- package/dist/cjs/ansi-text/chars.js.map +6 -0
- package/dist/cjs/ansi-text/consumer.d.ts +45 -0
- package/dist/cjs/ansi-text/consumer.d.ts.map +1 -0
- package/dist/cjs/ansi-text/consumer.js +22 -0
- package/dist/cjs/ansi-text/consumer.js.map +6 -0
- package/dist/cjs/ansi-text/contiguous-output-segment.d.ts +31 -0
- package/dist/cjs/ansi-text/contiguous-output-segment.d.ts.map +1 -0
- package/dist/cjs/ansi-text/contiguous-output-segment.js +156 -0
- package/dist/cjs/ansi-text/contiguous-output-segment.js.map +6 -0
- package/dist/cjs/ansi-text/index.d.ts +12 -0
- package/dist/cjs/ansi-text/index.d.ts.map +1 -0
- package/dist/cjs/ansi-text/index.js +29 -0
- package/dist/cjs/ansi-text/index.js.map +6 -0
- package/dist/cjs/ansi-text/printer.d.ts +24 -0
- package/dist/cjs/ansi-text/printer.d.ts.map +1 -0
- package/dist/cjs/ansi-text/printer.js +81 -0
- package/dist/cjs/ansi-text/printer.js.map +6 -0
- package/dist/cjs/ansi-text/producer.d.ts +17 -0
- package/dist/cjs/ansi-text/producer.d.ts.map +1 -0
- package/dist/cjs/ansi-text/producer.js +45 -0
- package/dist/cjs/ansi-text/producer.js.map +6 -0
- package/dist/cjs/ansi-text/screen.d.ts +13 -0
- package/dist/cjs/ansi-text/screen.d.ts.map +1 -0
- package/dist/cjs/ansi-text/screen.js +38 -0
- package/dist/cjs/ansi-text/screen.js.map +6 -0
- package/dist/cjs/ansi-text/sgr.d.ts +100 -0
- package/dist/cjs/ansi-text/sgr.d.ts.map +1 -0
- package/dist/cjs/ansi-text/sgr.js +140 -0
- package/dist/cjs/ansi-text/sgr.js.map +6 -0
- package/dist/cjs/ansi-text/std.d.ts +17 -0
- package/dist/cjs/ansi-text/std.d.ts.map +1 -0
- package/dist/cjs/ansi-text/std.js +43 -0
- package/dist/cjs/ansi-text/std.js.map +6 -0
- package/dist/cjs/ansi-text/style.d.ts +88 -0
- package/dist/cjs/ansi-text/style.d.ts.map +1 -0
- package/dist/cjs/ansi-text/style.js +257 -0
- package/dist/cjs/ansi-text/style.js.map +6 -0
- package/dist/cjs/ansi-text/text-builder.d.ts +78 -0
- package/dist/cjs/ansi-text/text-builder.d.ts.map +1 -0
- package/dist/cjs/ansi-text/text-builder.js +164 -0
- package/dist/cjs/ansi-text/text-builder.js.map +6 -0
- package/dist/cjs/ansi-text/text-writer.d.ts +30 -0
- package/dist/cjs/ansi-text/text-writer.d.ts.map +1 -0
- package/dist/cjs/ansi-text/text-writer.js +317 -0
- package/dist/cjs/ansi-text/text-writer.js.map +6 -0
- package/dist/cjs/ansi-text/token.d.ts +61 -0
- package/dist/cjs/ansi-text/token.d.ts.map +1 -0
- package/dist/cjs/ansi-text/token.js +22 -0
- package/dist/cjs/ansi-text/token.js.map +6 -0
- package/dist/cjs/ansi-text/tokenize.d.ts +11 -0
- package/dist/cjs/ansi-text/tokenize.d.ts.map +1 -0
- package/dist/cjs/ansi-text/tokenize.js +190 -0
- package/dist/cjs/ansi-text/tokenize.js.map +6 -0
- package/dist/cjs/ansi-text/truncator.d.ts +20 -0
- package/dist/cjs/ansi-text/truncator.d.ts.map +1 -0
- package/dist/cjs/ansi-text/truncator.js +72 -0
- package/dist/cjs/ansi-text/truncator.js.map +6 -0
- package/dist/cjs/ansi-text/visible-width-of.d.ts +10 -0
- package/dist/cjs/ansi-text/visible-width-of.d.ts.map +1 -0
- package/dist/cjs/ansi-text/visible-width-of.js +55 -0
- package/dist/cjs/ansi-text/visible-width-of.js.map +6 -0
- package/dist/cjs/ansi-text/wrapper.d.ts +34 -0
- package/dist/cjs/ansi-text/wrapper.d.ts.map +1 -0
- package/dist/cjs/ansi-text/wrapper.js +208 -0
- package/dist/cjs/ansi-text/wrapper.js.map +6 -0
- package/dist/cjs/building/cli.js +6 -6
- package/dist/cjs/building/cli.js.map +1 -1
- package/dist/cjs/building/graph.d.ts +2 -2
- package/dist/cjs/building/graph.d.ts.map +1 -1
- package/dist/cjs/building/graph.js.map +1 -1
- package/dist/cjs/building/project-builder.d.ts +38 -0
- package/dist/cjs/building/project-builder.d.ts.map +1 -0
- package/dist/cjs/building/project-builder.js +200 -0
- package/dist/cjs/building/project-builder.js.map +6 -0
- package/dist/cjs/building/tsconfig.js +1 -1
- package/dist/cjs/building/tsconfig.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -6
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/running/ensure-compiled.js +2 -2
- package/dist/cjs/running/ensure-compiled.js.map +1 -1
- package/dist/cjs/util/commander.d.ts.map +1 -1
- package/dist/cjs/util/commander.js +4 -5
- package/dist/cjs/util/commander.js.map +2 -2
- package/dist/cjs/util/index.d.ts +1 -0
- package/dist/cjs/util/index.d.ts.map +1 -1
- package/dist/cjs/util/index.js +1 -0
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/cjs/util/progress.d.ts +2 -2
- package/dist/cjs/util/progress.d.ts.map +1 -1
- package/dist/cjs/util/progress.js +25 -53
- package/dist/cjs/util/progress.js.map +2 -2
- package/dist/cjs/versioning/versioner.js +2 -12
- package/dist/cjs/versioning/versioner.js.map +2 -2
- package/dist/esm/ansi-text/chars.d.ts +11 -0
- package/dist/esm/ansi-text/chars.d.ts.map +1 -0
- package/dist/esm/ansi-text/chars.js +37 -0
- package/dist/esm/ansi-text/chars.js.map +6 -0
- package/dist/esm/ansi-text/consumer.d.ts +45 -0
- package/dist/esm/ansi-text/consumer.d.ts.map +1 -0
- package/dist/esm/ansi-text/consumer.js +6 -0
- package/dist/esm/ansi-text/consumer.js.map +6 -0
- package/dist/esm/ansi-text/contiguous-output-segment.d.ts +31 -0
- package/dist/esm/ansi-text/contiguous-output-segment.d.ts.map +1 -0
- package/dist/esm/ansi-text/contiguous-output-segment.js +136 -0
- package/dist/esm/ansi-text/contiguous-output-segment.js.map +6 -0
- package/dist/esm/ansi-text/index.d.ts +12 -0
- package/dist/esm/ansi-text/index.d.ts.map +1 -0
- package/dist/esm/ansi-text/index.js +12 -0
- package/dist/esm/ansi-text/index.js.map +6 -0
- package/dist/esm/ansi-text/printer.d.ts +24 -0
- package/dist/esm/ansi-text/printer.d.ts.map +1 -0
- package/dist/esm/ansi-text/printer.js +61 -0
- package/dist/esm/ansi-text/printer.js.map +6 -0
- package/dist/esm/ansi-text/producer.d.ts +17 -0
- package/dist/esm/ansi-text/producer.d.ts.map +1 -0
- package/dist/esm/ansi-text/producer.js +25 -0
- package/dist/esm/ansi-text/producer.js.map +6 -0
- package/dist/esm/ansi-text/screen.d.ts +13 -0
- package/dist/esm/ansi-text/screen.d.ts.map +1 -0
- package/dist/esm/ansi-text/screen.js +18 -0
- package/dist/esm/ansi-text/screen.js.map +6 -0
- package/dist/esm/ansi-text/sgr.d.ts +100 -0
- package/dist/esm/ansi-text/sgr.d.ts.map +1 -0
- package/dist/esm/ansi-text/sgr.js +120 -0
- package/dist/esm/ansi-text/sgr.js.map +6 -0
- package/dist/esm/ansi-text/std.d.ts +17 -0
- package/dist/esm/ansi-text/std.d.ts.map +1 -0
- package/dist/esm/ansi-text/std.js +23 -0
- package/dist/esm/ansi-text/std.js.map +6 -0
- package/dist/esm/ansi-text/style.d.ts +88 -0
- package/dist/esm/ansi-text/style.d.ts.map +1 -0
- package/dist/esm/ansi-text/style.js +245 -0
- package/dist/esm/ansi-text/style.js.map +6 -0
- package/dist/esm/ansi-text/text-builder.d.ts +78 -0
- package/dist/esm/ansi-text/text-builder.d.ts.map +1 -0
- package/dist/esm/ansi-text/text-builder.js +150 -0
- package/dist/esm/ansi-text/text-builder.js.map +6 -0
- package/dist/esm/ansi-text/text-writer.d.ts +30 -0
- package/dist/esm/ansi-text/text-writer.d.ts.map +1 -0
- package/dist/esm/ansi-text/text-writer.js +297 -0
- package/dist/esm/ansi-text/text-writer.js.map +6 -0
- package/dist/esm/ansi-text/token.d.ts +61 -0
- package/dist/esm/ansi-text/token.d.ts.map +1 -0
- package/dist/esm/ansi-text/token.js +6 -0
- package/dist/esm/ansi-text/token.js.map +6 -0
- package/dist/esm/ansi-text/tokenize.d.ts +11 -0
- package/dist/esm/ansi-text/tokenize.d.ts.map +1 -0
- package/dist/esm/ansi-text/tokenize.js +170 -0
- package/dist/esm/ansi-text/tokenize.js.map +6 -0
- package/dist/esm/ansi-text/truncator.d.ts +20 -0
- package/dist/esm/ansi-text/truncator.d.ts.map +1 -0
- package/dist/esm/ansi-text/truncator.js +52 -0
- package/dist/esm/ansi-text/truncator.js.map +6 -0
- package/dist/esm/ansi-text/visible-width-of.d.ts +10 -0
- package/dist/esm/ansi-text/visible-width-of.d.ts.map +1 -0
- package/dist/esm/ansi-text/visible-width-of.js +35 -0
- package/dist/esm/ansi-text/visible-width-of.js.map +6 -0
- package/dist/esm/ansi-text/wrapper.d.ts +34 -0
- package/dist/esm/ansi-text/wrapper.d.ts.map +1 -0
- package/dist/esm/ansi-text/wrapper.js +188 -0
- package/dist/esm/ansi-text/wrapper.js.map +6 -0
- package/dist/esm/building/cli.js +3 -3
- package/dist/esm/building/cli.js.map +1 -1
- package/dist/esm/building/graph.d.ts +2 -2
- package/dist/esm/building/graph.d.ts.map +1 -1
- package/dist/esm/building/graph.js +1 -1
- package/dist/esm/building/graph.js.map +1 -1
- package/dist/esm/building/project-builder.d.ts +38 -0
- package/dist/esm/building/project-builder.d.ts.map +1 -0
- package/dist/esm/building/project-builder.js +180 -0
- package/dist/esm/building/project-builder.js.map +6 -0
- package/dist/esm/building/tsconfig.js +2 -2
- package/dist/esm/building/tsconfig.js.map +1 -1
- package/dist/esm/index.d.ts +4 -6
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/running/ensure-compiled.js +3 -3
- package/dist/esm/running/ensure-compiled.js.map +1 -1
- package/dist/esm/util/commander.d.ts.map +1 -1
- package/dist/esm/util/commander.js +5 -6
- package/dist/esm/util/commander.js.map +1 -1
- package/dist/esm/util/index.d.ts +1 -0
- package/dist/esm/util/index.d.ts.map +1 -1
- package/dist/esm/util/index.js +2 -1
- package/dist/esm/util/index.js.map +1 -1
- package/dist/esm/util/progress.d.ts +2 -2
- package/dist/esm/util/progress.d.ts.map +1 -1
- package/dist/esm/util/progress.js +26 -44
- package/dist/esm/util/progress.js.map +1 -1
- package/dist/esm/versioning/versioner.js +3 -3
- package/dist/esm/versioning/versioner.js.map +1 -1
- package/package.json +11 -1
- package/src/ansi-text/chars.ts +31 -0
- package/src/ansi-text/consumer.ts +53 -0
- package/src/ansi-text/contiguous-output-segment.ts +181 -0
- package/src/ansi-text/index.ts +14 -0
- package/src/ansi-text/printer.ts +86 -0
- package/src/ansi-text/producer.ts +29 -0
- package/src/ansi-text/screen.ts +18 -0
- package/src/ansi-text/sgr.ts +154 -0
- package/src/ansi-text/std.ts +28 -0
- package/src/ansi-text/style.ts +369 -0
- package/src/ansi-text/text-builder.ts +261 -0
- package/src/ansi-text/text-writer.ts +363 -0
- package/src/ansi-text/token.ts +76 -0
- package/src/ansi-text/tokenize.ts +212 -0
- package/src/ansi-text/truncator.ts +63 -0
- package/src/ansi-text/visible-width-of.ts +39 -0
- package/src/ansi-text/wrapper.ts +244 -0
- package/src/building/cli.ts +2 -2
- package/src/building/graph.ts +2 -2
- package/src/building/project-builder.ts +230 -0
- package/src/building/tsconfig.ts +2 -4
- package/src/index.ts +4 -6
- package/src/running/ensure-compiled.ts +2 -2
- package/src/util/commander.ts +4 -6
- package/src/util/index.ts +1 -0
- package/src/util/progress.ts +24 -61
- package/src/versioning/versioner.ts +2 -2
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import {
|
|
7
|
+
Color,
|
|
8
|
+
ExtendedColor,
|
|
9
|
+
SgrCategory,
|
|
10
|
+
SgrOpcode,
|
|
11
|
+
SgrOpcodeBlock,
|
|
12
|
+
SgrOpcodeToCategory,
|
|
13
|
+
SgrOpcodeToUndoOpcode
|
|
14
|
+
} from "./sgr.js";
|
|
15
|
+
const codes = Symbol("codes");
|
|
16
|
+
const text = Symbol("text");
|
|
17
|
+
function Style(definition) {
|
|
18
|
+
if (definition instanceof Style) {
|
|
19
|
+
return definition;
|
|
20
|
+
}
|
|
21
|
+
const style = Object.create(Style.prototype);
|
|
22
|
+
style.styleDefinition = Style.definitionOf(definition);
|
|
23
|
+
return style;
|
|
24
|
+
}
|
|
25
|
+
((Style2) => {
|
|
26
|
+
function opcodeOf(code) {
|
|
27
|
+
if (typeof code === "number") {
|
|
28
|
+
return code;
|
|
29
|
+
}
|
|
30
|
+
if (code === "") {
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
const opcode = Number.parseInt(code);
|
|
34
|
+
if (Number.isNaN(opcode)) {
|
|
35
|
+
return void 0;
|
|
36
|
+
}
|
|
37
|
+
return opcode;
|
|
38
|
+
}
|
|
39
|
+
Style2.opcodeOf = opcodeOf;
|
|
40
|
+
function codesOf(definition) {
|
|
41
|
+
definition = textOf(definition);
|
|
42
|
+
if (definition === void 0) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
if (definition === "") {
|
|
46
|
+
return [0];
|
|
47
|
+
}
|
|
48
|
+
const parts = definition.split(";");
|
|
49
|
+
const codes2 = Array();
|
|
50
|
+
let pos = 0;
|
|
51
|
+
while (pos < parts.length) {
|
|
52
|
+
const part = parts[pos];
|
|
53
|
+
const opcode = opcodeOf(parts[pos]);
|
|
54
|
+
pos++;
|
|
55
|
+
let expectedParts;
|
|
56
|
+
switch (opcode) {
|
|
57
|
+
case SgrOpcodeBlock.fg + Color.extended:
|
|
58
|
+
case SgrOpcodeBlock.bg + Color.extended:
|
|
59
|
+
switch (opcodeOf(parts[pos])) {
|
|
60
|
+
case ExtendedColor.eightBit:
|
|
61
|
+
expectedParts = 3;
|
|
62
|
+
break;
|
|
63
|
+
case ExtendedColor.rgb:
|
|
64
|
+
expectedParts = 5;
|
|
65
|
+
break;
|
|
66
|
+
default:
|
|
67
|
+
expectedParts = 1;
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
break;
|
|
71
|
+
case void 0:
|
|
72
|
+
continue;
|
|
73
|
+
default:
|
|
74
|
+
expectedParts = 0;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
let baseCode;
|
|
78
|
+
if (opcode.toString() === part) {
|
|
79
|
+
baseCode = opcode;
|
|
80
|
+
} else {
|
|
81
|
+
baseCode = part;
|
|
82
|
+
}
|
|
83
|
+
if (expectedParts) {
|
|
84
|
+
const codeCount = part.split(":").length;
|
|
85
|
+
if (codeCount < expectedParts) {
|
|
86
|
+
const argParts = expectedParts - codeCount;
|
|
87
|
+
codes2.push([baseCode, ...parts.slice(pos, pos + argParts)].join(";"));
|
|
88
|
+
pos += argParts;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
codes2.push(baseCode);
|
|
93
|
+
}
|
|
94
|
+
return codes2;
|
|
95
|
+
}
|
|
96
|
+
Style2.codesOf = codesOf;
|
|
97
|
+
function textOf(definition) {
|
|
98
|
+
if (definition === void 0 || definition === "") {
|
|
99
|
+
return definition;
|
|
100
|
+
}
|
|
101
|
+
definition = definition.trim();
|
|
102
|
+
if (definition[0] === "\x1B" && definition[1] === "[") {
|
|
103
|
+
definition = definition.slice(2);
|
|
104
|
+
}
|
|
105
|
+
if (definition[definition.length - 1] === "m") {
|
|
106
|
+
definition = definition.slice(0, definition.length - 1);
|
|
107
|
+
}
|
|
108
|
+
return definition;
|
|
109
|
+
}
|
|
110
|
+
Style2.textOf = textOf;
|
|
111
|
+
function definitionOf(definition) {
|
|
112
|
+
if (definition !== void 0 && typeof definition !== "string" && !Array.isArray(definition)) {
|
|
113
|
+
return definition.styleDefinition;
|
|
114
|
+
}
|
|
115
|
+
return definition;
|
|
116
|
+
}
|
|
117
|
+
Style2.definitionOf = definitionOf;
|
|
118
|
+
})(Style || (Style = {}));
|
|
119
|
+
Style.prototype = {
|
|
120
|
+
get styleDefinition() {
|
|
121
|
+
if (this[codes] !== void 0) {
|
|
122
|
+
return this[codes];
|
|
123
|
+
}
|
|
124
|
+
if (this[text] !== void 0) {
|
|
125
|
+
return this[text];
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
set styleDefinition(definition) {
|
|
129
|
+
if (typeof definition === "function" || typeof definition === "object" && !Array.isArray(definition)) {
|
|
130
|
+
this.styleDefinition = definition.styleDefinition;
|
|
131
|
+
} else if (typeof definition === "string") {
|
|
132
|
+
this[text] = Style.textOf(definition);
|
|
133
|
+
this[codes] = void 0;
|
|
134
|
+
} else {
|
|
135
|
+
this[codes] = definition;
|
|
136
|
+
this[text] = void 0;
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
get styleCodes() {
|
|
140
|
+
if (this[codes] === void 0) {
|
|
141
|
+
this[codes] = Style.codesOf(this[text]);
|
|
142
|
+
}
|
|
143
|
+
return this[codes] ?? [];
|
|
144
|
+
},
|
|
145
|
+
get styleToken() {
|
|
146
|
+
return {
|
|
147
|
+
kind: "style",
|
|
148
|
+
// Do not use this because extension toString() may not do the correct thing
|
|
149
|
+
style: Style(this.styleDefinition)
|
|
150
|
+
};
|
|
151
|
+
},
|
|
152
|
+
get undoStyle() {
|
|
153
|
+
const codes2 = Array();
|
|
154
|
+
for (const code of this.styleCodes) {
|
|
155
|
+
const opcode = Style.opcodeOf(code);
|
|
156
|
+
if (opcode === void 0) {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
const undo = SgrOpcodeToUndoOpcode[opcode];
|
|
160
|
+
if (undo === void 0) {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
codes2.push(undo);
|
|
164
|
+
}
|
|
165
|
+
return Style(codes2);
|
|
166
|
+
},
|
|
167
|
+
toString() {
|
|
168
|
+
const codes2 = Array();
|
|
169
|
+
for (const code of this.styleCodes) {
|
|
170
|
+
const opcode = Style.opcodeOf(code);
|
|
171
|
+
if (opcode === void 0) {
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
codes2.push(code);
|
|
175
|
+
}
|
|
176
|
+
return `\x1B[${codes2.join(";")}m`;
|
|
177
|
+
},
|
|
178
|
+
addStyle(codes2) {
|
|
179
|
+
let categories = Array();
|
|
180
|
+
function processor(category, code) {
|
|
181
|
+
if (category === SgrCategory.reset) {
|
|
182
|
+
categories = [SgrOpcode.reset];
|
|
183
|
+
} else {
|
|
184
|
+
categories[category] = code;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
this.evaluateStyle(processor);
|
|
188
|
+
codes2 = Style.definitionOf(codes2);
|
|
189
|
+
if (codes2 !== void 0) {
|
|
190
|
+
Style(codes2).evaluateStyle(processor);
|
|
191
|
+
}
|
|
192
|
+
return this.factory(
|
|
193
|
+
categories.filter((entry) => entry !== void 0),
|
|
194
|
+
this
|
|
195
|
+
);
|
|
196
|
+
},
|
|
197
|
+
diffStyle(other) {
|
|
198
|
+
let current = Array();
|
|
199
|
+
this.evaluateStyle((category, code) => {
|
|
200
|
+
if (category === SgrCategory.reset) {
|
|
201
|
+
current = [];
|
|
202
|
+
} else {
|
|
203
|
+
current[category] = code;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
let target = [...current];
|
|
207
|
+
other.evaluateStyle((category, code) => {
|
|
208
|
+
if (category === SgrCategory.reset) {
|
|
209
|
+
current = [];
|
|
210
|
+
target = [SgrCategory.reset];
|
|
211
|
+
} else if (current[category] === code) {
|
|
212
|
+
target[category] = void 0;
|
|
213
|
+
} else {
|
|
214
|
+
target[category] = code;
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
return this.factory(
|
|
218
|
+
target.filter((entry) => entry !== void 0),
|
|
219
|
+
this
|
|
220
|
+
);
|
|
221
|
+
},
|
|
222
|
+
evaluateStyle(processor) {
|
|
223
|
+
for (const code of this.styleCodes) {
|
|
224
|
+
const opcode = Style.opcodeOf(code);
|
|
225
|
+
if (opcode !== void 0) {
|
|
226
|
+
const category = SgrOpcodeToCategory[opcode];
|
|
227
|
+
if (category !== void 0) {
|
|
228
|
+
processor(category, code);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
get factory() {
|
|
234
|
+
return Style;
|
|
235
|
+
},
|
|
236
|
+
[Symbol.iterator]() {
|
|
237
|
+
return [{ kind: "style", style: this }][Symbol.iterator]();
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
Style.Inherit = Style();
|
|
241
|
+
Style.None = Style([0]);
|
|
242
|
+
export {
|
|
243
|
+
Style
|
|
244
|
+
};
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fuc2ktdGV4dC9zdHlsZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNCBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBQcm9kdWNlciB9IGZyb20gXCIuL3Byb2R1Y2VyLmpzXCI7XG5pbXBvcnQge1xuICAgIENvbG9yLFxuICAgIEV4dGVuZGVkQ29sb3IsXG4gICAgU2dyQ2F0ZWdvcnksXG4gICAgU2dyT3Bjb2RlLFxuICAgIFNnck9wY29kZUJsb2NrLFxuICAgIFNnck9wY29kZVRvQ2F0ZWdvcnksXG4gICAgU2dyT3Bjb2RlVG9VbmRvT3Bjb2RlLFxufSBmcm9tIFwiLi9zZ3IuanNcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcIi4vdG9rZW4uanNcIjtcblxuLyoqXG4gKiBBbiBpbW11dGFibGUgcmVwcmVzZW50YXRpb24gb2YgYW4gQU5TSSBDU0kgU0dSIHNlcXVlbmNlLCBhbHNvIGtub3duIGFzIHRoZSBcIkFtZXJpY2FuIE5hdGlvbmFsIFN0YW5kYXJkcyBJbnN0aXR1dGVcbiAqIENvbnRyb2wgU2VxdWVuY2UgSW50cm9kdWNlciBTZWxlY3QgR3JhcGhpYyBSZW5kaXRpb25cIi5cbiAqXG4gKiBJbXBsZW1lbnRlZCBsYXJnZWx5IGZyb20gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQU5TSV9lc2NhcGVfY29kZVxuICpcbiAqIFByb3ZpZGVzIGhpZ2ggbGV2ZWwgbG9naWMgZm9yIHBhcnNpbmcgYW5kIG1hbmlwdWxhdGluZyBzdHlsaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlIGV4dGVuZHMgUHJvZHVjZXIge1xuICAgIC8qKlxuICAgICAqIFRoZSBjdXJyZW50IGRlZmluaXRpb24sIGVpdGhlciB7QGxpbmsgY29kZXN9IG9yIHtAbGluayB0ZXh0fS5cbiAgICAgKi9cbiAgICBnZXQgc3R5bGVEZWZpbml0aW9uKCk6IFN0eWxlLkRlZmluaXRpb247XG5cbiAgICBzZXQgc3R5bGVEZWZpbml0aW9uKGRlZmluaXRpb246IFN0eWxlLklucHV0RGVmaW5pdGlvbiB8IFN0eWxlIHwgdW5kZWZpbmVkKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBsaXN0IG9mIGNvZGVzIGluIHRoaXMgc3R5bGUuXG4gICAgICovXG4gICAgc3R5bGVDb2RlczogKHN0cmluZyB8IG51bWJlcilbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzdHlsZSBhcyBhIHN0eWxlIHRva2VuLlxuICAgICAqL1xuICAgIHN0eWxlVG9rZW46IFRva2VuO1xuXG4gICAgLyoqXG4gICAgICogQSBzdHlsZSB0aGF0IGRpc2FibGVzIHRoaXMgc3R5bGUuXG4gICAgICovXG4gICAgdW5kb1N0eWxlOiBTdHlsZTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSB0aGUgQU5TSSBlc2NhcGUgc2VxdWVuY2UgZm9yIHRoaXMgc3R5bGUuXG4gICAgICovXG4gICAgdG9TdHJpbmcoKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IHN0eWxlIGJ5IGFkZGluZyBhZGRpdGlvbmFsIHN0eWxlIGluZm9ybWF0aW9uLlxuICAgICAqL1xuICAgIGFkZFN0eWxlPFQgZXh0ZW5kcyBTdHlsZT4odGhpczogVCwgc3R5bGU6IFN0eWxlLklucHV0RGVmaW5pdGlvbiB8IFN0eWxlKTogVDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIHN0eWxlIHRoYXQgdHJhbnNpdGlvbnMgZnJvbSB0aGlzIHN0eWxlIHRvIGFub3RoZXIuXG4gICAgICovXG4gICAgZGlmZlN0eWxlPFQgZXh0ZW5kcyBTdHlsZT4odGhpczogVCwgb3RoZXI6IFN0eWxlKTogVDtcblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGUgYSBmdW5jdGlvbiBhZ2FpbnN0IGVhY2ggY29kZSBpbiB0aGlzIHN0eWxlJ3Mgc2VxdWVuY2UuXG4gICAgICovXG4gICAgZXZhbHVhdGVTdHlsZShwcm9jZXNzb3I6IChjYXRlZ29yeTogU2dyQ2F0ZWdvcnksIGNvZGU6IG51bWJlciB8IHN0cmluZykgPT4gdm9pZCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZmFjdG9yeSB1c2VkIHRvIGNyZWF0ZSB0aGlzIHN0eWxlLlxuICAgICAqL1xuICAgIGZhY3Rvcnk6IFN0eWxlLkZhY3Rvcnk7XG59XG5cbmNvbnN0IGNvZGVzID0gU3ltYm9sKFwiY29kZXNcIik7XG5jb25zdCB0ZXh0ID0gU3ltYm9sKFwidGV4dFwiKTtcblxuaW50ZXJmYWNlIEludGVybmFsU3R5bGUgZXh0ZW5kcyBTdHlsZSB7XG4gICAgW2NvZGVzXT86IChzdHJpbmcgfCBudW1iZXIpW107XG4gICAgW3RleHRdPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gU3R5bGUoZGVmaW5pdGlvbj86IFN0eWxlLklucHV0RGVmaW5pdGlvbik6IFN0eWxlIHtcbiAgICBpZiAoZGVmaW5pdGlvbiBpbnN0YW5jZW9mIFN0eWxlKSB7XG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHN0eWxlID0gT2JqZWN0LmNyZWF0ZShTdHlsZS5wcm90b3R5cGUpIGFzIFN0eWxlO1xuXG4gICAgc3R5bGUuc3R5bGVEZWZpbml0aW9uID0gU3R5bGUuZGVmaW5pdGlvbk9mKGRlZmluaXRpb24pO1xuXG4gICAgcmV0dXJuIHN0eWxlO1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIFN0eWxlIHtcbiAgICBleHBvcnQgdHlwZSBGYWN0b3J5ID0gKGRlZmluaXRpb24/OiBEZWZpbml0aW9uIHwgU3R5bGUsIGRlcml2ZXNGcm9tPzogU3R5bGUpID0+IFN0eWxlO1xuICAgIGV4cG9ydCB0eXBlIERlZmluaXRpb24gPSB1bmRlZmluZWQgfCBzdHJpbmcgfCAoc3RyaW5nIHwgbnVtYmVyKVtdO1xuICAgIGV4cG9ydCB0eXBlIElucHV0RGVmaW5pdGlvbiA9IERlZmluaXRpb24gfCB7IHN0eWxlRGVmaW5pdGlvbjogRGVmaW5pdGlvbiB9O1xuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIG9wY29kZU9mKGNvZGU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICBpZiAodHlwZW9mIGNvZGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvZGUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTm90ZSB3ZSBtdXN0IHVzZSBwYXJzZUludCBzbyB0cmFpbGluZyBwYXJhbWV0ZXJzIGFyZSBzdHJpcHBlZFxuICAgICAgICBjb25zdCBvcGNvZGUgPSBOdW1iZXIucGFyc2VJbnQoY29kZSk7XG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4ob3Bjb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcGNvZGU7XG4gICAgfVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNvZGVzT2YoZGVmaW5pdGlvbj86IHN0cmluZyk6IChudW1iZXIgfCBzdHJpbmcpW10ge1xuICAgICAgICBkZWZpbml0aW9uID0gdGV4dE9mKGRlZmluaXRpb24pO1xuICAgICAgICBpZiAoZGVmaW5pdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZmluaXRpb24gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBbMF07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJ0cyA9IGRlZmluaXRpb24uc3BsaXQoXCI7XCIpO1xuICAgICAgICBjb25zdCBjb2RlcyA9IEFycmF5PHN0cmluZyB8IG51bWJlcj4oKTtcbiAgICAgICAgbGV0IHBvcyA9IDA7XG4gICAgICAgIHdoaWxlIChwb3MgPCBwYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnQgPSBwYXJ0c1twb3NdO1xuICAgICAgICAgICAgY29uc3Qgb3Bjb2RlID0gb3Bjb2RlT2YocGFydHNbcG9zXSk7XG4gICAgICAgICAgICBwb3MrKztcblxuICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIGhvdyBtYW55IGFyZ3VtZW50cyB0aGUgY29kZSBoYXMuICBXZSBlbmNvZGUgdGhlc2UgYXMgYSBzaW5nbGUgdW5pdFxuICAgICAgICAgICAgbGV0IGV4cGVjdGVkUGFydHM7XG4gICAgICAgICAgICBzd2l0Y2ggKG9wY29kZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgU2dyT3Bjb2RlQmxvY2suZmcgKyBDb2xvci5leHRlbmRlZDpcbiAgICAgICAgICAgICAgICBjYXNlIFNnck9wY29kZUJsb2NrLmJnICsgQ29sb3IuZXh0ZW5kZWQ6XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAob3Bjb2RlT2YocGFydHNbcG9zXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXh0ZW5kZWRDb2xvci5laWdodEJpdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZFBhcnRzID0gMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFeHRlbmRlZENvbG9yLnJnYjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZFBhcnRzID0gNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3Qgc3VyZSB3aGF0IHRvIG1ha2Ugb2YgdGhpczsganVzdCBncmFiIHRoZSB0d28gcHJlZml4IGNvZGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRQYXJ0cyA9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRQYXJ0cyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTdG9yZSB0aGUgb3JpZ2luYWwgY29kZSBhcyBhIG51bWJlciBpZiBpdCBpcyBlbmNvZGVkIGFzIGFuIGludGVnZXIgd2l0aG91dCBhcmd1bWVudHNcbiAgICAgICAgICAgIGxldCBiYXNlQ29kZTogbnVtYmVyIHwgc3RyaW5nO1xuICAgICAgICAgICAgaWYgKG9wY29kZS50b1N0cmluZygpID09PSBwYXJ0KSB7XG4gICAgICAgICAgICAgICAgYmFzZUNvZGUgPSBvcGNvZGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJhc2VDb2RlID0gcGFydDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQXJndW1lbnRzIG1heSBiZSBlbmNvZGVkIGluIGEgc2luZ2xlIGNvZGUgd2l0aCBcIjpcIiBhcyBzZXBhcmF0b3IsIG9yIGFzIHNlcGFyYXRlIGNvZGVzIGlmIFwiO1wiIGlzXG4gICAgICAgICAgICAvLyB0aGUgc2VwYXJhdG9yLiAgVW5zdXJlIHdoZXJlIHdoaWNoIGlzIHN1cHBvcnRlZCBzbyB3ZSBqdXN0IGhhbmRsZSBib3RoXG4gICAgICAgICAgICBpZiAoZXhwZWN0ZWRQYXJ0cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVDb3VudCA9IHBhcnQuc3BsaXQoXCI6XCIpLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpZiAoY29kZUNvdW50IDwgZXhwZWN0ZWRQYXJ0cykge1xuICAgICAgICAgICAgICAgICAgICAvLyBBdCBsZWFzdCBzb21lIGFyZ3MgYXJlIGluIHN1YnNlcXVlbnQgY29kZXM7IGpvaW4gdGhlc2UgdG9nZXRoZXIgdXNpbmcgb3JpZ2luYWwgc2VwYXJhdG9yIHNvXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZXkgc2VyaWFsaXplIGluIG9yaWdpbmFsIGZvcm1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJnUGFydHMgPSBleHBlY3RlZFBhcnRzIC0gY29kZUNvdW50O1xuICAgICAgICAgICAgICAgICAgICBjb2Rlcy5wdXNoKFtiYXNlQ29kZSwgLi4ucGFydHMuc2xpY2UocG9zLCBwb3MgKyBhcmdQYXJ0cyldLmpvaW4oXCI7XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zICs9IGFyZ1BhcnRzO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE5vIGFyZ3Mgb3IgYWxsIGFyZ3MgZW5jb2RlZCB1c2luZyBcIjpcIiBzZXBhcmF0b3JcbiAgICAgICAgICAgIGNvZGVzLnB1c2goYmFzZUNvZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2RlcztcbiAgICB9XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gdGV4dE9mKGRlZmluaXRpb24/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGRlZmluaXRpb24gPT09IHVuZGVmaW5lZCB8fCBkZWZpbml0aW9uID09PSBcIlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBkZWZpbml0aW9uID0gZGVmaW5pdGlvbi50cmltKCk7XG4gICAgICAgIGlmIChkZWZpbml0aW9uWzBdID09PSBcIlxceDFiXCIgJiYgZGVmaW5pdGlvblsxXSA9PT0gXCJbXCIpIHtcbiAgICAgICAgICAgIGRlZmluaXRpb24gPSBkZWZpbml0aW9uLnNsaWNlKDIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWZpbml0aW9uW2RlZmluaXRpb24ubGVuZ3RoIC0gMV0gPT09IFwibVwiKSB7XG4gICAgICAgICAgICBkZWZpbml0aW9uID0gZGVmaW5pdGlvbi5zbGljZSgwLCBkZWZpbml0aW9uLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBkZWZpbml0aW9uT2YoZGVmaW5pdGlvbjogSW5wdXREZWZpbml0aW9uKTogRGVmaW5pdGlvbiB7XG4gICAgICAgIGlmIChkZWZpbml0aW9uICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGRlZmluaXRpb24gIT09IFwic3RyaW5nXCIgJiYgIUFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZpbml0aW9uLnN0eWxlRGVmaW5pdGlvbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICB9XG5cbiAgICBkZWNsYXJlIGNvbnN0IEluaGVyaXQ6IFN0eWxlO1xuICAgIGRlY2xhcmUgY29uc3QgTm9uZTogU3R5bGU7XG59XG5cblN0eWxlLnByb3RvdHlwZSA9IHtcbiAgICBnZXQgc3R5bGVEZWZpbml0aW9uKCk6IFN0eWxlLkRlZmluaXRpb24ge1xuICAgICAgICBpZiAodGhpc1tjb2Rlc10gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbY29kZXNdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzW3RleHRdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzW3RleHRdO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIHNldCBzdHlsZURlZmluaXRpb24oZGVmaW5pdGlvbjogU3R5bGUuSW5wdXREZWZpbml0aW9uKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJmdW5jdGlvblwiIHx8ICh0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKSkpIHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVEZWZpbml0aW9uID0gZGVmaW5pdGlvbi5zdHlsZURlZmluaXRpb247XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmluaXRpb24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRoaXNbdGV4dF0gPSBTdHlsZS50ZXh0T2YoZGVmaW5pdGlvbik7XG4gICAgICAgICAgICB0aGlzW2NvZGVzXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXNbY29kZXNdID0gZGVmaW5pdGlvbjtcbiAgICAgICAgICAgIHRoaXNbdGV4dF0gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0IHN0eWxlQ29kZXMoKSB7XG4gICAgICAgIGlmICh0aGlzW2NvZGVzXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzW2NvZGVzXSA9IFN0eWxlLmNvZGVzT2YodGhpc1t0ZXh0XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXNbY29kZXNdID8/IFtdO1xuICAgIH0sXG5cbiAgICBnZXQgc3R5bGVUb2tlbigpOiBUb2tlbiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiBcInN0eWxlXCIsXG5cbiAgICAgICAgICAgIC8vIERvIG5vdCB1c2UgdGhpcyBiZWNhdXNlIGV4dGVuc2lvbiB0b1N0cmluZygpIG1heSBub3QgZG8gdGhlIGNvcnJlY3QgdGhpbmdcbiAgICAgICAgICAgIHN0eWxlOiBTdHlsZSh0aGlzLnN0eWxlRGVmaW5pdGlvbiksXG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIGdldCB1bmRvU3R5bGUoKSB7XG4gICAgICAgIGNvbnN0IGNvZGVzID0gQXJyYXk8bnVtYmVyPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGNvZGUgb2YgdGhpcy5zdHlsZUNvZGVzKSB7XG4gICAgICAgICAgICBjb25zdCBvcGNvZGUgPSBTdHlsZS5vcGNvZGVPZihjb2RlKTtcbiAgICAgICAgICAgIGlmIChvcGNvZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1bmRvID0gU2dyT3Bjb2RlVG9VbmRvT3Bjb2RlW29wY29kZV07XG4gICAgICAgICAgICBpZiAodW5kbyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvZGVzLnB1c2godW5kbyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFN0eWxlKGNvZGVzKTtcbiAgICB9LFxuXG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIGNvbnN0IGNvZGVzID0gQXJyYXk8bnVtYmVyIHwgc3RyaW5nPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGNvZGUgb2YgdGhpcy5zdHlsZUNvZGVzKSB7XG4gICAgICAgICAgICBjb25zdCBvcGNvZGUgPSBTdHlsZS5vcGNvZGVPZihjb2RlKTtcbiAgICAgICAgICAgIGlmIChvcGNvZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb2Rlcy5wdXNoKGNvZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgXFx4MWJbJHtjb2Rlcy5qb2luKFwiO1wiKX1tYDtcbiAgICB9LFxuXG4gICAgYWRkU3R5bGU8VCBleHRlbmRzIFN0eWxlPih0aGlzOiBULCBjb2RlczogU3R5bGUuSW5wdXREZWZpbml0aW9uKTogVCB7XG4gICAgICAgIGxldCBjYXRlZ29yaWVzID0gQXJyYXk8bnVtYmVyIHwgc3RyaW5nPigpO1xuXG4gICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NvcihjYXRlZ29yeTogU2dyQ2F0ZWdvcnksIGNvZGU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICAgICAgaWYgKGNhdGVnb3J5ID09PSBTZ3JDYXRlZ29yeS5yZXNldCkge1xuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXMgPSBbU2dyT3Bjb2RlLnJlc2V0XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcmllc1tjYXRlZ29yeV0gPSBjb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIG15IGNvZGVzXG4gICAgICAgIHRoaXMuZXZhbHVhdGVTdHlsZShwcm9jZXNzb3IpO1xuXG4gICAgICAgIC8vIE92ZXJ3cml0ZSB3aXRoIG5ldyBjb2Rlc1xuICAgICAgICBjb2RlcyA9IFN0eWxlLmRlZmluaXRpb25PZihjb2Rlcyk7XG4gICAgICAgIGlmIChjb2RlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBTdHlsZShjb2RlcykuZXZhbHVhdGVTdHlsZShwcm9jZXNzb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmFjdG9yeShcbiAgICAgICAgICAgIGNhdGVnb3JpZXMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5ICE9PSB1bmRlZmluZWQpLFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgKSBhcyBUO1xuICAgIH0sXG5cbiAgICBkaWZmU3R5bGU8VCBleHRlbmRzIFN0eWxlPih0aGlzOiBULCBvdGhlcjogU3R5bGUpOiBUIHtcbiAgICAgICAgbGV0IGN1cnJlbnQgPSBBcnJheTxudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAgICAgLy8gQ29sbGVjdCBjdXJyZW50IHN0eWxlcyBieSBjYXRlZ29yeS4gIFJlc2V0IGNsZWFycyBzdGF0ZVxuICAgICAgICB0aGlzLmV2YWx1YXRlU3R5bGUoKGNhdGVnb3J5OiBTZ3JDYXRlZ29yeSwgY29kZTogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2F0ZWdvcnkgPT09IFNnckNhdGVnb3J5LnJlc2V0KSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IFtdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50W2NhdGVnb3J5XSA9IGNvZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENvbGxlY3QgdGFyZ2V0IHN0eWxlIGJ5IGNhdGVnb3J5LiAgUmVzZXQgY2xlYXJzIGN1cnJlbnQgKGJlY2F1c2UgaXRzIG5vIGxvbmdlciByZWxldmFudCkgYW5kIGFkZHMgdGhlXG4gICAgICAgIC8vIHJlc2V0IHdoaWNoIGFsd2F5cyBzZXJpYWxpemVzIGZpcnN0XG4gICAgICAgIGxldCB0YXJnZXQgPSBbLi4uY3VycmVudF07XG4gICAgICAgIG90aGVyLmV2YWx1YXRlU3R5bGUoKGNhdGVnb3J5LCBjb2RlKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2F0ZWdvcnkgPT09IFNnckNhdGVnb3J5LnJlc2V0KSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IFtdO1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IFtTZ3JDYXRlZ29yeS5yZXNldF07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRbY2F0ZWdvcnldID09PSBjb2RlKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2NhdGVnb3J5XSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2NhdGVnb3J5XSA9IGNvZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFRhcmdldCBub3cgY29udGFpbnMgb25seSB0aG9zZSBjb2RlcyByZXF1aXJlZCB0byBwZXJmb3JtIHRyYW5zaXRpb25cbiAgICAgICAgcmV0dXJuIHRoaXMuZmFjdG9yeShcbiAgICAgICAgICAgIHRhcmdldC5maWx0ZXIoZW50cnkgPT4gZW50cnkgIT09IHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICApIGFzIFQ7XG4gICAgfSxcblxuICAgIGV2YWx1YXRlU3R5bGUocHJvY2Vzc29yOiAoY2F0ZWdvcnk6IFNnckNhdGVnb3J5LCBjb2RlOiBudW1iZXIgfCBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBjb2RlIG9mIHRoaXMuc3R5bGVDb2Rlcykge1xuICAgICAgICAgICAgY29uc3Qgb3Bjb2RlID0gU3R5bGUub3Bjb2RlT2YoY29kZSk7XG4gICAgICAgICAgICBpZiAob3Bjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IFNnck9wY29kZVRvQ2F0ZWdvcnlbb3Bjb2RlXTtcbiAgICAgICAgICAgICAgICBpZiAoY2F0ZWdvcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IoY2F0ZWdvcnksIGNvZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBnZXQgZmFjdG9yeSgpIHtcbiAgICAgICAgcmV0dXJuIFN0eWxlO1xuICAgIH0sXG5cbiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgcmV0dXJuIFt7IGtpbmQ6IFwic3R5bGVcIiwgc3R5bGU6IHRoaXMgYXMgU3R5bGUgfSBzYXRpc2ZpZXMgVG9rZW5dW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICB9LFxufSBzYXRpc2ZpZXMgUGljazxJbnRlcm5hbFN0eWxlLCBrZXlvZiBJbnRlcm5hbFN0eWxlPjtcblxuU3R5bGUuSW5oZXJpdCA9IFN0eWxlKCk7XG5TdHlsZS5Ob25lID0gU3R5bGUoWzBdKTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBLEVBQ0k7QUFBQSxF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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ansi-text/style.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["Style", "codes"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Producer } from "./producer.js";
|
|
7
|
+
import { Color, EightBitColor, RgbColor } from "./sgr.js";
|
|
8
|
+
import { Style } from "./style.js";
|
|
9
|
+
/**
|
|
10
|
+
* Convenience API for building ANSI text.
|
|
11
|
+
*
|
|
12
|
+
* Allows you to create ANSI escape sequences using e.g. `ansi.bright.yellow.bg.blue.blink`.
|
|
13
|
+
*/
|
|
14
|
+
export interface TextBuilder extends Style {
|
|
15
|
+
(...text: Producer.Sequence): TextBuilder;
|
|
16
|
+
readonly state: TextBuilder.State;
|
|
17
|
+
readonly bg: TextBuilder;
|
|
18
|
+
readonly not: TextBuilder;
|
|
19
|
+
readonly reset: TextBuilder;
|
|
20
|
+
readonly bold: TextBuilder;
|
|
21
|
+
readonly dim: TextBuilder;
|
|
22
|
+
readonly bright: TextBuilder;
|
|
23
|
+
readonly italic: TextBuilder;
|
|
24
|
+
readonly underline: TextBuilder;
|
|
25
|
+
readonly doubleUnderline: TextBuilder;
|
|
26
|
+
readonly blink: TextBuilder;
|
|
27
|
+
readonly fastBlink: TextBuilder;
|
|
28
|
+
readonly invert: TextBuilder;
|
|
29
|
+
readonly conceal: TextBuilder;
|
|
30
|
+
readonly strike: TextBuilder;
|
|
31
|
+
readonly black: TextBuilder;
|
|
32
|
+
readonly red: TextBuilder;
|
|
33
|
+
readonly green: TextBuilder;
|
|
34
|
+
readonly yellow: TextBuilder;
|
|
35
|
+
readonly blue: TextBuilder;
|
|
36
|
+
readonly magenta: TextBuilder;
|
|
37
|
+
readonly cyan: TextBuilder;
|
|
38
|
+
readonly white: TextBuilder;
|
|
39
|
+
color(color: Color | EightBitColor | RgbColor): TextBuilder;
|
|
40
|
+
factory: TextBuilder.Factory;
|
|
41
|
+
}
|
|
42
|
+
export declare function TextBuilder(definition?: Style.InputDefinition | Style, derivesFrom?: Style, state?: TextBuilder.State): TextBuilder;
|
|
43
|
+
export declare namespace TextBuilder {
|
|
44
|
+
var prototype: any;
|
|
45
|
+
}
|
|
46
|
+
export declare namespace TextBuilder {
|
|
47
|
+
interface State {
|
|
48
|
+
/**
|
|
49
|
+
* If next build affects a color it will modify bg rather than fg.
|
|
50
|
+
*/
|
|
51
|
+
readonly bg?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* If next build affects 8-bit color the color will render as bright.
|
|
54
|
+
*/
|
|
55
|
+
readonly bright?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* If next build modifies ANSI styling its meaning is inverted.
|
|
58
|
+
*/
|
|
59
|
+
readonly not?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Serialization will include style reversion as the final token.
|
|
62
|
+
*
|
|
63
|
+
* Set after invoking builder as function, cleared when modifying style. This means that ansi.red("foo") is
|
|
64
|
+
* terminated but ansi.red("foo").green will render as a red "foo" and leave text styled green.
|
|
65
|
+
*/
|
|
66
|
+
readonly revert?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* The serialization sequence. Populated by invoking builder as function.
|
|
69
|
+
*/
|
|
70
|
+
readonly sequence?: Producer.Sequence;
|
|
71
|
+
}
|
|
72
|
+
type Factory = (definition?: Style.Definition | Style, derivesFrom?: Style, state?: TextBuilder.State) => TextBuilder;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Initial builder.
|
|
76
|
+
*/
|
|
77
|
+
export declare const ansi: TextBuilder;
|
|
78
|
+
//# sourceMappingURL=text-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-builder.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/text-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACH,KAAK,EACL,aAAa,EAEb,QAAQ,EAIX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,KAAK;IACtC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC;IAE1C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAC;IAE5D,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;CAChC;AAED,wBAAgB,WAAW,CACvB,UAAU,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,KAAK,EAC1C,WAAW,CAAC,EAAE,KAAK,EACnB,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,eA4B5B;yBA/Be,WAAW;;;AAoK3B,yBAAiB,WAAW,CAAC;IACzB,UAAiB,KAAK;QAClB;;WAEG;QACH,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;QAEtB;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAE1B;;WAEG;QACH,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAEvB;;;;;WAKG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAE1B;;WAEG;QACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;KACzC;IAED,KAAY,OAAO,GAAG,CAClB,UAAU,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,EACrC,WAAW,CAAC,EAAE,KAAK,EACnB,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,KACxB,WAAW,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,aAAgB,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Producer } from "./producer.js";
|
|
7
|
+
import {
|
|
8
|
+
Color,
|
|
9
|
+
ExtendedColor,
|
|
10
|
+
SgrOpcode,
|
|
11
|
+
SgrOpcodeBlock,
|
|
12
|
+
SgrOpcodeToUndoOpcode
|
|
13
|
+
} from "./sgr.js";
|
|
14
|
+
import { Style } from "./style.js";
|
|
15
|
+
import { TextWriter } from "./text-writer.js";
|
|
16
|
+
function TextBuilder(definition, derivesFrom, state) {
|
|
17
|
+
if (derivesFrom instanceof TextBuilder) {
|
|
18
|
+
state = { ...derivesFrom.state, ...state };
|
|
19
|
+
} else if (state === void 0) {
|
|
20
|
+
state = {};
|
|
21
|
+
}
|
|
22
|
+
definition = Style.definitionOf(definition);
|
|
23
|
+
const self = function TextBuilderInstance(...text) {
|
|
24
|
+
const sequence = self.state.sequence ? [...self.state.sequence] : [];
|
|
25
|
+
if (self.styleDefinition?.length) {
|
|
26
|
+
sequence.push(self.styleToken);
|
|
27
|
+
}
|
|
28
|
+
sequence.push(...text);
|
|
29
|
+
return TextBuilder(self, self, { sequence, revert: true });
|
|
30
|
+
};
|
|
31
|
+
Object.setPrototypeOf(self, TextBuilder.prototype);
|
|
32
|
+
self.state = state;
|
|
33
|
+
if (definition !== void 0) {
|
|
34
|
+
self.styleDefinition = definition;
|
|
35
|
+
}
|
|
36
|
+
return self;
|
|
37
|
+
}
|
|
38
|
+
TextBuilder.prototype = Object.create(Style.prototype, {
|
|
39
|
+
bg: chmode({ bg: true }),
|
|
40
|
+
not: chmode({ not: true }),
|
|
41
|
+
bold: toggle("bold"),
|
|
42
|
+
dim: toggle("dim"),
|
|
43
|
+
bright: chmode({ bright: true }),
|
|
44
|
+
italic: toggle("italic"),
|
|
45
|
+
underline: toggle("underline"),
|
|
46
|
+
doubleUnderline: toggle("doubleUnderline"),
|
|
47
|
+
slowBlink: toggle("slowBlink"),
|
|
48
|
+
fastBlink: toggle("fastBlink"),
|
|
49
|
+
invert: toggle("invert"),
|
|
50
|
+
conceal: toggle("conceal"),
|
|
51
|
+
strike: toggle("strike"),
|
|
52
|
+
black: color("black"),
|
|
53
|
+
red: color("red"),
|
|
54
|
+
green: color("green"),
|
|
55
|
+
yellow: color("yellow"),
|
|
56
|
+
blue: color("blue"),
|
|
57
|
+
magenta: color("magenta"),
|
|
58
|
+
cyan: color("cyan"),
|
|
59
|
+
white: color("white"),
|
|
60
|
+
reset: {
|
|
61
|
+
get() {
|
|
62
|
+
return this.addStyle([0]);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
color: {
|
|
66
|
+
value(color2) {
|
|
67
|
+
if (this.state.not) {
|
|
68
|
+
return this.addStyle([this.state.bg ? SgrOpcode.normalBg : SgrOpcode.normalFg]);
|
|
69
|
+
}
|
|
70
|
+
if (typeof color2 === "object") {
|
|
71
|
+
if ("color" in color2) {
|
|
72
|
+
return this.addStyle([Color.extended, ExtendedColor.eightBit, color2.color]);
|
|
73
|
+
}
|
|
74
|
+
return this.addStyle([Color.extended, ExtendedColor.rgb, color2.r ?? 0, color2.g ?? 0, color2.b ?? 0]);
|
|
75
|
+
}
|
|
76
|
+
const block = this.state.bg ? this.state.bright ? SgrOpcodeBlock.bgBright : SgrOpcodeBlock.bg : this.state.bright ? SgrOpcodeBlock.fgBright : SgrOpcodeBlock.fg;
|
|
77
|
+
return this.addStyle([block + color2]);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
toString: {
|
|
81
|
+
value() {
|
|
82
|
+
let { sequence } = this.state;
|
|
83
|
+
if (!sequence) {
|
|
84
|
+
sequence = [this.styleToken];
|
|
85
|
+
}
|
|
86
|
+
if (this.state.revert) {
|
|
87
|
+
sequence = [...sequence, this.undoStyle.styleToken];
|
|
88
|
+
}
|
|
89
|
+
const parts = Array();
|
|
90
|
+
const writer = new TextWriter((part) => parts.push(part));
|
|
91
|
+
writer.write(...sequence);
|
|
92
|
+
writer.close();
|
|
93
|
+
return parts.join("");
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
[Symbol.iterator]: {
|
|
97
|
+
get() {
|
|
98
|
+
if (this.state.sequence === void 0) {
|
|
99
|
+
return {
|
|
100
|
+
next() {
|
|
101
|
+
return void 0;
|
|
102
|
+
},
|
|
103
|
+
done: true
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
let sequence = this.state.sequence;
|
|
107
|
+
if (this.state.revert) {
|
|
108
|
+
sequence = [...sequence, this.undoStyle.styleToken];
|
|
109
|
+
}
|
|
110
|
+
const iterable = Producer.of(sequence);
|
|
111
|
+
return iterable[Symbol.iterator].bind(iterable);
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
factory: {
|
|
115
|
+
value: TextBuilder
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
function chmode(state) {
|
|
119
|
+
return {
|
|
120
|
+
get() {
|
|
121
|
+
return TextBuilder(this, this, state);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function toggle(name) {
|
|
126
|
+
const on = SgrOpcode[name];
|
|
127
|
+
const off = SgrOpcodeToUndoOpcode[on];
|
|
128
|
+
if (off === void 0) {
|
|
129
|
+
throw new Error(`Can't toggle opcode ${on}`);
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
get() {
|
|
133
|
+
return this.addStyle([this.state.not ? off : on]);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function color(color2) {
|
|
138
|
+
const opcode = Color[color2];
|
|
139
|
+
return {
|
|
140
|
+
get() {
|
|
141
|
+
return this.color(opcode);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
const ansi = TextBuilder();
|
|
146
|
+
export {
|
|
147
|
+
TextBuilder,
|
|
148
|
+
ansi
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Fuc2ktdGV4dC90ZXh0LWJ1aWxkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjQgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgUHJvZHVjZXIgfSBmcm9tIFwiLi9wcm9kdWNlci5qc1wiO1xuaW1wb3J0IHtcbiAgICBDb2xvcixcbiAgICBFaWdodEJpdENvbG9yLFxuICAgIEV4dGVuZGVkQ29sb3IsXG4gICAgUmdiQ29sb3IsXG4gICAgU2dyT3Bjb2RlLFxuICAgIFNnck9wY29kZUJsb2NrLFxuICAgIFNnck9wY29kZVRvVW5kb09wY29kZSxcbn0gZnJvbSBcIi4vc2dyLmpzXCI7XG5pbXBvcnQgeyBTdHlsZSB9IGZyb20gXCIuL3N0eWxlLmpzXCI7XG5pbXBvcnQgeyBUZXh0V3JpdGVyIH0gZnJvbSBcIi4vdGV4dC13cml0ZXIuanNcIjtcblxuLyoqXG4gKiBDb252ZW5pZW5jZSBBUEkgZm9yIGJ1aWxkaW5nIEFOU0kgdGV4dC5cbiAqXG4gKiBBbGxvd3MgeW91IHRvIGNyZWF0ZSBBTlNJIGVzY2FwZSBzZXF1ZW5jZXMgdXNpbmcgZS5nLiBgYW5zaS5icmlnaHQueWVsbG93LmJnLmJsdWUuYmxpbmtgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHRCdWlsZGVyIGV4dGVuZHMgU3R5bGUge1xuICAgICguLi50ZXh0OiBQcm9kdWNlci5TZXF1ZW5jZSk6IFRleHRCdWlsZGVyO1xuXG4gICAgcmVhZG9ubHkgc3RhdGU6IFRleHRCdWlsZGVyLlN0YXRlO1xuICAgIHJlYWRvbmx5IGJnOiBUZXh0QnVpbGRlcjtcbiAgICByZWFkb25seSBub3Q6IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IHJlc2V0OiBUZXh0QnVpbGRlcjtcbiAgICByZWFkb25seSBib2xkOiBUZXh0QnVpbGRlcjtcbiAgICByZWFkb25seSBkaW06IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IGJyaWdodDogVGV4dEJ1aWxkZXI7XG4gICAgcmVhZG9ubHkgaXRhbGljOiBUZXh0QnVpbGRlcjtcbiAgICByZWFkb25seSB1bmRlcmxpbmU6IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IGRvdWJsZVVuZGVybGluZTogVGV4dEJ1aWxkZXI7XG4gICAgcmVhZG9ubHkgYmxpbms6IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IGZhc3RCbGluazogVGV4dEJ1aWxkZXI7XG4gICAgcmVhZG9ubHkgaW52ZXJ0OiBUZXh0QnVpbGRlcjtcbiAgICByZWFkb25seSBjb25jZWFsOiBUZXh0QnVpbGRlcjtcbiAgICByZWFkb25seSBzdHJpa2U6IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IGJsYWNrOiBUZXh0QnVpbGRlcjtcbiAgICByZWFkb25seSByZWQ6IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IGdyZWVuOiBUZXh0QnVpbGRlcjtcbiAgICByZWFkb25seSB5ZWxsb3c6IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IGJsdWU6IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IG1hZ2VudGE6IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IGN5YW46IFRleHRCdWlsZGVyO1xuICAgIHJlYWRvbmx5IHdoaXRlOiBUZXh0QnVpbGRlcjtcbiAgICBjb2xvcihjb2xvcjogQ29sb3IgfCBFaWdodEJpdENvbG9yIHwgUmdiQ29sb3IpOiBUZXh0QnVpbGRlcjtcblxuICAgIGZhY3Rvcnk6IFRleHRCdWlsZGVyLkZhY3Rvcnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUZXh0QnVpbGRlcihcbiAgICBkZWZpbml0aW9uPzogU3R5bGUuSW5wdXREZWZpbml0aW9uIHwgU3R5bGUsXG4gICAgZGVyaXZlc0Zyb20/OiBTdHlsZSxcbiAgICBzdGF0ZT86IFRleHRCdWlsZGVyLlN0YXRlLFxuKSB7XG4gICAgaWYgKGRlcml2ZXNGcm9tIGluc3RhbmNlb2YgVGV4dEJ1aWxkZXIpIHtcbiAgICAgICAgc3RhdGUgPSB7IC4uLihkZXJpdmVzRnJvbSBhcyBUZXh0QnVpbGRlcikuc3RhdGUsIC4uLnN0YXRlIH07XG4gICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHN0YXRlID0ge307XG4gICAgfVxuXG4gICAgZGVmaW5pdGlvbiA9IFN0eWxlLmRlZmluaXRpb25PZihkZWZpbml0aW9uKTtcblxuICAgIGNvbnN0IHNlbGYgPSBmdW5jdGlvbiBUZXh0QnVpbGRlckluc3RhbmNlKC4uLnRleHQ6IFByb2R1Y2VyLlNlcXVlbmNlKSB7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlID0gc2VsZi5zdGF0ZS5zZXF1ZW5jZSA/IFsuLi5zZWxmLnN0YXRlLnNlcXVlbmNlXSA6IFtdO1xuICAgICAgICBpZiAoc2VsZi5zdHlsZURlZmluaXRpb24/Lmxlbmd0aCkge1xuICAgICAgICAgICAgc2VxdWVuY2UucHVzaChzZWxmLnN0eWxlVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIHNlcXVlbmNlLnB1c2goLi4udGV4dCk7XG4gICAgICAgIHJldHVybiBUZXh0QnVpbGRlcihzZWxmLCBzZWxmLCB7IHNlcXVlbmNlLCByZXZlcnQ6IHRydWUgfSk7XG4gICAgfSBhcyBUZXh0QnVpbGRlcjtcblxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihzZWxmLCBUZXh0QnVpbGRlci5wcm90b3R5cGUpO1xuXG4gICAgKHNlbGYgYXMgYW55KS5zdGF0ZSA9IHN0YXRlO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzZWxmLnN0eWxlRGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGY7XG59XG5cblRleHRCdWlsZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoU3R5bGUucHJvdG90eXBlLCB7XG4gICAgYmc6IGNobW9kZSh7IGJnOiB0cnVlIH0pLFxuICAgIG5vdDogY2htb2RlKHsgbm90OiB0cnVlIH0pLFxuICAgIGJvbGQ6IHRvZ2dsZShcImJvbGRcIiksXG4gICAgZGltOiB0b2dnbGUoXCJkaW1cIiksXG4gICAgYnJpZ2h0OiBjaG1vZGUoeyBicmlnaHQ6IHRydWUgfSksXG4gICAgaXRhbGljOiB0b2dnbGUoXCJpdGFsaWNcIiksXG4gICAgdW5kZXJsaW5lOiB0b2dnbGUoXCJ1bmRlcmxpbmVcIiksXG4gICAgZG91YmxlVW5kZXJsaW5lOiB0b2dnbGUoXCJkb3VibGVVbmRlcmxpbmVcIiksXG4gICAgc2xvd0JsaW5rOiB0b2dnbGUoXCJzbG93QmxpbmtcIiksXG4gICAgZmFzdEJsaW5rOiB0b2dnbGUoXCJmYXN0QmxpbmtcIiksXG4gICAgaW52ZXJ0OiB0b2dnbGUoXCJpbnZlcnRcIiksXG4gICAgY29uY2VhbDogdG9nZ2xlKFwiY29uY2VhbFwiKSxcbiAgICBzdHJpa2U6IHRvZ2dsZShcInN0cmlrZVwiKSxcbiAgICBibGFjazogY29sb3IoXCJibGFja1wiKSxcbiAgICByZWQ6IGNvbG9yKFwicmVkXCIpLFxuICAgIGdyZWVuOiBjb2xvcihcImdyZWVuXCIpLFxuICAgIHllbGxvdzogY29sb3IoXCJ5ZWxsb3dcIiksXG4gICAgYmx1ZTogY29sb3IoXCJibHVlXCIpLFxuICAgIG1hZ2VudGE6IGNvbG9yKFwibWFnZW50YVwiKSxcbiAgICBjeWFuOiBjb2xvcihcImN5YW5cIiksXG4gICAgd2hpdGU6IGNvbG9yKFwid2hpdGVcIiksXG5cbiAgICByZXNldDoge1xuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMgYXMgVGV4dEJ1aWxkZXIpLmFkZFN0eWxlKFswXSk7XG4gICAgICAgIH0sXG4gICAgfSxcblxuICAgIGNvbG9yOiB7XG4gICAgICAgIHZhbHVlKHRoaXM6IFRleHRCdWlsZGVyLCBjb2xvcjogQ29sb3IgfCBFaWdodEJpdENvbG9yIHwgUmdiQ29sb3IpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLm5vdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZFN0eWxlKFt0aGlzLnN0YXRlLmJnID8gU2dyT3Bjb2RlLm5vcm1hbEJnIDogU2dyT3Bjb2RlLm5vcm1hbEZnXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29sb3IgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoXCJjb2xvclwiIGluIGNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZFN0eWxlKFtDb2xvci5leHRlbmRlZCwgRXh0ZW5kZWRDb2xvci5laWdodEJpdCwgY29sb3IuY29sb3JdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkU3R5bGUoW0NvbG9yLmV4dGVuZGVkLCBFeHRlbmRlZENvbG9yLnJnYiwgY29sb3IuciA/PyAwLCBjb2xvci5nID8/IDAsIGNvbG9yLmIgPz8gMF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBibG9jayA9IHRoaXMuc3RhdGUuYmdcbiAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGUuYnJpZ2h0XG4gICAgICAgICAgICAgICAgICAgID8gU2dyT3Bjb2RlQmxvY2suYmdCcmlnaHRcbiAgICAgICAgICAgICAgICAgICAgOiBTZ3JPcGNvZGVCbG9jay5iZ1xuICAgICAgICAgICAgICAgIDogdGhpcy5zdGF0ZS5icmlnaHRcbiAgICAgICAgICAgICAgICAgID8gU2dyT3Bjb2RlQmxvY2suZmdCcmlnaHRcbiAgICAgICAgICAgICAgICAgIDogU2dyT3Bjb2RlQmxvY2suZmc7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZFN0eWxlKFtibG9jayArIGNvbG9yXSk7XG4gICAgICAgIH0sXG4gICAgfSxcblxuICAgIHRvU3RyaW5nOiB7XG4gICAgICAgIHZhbHVlKHRoaXM6IFRleHRCdWlsZGVyKSB7XG4gICAgICAgICAgICBsZXQgeyBzZXF1ZW5jZSB9ID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgICAgIGlmICghc2VxdWVuY2UpIHtcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZSA9IFt0aGlzLnN0eWxlVG9rZW5dO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5yZXZlcnQpIHtcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZSA9IFsuLi5zZXF1ZW5jZSwgdGhpcy51bmRvU3R5bGUuc3R5bGVUb2tlbl07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgICAgICAgICBjb25zdCB3cml0ZXIgPSBuZXcgVGV4dFdyaXRlcihwYXJ0ID0+IHBhcnRzLnB1c2gocGFydCkpO1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlKC4uLnNlcXVlbmNlKTtcbiAgICAgICAgICAgIHdyaXRlci5jbG9zZSgpO1xuXG4gICAgICAgICAgICByZXR1cm4gcGFydHMuam9pbihcIlwiKTtcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgW1N5bWJvbC5pdGVyYXRvcl06IHtcbiAgICAgICAgZ2V0KHRoaXM6IFRleHRCdWlsZGVyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5zZXF1ZW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICAgICAgZG9uZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHNlcXVlbmNlID0gdGhpcy5zdGF0ZS5zZXF1ZW5jZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnJldmVydCkge1xuICAgICAgICAgICAgICAgIHNlcXVlbmNlID0gWy4uLnNlcXVlbmNlLCB0aGlzLnVuZG9TdHlsZS5zdHlsZVRva2VuXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGl0ZXJhYmxlID0gUHJvZHVjZXIub2Yoc2VxdWVuY2UpO1xuICAgICAgICAgICAgcmV0dXJuIGl0ZXJhYmxlW1N5bWJvbC5pdGVyYXRvcl0uYmluZChpdGVyYWJsZSk7XG4gICAgICAgIH0sXG4gICAgfSxcblxuICAgIGZhY3Rvcnk6IHtcbiAgICAgICAgdmFsdWU6IFRleHRCdWlsZGVyLFxuICAgIH0sXG59KTtcblxuZnVuY3Rpb24gY2htb2RlKHN0YXRlPzogVGV4dEJ1aWxkZXIuU3RhdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBnZXQodGhpczogVGV4dEJ1aWxkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBUZXh0QnVpbGRlcih0aGlzLCB0aGlzLCBzdGF0ZSk7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gdG9nZ2xlKG5hbWU6IGtleW9mIHR5cGVvZiBTZ3JPcGNvZGUpIHtcbiAgICBjb25zdCBvbiA9IFNnck9wY29kZVtuYW1lXTtcbiAgICBjb25zdCBvZmYgPSBTZ3JPcGNvZGVUb1VuZG9PcGNvZGVbb25dO1xuICAgIGlmIChvZmYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IHRvZ2dsZSBvcGNvZGUgJHtvbn1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBnZXQodGhpczogVGV4dEJ1aWxkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZFN0eWxlKFt0aGlzLnN0YXRlLm5vdCA/IG9mZiA6IG9uXSk7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gY29sb3IoY29sb3I6IGtleW9mIHR5cGVvZiBDb2xvcikge1xuICAgIGNvbnN0IG9wY29kZSA9IENvbG9yW2NvbG9yXTtcbiAgICByZXR1cm4ge1xuICAgICAgICBnZXQodGhpczogVGV4dEJ1aWxkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbG9yKG9wY29kZSk7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBUZXh0QnVpbGRlciB7XG4gICAgZXhwb3J0IGludGVyZmFjZSBTdGF0ZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBuZXh0IGJ1aWxkIGFmZmVjdHMgYSBjb2xvciBpdCB3aWxsIG1vZGlmeSBiZyByYXRoZXIgdGhhbiBmZy5cbiAgICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGJnPzogYm9vbGVhbjtcblxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgbmV4dCBidWlsZCBhZmZlY3RzIDgtYml0IGNvbG9yIHRoZSBjb2xvciB3aWxsIHJlbmRlciBhcyBicmlnaHQuXG4gICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBicmlnaHQ/OiBib29sZWFuO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBuZXh0IGJ1aWxkIG1vZGlmaWVzIEFOU0kgc3R5bGluZyBpdHMgbWVhbmluZyBpcyBpbnZlcnRlZC5cbiAgICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IG5vdD86IGJvb2xlYW47XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNlcmlhbGl6YXRpb24gd2lsbCBpbmNsdWRlIHN0eWxlIHJldmVyc2lvbiBhcyB0aGUgZmluYWwgdG9rZW4uXG4gICAgICAgICAqXG4gICAgICAgICAqIFNldCBhZnRlciBpbnZva2luZyBidWlsZGVyIGFzIGZ1bmN0aW9uLCBjbGVhcmVkIHdoZW4gbW9kaWZ5aW5nIHN0eWxlLiAgVGhpcyBtZWFucyB0aGF0IGFuc2kucmVkKFwiZm9vXCIpIGlzXG4gICAgICAgICAqIHRlcm1pbmF0ZWQgYnV0IGFuc2kucmVkKFwiZm9vXCIpLmdyZWVuIHdpbGwgcmVuZGVyIGFzIGEgcmVkIFwiZm9vXCIgYW5kIGxlYXZlIHRleHQgc3R5bGVkIGdyZWVuLlxuICAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgcmV2ZXJ0PzogYm9vbGVhbjtcblxuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHNlcmlhbGl6YXRpb24gc2VxdWVuY2UuICBQb3B1bGF0ZWQgYnkgaW52b2tpbmcgYnVpbGRlciBhcyBmdW5jdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IHNlcXVlbmNlPzogUHJvZHVjZXIuU2VxdWVuY2U7XG4gICAgfVxuXG4gICAgZXhwb3J0IHR5cGUgRmFjdG9yeSA9IChcbiAgICAgICAgZGVmaW5pdGlvbj86IFN0eWxlLkRlZmluaXRpb24gfCBTdHlsZSxcbiAgICAgICAgZGVyaXZlc0Zyb20/OiBTdHlsZSxcbiAgICAgICAgc3RhdGU/OiBUZXh0QnVpbGRlci5TdGF0ZSxcbiAgICApID0+IFRleHRCdWlsZGVyO1xufVxuXG4vKipcbiAqIEluaXRpYWwgYnVpbGRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGFuc2kgPSBUZXh0QnVpbGRlcigpO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLFNBQVMsZ0JBQWdCO0FBQ3pCO0FBQUEsRUFDSTtBQUFBLEVBRUE7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNHO0FBQ1AsU0FBUyxhQUFhO0FBQ3RCLFNBQVMsa0JBQWtCO0FBc0NwQixTQUFTLFlBQ1osWUFDQSxhQUNBLE9BQ0Y7QUFDRSxNQUFJLHVCQUF1QixhQUFhO0FBQ3BDLFlBQVEsRUFBRSxHQUFJLFlBQTRCLE9BQU8sR0FBRyxNQUFNO0FBQUEsRUFDOUQsV0FBVyxVQUFVLFFBQVc7QUFDNUIsWUFBUSxDQUFDO0FBQUEsRUFDYjtBQUVBLGVBQWEsTUFBTSxhQUFhLFVBQVU7QUFFMUMsUUFBTSxPQUFPLFNBQVMsdUJBQXVCLE1BQXlCO0FBQ2xFLFVBQU0sV0FBVyxLQUFLLE1BQU0sV0FBVyxDQUFDLEdBQUcsS0FBSyxNQUFNLFFBQVEsSUFBSSxD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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ansi-text/text-builder.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["color"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Consumer } from "./consumer.js";
|
|
7
|
+
import { Producer } from "./producer.js";
|
|
8
|
+
/**
|
|
9
|
+
* Low-level text output with ANSI escape sequences, maintaining state regarding style and width of current line.
|
|
10
|
+
*/
|
|
11
|
+
export declare class TextWriter implements Consumer {
|
|
12
|
+
#private;
|
|
13
|
+
tabWidth: number;
|
|
14
|
+
constructor(out: (text: string) => void, options?: Writer.Options);
|
|
15
|
+
get state(): Consumer.State;
|
|
16
|
+
write(...text: Producer.Sequence): void;
|
|
17
|
+
close(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Reset styling.
|
|
20
|
+
*/
|
|
21
|
+
reset(): void;
|
|
22
|
+
}
|
|
23
|
+
export declare namespace Writer {
|
|
24
|
+
interface Options {
|
|
25
|
+
tabWidth?: number;
|
|
26
|
+
terminalWidth?: number;
|
|
27
|
+
linePrefix?: string;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=text-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-writer.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/text-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC;;GAEG;AACH,qBAAa,UAAW,YAAW,QAAQ;;IACvC,QAAQ,EAAE,MAAM,CAAC;gBAeL,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO;IAuMjE,IAAI,KAAK,mBAER;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,QAAQ;IAMhC,KAAK;IAIL;;OAEG;IACH,KAAK;CAuGR;AAED,yBAAiB,MAAM,CAAC;IACpB,UAAiB,OAAO;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB;CACJ"}
|