@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,317 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var text_writer_exports = {};
|
|
20
|
+
__export(text_writer_exports, {
|
|
21
|
+
TextWriter: () => TextWriter
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(text_writer_exports);
|
|
24
|
+
var import_contiguous_output_segment = require("./contiguous-output-segment.js");
|
|
25
|
+
var import_producer = require("./producer.js");
|
|
26
|
+
var import_sgr = require("./sgr.js");
|
|
27
|
+
var import_style = require("./style.js");
|
|
28
|
+
var import_tokenize = require("./tokenize.js");
|
|
29
|
+
/**
|
|
30
|
+
* @license
|
|
31
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
32
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
33
|
+
*/
|
|
34
|
+
const DEFAULT_TAB_WIDTH = 4;
|
|
35
|
+
class TextWriter {
|
|
36
|
+
tabWidth;
|
|
37
|
+
#terminalWidth;
|
|
38
|
+
#currentLineWidth = 0;
|
|
39
|
+
#out;
|
|
40
|
+
#activeStyle = import_style.Style.Inherit;
|
|
41
|
+
#styleDirty = true;
|
|
42
|
+
#currentStyle = import_style.Style.Inherit;
|
|
43
|
+
#linePrefix;
|
|
44
|
+
#state;
|
|
45
|
+
#styleEnabled = true;
|
|
46
|
+
#isNewLine = true;
|
|
47
|
+
#buffer;
|
|
48
|
+
#revertHandlers;
|
|
49
|
+
constructor(out, options) {
|
|
50
|
+
const { tabWidth, terminalWidth, linePrefix } = options ?? {};
|
|
51
|
+
this.#out = out;
|
|
52
|
+
this.tabWidth = tabWidth ?? DEFAULT_TAB_WIDTH;
|
|
53
|
+
this.#terminalWidth = terminalWidth;
|
|
54
|
+
if (linePrefix) {
|
|
55
|
+
this.#linePrefix = new import_contiguous_output_segment.ContiguousOutputSegment(...(0, import_tokenize.tokenize)(linePrefix));
|
|
56
|
+
}
|
|
57
|
+
const self = this;
|
|
58
|
+
this.#state = function state(options2, executor) {
|
|
59
|
+
options2 = { ...options2 };
|
|
60
|
+
const revertTo = { ...self.state, options: options2 };
|
|
61
|
+
const { linePrefix: linePrefix2, style, buffer } = options2;
|
|
62
|
+
if (linePrefix2) {
|
|
63
|
+
if (self.#linePrefix) {
|
|
64
|
+
self.#linePrefix.push(linePrefix2);
|
|
65
|
+
} else {
|
|
66
|
+
self.#linePrefix = new import_contiguous_output_segment.ContiguousOutputSegment(linePrefix2);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (style) {
|
|
70
|
+
if (self.#currentStyle) {
|
|
71
|
+
self.#currentStyle = self.#currentStyle.addStyle(style);
|
|
72
|
+
} else {
|
|
73
|
+
self.#currentStyle = style;
|
|
74
|
+
}
|
|
75
|
+
self.#styleDirty = true;
|
|
76
|
+
}
|
|
77
|
+
if (!!buffer !== !!self.#buffer) {
|
|
78
|
+
if (buffer) {
|
|
79
|
+
self.#buffer = [];
|
|
80
|
+
} else {
|
|
81
|
+
self.#buffer = void 0;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const context = {
|
|
85
|
+
close() {
|
|
86
|
+
if (self.#revertHandlers) {
|
|
87
|
+
for (const fn of self.#revertHandlers) {
|
|
88
|
+
fn();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (revertTo.style) {
|
|
92
|
+
revertTo.style = self.#currentStyle.undoStyle.addStyle(revertTo.style);
|
|
93
|
+
} else {
|
|
94
|
+
revertTo.style = import_style.Style.None;
|
|
95
|
+
}
|
|
96
|
+
for (const key in revertTo) {
|
|
97
|
+
self.state[key] = revertTo[key];
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
[Symbol.dispose]() {
|
|
101
|
+
this.close();
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
if (executor) {
|
|
105
|
+
try {
|
|
106
|
+
executor();
|
|
107
|
+
} finally {
|
|
108
|
+
context.close();
|
|
109
|
+
}
|
|
110
|
+
} else {
|
|
111
|
+
return context;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
Object.defineProperties(this.#state, {
|
|
115
|
+
style: {
|
|
116
|
+
get() {
|
|
117
|
+
return self.#currentStyle;
|
|
118
|
+
},
|
|
119
|
+
set(style) {
|
|
120
|
+
self.#currentStyle = style ?? import_style.Style.Inherit;
|
|
121
|
+
self.#styleDirty = true;
|
|
122
|
+
},
|
|
123
|
+
enumerable: true
|
|
124
|
+
},
|
|
125
|
+
linePrefix: {
|
|
126
|
+
get() {
|
|
127
|
+
return self.#linePrefix?.toString();
|
|
128
|
+
},
|
|
129
|
+
set(prefix) {
|
|
130
|
+
if (prefix) {
|
|
131
|
+
self.#linePrefix = new import_contiguous_output_segment.ContiguousOutputSegment(...(0, import_tokenize.tokenize)(prefix));
|
|
132
|
+
} else {
|
|
133
|
+
self.#linePrefix = void 0;
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
enumerable: true
|
|
137
|
+
},
|
|
138
|
+
terminalWidth: {
|
|
139
|
+
get() {
|
|
140
|
+
return self.#terminalWidth;
|
|
141
|
+
},
|
|
142
|
+
set(width) {
|
|
143
|
+
self.#terminalWidth = width;
|
|
144
|
+
},
|
|
145
|
+
enumerable: true
|
|
146
|
+
},
|
|
147
|
+
styleEnabled: {
|
|
148
|
+
get() {
|
|
149
|
+
return self.#styleEnabled;
|
|
150
|
+
},
|
|
151
|
+
set(enabled) {
|
|
152
|
+
self.#styleEnabled = enabled;
|
|
153
|
+
},
|
|
154
|
+
enumerable: true
|
|
155
|
+
},
|
|
156
|
+
availableWidth: {
|
|
157
|
+
get() {
|
|
158
|
+
if (self.#terminalWidth === void 0) {
|
|
159
|
+
return void 0;
|
|
160
|
+
}
|
|
161
|
+
if (self.#linePrefix) {
|
|
162
|
+
const width = self.#terminalWidth - self.#linePrefix.width;
|
|
163
|
+
if (width > 0) {
|
|
164
|
+
return width;
|
|
165
|
+
}
|
|
166
|
+
return void 0;
|
|
167
|
+
}
|
|
168
|
+
return self.#terminalWidth;
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
remainingWidth: {
|
|
172
|
+
get() {
|
|
173
|
+
if (self.#terminalWidth === void 0) {
|
|
174
|
+
return void 0;
|
|
175
|
+
}
|
|
176
|
+
return self.#terminalWidth - self.#currentLineWidth;
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
buffer: {
|
|
180
|
+
get() {
|
|
181
|
+
return !!self.#buffer;
|
|
182
|
+
},
|
|
183
|
+
set(buffering) {
|
|
184
|
+
if (!!self.#buffer === buffering) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (buffering) {
|
|
188
|
+
self.#buffer = [];
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (self.#buffer) {
|
|
192
|
+
self.#out(self.#buffer.join(""));
|
|
193
|
+
self.#buffer = void 0;
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
enumerable: true
|
|
197
|
+
},
|
|
198
|
+
onRevert: {
|
|
199
|
+
value(fn) {
|
|
200
|
+
if (!self.#revertHandlers) {
|
|
201
|
+
self.#revertHandlers = /* @__PURE__ */ new Set();
|
|
202
|
+
}
|
|
203
|
+
self.#revertHandlers.add(fn);
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
offRevert: {
|
|
207
|
+
value(fn) {
|
|
208
|
+
if (self.#revertHandlers) {
|
|
209
|
+
self.#revertHandlers.add(fn);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
get state() {
|
|
216
|
+
return this.#state;
|
|
217
|
+
}
|
|
218
|
+
write(...text) {
|
|
219
|
+
for (const token of import_producer.Producer.of(text)) {
|
|
220
|
+
this.#addToken(token);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
close() {
|
|
224
|
+
this.#writeStyle();
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Reset styling.
|
|
228
|
+
*/
|
|
229
|
+
reset() {
|
|
230
|
+
if (this.#currentStyle.styleCodes.find((code) => code !== import_sgr.SgrOpcode.reset)) {
|
|
231
|
+
this.#currentStyle = import_style.Style.None;
|
|
232
|
+
this.#styleDirty = true;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
#addToken(token, forLinePrefix = false) {
|
|
236
|
+
if (this.#isNewLine && this.#linePrefix && !forLinePrefix) {
|
|
237
|
+
this.#isNewLine = false;
|
|
238
|
+
const style = this.#currentStyle;
|
|
239
|
+
this.#currentStyle = import_style.Style.None;
|
|
240
|
+
this.#styleDirty = true;
|
|
241
|
+
for (const token2 of this.#linePrefix.tokens) {
|
|
242
|
+
this.#addToken(token2, true);
|
|
243
|
+
}
|
|
244
|
+
this.#currentStyle = style;
|
|
245
|
+
this.#styleDirty = true;
|
|
246
|
+
}
|
|
247
|
+
switch (token.kind) {
|
|
248
|
+
case "newline":
|
|
249
|
+
this.#emitLine("\n");
|
|
250
|
+
break;
|
|
251
|
+
case "carriage-return":
|
|
252
|
+
this.#emitLine("\r");
|
|
253
|
+
break;
|
|
254
|
+
case "tab":
|
|
255
|
+
let width = this.tabWidth - this.#currentLineWidth % this.tabWidth;
|
|
256
|
+
if (width === 0) {
|
|
257
|
+
width = this.tabWidth;
|
|
258
|
+
}
|
|
259
|
+
this.#writeText("".padStart(width));
|
|
260
|
+
this.#currentLineWidth += width;
|
|
261
|
+
break;
|
|
262
|
+
case "breaking":
|
|
263
|
+
this.#writeText(token.str);
|
|
264
|
+
this.#currentLineWidth += token.width;
|
|
265
|
+
break;
|
|
266
|
+
case "style":
|
|
267
|
+
this.#currentStyle = this.#currentStyle.addStyle(token.style);
|
|
268
|
+
this.#styleDirty = true;
|
|
269
|
+
break;
|
|
270
|
+
case "ansi":
|
|
271
|
+
if (this.#styleEnabled) {
|
|
272
|
+
this.#writeText(token.sequence);
|
|
273
|
+
}
|
|
274
|
+
if (token.newColumn !== void 0) {
|
|
275
|
+
if (!this.#currentLineWidth) {
|
|
276
|
+
this.#isNewLine = true;
|
|
277
|
+
}
|
|
278
|
+
this.#currentLineWidth = token.newColumn;
|
|
279
|
+
}
|
|
280
|
+
break;
|
|
281
|
+
case "nonbreaking":
|
|
282
|
+
this.#writeText(token.str);
|
|
283
|
+
this.#currentLineWidth += token.width;
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
#writeText(text) {
|
|
288
|
+
this.#writeStyle();
|
|
289
|
+
this.#emit(text);
|
|
290
|
+
}
|
|
291
|
+
#writeStyle() {
|
|
292
|
+
if (this.#styleDirty && this.#styleEnabled) {
|
|
293
|
+
this.#styleDirty = false;
|
|
294
|
+
this.#emit(this.#activeStyle.diffStyle(this.#currentStyle).toString());
|
|
295
|
+
this.#activeStyle = this.#currentStyle;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
#emit(text) {
|
|
299
|
+
if (this.#buffer) {
|
|
300
|
+
this.#buffer.push(text);
|
|
301
|
+
} else {
|
|
302
|
+
this.#out(text);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
#emitLine(terminator) {
|
|
306
|
+
this.#writeStyle();
|
|
307
|
+
this.#beginLine();
|
|
308
|
+
if (terminator) {
|
|
309
|
+
this.#emit(terminator);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
#beginLine() {
|
|
313
|
+
this.#isNewLine = true;
|
|
314
|
+
this.#currentLineWidth = 0;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=text-writer.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ansi-text/text-writer.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["options", "linePrefix", "token"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Style } from "./style.js";
|
|
7
|
+
/**
|
|
8
|
+
* An individual lexical token in a Unicode string with ANSI escape codes.
|
|
9
|
+
*/
|
|
10
|
+
export type Token = NonbreakingToken | BreakingToken | StyleToken | NewlineToken | CarriageReturnToken | TabToken | AnsiToken;
|
|
11
|
+
/**
|
|
12
|
+
* Text sequence that is not whitespace or a control sequence.
|
|
13
|
+
*/
|
|
14
|
+
export interface NonbreakingToken {
|
|
15
|
+
kind: "nonbreaking";
|
|
16
|
+
str: string;
|
|
17
|
+
width: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Non-tab non-newline whitespace sequence.
|
|
21
|
+
*/
|
|
22
|
+
export interface BreakingToken {
|
|
23
|
+
kind: "breaking";
|
|
24
|
+
str: string;
|
|
25
|
+
width: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A text styling sequence.
|
|
29
|
+
*/
|
|
30
|
+
export interface StyleToken {
|
|
31
|
+
kind: "style";
|
|
32
|
+
style: Style;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Newline character.
|
|
36
|
+
*/
|
|
37
|
+
export interface NewlineToken {
|
|
38
|
+
kind: "newline";
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Carriage return character.
|
|
42
|
+
*/
|
|
43
|
+
export interface CarriageReturnToken {
|
|
44
|
+
kind: "carriage-return";
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Tab character.
|
|
48
|
+
*/
|
|
49
|
+
export interface TabToken {
|
|
50
|
+
kind: "tab";
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Misc valid non-CSI (style) ANSI codes. Currently we tokenize because we have to parse them anyway to skip, but
|
|
54
|
+
* otherwise we ignore.
|
|
55
|
+
*/
|
|
56
|
+
export interface AnsiToken {
|
|
57
|
+
kind: "ansi";
|
|
58
|
+
sequence: string;
|
|
59
|
+
newColumn?: number;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/token.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,KAAK,GACX,gBAAgB,GAChB,aAAa,GACb,UAAU,GACV,YAAY,GACZ,mBAAmB,GACnB,QAAQ,GACR,SAAS,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,KAAK,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var token_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(token_exports);
|
|
17
|
+
/**
|
|
18
|
+
* @license
|
|
19
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
20
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
21
|
+
*/
|
|
22
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
/**
|
|
8
|
+
* Convert ANSI text into a sequence of tokens.
|
|
9
|
+
*/
|
|
10
|
+
export declare function tokenize(text: string): Producer;
|
|
11
|
+
//# sourceMappingURL=tokenize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/tokenize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC;;GAEG;AACH,wBAAiB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAqMhD"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var tokenize_exports = {};
|
|
20
|
+
__export(tokenize_exports, {
|
|
21
|
+
tokenize: () => tokenize
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(tokenize_exports);
|
|
24
|
+
var import_chars = require("./chars.js");
|
|
25
|
+
var import_style = require("./style.js");
|
|
26
|
+
/**
|
|
27
|
+
* @license
|
|
28
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
29
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
30
|
+
*/
|
|
31
|
+
function* tokenize(text) {
|
|
32
|
+
for (let pos = 0; pos < text.length; ) {
|
|
33
|
+
const unit = text[pos];
|
|
34
|
+
switch (unit) {
|
|
35
|
+
case "\n":
|
|
36
|
+
yield { kind: "newline" };
|
|
37
|
+
pos++;
|
|
38
|
+
break;
|
|
39
|
+
case "\r":
|
|
40
|
+
if (text[pos + 1] === "\n") {
|
|
41
|
+
yield { kind: "newline" };
|
|
42
|
+
pos += 2;
|
|
43
|
+
} else {
|
|
44
|
+
yield { kind: "carriage-return" };
|
|
45
|
+
pos += 1;
|
|
46
|
+
}
|
|
47
|
+
break;
|
|
48
|
+
case " ":
|
|
49
|
+
yield { kind: "tab" };
|
|
50
|
+
pos++;
|
|
51
|
+
break;
|
|
52
|
+
case "\x1B":
|
|
53
|
+
let valid = false;
|
|
54
|
+
let newColumn;
|
|
55
|
+
const escapeStart = pos;
|
|
56
|
+
pos++;
|
|
57
|
+
switch (text[pos]) {
|
|
58
|
+
case "[":
|
|
59
|
+
pos++;
|
|
60
|
+
while (text[pos] >= "0" && text[pos] <= "?") {
|
|
61
|
+
pos++;
|
|
62
|
+
}
|
|
63
|
+
if (text[pos] >= "\0x40" && text[pos] <= "~") {
|
|
64
|
+
const param = text.slice(escapeStart + 2, pos);
|
|
65
|
+
switch (text[pos]) {
|
|
66
|
+
case "m":
|
|
67
|
+
yield {
|
|
68
|
+
kind: "style",
|
|
69
|
+
style: (0, import_style.Style)(param)
|
|
70
|
+
};
|
|
71
|
+
pos++;
|
|
72
|
+
continue;
|
|
73
|
+
case "E":
|
|
74
|
+
// Move up
|
|
75
|
+
case "F":
|
|
76
|
+
newColumn = 0;
|
|
77
|
+
break;
|
|
78
|
+
case "G":
|
|
79
|
+
newColumn = Number.parseInt(param);
|
|
80
|
+
break;
|
|
81
|
+
case "H":
|
|
82
|
+
const [, column] = param.split(";");
|
|
83
|
+
newColumn = column ? Number.parseInt(column) : 0;
|
|
84
|
+
break;
|
|
85
|
+
case "J":
|
|
86
|
+
switch (param) {
|
|
87
|
+
case "2":
|
|
88
|
+
// Entire screen
|
|
89
|
+
case "3":
|
|
90
|
+
newColumn = 0;
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
pos++;
|
|
95
|
+
valid = true;
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
case "X":
|
|
99
|
+
case "]":
|
|
100
|
+
case "^":
|
|
101
|
+
case "_":
|
|
102
|
+
pos++;
|
|
103
|
+
while (pos < text.length) {
|
|
104
|
+
pos++;
|
|
105
|
+
if (text[pos] === "\\") {
|
|
106
|
+
valid = true;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
default:
|
|
112
|
+
const code = text[pos];
|
|
113
|
+
if (code >= "@" && code <= "W" || code >= "Y" && code <= "Z" || code >= "\\" && code <= "]") {
|
|
114
|
+
pos++;
|
|
115
|
+
valid = true;
|
|
116
|
+
} else if (code >= "0" && code <= "0x3f") {
|
|
117
|
+
pos++;
|
|
118
|
+
valid = true;
|
|
119
|
+
} else if (code >= "`" && code <= "0x7e") {
|
|
120
|
+
pos++;
|
|
121
|
+
valid = true;
|
|
122
|
+
} else if (code >= " " && code <= "0x2f") {
|
|
123
|
+
pos++;
|
|
124
|
+
const code2 = text[pos];
|
|
125
|
+
if (code2 >= "0" && code2 <= "0x73") {
|
|
126
|
+
pos++;
|
|
127
|
+
valid = true;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
if (valid) {
|
|
133
|
+
const token = {
|
|
134
|
+
kind: "ansi",
|
|
135
|
+
sequence: text.slice(escapeStart, pos)
|
|
136
|
+
};
|
|
137
|
+
if (newColumn !== void 0 && !Number.isNaN(newColumn)) {
|
|
138
|
+
token.newColumn = newColumn;
|
|
139
|
+
}
|
|
140
|
+
yield token;
|
|
141
|
+
}
|
|
142
|
+
break;
|
|
143
|
+
default:
|
|
144
|
+
const start = pos;
|
|
145
|
+
if (import_chars.Chars.breakingSpace.has(unit)) {
|
|
146
|
+
let width2 = 1;
|
|
147
|
+
pos++;
|
|
148
|
+
while (import_chars.Chars.breakingSpace.has(text[pos])) {
|
|
149
|
+
pos++;
|
|
150
|
+
if (unit !== "\u200B") {
|
|
151
|
+
width2++;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
yield {
|
|
155
|
+
kind: "breaking",
|
|
156
|
+
str: text.slice(start, pos),
|
|
157
|
+
width: width2
|
|
158
|
+
};
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
let width = 0;
|
|
162
|
+
while (pos < text.length) {
|
|
163
|
+
let cp = text[pos];
|
|
164
|
+
if (cp >= "\uD800" && cp < "\uDC00") {
|
|
165
|
+
const nextUnit = text[pos + 1];
|
|
166
|
+
if (nextUnit !== void 0 && nextUnit >= "\uDC00" && nextUnit < "\uE000") {
|
|
167
|
+
cp += nextUnit;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (!cp.match(import_chars.Chars.nonbreakingText)) {
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
pos += cp.length;
|
|
174
|
+
if (!cp.match(import_chars.Chars.zeroWidth)) {
|
|
175
|
+
width++;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (start === pos) {
|
|
179
|
+
pos++;
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
yield {
|
|
183
|
+
kind: "nonbreaking",
|
|
184
|
+
str: text.slice(start, pos),
|
|
185
|
+
width
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=tokenize.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ansi-text/tokenize.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["width"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
* Writes lines truncated to a specific width.
|
|
10
|
+
*/
|
|
11
|
+
export declare class Truncator implements Consumer {
|
|
12
|
+
#private;
|
|
13
|
+
constructor(target: Consumer, options?: {
|
|
14
|
+
addNewline?: boolean;
|
|
15
|
+
});
|
|
16
|
+
get state(): Consumer.State;
|
|
17
|
+
write(...text: Producer.Sequence): void;
|
|
18
|
+
close(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=truncator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncator.d.ts","sourceRoot":"","sources":["../../../src/ansi-text/truncator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,qBAAa,SAAU,YAAW,QAAQ;;gBAI1B,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO;IAMpE,IAAI,KAAK,mBAER;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,QAAQ;IAwBhC,KAAK;CAWR"}
|