@nicomatt69/streamtty 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +471 -0
  3. package/dist/ai-sdk-adapter.d.ts +113 -0
  4. package/dist/ai-sdk-adapter.d.ts.map +1 -0
  5. package/dist/ai-sdk-adapter.js +304 -0
  6. package/dist/ai-sdk-adapter.js.map +1 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +188 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/errors.d.ts +131 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +346 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/events.d.ts +185 -0
  16. package/dist/events.d.ts.map +1 -0
  17. package/dist/events.js +350 -0
  18. package/dist/events.js.map +1 -0
  19. package/dist/index.d.ts +117 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +323 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/parser/streaming-parser.d.ts +81 -0
  24. package/dist/parser/streaming-parser.d.ts.map +1 -0
  25. package/dist/parser/streaming-parser.js +522 -0
  26. package/dist/parser/streaming-parser.js.map +1 -0
  27. package/dist/performance.d.ts +139 -0
  28. package/dist/performance.d.ts.map +1 -0
  29. package/dist/performance.js +401 -0
  30. package/dist/performance.js.map +1 -0
  31. package/dist/plugins/index.d.ts +6 -0
  32. package/dist/plugins/index.d.ts.map +1 -0
  33. package/dist/plugins/index.js +22 -0
  34. package/dist/plugins/index.js.map +1 -0
  35. package/dist/plugins/plugin-system-inline.d.ts +116 -0
  36. package/dist/plugins/plugin-system-inline.d.ts.map +1 -0
  37. package/dist/plugins/plugin-system-inline.js +289 -0
  38. package/dist/plugins/plugin-system-inline.js.map +1 -0
  39. package/dist/plugins/plugin-system.d.ts +65 -0
  40. package/dist/plugins/plugin-system.d.ts.map +1 -0
  41. package/dist/plugins/plugin-system.js +202 -0
  42. package/dist/plugins/plugin-system.js.map +1 -0
  43. package/dist/plugins/rehype/harden.d.ts +15 -0
  44. package/dist/plugins/rehype/harden.d.ts.map +1 -0
  45. package/dist/plugins/rehype/harden.js +71 -0
  46. package/dist/plugins/rehype/harden.js.map +1 -0
  47. package/dist/plugins/rehype/index.d.ts +5 -0
  48. package/dist/plugins/rehype/index.d.ts.map +1 -0
  49. package/dist/plugins/rehype/index.js +21 -0
  50. package/dist/plugins/rehype/index.js.map +1 -0
  51. package/dist/plugins/remark/index.d.ts +6 -0
  52. package/dist/plugins/remark/index.d.ts.map +1 -0
  53. package/dist/plugins/remark/index.js +22 -0
  54. package/dist/plugins/remark/index.js.map +1 -0
  55. package/dist/plugins/remark/math.d.ts +7 -0
  56. package/dist/plugins/remark/math.d.ts.map +1 -0
  57. package/dist/plugins/remark/math.js +22 -0
  58. package/dist/plugins/remark/math.js.map +1 -0
  59. package/dist/plugins/remark/mermaid.d.ts +7 -0
  60. package/dist/plugins/remark/mermaid.d.ts.map +1 -0
  61. package/dist/plugins/remark/mermaid.js +19 -0
  62. package/dist/plugins/remark/mermaid.js.map +1 -0
  63. package/dist/plugins/types.d.ts +72 -0
  64. package/dist/plugins/types.d.ts.map +1 -0
  65. package/dist/plugins/types.js +3 -0
  66. package/dist/plugins/types.js.map +1 -0
  67. package/dist/renderer/blessed-renderer.d.ts +92 -0
  68. package/dist/renderer/blessed-renderer.d.ts.map +1 -0
  69. package/dist/renderer/blessed-renderer.js +610 -0
  70. package/dist/renderer/blessed-renderer.js.map +1 -0
  71. package/dist/renderers/index.d.ts +7 -0
  72. package/dist/renderers/index.d.ts.map +1 -0
  73. package/dist/renderers/index.js +21 -0
  74. package/dist/renderers/index.js.map +1 -0
  75. package/dist/renderers/math-renderer.d.ts +49 -0
  76. package/dist/renderers/math-renderer.d.ts.map +1 -0
  77. package/dist/renderers/math-renderer.js +193 -0
  78. package/dist/renderers/math-renderer.js.map +1 -0
  79. package/dist/renderers/mermaid-ascii.d.ts +14 -0
  80. package/dist/renderers/mermaid-ascii.d.ts.map +1 -0
  81. package/dist/renderers/mermaid-ascii.js +260 -0
  82. package/dist/renderers/mermaid-ascii.js.map +1 -0
  83. package/dist/renderers/mermaid-renderer.d.ts +79 -0
  84. package/dist/renderers/mermaid-renderer.d.ts.map +1 -0
  85. package/dist/renderers/mermaid-renderer.js +298 -0
  86. package/dist/renderers/mermaid-renderer.js.map +1 -0
  87. package/dist/renderers/shiki-ansi.d.ts +48 -0
  88. package/dist/renderers/shiki-ansi.d.ts.map +1 -0
  89. package/dist/renderers/shiki-ansi.js +206 -0
  90. package/dist/renderers/shiki-ansi.js.map +1 -0
  91. package/dist/renderers/table-ascii.d.ts +30 -0
  92. package/dist/renderers/table-ascii.d.ts.map +1 -0
  93. package/dist/renderers/table-ascii.js +243 -0
  94. package/dist/renderers/table-ascii.js.map +1 -0
  95. package/dist/renderers/table-renderer.d.ts +49 -0
  96. package/dist/renderers/table-renderer.d.ts.map +1 -0
  97. package/dist/renderers/table-renderer.js +224 -0
  98. package/dist/renderers/table-renderer.js.map +1 -0
  99. package/dist/renderers/unicode-math.d.ts +29 -0
  100. package/dist/renderers/unicode-math.d.ts.map +1 -0
  101. package/dist/renderers/unicode-math.js +181 -0
  102. package/dist/renderers/unicode-math.js.map +1 -0
  103. package/dist/security/ansi-sanitizer.d.ts +71 -0
  104. package/dist/security/ansi-sanitizer.d.ts.map +1 -0
  105. package/dist/security/ansi-sanitizer.js +275 -0
  106. package/dist/security/ansi-sanitizer.js.map +1 -0
  107. package/dist/security/chunk-processor.d.ts +81 -0
  108. package/dist/security/chunk-processor.d.ts.map +1 -0
  109. package/dist/security/chunk-processor.js +297 -0
  110. package/dist/security/chunk-processor.js.map +1 -0
  111. package/dist/security/index.d.ts +6 -0
  112. package/dist/security/index.d.ts.map +1 -0
  113. package/dist/security/index.js +22 -0
  114. package/dist/security/index.js.map +1 -0
  115. package/dist/security/input-validator.d.ts +55 -0
  116. package/dist/security/input-validator.d.ts.map +1 -0
  117. package/dist/security/input-validator.js +201 -0
  118. package/dist/security/input-validator.js.map +1 -0
  119. package/dist/stream-protocol.d.ts +61 -0
  120. package/dist/stream-protocol.d.ts.map +1 -0
  121. package/dist/stream-protocol.js +214 -0
  122. package/dist/stream-protocol.js.map +1 -0
  123. package/dist/streamdown-compat.d.ts +74 -0
  124. package/dist/streamdown-compat.d.ts.map +1 -0
  125. package/dist/streamdown-compat.js +241 -0
  126. package/dist/streamdown-compat.js.map +1 -0
  127. package/dist/streaming/stream-stats.d.ts +97 -0
  128. package/dist/streaming/stream-stats.d.ts.map +1 -0
  129. package/dist/streaming/stream-stats.js +217 -0
  130. package/dist/streaming/stream-stats.js.map +1 -0
  131. package/dist/streaming-integration.d.ts +71 -0
  132. package/dist/streaming-integration.d.ts.map +1 -0
  133. package/dist/streaming-integration.js +194 -0
  134. package/dist/streaming-integration.js.map +1 -0
  135. package/dist/themes/index.d.ts +59 -0
  136. package/dist/themes/index.d.ts.map +1 -0
  137. package/dist/themes/index.js +122 -0
  138. package/dist/themes/index.js.map +1 -0
  139. package/dist/types/index.d.ts +222 -0
  140. package/dist/types/index.d.ts.map +1 -0
  141. package/dist/types/index.js +3 -0
  142. package/dist/types/index.js.map +1 -0
  143. package/dist/types/plugin-types.d.ts +5 -0
  144. package/dist/types/plugin-types.d.ts.map +1 -0
  145. package/dist/types/plugin-types.js +6 -0
  146. package/dist/types/plugin-types.js.map +1 -0
  147. package/dist/types/stream-events.d.ts +71 -0
  148. package/dist/types/stream-events.d.ts.map +1 -0
  149. package/dist/types/stream-events.js +10 -0
  150. package/dist/types/stream-events.js.map +1 -0
  151. package/dist/utils/blessed-syntax-highlighter.d.ts +124 -0
  152. package/dist/utils/blessed-syntax-highlighter.d.ts.map +1 -0
  153. package/dist/utils/blessed-syntax-highlighter.js +440 -0
  154. package/dist/utils/blessed-syntax-highlighter.js.map +1 -0
  155. package/dist/utils/enhanced-table-renderer.d.ts +77 -0
  156. package/dist/utils/enhanced-table-renderer.d.ts.map +1 -0
  157. package/dist/utils/enhanced-table-renderer.js +376 -0
  158. package/dist/utils/enhanced-table-renderer.js.map +1 -0
  159. package/dist/utils/formatting.d.ts +100 -0
  160. package/dist/utils/formatting.d.ts.map +1 -0
  161. package/dist/utils/formatting.js +220 -0
  162. package/dist/utils/formatting.js.map +1 -0
  163. package/dist/utils/index.d.ts +5 -0
  164. package/dist/utils/index.d.ts.map +1 -0
  165. package/dist/utils/index.js +21 -0
  166. package/dist/utils/index.js.map +1 -0
  167. package/dist/utils/math-unicode-renderer.d.ts +38 -0
  168. package/dist/utils/math-unicode-renderer.d.ts.map +1 -0
  169. package/dist/utils/math-unicode-renderer.js +380 -0
  170. package/dist/utils/math-unicode-renderer.js.map +1 -0
  171. package/dist/utils/mermaid-ascii-renderer.d.ts +20 -0
  172. package/dist/utils/mermaid-ascii-renderer.d.ts.map +1 -0
  173. package/dist/utils/mermaid-ascii-renderer.js +325 -0
  174. package/dist/utils/mermaid-ascii-renderer.js.map +1 -0
  175. package/dist/utils/mermaid-ascii.d.ts +53 -0
  176. package/dist/utils/mermaid-ascii.d.ts.map +1 -0
  177. package/dist/utils/mermaid-ascii.js +181 -0
  178. package/dist/utils/mermaid-ascii.js.map +1 -0
  179. package/dist/utils/shiki-ansi-renderer.d.ts +29 -0
  180. package/dist/utils/shiki-ansi-renderer.d.ts.map +1 -0
  181. package/dist/utils/shiki-ansi-renderer.js +354 -0
  182. package/dist/utils/shiki-ansi-renderer.js.map +1 -0
  183. package/dist/utils/syntax-highlighter.d.ts +87 -0
  184. package/dist/utils/syntax-highlighter.d.ts.map +1 -0
  185. package/dist/utils/syntax-highlighter.js +265 -0
  186. package/dist/utils/syntax-highlighter.js.map +1 -0
  187. package/dist/utils/table-formatter-inline.d.ts +37 -0
  188. package/dist/utils/table-formatter-inline.d.ts.map +1 -0
  189. package/dist/utils/table-formatter-inline.js +337 -0
  190. package/dist/utils/table-formatter-inline.js.map +1 -0
  191. package/dist/utils/table.d.ts +35 -0
  192. package/dist/utils/table.d.ts.map +1 -0
  193. package/dist/utils/table.js +197 -0
  194. package/dist/utils/table.js.map +1 -0
  195. package/dist/widgets/stream-indicator.d.ts +130 -0
  196. package/dist/widgets/stream-indicator.d.ts.map +1 -0
  197. package/dist/widgets/stream-indicator.js +276 -0
  198. package/dist/widgets/stream-indicator.js.map +1 -0
  199. package/package.json +75 -0
@@ -0,0 +1,376 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.EnhancedTableRenderer = void 0;
40
+ exports.renderTable = renderTable;
41
+ exports.renderChart = renderChart;
42
+ exports.parseMarkdownTable = parseMarkdownTable;
43
+ exports.parseCSVToChart = parseCSVToChart;
44
+ const tty_table_1 = __importDefault(require("tty-table"));
45
+ const asciichart = __importStar(require("asciichart"));
46
+ /**
47
+ * Enhanced table and chart renderer using tty-table and asciichart
48
+ */
49
+ class EnhancedTableRenderer {
50
+ /**
51
+ * Render a table using tty-table
52
+ */
53
+ static renderTable(data, options = {}) {
54
+ try {
55
+ // Calculate optimal column widths
56
+ const colWidths = data.headers.map((title, index) => {
57
+ const maxDataWidth = Math.max(...data.rows.map(row => (row[index] || '').length));
58
+ return Math.max(title.length, maxDataWidth, 12); // Better minimum width
59
+ });
60
+ // Prepare header configuration
61
+ const header = data.headers.map((title, index) => ({
62
+ value: title,
63
+ headerAlign: options.headerAlign || 'left',
64
+ align: data.align?.[index] || 'left',
65
+ width: colWidths[index],
66
+ }));
67
+ // Prepare rows
68
+ const rows = data.rows.map(row => row.map((cell, index) => ({
69
+ value: cell,
70
+ align: data.align?.[index] || 'left'
71
+ })));
72
+ // Table options
73
+ const tableOptions = {
74
+ borderStyle: options.borderStyle || 'solid',
75
+ headerAlign: options.headerAlign || 'left',
76
+ align: 'left',
77
+ color: 'white',
78
+ compact: false, // Disable compact mode for better readability
79
+ width: options.width || process.stdout.columns || 100
80
+ };
81
+ // Create and render table
82
+ const table = (0, tty_table_1.default)(header, rows, tableOptions);
83
+ const rendered = table.render();
84
+ // Convert to rounded corners
85
+ return this.convertToRoundedCorners(rendered);
86
+ }
87
+ catch (error) {
88
+ console.warn('tty-table rendering failed:', error);
89
+ return this.renderFallbackTable(data);
90
+ }
91
+ }
92
+ /**
93
+ * Render a line chart using asciichart
94
+ */
95
+ static renderChart(data) {
96
+ try {
97
+ const config = {
98
+ height: data.config?.height || 10,
99
+ width: data.config?.width || 80,
100
+ colors: data.config?.colors || ['blue'],
101
+ format: data.config?.format || ((x) => x.toFixed(2))
102
+ };
103
+ let chart = asciichart.plot(data.values, config);
104
+ // Add labels if provided
105
+ if (data.labels && data.labels.length > 0) {
106
+ const labelLine = data.labels.join(' | ');
107
+ chart += '\n' + labelLine;
108
+ }
109
+ return chart;
110
+ }
111
+ catch (error) {
112
+ console.warn('asciichart rendering failed:', error);
113
+ return this.renderFallbackChart(data);
114
+ }
115
+ }
116
+ /**
117
+ * Render multiple data series as a chart
118
+ */
119
+ static renderMultiChart(datasets) {
120
+ try {
121
+ const colors = [
122
+ 'blue',
123
+ 'green',
124
+ 'red',
125
+ 'yellow',
126
+ 'magenta',
127
+ 'cyan'
128
+ ];
129
+ const series = datasets.map(dataset => dataset.values);
130
+ const seriesColors = datasets.map((dataset, index) => dataset.color || colors[index % colors.length]);
131
+ const config = {
132
+ height: 12,
133
+ colors: seriesColors,
134
+ format: (x) => x.toFixed(1)
135
+ };
136
+ let chart = asciichart.plot(series, config);
137
+ // Add legend
138
+ const legend = datasets.map((dataset, index) => `${index + 1}: ${dataset.label}`).join(' | ');
139
+ chart += '\nLegend: ' + legend;
140
+ return chart;
141
+ }
142
+ catch (error) {
143
+ console.warn('Multi-chart rendering failed:', error);
144
+ return '[Chart rendering failed]';
145
+ }
146
+ }
147
+ /**
148
+ * Auto-detect if data looks like chart data
149
+ */
150
+ static isChartData(content) {
151
+ // Simple heuristics to detect chart data
152
+ const lines = content.trim().split('\n');
153
+ // Check if it looks like CSV with numbers
154
+ if (lines.length > 1) {
155
+ const firstDataLine = lines[1]?.split(/[,\t\|]/);
156
+ const hasNumbers = firstDataLine?.some(cell => !isNaN(parseFloat(cell.trim())) && isFinite(parseFloat(cell.trim())));
157
+ return !!hasNumbers;
158
+ }
159
+ return false;
160
+ }
161
+ /**
162
+ * Auto-detect if content is table data
163
+ */
164
+ static isTableData(content) {
165
+ const lines = content.trim().split('\n');
166
+ // Check for markdown table syntax
167
+ if (lines.some(line => line.includes('|'))) {
168
+ return true;
169
+ }
170
+ // Check for CSV-like structure
171
+ if (lines.length > 1) {
172
+ const separators = [',', '\t', ';'];
173
+ return separators.some(sep => {
174
+ const firstLineCols = lines[0]?.split(sep).length || 0;
175
+ const secondLineCols = lines[1]?.split(sep).length || 0;
176
+ return firstLineCols > 1 && firstLineCols === secondLineCols;
177
+ });
178
+ }
179
+ return false;
180
+ }
181
+ /**
182
+ * Parse markdown table to TableData
183
+ */
184
+ static parseMarkdownTable(markdown) {
185
+ const lines = markdown.trim().split('\n').filter(line => line.trim());
186
+ if (lines.length < 3)
187
+ return null; // Need header, separator, and at least one data row
188
+ // Parse header - handle both | table | and table | formats
189
+ const headerLine = lines[0];
190
+ let headers = headerLine.split('|').map(cell => cell.trim());
191
+ // Remove empty first/last cells if they exist (from | table | format)
192
+ if (headers.length > 0 && headers[0] === '') {
193
+ headers = headers.slice(1);
194
+ }
195
+ if (headers.length > 0 && headers[headers.length - 1] === '') {
196
+ headers = headers.slice(0, -1);
197
+ }
198
+ // Clean header text from markdown formatting
199
+ headers = headers.map(header => {
200
+ return header
201
+ .replace(/\*\*(.*?)\*\*/g, '$1') // Remove bold
202
+ .replace(/\*(.*?)\*/g, '$1') // Remove italic
203
+ .replace(/`(.*?)`/g, '$1') // Remove code
204
+ .trim();
205
+ });
206
+ if (headers.length === 0)
207
+ return null;
208
+ // Skip separator line (line 1 contains --- | --- | ---)
209
+ const dataLines = lines.slice(2);
210
+ // Parse data rows
211
+ const rows = [];
212
+ for (const line of dataLines) {
213
+ let cells = line.split('|').map(cell => cell.trim());
214
+ // Remove empty first/last cells if they exist
215
+ if (cells.length > 0 && cells[0] === '') {
216
+ cells = cells.slice(1);
217
+ }
218
+ if (cells.length > 0 && cells[cells.length - 1] === '') {
219
+ cells = cells.slice(0, -1);
220
+ }
221
+ // Clean cell content from markdown formatting
222
+ cells = cells.map(cell => {
223
+ return cell
224
+ .replace(/\*\*(.*?)\*\*/g, '$1') // Remove bold
225
+ .replace(/\*(.*?)\*/g, '$1') // Remove italic
226
+ .replace(/`(.*?)`/g, '$1') // Remove code
227
+ .replace(/~~(.*?)~~/g, '$1') // Remove strikethrough
228
+ .trim();
229
+ });
230
+ // Only add rows that match the header count
231
+ if (cells.length === headers.length) {
232
+ rows.push(cells);
233
+ }
234
+ }
235
+ if (rows.length === 0)
236
+ return null;
237
+ return { headers, rows };
238
+ }
239
+ /**
240
+ * Parse CSV data to chart data
241
+ */
242
+ static parseCSVToChart(csv) {
243
+ const lines = csv.trim().split('\n');
244
+ if (lines.length < 2)
245
+ return null;
246
+ try {
247
+ const dataLines = lines.slice(1);
248
+ // Find first numeric column
249
+ let valueColumnIndex = -1;
250
+ let labelColumnIndex = -1;
251
+ const firstDataRow = dataLines[0]?.split(/[,\t]/).map(c => c.trim());
252
+ if (!firstDataRow)
253
+ return null;
254
+ // Find label column (first non-numeric) and value column (first numeric)
255
+ for (let i = 0; i < firstDataRow.length; i++) {
256
+ const cell = firstDataRow[i];
257
+ const isNumeric = !isNaN(parseFloat(cell)) && isFinite(parseFloat(cell));
258
+ if (!isNumeric && labelColumnIndex === -1) {
259
+ labelColumnIndex = i;
260
+ }
261
+ if (isNumeric && valueColumnIndex === -1) {
262
+ valueColumnIndex = i;
263
+ }
264
+ }
265
+ if (valueColumnIndex === -1)
266
+ return null;
267
+ const values = [];
268
+ const labels = [];
269
+ for (const line of dataLines) {
270
+ const cells = line.split(/[,\t]/).map(c => c.trim());
271
+ if (cells.length > valueColumnIndex) {
272
+ const value = parseFloat(cells[valueColumnIndex]);
273
+ if (!isNaN(value) && isFinite(value)) {
274
+ values.push(value);
275
+ if (labelColumnIndex >= 0 && cells[labelColumnIndex]) {
276
+ labels.push(cells[labelColumnIndex]);
277
+ }
278
+ }
279
+ }
280
+ }
281
+ return values.length > 0 ? { values, labels: labels.length > 0 ? labels : undefined } : null;
282
+ }
283
+ catch (error) {
284
+ return null;
285
+ }
286
+ }
287
+ /**
288
+ * Convert table corners to rounded Unicode characters
289
+ */
290
+ static convertToRoundedCorners(table) {
291
+ return table
292
+ .replace(/┌/g, '╭') // Top-left corner
293
+ .replace(/┐/g, '╮') // Top-right corner
294
+ .replace(/└/g, '╰') // Bottom-left corner
295
+ .replace(/┘/g, '╯') // Bottom-right corner
296
+ .replace(/├/g, '├') // Left T-junction (keep)
297
+ .replace(/┤/g, '┤') // Right T-junction (keep)
298
+ .replace(/┬/g, '┬') // Top T-junction (keep)
299
+ .replace(/┴/g, '┴') // Bottom T-junction (keep)
300
+ .replace(/┼/g, '┼'); // Cross junction (keep)
301
+ }
302
+ /**
303
+ * Fallback table renderer
304
+ */
305
+ static renderFallbackTable(data) {
306
+ const lines = [];
307
+ // Calculate column widths
308
+ const colWidths = data.headers.map((header, index) => {
309
+ const maxDataWidth = Math.max(...data.rows.map(row => (row[index] || '').length));
310
+ return Math.max(header.length, maxDataWidth, 5);
311
+ });
312
+ const totalWidth = colWidths.reduce((sum, width) => sum + width, 0) + (colWidths.length - 1) * 3 + 4;
313
+ // Top border with rounded corners
314
+ const topBorder = '╭' + '─'.repeat(totalWidth - 2) + '╮';
315
+ lines.push(topBorder);
316
+ // Header row
317
+ const headerCells = data.headers.map((header, index) => header.padEnd(colWidths[index]));
318
+ const headerLine = '│ ' + headerCells.join(' │ ') + ' │';
319
+ lines.push(headerLine);
320
+ // Header separator
321
+ const separatorCells = colWidths.map(width => '─'.repeat(width));
322
+ const separatorLine = '├─' + separatorCells.join('─┼─') + '─┤';
323
+ lines.push(separatorLine);
324
+ // Data rows
325
+ for (const row of data.rows) {
326
+ const rowCells = row.map((cell, index) => (cell || '').padEnd(colWidths[index]));
327
+ const rowLine = '│ ' + rowCells.join(' │ ') + ' │';
328
+ lines.push(rowLine);
329
+ }
330
+ // Bottom border with rounded corners
331
+ const bottomBorder = '╰' + '─'.repeat(totalWidth - 2) + '╯';
332
+ lines.push(bottomBorder);
333
+ return lines.join('\n');
334
+ }
335
+ /**
336
+ * Fallback chart renderer
337
+ */
338
+ static renderFallbackChart(data) {
339
+ const maxValue = Math.max(...data.values);
340
+ const minValue = Math.min(...data.values);
341
+ const range = maxValue - minValue;
342
+ const height = 8;
343
+ const lines = [];
344
+ for (let i = height - 1; i >= 0; i--) {
345
+ const threshold = minValue + (range * i / (height - 1));
346
+ let line = '';
347
+ for (const value of data.values) {
348
+ line += value >= threshold ? '█' : ' ';
349
+ }
350
+ lines.push(`${threshold.toFixed(1).padStart(6)} │${line}`);
351
+ }
352
+ // Add labels if available
353
+ if (data.labels) {
354
+ const labelLine = ' │' + data.labels.map(label => label.slice(0, 1)).join('');
355
+ lines.push(labelLine);
356
+ }
357
+ return lines.join('\n');
358
+ }
359
+ }
360
+ exports.EnhancedTableRenderer = EnhancedTableRenderer;
361
+ /**
362
+ * Convenience functions
363
+ */
364
+ function renderTable(data, options) {
365
+ return EnhancedTableRenderer.renderTable(data, options);
366
+ }
367
+ function renderChart(data) {
368
+ return EnhancedTableRenderer.renderChart(data);
369
+ }
370
+ function parseMarkdownTable(markdown) {
371
+ return EnhancedTableRenderer.parseMarkdownTable(markdown);
372
+ }
373
+ function parseCSVToChart(csv) {
374
+ return EnhancedTableRenderer.parseCSVToChart(csv);
375
+ }
376
+ //# sourceMappingURL=enhanced-table-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-table-renderer.js","sourceRoot":"","sources":["../../src/utils/enhanced-table-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * ANSI color codes for terminal output
3
+ */
4
+ export declare const colors: {
5
+ black: string;
6
+ red: string;
7
+ green: string;
8
+ yellow: string;
9
+ blue: string;
10
+ magenta: string;
11
+ cyan: string;
12
+ white: string;
13
+ gray: string;
14
+ brightRed: string;
15
+ brightGreen: string;
16
+ brightYellow: string;
17
+ brightBlue: string;
18
+ brightMagenta: string;
19
+ brightCyan: string;
20
+ brightWhite: string;
21
+ bgBlack: string;
22
+ bgRed: string;
23
+ bgGreen: string;
24
+ bgYellow: string;
25
+ bgBlue: string;
26
+ bgMagenta: string;
27
+ bgCyan: string;
28
+ bgWhite: string;
29
+ reset: string;
30
+ bold: string;
31
+ dim: string;
32
+ italic: string;
33
+ underline: string;
34
+ inverse: string;
35
+ hidden: string;
36
+ strikethrough: string;
37
+ };
38
+ /**
39
+ * Colorize text with ANSI codes
40
+ */
41
+ export declare function colorize(text: string, color: keyof typeof colors): string;
42
+ /**
43
+ * Apply multiple styles to text
44
+ */
45
+ export declare function style(text: string, styles: Array<keyof typeof colors>): string;
46
+ /**
47
+ * Strip ANSI codes from text
48
+ */
49
+ export declare function stripAnsi(text: string): string;
50
+ /**
51
+ * Get visual length of text (accounting for ANSI codes)
52
+ */
53
+ export declare function visualLength(text: string): number;
54
+ /**
55
+ * Pad text to specified width
56
+ */
57
+ export declare function pad(text: string, width: number, align?: 'left' | 'center' | 'right'): string;
58
+ /**
59
+ * Truncate text to specified width with ellipsis
60
+ */
61
+ export declare function truncate(text: string, width: number, ellipsis?: string): string;
62
+ /**
63
+ * Wrap text to specified width
64
+ */
65
+ export declare function wordWrap(text: string, width: number): string[];
66
+ /**
67
+ * Create a horizontal line
68
+ */
69
+ export declare function horizontalLine(width: number, char?: string, color?: keyof typeof colors): string;
70
+ /**
71
+ * Create a box around text
72
+ */
73
+ export declare function box(text: string, options?: {
74
+ width?: number;
75
+ padding?: number;
76
+ title?: string;
77
+ borderColor?: keyof typeof colors;
78
+ }): string;
79
+ /**
80
+ * Indent text
81
+ */
82
+ export declare function indent(text: string, spaces: number): string;
83
+ /**
84
+ * Create a progress bar
85
+ */
86
+ export declare function progressBar(current: number, total: number, width?: number, options?: {
87
+ showPercent?: boolean;
88
+ completeChar?: string;
89
+ incompleteChar?: string;
90
+ color?: keyof typeof colors;
91
+ }): string;
92
+ /**
93
+ * Format bytes to human readable
94
+ */
95
+ export declare function formatBytes(bytes: number, decimals?: number): string;
96
+ /**
97
+ * Format duration to human readable
98
+ */
99
+ export declare function formatDuration(ms: number): string;
100
+ //# sourceMappingURL=formatting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwClB,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,MAAM,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,KAAK,CAAC,MAAM,OAAO,MAAM,CAAC,GACjC,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,GAAG,CACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,GAAG,QAAQ,GAAG,OAAgB,GAC1C,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAAc,GACvB,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAwB9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,MAAY,EAClB,KAAK,CAAC,EAAE,MAAM,OAAO,MAAM,GAC1B,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,GAAG,CACjB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,OAAO,MAAM,CAAC;CAC9B,GACL,MAAM,CA+BR;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,EAClB,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,OAAO,MAAM,CAAC;CACxB,GACL,MAAM,CAwBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAQvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKjD"}