@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.
Files changed (225) hide show
  1. package/dist/cjs/ansi-text/chars.d.ts +11 -0
  2. package/dist/cjs/ansi-text/chars.d.ts.map +1 -0
  3. package/dist/cjs/ansi-text/chars.js +57 -0
  4. package/dist/cjs/ansi-text/chars.js.map +6 -0
  5. package/dist/cjs/ansi-text/consumer.d.ts +45 -0
  6. package/dist/cjs/ansi-text/consumer.d.ts.map +1 -0
  7. package/dist/cjs/ansi-text/consumer.js +22 -0
  8. package/dist/cjs/ansi-text/consumer.js.map +6 -0
  9. package/dist/cjs/ansi-text/contiguous-output-segment.d.ts +31 -0
  10. package/dist/cjs/ansi-text/contiguous-output-segment.d.ts.map +1 -0
  11. package/dist/cjs/ansi-text/contiguous-output-segment.js +156 -0
  12. package/dist/cjs/ansi-text/contiguous-output-segment.js.map +6 -0
  13. package/dist/cjs/ansi-text/index.d.ts +12 -0
  14. package/dist/cjs/ansi-text/index.d.ts.map +1 -0
  15. package/dist/cjs/ansi-text/index.js +29 -0
  16. package/dist/cjs/ansi-text/index.js.map +6 -0
  17. package/dist/cjs/ansi-text/printer.d.ts +24 -0
  18. package/dist/cjs/ansi-text/printer.d.ts.map +1 -0
  19. package/dist/cjs/ansi-text/printer.js +81 -0
  20. package/dist/cjs/ansi-text/printer.js.map +6 -0
  21. package/dist/cjs/ansi-text/producer.d.ts +17 -0
  22. package/dist/cjs/ansi-text/producer.d.ts.map +1 -0
  23. package/dist/cjs/ansi-text/producer.js +45 -0
  24. package/dist/cjs/ansi-text/producer.js.map +6 -0
  25. package/dist/cjs/ansi-text/screen.d.ts +13 -0
  26. package/dist/cjs/ansi-text/screen.d.ts.map +1 -0
  27. package/dist/cjs/ansi-text/screen.js +38 -0
  28. package/dist/cjs/ansi-text/screen.js.map +6 -0
  29. package/dist/cjs/ansi-text/sgr.d.ts +100 -0
  30. package/dist/cjs/ansi-text/sgr.d.ts.map +1 -0
  31. package/dist/cjs/ansi-text/sgr.js +140 -0
  32. package/dist/cjs/ansi-text/sgr.js.map +6 -0
  33. package/dist/cjs/ansi-text/std.d.ts +17 -0
  34. package/dist/cjs/ansi-text/std.d.ts.map +1 -0
  35. package/dist/cjs/ansi-text/std.js +43 -0
  36. package/dist/cjs/ansi-text/std.js.map +6 -0
  37. package/dist/cjs/ansi-text/style.d.ts +88 -0
  38. package/dist/cjs/ansi-text/style.d.ts.map +1 -0
  39. package/dist/cjs/ansi-text/style.js +257 -0
  40. package/dist/cjs/ansi-text/style.js.map +6 -0
  41. package/dist/cjs/ansi-text/text-builder.d.ts +78 -0
  42. package/dist/cjs/ansi-text/text-builder.d.ts.map +1 -0
  43. package/dist/cjs/ansi-text/text-builder.js +164 -0
  44. package/dist/cjs/ansi-text/text-builder.js.map +6 -0
  45. package/dist/cjs/ansi-text/text-writer.d.ts +30 -0
  46. package/dist/cjs/ansi-text/text-writer.d.ts.map +1 -0
  47. package/dist/cjs/ansi-text/text-writer.js +317 -0
  48. package/dist/cjs/ansi-text/text-writer.js.map +6 -0
  49. package/dist/cjs/ansi-text/token.d.ts +61 -0
  50. package/dist/cjs/ansi-text/token.d.ts.map +1 -0
  51. package/dist/cjs/ansi-text/token.js +22 -0
  52. package/dist/cjs/ansi-text/token.js.map +6 -0
  53. package/dist/cjs/ansi-text/tokenize.d.ts +11 -0
  54. package/dist/cjs/ansi-text/tokenize.d.ts.map +1 -0
  55. package/dist/cjs/ansi-text/tokenize.js +190 -0
  56. package/dist/cjs/ansi-text/tokenize.js.map +6 -0
  57. package/dist/cjs/ansi-text/truncator.d.ts +20 -0
  58. package/dist/cjs/ansi-text/truncator.d.ts.map +1 -0
  59. package/dist/cjs/ansi-text/truncator.js +72 -0
  60. package/dist/cjs/ansi-text/truncator.js.map +6 -0
  61. package/dist/cjs/ansi-text/visible-width-of.d.ts +10 -0
  62. package/dist/cjs/ansi-text/visible-width-of.d.ts.map +1 -0
  63. package/dist/cjs/ansi-text/visible-width-of.js +55 -0
  64. package/dist/cjs/ansi-text/visible-width-of.js.map +6 -0
  65. package/dist/cjs/ansi-text/wrapper.d.ts +34 -0
  66. package/dist/cjs/ansi-text/wrapper.d.ts.map +1 -0
  67. package/dist/cjs/ansi-text/wrapper.js +208 -0
  68. package/dist/cjs/ansi-text/wrapper.js.map +6 -0
  69. package/dist/cjs/building/cli.js +6 -6
  70. package/dist/cjs/building/cli.js.map +1 -1
  71. package/dist/cjs/building/graph.d.ts +2 -2
  72. package/dist/cjs/building/graph.d.ts.map +1 -1
  73. package/dist/cjs/building/graph.js.map +1 -1
  74. package/dist/cjs/building/project-builder.d.ts +38 -0
  75. package/dist/cjs/building/project-builder.d.ts.map +1 -0
  76. package/dist/cjs/building/project-builder.js +200 -0
  77. package/dist/cjs/building/project-builder.js.map +6 -0
  78. package/dist/cjs/building/tsconfig.js +1 -1
  79. package/dist/cjs/building/tsconfig.js.map +1 -1
  80. package/dist/cjs/index.d.ts +4 -6
  81. package/dist/cjs/index.d.ts.map +1 -1
  82. package/dist/cjs/index.js +4 -6
  83. package/dist/cjs/index.js.map +1 -1
  84. package/dist/cjs/running/ensure-compiled.js +2 -2
  85. package/dist/cjs/running/ensure-compiled.js.map +1 -1
  86. package/dist/cjs/util/commander.d.ts.map +1 -1
  87. package/dist/cjs/util/commander.js +4 -5
  88. package/dist/cjs/util/commander.js.map +2 -2
  89. package/dist/cjs/util/index.d.ts +1 -0
  90. package/dist/cjs/util/index.d.ts.map +1 -1
  91. package/dist/cjs/util/index.js +1 -0
  92. package/dist/cjs/util/index.js.map +1 -1
  93. package/dist/cjs/util/progress.d.ts +2 -2
  94. package/dist/cjs/util/progress.d.ts.map +1 -1
  95. package/dist/cjs/util/progress.js +25 -53
  96. package/dist/cjs/util/progress.js.map +2 -2
  97. package/dist/cjs/versioning/versioner.js +2 -12
  98. package/dist/cjs/versioning/versioner.js.map +2 -2
  99. package/dist/esm/ansi-text/chars.d.ts +11 -0
  100. package/dist/esm/ansi-text/chars.d.ts.map +1 -0
  101. package/dist/esm/ansi-text/chars.js +37 -0
  102. package/dist/esm/ansi-text/chars.js.map +6 -0
  103. package/dist/esm/ansi-text/consumer.d.ts +45 -0
  104. package/dist/esm/ansi-text/consumer.d.ts.map +1 -0
  105. package/dist/esm/ansi-text/consumer.js +6 -0
  106. package/dist/esm/ansi-text/consumer.js.map +6 -0
  107. package/dist/esm/ansi-text/contiguous-output-segment.d.ts +31 -0
  108. package/dist/esm/ansi-text/contiguous-output-segment.d.ts.map +1 -0
  109. package/dist/esm/ansi-text/contiguous-output-segment.js +136 -0
  110. package/dist/esm/ansi-text/contiguous-output-segment.js.map +6 -0
  111. package/dist/esm/ansi-text/index.d.ts +12 -0
  112. package/dist/esm/ansi-text/index.d.ts.map +1 -0
  113. package/dist/esm/ansi-text/index.js +12 -0
  114. package/dist/esm/ansi-text/index.js.map +6 -0
  115. package/dist/esm/ansi-text/printer.d.ts +24 -0
  116. package/dist/esm/ansi-text/printer.d.ts.map +1 -0
  117. package/dist/esm/ansi-text/printer.js +61 -0
  118. package/dist/esm/ansi-text/printer.js.map +6 -0
  119. package/dist/esm/ansi-text/producer.d.ts +17 -0
  120. package/dist/esm/ansi-text/producer.d.ts.map +1 -0
  121. package/dist/esm/ansi-text/producer.js +25 -0
  122. package/dist/esm/ansi-text/producer.js.map +6 -0
  123. package/dist/esm/ansi-text/screen.d.ts +13 -0
  124. package/dist/esm/ansi-text/screen.d.ts.map +1 -0
  125. package/dist/esm/ansi-text/screen.js +18 -0
  126. package/dist/esm/ansi-text/screen.js.map +6 -0
  127. package/dist/esm/ansi-text/sgr.d.ts +100 -0
  128. package/dist/esm/ansi-text/sgr.d.ts.map +1 -0
  129. package/dist/esm/ansi-text/sgr.js +120 -0
  130. package/dist/esm/ansi-text/sgr.js.map +6 -0
  131. package/dist/esm/ansi-text/std.d.ts +17 -0
  132. package/dist/esm/ansi-text/std.d.ts.map +1 -0
  133. package/dist/esm/ansi-text/std.js +23 -0
  134. package/dist/esm/ansi-text/std.js.map +6 -0
  135. package/dist/esm/ansi-text/style.d.ts +88 -0
  136. package/dist/esm/ansi-text/style.d.ts.map +1 -0
  137. package/dist/esm/ansi-text/style.js +245 -0
  138. package/dist/esm/ansi-text/style.js.map +6 -0
  139. package/dist/esm/ansi-text/text-builder.d.ts +78 -0
  140. package/dist/esm/ansi-text/text-builder.d.ts.map +1 -0
  141. package/dist/esm/ansi-text/text-builder.js +150 -0
  142. package/dist/esm/ansi-text/text-builder.js.map +6 -0
  143. package/dist/esm/ansi-text/text-writer.d.ts +30 -0
  144. package/dist/esm/ansi-text/text-writer.d.ts.map +1 -0
  145. package/dist/esm/ansi-text/text-writer.js +297 -0
  146. package/dist/esm/ansi-text/text-writer.js.map +6 -0
  147. package/dist/esm/ansi-text/token.d.ts +61 -0
  148. package/dist/esm/ansi-text/token.d.ts.map +1 -0
  149. package/dist/esm/ansi-text/token.js +6 -0
  150. package/dist/esm/ansi-text/token.js.map +6 -0
  151. package/dist/esm/ansi-text/tokenize.d.ts +11 -0
  152. package/dist/esm/ansi-text/tokenize.d.ts.map +1 -0
  153. package/dist/esm/ansi-text/tokenize.js +170 -0
  154. package/dist/esm/ansi-text/tokenize.js.map +6 -0
  155. package/dist/esm/ansi-text/truncator.d.ts +20 -0
  156. package/dist/esm/ansi-text/truncator.d.ts.map +1 -0
  157. package/dist/esm/ansi-text/truncator.js +52 -0
  158. package/dist/esm/ansi-text/truncator.js.map +6 -0
  159. package/dist/esm/ansi-text/visible-width-of.d.ts +10 -0
  160. package/dist/esm/ansi-text/visible-width-of.d.ts.map +1 -0
  161. package/dist/esm/ansi-text/visible-width-of.js +35 -0
  162. package/dist/esm/ansi-text/visible-width-of.js.map +6 -0
  163. package/dist/esm/ansi-text/wrapper.d.ts +34 -0
  164. package/dist/esm/ansi-text/wrapper.d.ts.map +1 -0
  165. package/dist/esm/ansi-text/wrapper.js +188 -0
  166. package/dist/esm/ansi-text/wrapper.js.map +6 -0
  167. package/dist/esm/building/cli.js +3 -3
  168. package/dist/esm/building/cli.js.map +1 -1
  169. package/dist/esm/building/graph.d.ts +2 -2
  170. package/dist/esm/building/graph.d.ts.map +1 -1
  171. package/dist/esm/building/graph.js +1 -1
  172. package/dist/esm/building/graph.js.map +1 -1
  173. package/dist/esm/building/project-builder.d.ts +38 -0
  174. package/dist/esm/building/project-builder.d.ts.map +1 -0
  175. package/dist/esm/building/project-builder.js +180 -0
  176. package/dist/esm/building/project-builder.js.map +6 -0
  177. package/dist/esm/building/tsconfig.js +2 -2
  178. package/dist/esm/building/tsconfig.js.map +1 -1
  179. package/dist/esm/index.d.ts +4 -6
  180. package/dist/esm/index.d.ts.map +1 -1
  181. package/dist/esm/index.js +5 -7
  182. package/dist/esm/index.js.map +1 -1
  183. package/dist/esm/running/ensure-compiled.js +3 -3
  184. package/dist/esm/running/ensure-compiled.js.map +1 -1
  185. package/dist/esm/util/commander.d.ts.map +1 -1
  186. package/dist/esm/util/commander.js +5 -6
  187. package/dist/esm/util/commander.js.map +1 -1
  188. package/dist/esm/util/index.d.ts +1 -0
  189. package/dist/esm/util/index.d.ts.map +1 -1
  190. package/dist/esm/util/index.js +2 -1
  191. package/dist/esm/util/index.js.map +1 -1
  192. package/dist/esm/util/progress.d.ts +2 -2
  193. package/dist/esm/util/progress.d.ts.map +1 -1
  194. package/dist/esm/util/progress.js +26 -44
  195. package/dist/esm/util/progress.js.map +1 -1
  196. package/dist/esm/versioning/versioner.js +3 -3
  197. package/dist/esm/versioning/versioner.js.map +1 -1
  198. package/package.json +11 -1
  199. package/src/ansi-text/chars.ts +31 -0
  200. package/src/ansi-text/consumer.ts +53 -0
  201. package/src/ansi-text/contiguous-output-segment.ts +181 -0
  202. package/src/ansi-text/index.ts +14 -0
  203. package/src/ansi-text/printer.ts +86 -0
  204. package/src/ansi-text/producer.ts +29 -0
  205. package/src/ansi-text/screen.ts +18 -0
  206. package/src/ansi-text/sgr.ts +154 -0
  207. package/src/ansi-text/std.ts +28 -0
  208. package/src/ansi-text/style.ts +369 -0
  209. package/src/ansi-text/text-builder.ts +261 -0
  210. package/src/ansi-text/text-writer.ts +363 -0
  211. package/src/ansi-text/token.ts +76 -0
  212. package/src/ansi-text/tokenize.ts +212 -0
  213. package/src/ansi-text/truncator.ts +63 -0
  214. package/src/ansi-text/visible-width-of.ts +39 -0
  215. package/src/ansi-text/wrapper.ts +244 -0
  216. package/src/building/cli.ts +2 -2
  217. package/src/building/graph.ts +2 -2
  218. package/src/building/project-builder.ts +230 -0
  219. package/src/building/tsconfig.ts +2 -4
  220. package/src/index.ts +4 -6
  221. package/src/running/ensure-compiled.ts +2 -2
  222. package/src/util/commander.ts +4 -6
  223. package/src/util/index.ts +1 -0
  224. package/src/util/progress.ts +24 -61
  225. 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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,uCAAwC;AACxC,sBAAyB;AACzB,iBAA0B;AAC1B,mBAAsB;AAEtB,sBAAyB;AAZzB;AAAA;AAAA;AAAA;AAAA;AAcA,MAAM,oBAAoB;AAKnB,MAAM,WAA+B;AAAA,EACxC;AAAA,EAEA;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA,eAAe,mBAAM;AAAA,EACrB,cAAc;AAAA,EACd,gBAAgB,mBAAM;AAAA,EACtB;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EAEA,YAAY,KAA6B,SAA0B;AAC/D,UAAM,EAAE,UAAU,eAAe,WAAW,IAAI,WAAW,CAAC;AAC5D,SAAK,OAAO;AACZ,SAAK,WAAW,YAAY;AAC5B,SAAK,iBAAiB;AACtB,QAAI,YAAY;AACZ,WAAK,cAAc,IAAI,yDAAwB,OAAG,0BAAS,UAAU,CAAC;AAAA,IAC1E;AAEA,UAAM,OAAO;AAEb,SAAK,SAAS,SAAS,MAAMA,UAA4B,UAAqD;AAC1G,MAAAA,WAAU,EAAE,GAAGA,SAAQ;AAEvB,YAAM,WAAW,EAAE,GAAG,KAAK,OAAO,SAAAA,SAAQ;AAE1C,YAAM,EAAE,YAAAC,aAAY,OAAO,OAAO,IAAID;AACtC,UAAIC,aAAY;AACZ,YAAI,KAAK,aAAa;AAClB,eAAK,YAAY,KAAKA,WAAU;AAAA,QACpC,OAAO;AACH,eAAK,cAAc,IAAI,yDAAwBA,WAAU;AAAA,QAC7D;AAAA,MACJ;AAEA,UAAI,OAAO;AACP,YAAI,KAAK,eAAe;AACpB,eAAK,gBAAgB,KAAK,cAAc,SAAS,KAAK;AAAA,QAC1D,OAAO;AACH,eAAK,gBAAgB;AAAA,QACzB;AACA,aAAK,cAAc;AAAA,MACvB;AAEA,UAAI,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,SAAS;AAC7B,YAAI,QAAQ;AACR,eAAK,UAAU,CAAC;AAAA,QACpB,OAAO;AACH,eAAK,UAAU;AAAA,QACnB;AAAA,MACJ;AAEA,YAAM,UAAU;AAAA,QACZ,QAAQ;AACJ,cAAI,KAAK,iBAAiB;AACtB,uBAAW,MAAM,KAAK,iBAAiB;AACnC,iBAAG;AAAA,YACP;AAAA,UACJ;AAEA,cAAI,SAAS,OAAO;AAChB,qBAAS,QAAQ,KAAK,cAAc,UAAU,SAAS,SAAS,KAAK;AAAA,UACzE,OAAO;AACH,qBAAS,QAAQ,mBAAM;AAAA,UAC3B;AAEA,qBAAW,OAAO,UAAU;AACxB,YAAC,KAAK,MAAc,GAAG,IAAK,SAAiB,GAAG;AAAA,UACpD;AAAA,QACJ;AAAA,QAEA,CAAC,OAAO,OAAO,IAAI;AACf,eAAK,MAAM;AAAA,QACf;AAAA,MACJ;AAEA,UAAI,UAAU;AACV,YAAI;AACA,mBAAS;AAAA,QACb,UAAE;AACE,kBAAQ,MAAM;AAAA,QAClB;AAAA,MACJ,OAAO;AACH,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,WAAO,iBAAiB,KAAK,QAAQ;AAAA,MACjC,OAAO;AAAA,QACH,MAAiB;AACb,iBAAO,KAAK;AAAA,QAChB;AAAA,QAEA,IAAiB,OAAO;AACpB,eAAK,gBAAgB,SAAS,mBAAM;AACpC,eAAK,cAAc;AAAA,QACvB;AAAA,QAEA,YAAY;AAAA,MAChB;AAAA,MAEA,YAAY;AAAA,QACR,MAAiB;AACb,iBAAO,KAAK,aAAa,SAAS;AAAA,QACtC;AAAA,QAEA,IAAiB,QAAQ;AACrB,cAAI,QAAQ;AACR,iBAAK,cAAc,IAAI,yDAAwB,OAAG,0BAAS,MAAM,CAAC;AAAA,UACtE,OAAO;AACH,iBAAK,cAAc;AAAA,UACvB;AAAA,QACJ;AAAA,QAEA,YAAY;AAAA,MAChB;AAAA,MAEA,eAAe;AAAA,QACX,MAAiB;AACb,iBAAO,KAAK;AAAA,QAChB;AAAA,QAEA,IAAiB,OAA2B;AACxC,eAAK,iBAAiB;AAAA,QAC1B;AAAA,QAEA,YAAY;AAAA,MAChB;AAAA,MAEA,cAAc;AAAA,QACV,MAAiB;AACb,iBAAO,KAAK;AAAA,QAChB;AAAA,QAEA,IAAiB,SAAkB;AAC/B,eAAK,gBAAgB;AAAA,QACzB;AAAA,QAEA,YAAY;AAAA,MAChB;AAAA,MAEA,gBAAgB;AAAA,QACZ,MAAiB;AACb,cAAI,KAAK,mBAAmB,QAAW;AACnC,mBAAO;AAAA,UACX;AAEA,cAAI,KAAK,aAAa;AAClB,kBAAM,QAAQ,KAAK,iBAAiB,KAAK,YAAY;AACrD,gBAAI,QAAQ,GAAG;AACX,qBAAO;AAAA,YACX;AACA,mBAAO;AAAA,UACX;AAEA,iBAAO,KAAK;AAAA,QAChB;AAAA,MACJ;AAAA,MAEA,gBAAgB;AAAA,QACZ,MAAiB;AACb,cAAI,KAAK,mBAAmB,QAAW;AACnC,mBAAO;AAAA,UACX;AACA,iBAAO,KAAK,iBAAiB,KAAK;AAAA,QACtC;AAAA,MACJ;AAAA,MAEA,QAAQ;AAAA,QACJ,MAAiB;AACb,iBAAO,CAAC,CAAC,KAAK;AAAA,QAClB;AAAA,QAEA,IAAiB,WAAoB;AACjC,cAAI,CAAC,CAAC,KAAK,YAAY,WAAW;AAC9B;AAAA,UACJ;AACA,cAAI,WAAW;AACX,iBAAK,UAAU,CAAC;AAChB;AAAA,UACJ;AACA,cAAI,KAAK,SAAS;AACd,iBAAK,KAAK,KAAK,QAAQ,KAAK,EAAE,CAAC;AAC/B,iBAAK,UAAU;AAAA,UACnB;AAAA,QACJ;AAAA,QAEA,YAAY;AAAA,MAChB;AAAA,MAEA,UAAU;AAAA,QACN,MAAM,IAAgB;AAClB,cAAI,CAAC,KAAK,iBAAiB;AACvB,iBAAK,kBAAkB,oBAAI,IAAI;AAAA,UACnC;AACA,eAAK,gBAAgB,IAAI,EAAE;AAAA,QAC/B;AAAA,MACJ;AAAA,MAEA,WAAW;AAAA,QACP,MAAM,IAAgB;AAClB,cAAI,KAAK,iBAAiB;AACtB,iBAAK,gBAAgB,IAAI,EAAE;AAAA,UAC/B;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS,MAAyB;AAC9B,eAAW,SAAS,yBAAS,GAAG,IAAI,GAAG;AACnC,WAAK,UAAU,KAAK;AAAA,IACxB;AAAA,EACJ;AAAA,EAEA,QAAQ;AACJ,SAAK,YAAY;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ;AACJ,QAAI,KAAK,cAAc,WAAW,KAAK,UAAQ,SAAS,qBAAU,KAAK,GAAG;AACtE,WAAK,gBAAgB,mBAAM;AAC3B,WAAK,cAAc;AAAA,IACvB;AAAA,EACJ;AAAA,EAEA,UAAU,OAAc,gBAAgB,OAAO;AAC3C,QAAI,KAAK,cAAc,KAAK,eAAe,CAAC,eAAe;AACvD,WAAK,aAAa;AAClB,YAAM,QAAQ,KAAK;AACnB,WAAK,gBAAgB,mBAAM;AAC3B,WAAK,cAAc;AACnB,iBAAWC,UAAS,KAAK,YAAY,QAAQ;AACzC,aAAK,UAAUA,QAAO,IAAI;AAAA,MAC9B;AACA,WAAK,gBAAgB;AACrB,WAAK,cAAc;AAAA,IACvB;AAEA,YAAQ,MAAM,MAAM;AAAA,MAChB,KAAK;AACD,aAAK,UAAU,IAAI;AACnB;AAAA,MAEJ,KAAK;AACD,aAAK,UAAU,IAAI;AACnB;AAAA,MAEJ,KAAK;AACD,YAAI,QAAQ,KAAK,WAAY,KAAK,oBAAoB,KAAK;AAC3D,YAAI,UAAU,GAAG;AACb,kBAAQ,KAAK;AAAA,QACjB;AACA,aAAK,WAAW,GAAG,SAAS,KAAK,CAAC;AAClC,aAAK,qBAAqB;AAC1B;AAAA,MAEJ,KAAK;AACD,aAAK,WAAW,MAAM,GAAG;AACzB,aAAK,qBAAqB,MAAM;AAChC;AAAA,MAEJ,KAAK;AACD,aAAK,gBAAgB,KAAK,cAAc,SAAS,MAAM,KAAK;AAC5D,aAAK,cAAc;AACnB;AAAA,MAEJ,KAAK;AACD,YAAI,KAAK,eAAe;AACpB,eAAK,WAAW,MAAM,QAAQ;AAAA,QAClC;AACA,YAAI,MAAM,cAAc,QAAW;AAE/B,cAAI,CAAC,KAAK,mBAAmB;AACzB,iBAAK,aAAa;AAAA,UACtB;AACA,eAAK,oBAAoB,MAAM;AAAA,QACnC;AACA;AAAA,MAEJ,KAAK;AACD,aAAK,WAAW,MAAM,GAAG;AACzB,aAAK,qBAAqB,MAAM;AAChC;AAAA,IACR;AAAA,EACJ;AAAA,EAEA,WAAW,MAAc;AACrB,SAAK,YAAY;AACjB,SAAK,MAAM,IAAI;AAAA,EACnB;AAAA,EAEA,cAAc;AACV,QAAI,KAAK,eAAe,KAAK,eAAe;AACxC,WAAK,cAAc;AAEnB,WAAK,MAAM,KAAK,aAAa,UAAU,KAAK,aAAa,EAAE,SAAS,CAAC;AAErE,WAAK,eAAe,KAAK;AAAA,IAC7B;AAAA,EACJ;AAAA,EAEA,MAAM,MAAc;AAChB,QAAI,KAAK,SAAS;AACd,WAAK,QAAQ,KAAK,IAAI;AAAA,IAC1B,OAAO;AACH,WAAK,KAAK,IAAI;AAAA,IAClB;AAAA,EACJ;AAAA,EAEA,UAAU,YAAqB;AAC3B,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,QAAI,YAAY;AACZ,WAAK,MAAM,UAAU;AAAA,IACzB;AAAA,EACJ;AAAA,EAEA,aAAa;AACT,SAAK,aAAa;AAClB,SAAK,oBAAoB;AAAA,EAC7B;AACJ;",
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,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ansi-text/token.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }
@@ -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"}