@auto-engineer/frontend-checks 0.13.3 → 0.15.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.
- package/CHANGELOG.md +22 -0
- package/README.md +147 -306
- package/dist/src/browser-manager.js +1 -1
- package/dist/src/browser-manager.js.map +1 -1
- package/dist/src/commands/check-client.d.ts.map +1 -1
- package/dist/src/commands/check-client.js +9 -5
- package/dist/src/commands/check-client.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @auto-engineer/frontend-checks
|
|
2
2
|
|
|
3
|
+
## 0.15.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- version bump
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies []:
|
|
12
|
+
- @auto-engineer/message-bus@0.15.0
|
|
13
|
+
|
|
14
|
+
## 0.14.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- Rewrite CLI and Pipeline
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies []:
|
|
23
|
+
- @auto-engineer/message-bus@0.14.0
|
|
24
|
+
|
|
3
25
|
## 0.13.3
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,371 +1,212 @@
|
|
|
1
1
|
# @auto-engineer/frontend-checks
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Automated frontend validation for TypeScript errors, build errors, and runtime console errors.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
This is a plugin for the Auto Engineer CLI. Install both the CLI and this plugin:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm install -g @auto-engineer/cli
|
|
11
|
-
npm install @auto-engineer/frontend-checks
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Configuration
|
|
15
|
-
|
|
16
|
-
Add this plugin to your `auto.config.ts`:
|
|
17
|
-
|
|
18
|
-
```typescript
|
|
19
|
-
export default {
|
|
20
|
-
plugins: [
|
|
21
|
-
'@auto-engineer/frontend-checks',
|
|
22
|
-
// ... other plugins
|
|
23
|
-
],
|
|
24
|
-
};
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Commands
|
|
28
|
-
|
|
29
|
-
This plugin provides the following commands:
|
|
30
|
-
|
|
31
|
-
- `check:client` - Check the client code for issues
|
|
32
|
-
|
|
33
|
-
## What does this plugin do?
|
|
5
|
+
---
|
|
34
6
|
|
|
35
|
-
|
|
7
|
+
## Purpose
|
|
36
8
|
|
|
37
|
-
|
|
9
|
+
Without `@auto-engineer/frontend-checks`, you would have to manually run TypeScript compilation, trigger builds, launch browsers, and inspect console output to validate frontend code quality.
|
|
38
10
|
|
|
39
|
-
|
|
11
|
+
This package provides automated checking of frontend projects using Playwright for browser automation. It validates TypeScript compilation, Vite builds, and captures runtime console errors in a single command.
|
|
40
12
|
|
|
41
|
-
|
|
42
|
-
- Integration Testing: Page and feature-level testing
|
|
43
|
-
- End-to-End Testing: User workflow validation with Playwright
|
|
44
|
-
- Visual Regression Testing: UI consistency checks across changes
|
|
13
|
+
---
|
|
45
14
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
- TypeScript Validation: Type safety and compilation checks
|
|
49
|
-
- ESLint Analysis: Code style and best practice enforcement
|
|
50
|
-
- Bundle Analysis: Performance and size optimization checks
|
|
51
|
-
- Accessibility Auditing: WCAG compliance and a11y best practices
|
|
52
|
-
|
|
53
|
-
### Performance Monitoring
|
|
54
|
-
|
|
55
|
-
- Lighthouse Audits: Performance, accessibility, and SEO scoring
|
|
56
|
-
- Core Web Vitals: Loading, interactivity, and visual stability metrics
|
|
57
|
-
- Bundle Size Analysis: JavaScript and CSS optimization recommendations
|
|
58
|
-
- Runtime Performance: Memory usage and rendering optimization
|
|
59
|
-
|
|
60
|
-
### User Experience Validation
|
|
15
|
+
## Installation
|
|
61
16
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
- Usability Heuristics: User interface and interaction pattern validation
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @auto-engineer/frontend-checks
|
|
19
|
+
```
|
|
66
20
|
|
|
67
|
-
##
|
|
21
|
+
## Quick Start
|
|
68
22
|
|
|
69
|
-
|
|
23
|
+
Register the handler and check a frontend project:
|
|
70
24
|
|
|
71
|
-
|
|
25
|
+
### 1. Register the handlers
|
|
72
26
|
|
|
73
27
|
```typescript
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
it('renders product information correctly', () => {
|
|
77
|
-
const mockProduct = {
|
|
78
|
-
id: '1',
|
|
79
|
-
name: 'Test Product',
|
|
80
|
-
price: 29.99,
|
|
81
|
-
imageUrl: '/test-image.jpg'
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
render(<ProductCard product={mockProduct} />);
|
|
85
|
-
|
|
86
|
-
expect(screen.getByText('Test Product')).toBeInTheDocument();
|
|
87
|
-
expect(screen.getByText('$29.99')).toBeInTheDocument();
|
|
88
|
-
expect(screen.getByRole('img')).toHaveAttribute('src', '/test-image.jpg');
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it('handles add to cart interaction', async () => {
|
|
92
|
-
const mockOnAddToCart = vi.fn();
|
|
93
|
-
const mockProduct = createMockProduct();
|
|
94
|
-
|
|
95
|
-
render(<ProductCard product={mockProduct} onAddToCart={mockOnAddToCart} />);
|
|
96
|
-
|
|
97
|
-
const addButton = screen.getByRole('button', { name: /add to cart/i });
|
|
98
|
-
await user.click(addButton);
|
|
99
|
-
|
|
100
|
-
expect(mockOnAddToCart).toHaveBeenCalledWith(mockProduct.id);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
```
|
|
28
|
+
import { COMMANDS } from '@auto-engineer/frontend-checks';
|
|
29
|
+
import { createMessageBus } from '@auto-engineer/message-bus';
|
|
104
30
|
|
|
105
|
-
|
|
31
|
+
const bus = createMessageBus();
|
|
32
|
+
COMMANDS.forEach(cmd => bus.registerCommand(cmd));
|
|
33
|
+
```
|
|
106
34
|
|
|
107
|
-
|
|
35
|
+
### 2. Send a command
|
|
108
36
|
|
|
109
37
|
```typescript
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
createAddToCartMock(),
|
|
117
|
-
createCheckoutMock()
|
|
118
|
-
];
|
|
119
|
-
|
|
120
|
-
render(
|
|
121
|
-
<MockedProvider mocks={mocks}>
|
|
122
|
-
<App />
|
|
123
|
-
</MockedProvider>
|
|
124
|
-
);
|
|
125
|
-
|
|
126
|
-
// Navigate to products
|
|
127
|
-
await user.click(screen.getByText('Products'));
|
|
128
|
-
|
|
129
|
-
// Add product to cart
|
|
130
|
-
const addButton = await screen.findByText('Add to Cart');
|
|
131
|
-
await user.click(addButton);
|
|
132
|
-
|
|
133
|
-
// Proceed to checkout
|
|
134
|
-
await user.click(screen.getByText('Checkout'));
|
|
135
|
-
|
|
136
|
-
// Complete purchase
|
|
137
|
-
await user.click(screen.getByText('Complete Order'));
|
|
138
|
-
|
|
139
|
-
// Verify success
|
|
140
|
-
expect(await screen.findByText('Order Confirmed')).toBeInTheDocument();
|
|
141
|
-
});
|
|
38
|
+
const result = await bus.dispatch({
|
|
39
|
+
type: 'CheckClient',
|
|
40
|
+
data: {
|
|
41
|
+
clientDirectory: './client',
|
|
42
|
+
},
|
|
43
|
+
requestId: 'req-123',
|
|
142
44
|
});
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### End-to-End Testing
|
|
146
45
|
|
|
147
|
-
|
|
46
|
+
console.log(result);
|
|
47
|
+
// → { type: 'ClientChecked', data: { tsErrors: 0, buildErrors: 0, consoleErrors: 0, allChecksPassed: true } }
|
|
48
|
+
```
|
|
148
49
|
|
|
149
|
-
|
|
150
|
-
// Example E2E test
|
|
151
|
-
test('complete user registration and login flow', async ({ page }) => {
|
|
152
|
-
await page.goto('/register');
|
|
50
|
+
The command runs TypeScript checks, build validation, and browser console error detection.
|
|
153
51
|
|
|
154
|
-
|
|
155
|
-
await page.fill('[data-testid=name-input]', 'John Doe');
|
|
156
|
-
await page.fill('[data-testid=email-input]', 'john@example.com');
|
|
157
|
-
await page.fill('[data-testid=password-input]', 'securepassword');
|
|
52
|
+
---
|
|
158
53
|
|
|
159
|
-
|
|
160
|
-
await page.click('[data-testid=register-button]');
|
|
54
|
+
## How-to Guides
|
|
161
55
|
|
|
162
|
-
|
|
163
|
-
await expect(page).toHaveURL('/dashboard');
|
|
56
|
+
### Run via CLI
|
|
164
57
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
});
|
|
58
|
+
```bash
|
|
59
|
+
auto check:client --client-directory=./client
|
|
168
60
|
```
|
|
169
61
|
|
|
170
|
-
|
|
62
|
+
### Skip Browser Checks
|
|
171
63
|
|
|
172
|
-
|
|
64
|
+
```bash
|
|
65
|
+
auto check:client --client-directory=./client --skip-browser-checks
|
|
66
|
+
```
|
|
173
67
|
|
|
174
|
-
|
|
68
|
+
### Run Programmatically
|
|
175
69
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
- Screen Reader Support: Semantic HTML and assistive technology compatibility
|
|
179
|
-
- Color Contrast: WCAG AA/AAA contrast ratio compliance
|
|
180
|
-
- Focus Management: Focus indicators and logical focus flow
|
|
70
|
+
```typescript
|
|
71
|
+
import { getTsErrors, getBuildErrors, getConsoleErrors } from '@auto-engineer/frontend-checks';
|
|
181
72
|
|
|
182
|
-
|
|
73
|
+
const tsErrors = await getTsErrors('./client');
|
|
74
|
+
const buildErrors = await getBuildErrors('./client');
|
|
75
|
+
const consoleErrors = await getConsoleErrors('http://localhost:3000');
|
|
76
|
+
```
|
|
183
77
|
|
|
184
|
-
|
|
78
|
+
### Handle Errors
|
|
185
79
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
80
|
+
```typescript
|
|
81
|
+
if (result.type === 'ClientCheckFailed') {
|
|
82
|
+
console.error(result.data.error);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (!result.data.allChecksPassed) {
|
|
86
|
+
console.log('TS errors:', result.data.tsErrorDetails);
|
|
87
|
+
console.log('Build errors:', result.data.buildErrorDetails);
|
|
88
|
+
console.log('Console errors:', result.data.consoleErrorDetails);
|
|
89
|
+
}
|
|
90
|
+
```
|
|
193
91
|
|
|
194
|
-
###
|
|
92
|
+
### Enable Debug Logging
|
|
195
93
|
|
|
196
|
-
|
|
94
|
+
```bash
|
|
95
|
+
DEBUG=frontend-checks:* auto check:client --client-directory=./client
|
|
96
|
+
```
|
|
197
97
|
|
|
198
|
-
|
|
199
|
-
- ESLint: Code style, React hooks rules, accessibility rules
|
|
200
|
-
- Prettier: Code formatting
|
|
201
|
-
- Import Organization: Import structure and unused import detection
|
|
202
|
-
- Component Architecture: Props validation and component composition patterns
|
|
98
|
+
---
|
|
203
99
|
|
|
204
|
-
##
|
|
100
|
+
## API Reference
|
|
205
101
|
|
|
206
|
-
|
|
102
|
+
### Exports
|
|
207
103
|
|
|
208
104
|
```typescript
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
bundleSize: 1024 * 1024, // 1MB
|
|
226
|
-
},
|
|
227
|
-
|
|
228
|
-
// Accessibility standards
|
|
229
|
-
accessibilityLevel: 'WCAG_AA',
|
|
230
|
-
|
|
231
|
-
// Browser testing
|
|
232
|
-
browsers: ['chromium', 'firefox', 'safari'],
|
|
233
|
-
|
|
234
|
-
// Device testing
|
|
235
|
-
devices: ['Desktop', 'Mobile Chrome', 'Mobile Safari'],
|
|
236
|
-
},
|
|
237
|
-
],
|
|
238
|
-
],
|
|
239
|
-
};
|
|
105
|
+
import {
|
|
106
|
+
COMMANDS,
|
|
107
|
+
checkClientCommandHandler,
|
|
108
|
+
BrowserManager,
|
|
109
|
+
getTsErrors,
|
|
110
|
+
getBuildErrors,
|
|
111
|
+
getConsoleErrors,
|
|
112
|
+
getPageScreenshot,
|
|
113
|
+
closeBrowser,
|
|
114
|
+
} from '@auto-engineer/frontend-checks';
|
|
115
|
+
|
|
116
|
+
import type {
|
|
117
|
+
CheckClientCommand,
|
|
118
|
+
ClientCheckedEvent,
|
|
119
|
+
ClientCheckFailedEvent,
|
|
120
|
+
} from '@auto-engineer/frontend-checks';
|
|
240
121
|
```
|
|
241
122
|
|
|
242
|
-
|
|
123
|
+
### Commands
|
|
243
124
|
|
|
244
|
-
|
|
125
|
+
| Command | CLI Alias | Description |
|
|
126
|
+
|---------|-----------|-------------|
|
|
127
|
+
| `CheckClient` | `check:client` | Run full frontend validation suite |
|
|
245
128
|
|
|
246
|
-
|
|
129
|
+
### CheckClientCommand
|
|
247
130
|
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
✅ TypeScript: No errors
|
|
257
|
-
✅ ESLint: No issues found
|
|
258
|
-
⚠️ Bundle Size: 1.2MB (exceeds 1MB threshold)
|
|
259
|
-
|
|
260
|
-
✅ Accessibility: WCAG AA compliant
|
|
261
|
-
✅ Performance: All Core Web Vitals passed
|
|
262
|
-
- LCP: 1.8s ✅
|
|
263
|
-
- FID: 45ms ✅
|
|
264
|
-
- CLS: 0.05 ✅
|
|
265
|
-
|
|
266
|
-
Cross-Browser Results:
|
|
267
|
-
✅ Chrome: All tests passed
|
|
268
|
-
✅ Firefox: All tests passed
|
|
269
|
-
✅ Safari: All tests passed
|
|
131
|
+
```typescript
|
|
132
|
+
type CheckClientCommand = Command<
|
|
133
|
+
'CheckClient',
|
|
134
|
+
{
|
|
135
|
+
clientDirectory: string;
|
|
136
|
+
skipBrowserChecks?: boolean;
|
|
137
|
+
}
|
|
138
|
+
>;
|
|
270
139
|
```
|
|
271
140
|
|
|
272
|
-
###
|
|
141
|
+
### ClientCheckedEvent
|
|
273
142
|
|
|
274
|
-
|
|
143
|
+
```typescript
|
|
144
|
+
type ClientCheckedEvent = Event<
|
|
145
|
+
'ClientChecked',
|
|
146
|
+
{
|
|
147
|
+
clientDirectory: string;
|
|
148
|
+
tsErrors: number;
|
|
149
|
+
buildErrors: number;
|
|
150
|
+
consoleErrors: number;
|
|
151
|
+
allChecksPassed: boolean;
|
|
152
|
+
tsErrorDetails?: string[];
|
|
153
|
+
buildErrorDetails?: string[];
|
|
154
|
+
consoleErrorDetails?: string[];
|
|
155
|
+
}
|
|
156
|
+
>;
|
|
157
|
+
```
|
|
275
158
|
|
|
276
|
-
|
|
277
|
-
- Coverage Reports: Line-by-line code coverage analysis
|
|
278
|
-
- Performance Reports: Lighthouse audit results and recommendations
|
|
279
|
-
- Accessibility Reports: A11y violation reports with remediation guidance
|
|
280
|
-
- Bundle Analysis: Visual bundle composition and optimization suggestions
|
|
159
|
+
### Functions
|
|
281
160
|
|
|
282
|
-
|
|
161
|
+
#### `getTsErrors(projectPath: string): Promise<string[]>`
|
|
283
162
|
|
|
284
|
-
|
|
163
|
+
Runs `tsc --noEmit` and returns TypeScript compilation errors.
|
|
285
164
|
|
|
286
|
-
|
|
287
|
-
# Run all frontend checks
|
|
288
|
-
auto check:client
|
|
165
|
+
#### `getBuildErrors(projectPath: string): Promise<string[]>`
|
|
289
166
|
|
|
290
|
-
|
|
291
|
-
# 0 - All checks passed
|
|
292
|
-
# 1 - Some checks failed
|
|
293
|
-
# 2 - Critical failures (build errors, etc.)
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
### GitHub Actions Integration
|
|
297
|
-
|
|
298
|
-
```yaml
|
|
299
|
-
name: Frontend Quality Checks
|
|
300
|
-
on: [push, pull_request]
|
|
301
|
-
|
|
302
|
-
jobs:
|
|
303
|
-
frontend-checks:
|
|
304
|
-
runs-on: ubuntu-latest
|
|
305
|
-
steps:
|
|
306
|
-
- uses: actions/checkout@v3
|
|
307
|
-
- uses: actions/setup-node@v3
|
|
308
|
-
with:
|
|
309
|
-
node-version: '18'
|
|
310
|
-
|
|
311
|
-
- name: Install dependencies
|
|
312
|
-
run: npm ci
|
|
313
|
-
|
|
314
|
-
- name: Run frontend checks
|
|
315
|
-
run: auto check:client
|
|
316
|
-
|
|
317
|
-
- name: Upload test reports
|
|
318
|
-
if: always()
|
|
319
|
-
uses: actions/upload-artifact@v3
|
|
320
|
-
with:
|
|
321
|
-
name: test-reports
|
|
322
|
-
path: reports/
|
|
323
|
-
```
|
|
167
|
+
Runs `pnpm exec vite build` and returns build errors.
|
|
324
168
|
|
|
325
|
-
|
|
169
|
+
#### `getConsoleErrors(url: string): Promise<string[]>`
|
|
326
170
|
|
|
327
|
-
|
|
171
|
+
Navigates to URL using Playwright and captures console errors.
|
|
328
172
|
|
|
329
|
-
|
|
330
|
-
- @auto-engineer/frontend-implementer: Checks AI-implemented code quality
|
|
331
|
-
- @auto-engineer/design-system-importer: Validates design system usage consistency
|
|
332
|
-
- @auto-engineer/information-architect: Validates implementation against IA specifications
|
|
173
|
+
#### `getPageScreenshot(url: string): Promise<string>`
|
|
333
174
|
|
|
334
|
-
|
|
175
|
+
Takes a screenshot and returns base64-encoded string.
|
|
335
176
|
|
|
336
|
-
|
|
177
|
+
---
|
|
337
178
|
|
|
338
|
-
|
|
179
|
+
## Architecture
|
|
339
180
|
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
<BrowserRouter>
|
|
347
|
-
<ThemeProvider>
|
|
348
|
-
{component}
|
|
349
|
-
</ThemeProvider>
|
|
350
|
-
</BrowserRouter>
|
|
351
|
-
</MockedProvider>
|
|
352
|
-
);
|
|
353
|
-
},
|
|
354
|
-
|
|
355
|
-
mockGraphQLOperation: (operation: string, variables: any, result: any) => ({
|
|
356
|
-
request: { query: operation, variables },
|
|
357
|
-
result: { data: result }
|
|
358
|
-
})
|
|
359
|
-
});
|
|
181
|
+
```
|
|
182
|
+
src/
|
|
183
|
+
├── index.ts
|
|
184
|
+
├── browser-manager.ts
|
|
185
|
+
└── commands/
|
|
186
|
+
└── check-client.ts
|
|
360
187
|
```
|
|
361
188
|
|
|
362
|
-
|
|
189
|
+
The following diagram shows the check flow:
|
|
190
|
+
|
|
191
|
+
```mermaid
|
|
192
|
+
flowchart TB
|
|
193
|
+
A[CheckClient] --> B[Validate Directory]
|
|
194
|
+
B --> C[Run tsc --noEmit]
|
|
195
|
+
C --> D[Run vite build]
|
|
196
|
+
D --> E{Skip Browser?}
|
|
197
|
+
E -->|No| F[Start Dev Server]
|
|
198
|
+
F --> G[Capture Console Errors]
|
|
199
|
+
G --> H[ClientCheckedEvent]
|
|
200
|
+
E -->|Yes| H
|
|
201
|
+
```
|
|
363
202
|
|
|
364
|
-
|
|
203
|
+
*Flow: Command validates directory, runs TypeScript and build checks, optionally captures browser console errors.*
|
|
365
204
|
|
|
366
|
-
|
|
367
|
-
- Component Visual Tests: Component appearance validation
|
|
368
|
-
- Cross-Browser Visual Consistency: UI consistency across browsers
|
|
369
|
-
- Responsive Design Validation: Layout consistency across screen sizes
|
|
205
|
+
### Dependencies
|
|
370
206
|
|
|
371
|
-
|
|
207
|
+
| Package | Usage |
|
|
208
|
+
|---------|-------|
|
|
209
|
+
| `@auto-engineer/message-bus` | Command/event infrastructure |
|
|
210
|
+
| `playwright` | Browser automation |
|
|
211
|
+
| `typescript` | TypeScript compiler |
|
|
212
|
+
| `debug` | Debug logging |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-manager.js","sourceRoot":"","sources":["../../src/browser-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"browser-manager.js","sourceRoot":"","sources":["../../src/browser-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,WAAW,MAAM,OAAO,CAAC;AAKhC,MAAM,KAAK,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;AACrD,MAAM,YAAY,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;AAC5D,MAAM,eAAe,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAClE,MAAM,WAAW,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAE1D,MAAM,cAAc;IAMlB;QAJQ,YAAO,GAAmB,IAAI,CAAC;QAC/B,qBAAgB,GAAG,KAAK,CAAC;QACzB,aAAQ,GAAwC,IAAI,CAAC;IAEtC,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACrC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC9C,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YACpC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,qCAAqC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,uDAAuD;YACvD,YAAY,CAAC,6CAA6C,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,YAAY,CAAC,+BAA+B,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;YACpC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,YAAY,CAAC,uDAAuD,CAAC,CAAC;YACtE,IAAI,CAAC;gBACH,wDAAwD;gBACxD,YAAY,CAAC,0CAA0C,CAAC,CAAC;gBACzD,QAAQ,CAAC,iCAAiC,EAAE;oBAC1C,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,gCAAgC,EAAE,GAAG,EAAE;iBAC/D,CAAC,CAAC;gBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;gBAC3D,YAAY,CAAC,8CAA8C,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,YAAY,CAAC,gCAAgC,EAAE,YAAY,CAAC,CAAC;gBAC7D,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,KAAK,CAAC,8DAA8D,CAAC,CAAC;YACtE,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACpC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;;AArFc,uBAAQ,GAA0B,IAAI,AAA9B,CAA+B;AAwFxD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,WAAW,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YAC3B,WAAW,CAAC,4BAA4B,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,WAAW,CAAC,yBAAyB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,WAAW,CAAC,mCAAmC,EAAE,WAAW,CAAC,CAAC;QAC9D,sFAAsF;QACtF,2DAA2D;QAC3D,MAAM,OAAO,GAAG,cAAc,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YAC7D,IAAI,KAAK,EAAE,CAAC;gBACV,6DAA6D;gBAC7D,wCAAwC;gBACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC3E,WAAW,CAAC,4BAA4B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,YAAY;gBACZ,WAAW,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,WAAW,CAAC,8BAA8B,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,sBAAsB,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,KAAK,EAAE,CAAC;gBACV,0CAA0C;gBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC3E,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,uBAAuB,CAAC,CAAC;gBACrC,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,eAAe,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,eAAe,CAAC,qCAAqC,CAAC,CAAC;IAEvD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;IACnD,eAAe,CAAC,gCAAgC,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACvC,eAAe,CAAC,qCAAqC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,eAAe,CAAC,aAAa,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-client.d.ts","sourceRoot":"","sources":["../../../src/commands/check-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-client.d.ts","sourceRoot":"","sources":["../../../src/commands/check-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAU5F,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,aAAa,EACb;IACE,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CACF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,CACpC,eAAe,EACf;IACE,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,KAAK,CACxC,mBAAmB,EACnB;IACE,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CACF,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;AAE5E,eAAO,MAAM,yBAAyB;;;;;;GA+CpC,CAAC;AA8IH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,CAqEtD;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
1
4
|
import { defineCommandHandler } from '@auto-engineer/message-bus';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { existsSync } from 'fs';
|
|
4
|
-
import { getTsErrors, getBuildErrors, getConsoleErrors, closeBrowser } from '../index.js';
|
|
5
|
-
import { spawn } from 'child_process';
|
|
6
5
|
import createDebug from 'debug';
|
|
6
|
+
import { closeBrowser, getBuildErrors, getConsoleErrors, getTsErrors } from '../index.js';
|
|
7
7
|
const debug = createDebug('frontend-checks:command');
|
|
8
8
|
const debugHandler = createDebug('frontend-checks:command:handler');
|
|
9
9
|
const debugServer = createDebug('frontend-checks:command:server');
|
|
@@ -11,6 +11,7 @@ const debugChecks = createDebug('frontend-checks:command:checks');
|
|
|
11
11
|
const debugResult = createDebug('frontend-checks:command:result');
|
|
12
12
|
export const checkClientCommandHandler = defineCommandHandler({
|
|
13
13
|
name: 'CheckClient',
|
|
14
|
+
displayName: 'Check Client',
|
|
14
15
|
alias: 'check:client',
|
|
15
16
|
description: 'Full frontend validation suite',
|
|
16
17
|
category: 'validation',
|
|
@@ -26,7 +27,10 @@ export const checkClientCommandHandler = defineCommandHandler({
|
|
|
26
27
|
},
|
|
27
28
|
},
|
|
28
29
|
examples: ['$ auto check:client --client-directory=./client'],
|
|
29
|
-
events: [
|
|
30
|
+
events: [
|
|
31
|
+
{ name: 'ClientChecked', displayName: 'Client Checked' },
|
|
32
|
+
{ name: 'ClientCheckFailed', displayName: 'Client Check Failed' },
|
|
33
|
+
],
|
|
30
34
|
handle: async (command) => {
|
|
31
35
|
const typedCommand = command;
|
|
32
36
|
debug('CommandHandler executing for CheckClient');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-client.js","sourceRoot":"","sources":["../../../src/commands/check-client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"check-client.js","sourceRoot":"","sources":["../../../src/commands/check-client.ts"],"names":[],"mappings":"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"}
|