rlint 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +220 -0
  2. package/dist/browser.d.ts +8 -0
  3. package/dist/browser.d.ts.map +1 -0
  4. package/dist/browser.js +122 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/checks/clickability.d.ts +3 -0
  7. package/dist/checks/clickability.d.ts.map +1 -0
  8. package/dist/checks/clickability.js +125 -0
  9. package/dist/checks/clickability.js.map +1 -0
  10. package/dist/checks/index.d.ts +9 -0
  11. package/dist/checks/index.d.ts.map +1 -0
  12. package/dist/checks/index.js +27 -0
  13. package/dist/checks/index.js.map +1 -0
  14. package/dist/checks/overflow.d.ts +3 -0
  15. package/dist/checks/overflow.d.ts.map +1 -0
  16. package/dist/checks/overflow.js +107 -0
  17. package/dist/checks/overflow.js.map +1 -0
  18. package/dist/checks/text-overflow.d.ts +3 -0
  19. package/dist/checks/text-overflow.d.ts.map +1 -0
  20. package/dist/checks/text-overflow.js +136 -0
  21. package/dist/checks/text-overflow.js.map +1 -0
  22. package/dist/checks/touch-targets.d.ts +3 -0
  23. package/dist/checks/touch-targets.d.ts.map +1 -0
  24. package/dist/checks/touch-targets.js +118 -0
  25. package/dist/checks/touch-targets.js.map +1 -0
  26. package/dist/checks/visibility.d.ts +3 -0
  27. package/dist/checks/visibility.d.ts.map +1 -0
  28. package/dist/checks/visibility.js +132 -0
  29. package/dist/checks/visibility.js.map +1 -0
  30. package/dist/cli.d.ts +3 -0
  31. package/dist/cli.d.ts.map +1 -0
  32. package/dist/cli.js +270 -0
  33. package/dist/cli.js.map +1 -0
  34. package/dist/frameworks/detector.d.ts +19 -0
  35. package/dist/frameworks/detector.d.ts.map +1 -0
  36. package/dist/frameworks/detector.js +132 -0
  37. package/dist/frameworks/detector.js.map +1 -0
  38. package/dist/frameworks/index.d.ts +44 -0
  39. package/dist/frameworks/index.d.ts.map +1 -0
  40. package/dist/frameworks/index.js +138 -0
  41. package/dist/frameworks/index.js.map +1 -0
  42. package/dist/frameworks/next.d.ts +34 -0
  43. package/dist/frameworks/next.d.ts.map +1 -0
  44. package/dist/frameworks/next.js +160 -0
  45. package/dist/frameworks/next.js.map +1 -0
  46. package/dist/frameworks/sveltekit.d.ts +34 -0
  47. package/dist/frameworks/sveltekit.d.ts.map +1 -0
  48. package/dist/frameworks/sveltekit.js +150 -0
  49. package/dist/frameworks/sveltekit.js.map +1 -0
  50. package/dist/frameworks/vite.d.ts +40 -0
  51. package/dist/frameworks/vite.d.ts.map +1 -0
  52. package/dist/frameworks/vite.js +211 -0
  53. package/dist/frameworks/vite.js.map +1 -0
  54. package/dist/index.d.ts +18 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +22 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/mcp-server.d.ts +3 -0
  59. package/dist/mcp-server.d.ts.map +1 -0
  60. package/dist/mcp-server.js +402 -0
  61. package/dist/mcp-server.js.map +1 -0
  62. package/dist/reporter.d.ts +4 -0
  63. package/dist/reporter.d.ts.map +1 -0
  64. package/dist/reporter.js +103 -0
  65. package/dist/reporter.js.map +1 -0
  66. package/dist/runner.d.ts +8 -0
  67. package/dist/runner.d.ts.map +1 -0
  68. package/dist/runner.js +63 -0
  69. package/dist/runner.js.map +1 -0
  70. package/dist/types.d.ts +96 -0
  71. package/dist/types.d.ts.map +1 -0
  72. package/dist/types.js +2 -0
  73. package/dist/types.js.map +1 -0
  74. package/package.json +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../../src/frameworks/vite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Page } from 'puppeteer-core';
2
+ import { type RunnerOptions } from './runner.js';
3
+ import type { CheckConfig, HealthResults } from './types.js';
4
+ export { runChecks } from './runner.js';
5
+ export { formatResults } from './reporter.js';
6
+ export * from './types.js';
7
+ export * from './checks/index.js';
8
+ /**
9
+ * Check a Playwright page for CSS health issues
10
+ */
11
+ export declare function checkPage(page: Page, config?: CheckConfig): Promise<HealthResults>;
12
+ /**
13
+ * Create a checker with custom configuration
14
+ */
15
+ export declare function createChecker(config: CheckConfig): {
16
+ run(page: Page, options?: Omit<RunnerOptions, "config">): Promise<HealthResults>;
17
+ };
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAElC;;GAEG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW;cAE7B,IAAI,YAAY,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;EAIzF"}
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ import { runChecks } from './runner.js';
2
+ export { runChecks } from './runner.js';
3
+ export { formatResults } from './reporter.js';
4
+ export * from './types.js';
5
+ export * from './checks/index.js';
6
+ /**
7
+ * Check a Playwright page for CSS health issues
8
+ */
9
+ export async function checkPage(page, config) {
10
+ return runChecks(page, { config });
11
+ }
12
+ /**
13
+ * Create a checker with custom configuration
14
+ */
15
+ export function createChecker(config) {
16
+ return {
17
+ async run(page, options) {
18
+ return runChecks(page, { ...options, config });
19
+ },
20
+ };
21
+ }
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAsB,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAU,EACV,MAAoB;IAEpB,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAmB;IAC/C,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,IAAU,EAAE,OAAuC;YAC3D,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,402 @@
1
+ #!/usr/bin/env node
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
5
+ import { launchBrowser } from './browser.js';
6
+ import { runChecks } from './runner.js';
7
+ import * as fs from 'fs/promises';
8
+ import * as path from 'path';
9
+ // Browser instance management
10
+ let browser = null;
11
+ async function getBrowser() {
12
+ if (!browser) {
13
+ browser = await launchBrowser({ headless: true });
14
+ }
15
+ return browser;
16
+ }
17
+ async function closeBrowser() {
18
+ if (browser) {
19
+ await browser.close();
20
+ browser = null;
21
+ }
22
+ }
23
+ // Helper to run checks on a page
24
+ async function runChecksOnPage(page, options) {
25
+ // Set viewport if provided
26
+ if (options.viewport) {
27
+ await page.setViewport({
28
+ width: options.viewport.width,
29
+ height: options.viewport.height,
30
+ });
31
+ }
32
+ // Build runner options
33
+ const runnerOptions = {};
34
+ if (options.checks && options.checks.length > 0) {
35
+ runnerOptions.checks = options.checks;
36
+ }
37
+ return runChecks(page, runnerOptions);
38
+ }
39
+ // Format results for MCP output (includes fix hints prominently)
40
+ function formatResultsForMcp(results) {
41
+ return {
42
+ url: results.url,
43
+ viewport: results.viewport,
44
+ timestamp: results.timestamp,
45
+ summary: {
46
+ passed: results.summary.passed,
47
+ errors: results.summary.errors,
48
+ warnings: results.summary.warnings,
49
+ total_issues: results.issues.length,
50
+ },
51
+ issues: results.issues.map((issue) => ({
52
+ check: issue.check,
53
+ severity: issue.severity,
54
+ message: issue.message,
55
+ element: {
56
+ selector: issue.element.selector,
57
+ tagName: issue.element.tagName,
58
+ className: issue.element.className,
59
+ id: issue.element.id,
60
+ textContent: issue.element.textContent,
61
+ dimensions: {
62
+ width: issue.element.rect.width,
63
+ height: issue.element.rect.height,
64
+ position: {
65
+ left: issue.element.rect.left,
66
+ top: issue.element.rect.top,
67
+ right: issue.element.rect.right,
68
+ bottom: issue.element.rect.bottom,
69
+ },
70
+ },
71
+ },
72
+ details: issue.details,
73
+ fixHint: issue.fixHint || null,
74
+ })),
75
+ };
76
+ }
77
+ // Create the MCP server
78
+ const server = new Server({
79
+ name: 'rlint',
80
+ version: '0.4.0',
81
+ }, {
82
+ capabilities: {
83
+ tools: {},
84
+ },
85
+ });
86
+ // List available tools
87
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
88
+ return {
89
+ tools: [
90
+ {
91
+ name: 'check_page',
92
+ description: 'Check a URL for CSS health issues. Detects horizontal overflow, covered buttons, tiny touch targets, text clipping, and other structural CSS bugs.',
93
+ inputSchema: {
94
+ type: 'object',
95
+ properties: {
96
+ url: {
97
+ type: 'string',
98
+ description: 'The URL to check for CSS health issues',
99
+ },
100
+ viewport: {
101
+ type: 'object',
102
+ description: 'Optional viewport size for the check',
103
+ properties: {
104
+ width: {
105
+ type: 'number',
106
+ description: 'Viewport width in pixels',
107
+ },
108
+ height: {
109
+ type: 'number',
110
+ description: 'Viewport height in pixels',
111
+ },
112
+ },
113
+ required: ['width', 'height'],
114
+ },
115
+ checks: {
116
+ type: 'array',
117
+ items: { type: 'string' },
118
+ description: 'Optional array of specific checks to run. Available checks: overflow, clickability, touch-targets, text-overflow, visibility. If not provided, all checks run.',
119
+ },
120
+ },
121
+ required: ['url'],
122
+ },
123
+ },
124
+ {
125
+ name: 'check_html',
126
+ description: 'Check raw HTML content for CSS health issues. Useful for checking generated HTML without serving it. The HTML is loaded into a browser and analyzed for structural CSS bugs.',
127
+ inputSchema: {
128
+ type: 'object',
129
+ properties: {
130
+ html: {
131
+ type: 'string',
132
+ description: 'The HTML content to check',
133
+ },
134
+ viewport: {
135
+ type: 'object',
136
+ description: 'Optional viewport size for the check',
137
+ properties: {
138
+ width: {
139
+ type: 'number',
140
+ description: 'Viewport width in pixels',
141
+ },
142
+ height: {
143
+ type: 'number',
144
+ description: 'Viewport height in pixels',
145
+ },
146
+ },
147
+ required: ['width', 'height'],
148
+ },
149
+ checks: {
150
+ type: 'array',
151
+ items: { type: 'string' },
152
+ description: 'Optional array of specific checks to run. Available checks: overflow, clickability, touch-targets, text-overflow, visibility. If not provided, all checks run.',
153
+ },
154
+ },
155
+ required: ['html'],
156
+ },
157
+ },
158
+ {
159
+ name: 'check_file',
160
+ description: 'Check a local HTML file for CSS health issues. The file is loaded into a browser and analyzed for structural CSS bugs like overflow, covered elements, and touch target sizes.',
161
+ inputSchema: {
162
+ type: 'object',
163
+ properties: {
164
+ filePath: {
165
+ type: 'string',
166
+ description: 'Absolute path to the HTML file to check',
167
+ },
168
+ viewport: {
169
+ type: 'object',
170
+ description: 'Optional viewport size for the check',
171
+ properties: {
172
+ width: {
173
+ type: 'number',
174
+ description: 'Viewport width in pixels',
175
+ },
176
+ height: {
177
+ type: 'number',
178
+ description: 'Viewport height in pixels',
179
+ },
180
+ },
181
+ required: ['width', 'height'],
182
+ },
183
+ checks: {
184
+ type: 'array',
185
+ items: { type: 'string' },
186
+ description: 'Optional array of specific checks to run. Available checks: overflow, clickability, touch-targets, text-overflow, visibility. If not provided, all checks run.',
187
+ },
188
+ },
189
+ required: ['filePath'],
190
+ },
191
+ },
192
+ {
193
+ name: 'screenshot',
194
+ description: 'Take a screenshot of a URL or specific element. Returns the image as base64-encoded PNG. Useful for visual debugging after detecting CSS issues.',
195
+ inputSchema: {
196
+ type: 'object',
197
+ properties: {
198
+ url: {
199
+ type: 'string',
200
+ description: 'The URL to screenshot',
201
+ },
202
+ selector: {
203
+ type: 'string',
204
+ description: 'Optional CSS selector to screenshot a specific element instead of the full page',
205
+ },
206
+ viewport: {
207
+ type: 'object',
208
+ description: 'Optional viewport size',
209
+ properties: {
210
+ width: {
211
+ type: 'number',
212
+ description: 'Viewport width in pixels',
213
+ },
214
+ height: {
215
+ type: 'number',
216
+ description: 'Viewport height in pixels',
217
+ },
218
+ },
219
+ required: ['width', 'height'],
220
+ },
221
+ fullPage: {
222
+ type: 'boolean',
223
+ description: 'Whether to take a full page screenshot (default: false)',
224
+ },
225
+ },
226
+ required: ['url'],
227
+ },
228
+ },
229
+ ],
230
+ };
231
+ });
232
+ // Handle tool calls
233
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
234
+ const { name, arguments: args } = request.params;
235
+ try {
236
+ switch (name) {
237
+ case 'check_page': {
238
+ const { url, viewport, checks } = args;
239
+ if (!url) {
240
+ throw new McpError(ErrorCode.InvalidParams, 'url is required');
241
+ }
242
+ const browserInstance = await getBrowser();
243
+ const page = await browserInstance.newPage();
244
+ try {
245
+ await page.goto(url, { waitUntil: 'networkidle0' });
246
+ const results = await runChecksOnPage(page, { viewport, checks });
247
+ const formattedResults = formatResultsForMcp(results);
248
+ return {
249
+ content: [
250
+ {
251
+ type: 'text',
252
+ text: JSON.stringify(formattedResults, null, 2),
253
+ },
254
+ ],
255
+ };
256
+ }
257
+ finally {
258
+ await page.close();
259
+ }
260
+ }
261
+ case 'check_html': {
262
+ const { html, viewport, checks } = args;
263
+ if (!html) {
264
+ throw new McpError(ErrorCode.InvalidParams, 'html is required');
265
+ }
266
+ const browserInstance = await getBrowser();
267
+ const page = await browserInstance.newPage();
268
+ try {
269
+ await page.setContent(html, { waitUntil: 'networkidle0' });
270
+ const results = await runChecksOnPage(page, { viewport, checks });
271
+ const formattedResults = formatResultsForMcp(results);
272
+ return {
273
+ content: [
274
+ {
275
+ type: 'text',
276
+ text: JSON.stringify(formattedResults, null, 2),
277
+ },
278
+ ],
279
+ };
280
+ }
281
+ finally {
282
+ await page.close();
283
+ }
284
+ }
285
+ case 'check_file': {
286
+ const { filePath, viewport, checks } = args;
287
+ if (!filePath) {
288
+ throw new McpError(ErrorCode.InvalidParams, 'filePath is required');
289
+ }
290
+ // Verify file exists
291
+ try {
292
+ await fs.access(filePath);
293
+ }
294
+ catch {
295
+ throw new McpError(ErrorCode.InvalidParams, `File not found: ${filePath}`);
296
+ }
297
+ // Read the file and check it
298
+ const absolutePath = path.resolve(filePath);
299
+ const fileUrl = `file://${absolutePath}`;
300
+ const browserInstance = await getBrowser();
301
+ const page = await browserInstance.newPage();
302
+ try {
303
+ await page.goto(fileUrl, { waitUntil: 'networkidle0' });
304
+ const results = await runChecksOnPage(page, { viewport, checks });
305
+ // Override the URL to show the file path instead of file:// URL
306
+ const resultsWithPath = {
307
+ ...results,
308
+ url: filePath,
309
+ };
310
+ const formattedResults = formatResultsForMcp(resultsWithPath);
311
+ return {
312
+ content: [
313
+ {
314
+ type: 'text',
315
+ text: JSON.stringify(formattedResults, null, 2),
316
+ },
317
+ ],
318
+ };
319
+ }
320
+ finally {
321
+ await page.close();
322
+ }
323
+ }
324
+ case 'screenshot': {
325
+ const { url, selector, viewport, fullPage } = args;
326
+ if (!url) {
327
+ throw new McpError(ErrorCode.InvalidParams, 'url is required');
328
+ }
329
+ const browserInstance = await getBrowser();
330
+ const page = await browserInstance.newPage();
331
+ try {
332
+ // Set viewport if provided
333
+ if (viewport) {
334
+ await page.setViewport({
335
+ width: viewport.width,
336
+ height: viewport.height,
337
+ });
338
+ }
339
+ await page.goto(url, { waitUntil: 'networkidle0' });
340
+ let screenshotData;
341
+ if (selector) {
342
+ // Screenshot specific element
343
+ const element = await page.$(selector);
344
+ if (!element) {
345
+ throw new McpError(ErrorCode.InvalidParams, `Element not found: ${selector}`);
346
+ }
347
+ screenshotData = await element.screenshot({ type: 'png' });
348
+ }
349
+ else {
350
+ // Screenshot page
351
+ screenshotData = await page.screenshot({
352
+ type: 'png',
353
+ fullPage: fullPage ?? false,
354
+ });
355
+ }
356
+ const base64Image = Buffer.from(screenshotData).toString('base64');
357
+ return {
358
+ content: [
359
+ {
360
+ type: 'image',
361
+ data: base64Image,
362
+ mimeType: 'image/png',
363
+ },
364
+ ],
365
+ };
366
+ }
367
+ finally {
368
+ await page.close();
369
+ }
370
+ }
371
+ default:
372
+ throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
373
+ }
374
+ }
375
+ catch (error) {
376
+ if (error instanceof McpError) {
377
+ throw error;
378
+ }
379
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
380
+ throw new McpError(ErrorCode.InternalError, errorMessage);
381
+ }
382
+ });
383
+ // Cleanup on exit
384
+ process.on('SIGINT', async () => {
385
+ await closeBrowser();
386
+ process.exit(0);
387
+ });
388
+ process.on('SIGTERM', async () => {
389
+ await closeBrowser();
390
+ process.exit(0);
391
+ });
392
+ // Start the server
393
+ async function main() {
394
+ const transport = new StdioServerTransport();
395
+ await server.connect(transport);
396
+ console.error('rlint MCP server running on stdio');
397
+ }
398
+ main().catch((error) => {
399
+ console.error('Fatal error starting MCP server:', error);
400
+ process.exit(1);
401
+ });
402
+ //# sourceMappingURL=mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,EACT,QAAQ,GACT,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAsB,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAc7B,8BAA8B;AAC9B,IAAI,OAAO,GAAmB,IAAI,CAAC;AAEnC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;AACH,CAAC;AAED,iCAAiC;AACjC,KAAK,UAAU,eAAe,CAC5B,IAAU,EACV,OAAqB;IAErB,2BAA2B;IAC3B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,WAAW,CAAC;YACrB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;YAC7B,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;SAChC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;IACvB,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAED,iEAAiE;AACjE,SAAS,mBAAmB,CAAC,OAAsB;IACjD,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE;YACP,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;YAC9B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;YAC9B,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;YAClC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;SACpC;QACD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE;gBACP,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;gBAC9B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;gBAClC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;gBACpB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;gBACtC,UAAU,EAAE;oBACV,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;oBAC/B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;oBACjC,QAAQ,EAAE;wBACR,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;wBAC7B,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;wBAC3B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;wBAC/B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;qBAClC;iBACF;aACF;YACD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;SAC/B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,wBAAwB;AACxB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,uBAAuB;AACvB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO;QACL,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EACT,oJAAoJ;gBACtJ,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,GAAG,EAAE;4BACH,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wCAAwC;yBACtD;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,sCAAsC;4BACnD,UAAU,EAAE;gCACV,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,0BAA0B;iCACxC;gCACD,MAAM,EAAE;oCACN,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,2BAA2B;iCACzC;6BACF;4BACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;yBAC9B;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EACT,gKAAgK;yBACnK;qBACF;oBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;iBAClB;aACF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EACT,8KAA8K;gBAChL,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,2BAA2B;yBACzC;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,sCAAsC;4BACnD,UAAU,EAAE;gCACV,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,0BAA0B;iCACxC;gCACD,MAAM,EAAE;oCACN,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,2BAA2B;iCACzC;6BACF;4BACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;yBAC9B;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EACT,gKAAgK;yBACnK;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EACT,gLAAgL;gBAClL,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yCAAyC;yBACvD;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,sCAAsC;4BACnD,UAAU,EAAE;gCACV,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,0BAA0B;iCACxC;gCACD,MAAM,EAAE;oCACN,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,2BAA2B;iCACzC;6BACF;4BACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;yBAC9B;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EACT,gKAAgK;yBACnK;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB;aACF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EACT,kJAAkJ;gBACpJ,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,GAAG,EAAE;4BACH,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uBAAuB;yBACrC;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iFAAiF;yBAC/F;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wBAAwB;4BACrC,UAAU,EAAE;gCACV,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,0BAA0B;iCACxC;gCACD,MAAM,EAAE;oCACN,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,2BAA2B;iCACzC;6BACF;4BACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;yBAC9B;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,yDAAyD;yBACvE;qBACF;oBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;iBAClB;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAIjC,CAAC;gBAEF,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;gBACjE,CAAC;gBAED,MAAM,eAAe,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;gBAE7C,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;oBACpD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBAClE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBAEtD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;6BAChD;yBACF;qBACF,CAAC;gBACJ,CAAC;wBAAS,CAAC;oBACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAIlC,CAAC;gBAEF,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;gBAClE,CAAC;gBAED,MAAM,eAAe,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;gBAE7C,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;oBAC3D,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBAClE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBAEtD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;6BAChD;yBACF;qBACF,CAAC;gBACJ,CAAC;wBAAS,CAAC;oBACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAItC,CAAC;gBAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;gBACtE,CAAC;gBAED,qBAAqB;gBACrB,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,mBAAmB,QAAQ,EAAE,CAC9B,CAAC;gBACJ,CAAC;gBAED,6BAA6B;gBAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,UAAU,YAAY,EAAE,CAAC;gBAEzC,MAAM,eAAe,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;gBAE7C,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;oBACxD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBAElE,gEAAgE;oBAChE,MAAM,eAAe,GAAG;wBACtB,GAAG,OAAO;wBACV,GAAG,EAAE,QAAQ;qBACd,CAAC;oBACF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;oBAE9D,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;6BAChD;yBACF;qBACF,CAAC;gBACJ,CAAC;wBAAS,CAAC;oBACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAK7C,CAAC;gBAEF,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;gBACjE,CAAC;gBAED,MAAM,eAAe,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;gBAE7C,IAAI,CAAC;oBACH,2BAA2B;oBAC3B,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,IAAI,CAAC,WAAW,CAAC;4BACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;4BACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;yBACxB,CAAC,CAAC;oBACL,CAAC;oBAED,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;oBAEpD,IAAI,cAA0B,CAAC;oBAE/B,IAAI,QAAQ,EAAE,CAAC;wBACb,8BAA8B;wBAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;wBACvC,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,sBAAsB,QAAQ,EAAE,CACjC,CAAC;wBACJ,CAAC;wBACD,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,kBAAkB;wBAClB,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;4BACrC,IAAI,EAAE,KAAK;4BACX,QAAQ,EAAE,QAAQ,IAAI,KAAK;yBAC5B,CAAC,CAAC;oBACL,CAAC;oBAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAEnE,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,WAAW;gCACjB,QAAQ,EAAE,WAAW;6BACtB;yBACF;qBACF,CAAC;gBACJ,CAAC;wBAAS,CAAC;oBACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YAED;gBACE,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACpE,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,kBAAkB;AAClB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,YAAY,EAAE,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,YAAY,EAAE,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,mBAAmB;AACnB,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;IACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HealthResults } from './types.js';
2
+ export type OutputFormat = 'text' | 'json' | 'junit';
3
+ export declare function formatResults(results: HealthResults, format?: OutputFormat): string;
4
+ //# sourceMappingURL=reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAS,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,MAAM,GAAE,YAAqB,GAC5B,MAAM,CAUR"}
@@ -0,0 +1,103 @@
1
+ import chalk from 'chalk';
2
+ export function formatResults(results, format = 'text') {
3
+ switch (format) {
4
+ case 'json':
5
+ return JSON.stringify(results, null, 2);
6
+ case 'junit':
7
+ return formatJUnit(results);
8
+ case 'text':
9
+ default:
10
+ return formatText(results);
11
+ }
12
+ }
13
+ function formatText(results) {
14
+ const lines = [];
15
+ lines.push('');
16
+ lines.push(chalk.bold(`rlint check`));
17
+ lines.push(chalk.dim(`${results.url} @ ${results.viewport.width}x${results.viewport.height}`));
18
+ lines.push('');
19
+ if (results.issues.length === 0) {
20
+ lines.push(chalk.green('✅ All checks passed!'));
21
+ lines.push('');
22
+ return lines.join('\n');
23
+ }
24
+ // Group issues by check
25
+ const issuesByCheck = new Map();
26
+ for (const issue of results.issues) {
27
+ const existing = issuesByCheck.get(issue.check) || [];
28
+ existing.push(issue);
29
+ issuesByCheck.set(issue.check, existing);
30
+ }
31
+ // Display issues
32
+ for (const [checkName, issues] of issuesByCheck) {
33
+ for (const issue of issues) {
34
+ const icon = issue.severity === 'error'
35
+ ? chalk.red('❌')
36
+ : issue.severity === 'warning'
37
+ ? chalk.yellow('⚠️ ')
38
+ : chalk.blue('ℹ️ ');
39
+ const severityColor = issue.severity === 'error'
40
+ ? chalk.red
41
+ : issue.severity === 'warning'
42
+ ? chalk.yellow
43
+ : chalk.blue;
44
+ lines.push(`${icon} ${severityColor(checkName.toUpperCase())} ${issue.message}`);
45
+ lines.push(chalk.dim(` └─ Element: ${issue.element.selector}`));
46
+ if (issue.element.textContent) {
47
+ lines.push(chalk.dim(` └─ Text: "${issue.element.textContent}"`));
48
+ }
49
+ if (issue.fixHint) {
50
+ lines.push(chalk.cyan(` └─ Fix: ${issue.fixHint}`));
51
+ }
52
+ lines.push('');
53
+ }
54
+ }
55
+ // Summary
56
+ lines.push(chalk.dim('─'.repeat(50)));
57
+ const summaryParts = [];
58
+ if (results.summary.errors > 0) {
59
+ summaryParts.push(chalk.red(`${results.summary.errors} error${results.summary.errors > 1 ? 's' : ''}`));
60
+ }
61
+ if (results.summary.warnings > 0) {
62
+ summaryParts.push(chalk.yellow(`${results.summary.warnings} warning${results.summary.warnings > 1 ? 's' : ''}`));
63
+ }
64
+ if (results.summary.passed > 0) {
65
+ summaryParts.push(chalk.green(`${results.summary.passed} passed`));
66
+ }
67
+ lines.push(`Results: ${summaryParts.join(', ')}`);
68
+ lines.push(chalk.dim('─'.repeat(50)));
69
+ lines.push('');
70
+ return lines.join('\n');
71
+ }
72
+ function formatJUnit(results) {
73
+ const testcases = results.issues.map(issue => {
74
+ const failure = issue.severity === 'error' || issue.severity === 'warning'
75
+ ? `<failure message="${escapeXml(issue.message)}" type="${issue.check}">
76
+ Element: ${escapeXml(issue.element.selector)}
77
+ ${issue.fixHint ? `Fix: ${escapeXml(issue.fixHint)}` : ''}
78
+ </failure>`
79
+ : '';
80
+ return ` <testcase name="${escapeXml(issue.check)}: ${escapeXml(issue.element.selector)}" classname="rlint">
81
+ ${failure}
82
+ </testcase>`;
83
+ });
84
+ // Add passed "test" if no issues
85
+ if (results.issues.length === 0) {
86
+ testcases.push(` <testcase name="All checks passed" classname="rlint" />`);
87
+ }
88
+ return `<?xml version="1.0" encoding="UTF-8"?>
89
+ <testsuites>
90
+ <testsuite name="rlint" tests="${results.issues.length || 1}" failures="${results.summary.errors}" warnings="${results.summary.warnings}">
91
+ ${testcases.join('\n')}
92
+ </testsuite>
93
+ </testsuites>`;
94
+ }
95
+ function escapeXml(str) {
96
+ return str
97
+ .replace(/&/g, '&amp;')
98
+ .replace(/</g, '&lt;')
99
+ .replace(/>/g, '&gt;')
100
+ .replace(/"/g, '&quot;')
101
+ .replace(/'/g, '&apos;');
102
+ }
103
+ //# sourceMappingURL=reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Page } from 'puppeteer-core';
2
+ import type { CheckConfig, HealthResults } from './types.js';
3
+ export interface RunnerOptions {
4
+ config?: CheckConfig;
5
+ checks?: string[];
6
+ }
7
+ export declare function runChecks(page: Page, options?: RunnerOptions): Promise<HealthResults>;
8
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AAG3E,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAgExB"}