@auto-engineer/frontend-checks 0.4.8 → 0.5.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 +11 -0
- package/README.md +371 -0
- package/dist/cli-manifest.d.ts +3 -0
- package/dist/cli-manifest.d.ts.map +1 -0
- package/dist/cli-manifest.js +13 -0
- package/dist/cli-manifest.js.map +1 -0
- package/dist/commands/check-client.d.ts +0 -1
- package/dist/commands/check-client.d.ts.map +1 -1
- package/dist/commands/check-client.js +0 -1
- package/dist/commands/check-client.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/package.json +11 -6
- package/dist/cli/check-client.d.ts +0 -3
- package/dist/cli/check-client.d.ts.map +0 -1
- package/dist/cli/check-client.js +0 -42
- package/dist/cli/check-client.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @auto-engineer/frontend-checks
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- • All cli commands now use commands and emit events on the bus
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
- @auto-engineer/message-bus@0.4.0
|
|
13
|
+
|
|
3
14
|
## 0.4.8
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/README.md
ADDED
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
# @auto-engineer/frontend-checks
|
|
2
|
+
|
|
3
|
+
Frontend validation and quality assurance plugin for the Auto Engineer CLI. This plugin provides testing and validation for React applications, ensuring code quality, performance, and user experience standards are met.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
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?
|
|
34
|
+
|
|
35
|
+
The Frontend Checks plugin performs validation of React applications, including unit testing, integration testing, accessibility auditing, performance analysis, and code quality checks. It ensures that frontend applications meet standards.
|
|
36
|
+
|
|
37
|
+
## Key Features
|
|
38
|
+
|
|
39
|
+
### Testing
|
|
40
|
+
|
|
41
|
+
- Unit Testing: Component-level testing with React Testing Library
|
|
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
|
|
45
|
+
|
|
46
|
+
### Code Quality Assurance
|
|
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
|
|
61
|
+
|
|
62
|
+
- Responsive Design Testing: Multi-device and screen size compatibility
|
|
63
|
+
- Cross-Browser Testing: Compatibility across different browsers
|
|
64
|
+
- Accessibility Testing: Screen reader and keyboard navigation support
|
|
65
|
+
- Usability Heuristics: User interface and interaction pattern validation
|
|
66
|
+
|
|
67
|
+
## Testing Infrastructure
|
|
68
|
+
|
|
69
|
+
### Unit and Component Testing
|
|
70
|
+
|
|
71
|
+
Validates individual components and hooks:
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
// Example test that would be run by the checker
|
|
75
|
+
describe('ProductCard Component', () => {
|
|
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
|
+
```
|
|
104
|
+
|
|
105
|
+
### Integration Testing
|
|
106
|
+
|
|
107
|
+
Tests complete user workflows:
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
// Example integration test
|
|
111
|
+
describe('Product Purchase Flow', () => {
|
|
112
|
+
it('allows user to complete a purchase', async () => {
|
|
113
|
+
// Mock GraphQL responses
|
|
114
|
+
const mocks = [
|
|
115
|
+
createProductListMock(),
|
|
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
|
+
});
|
|
142
|
+
});
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### End-to-End Testing
|
|
146
|
+
|
|
147
|
+
Full application testing with Playwright:
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
// Example E2E test
|
|
151
|
+
test('complete user registration and login flow', async ({ page }) => {
|
|
152
|
+
await page.goto('/register');
|
|
153
|
+
|
|
154
|
+
// Fill registration form
|
|
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');
|
|
158
|
+
|
|
159
|
+
// Submit registration
|
|
160
|
+
await page.click('[data-testid=register-button]');
|
|
161
|
+
|
|
162
|
+
// Verify redirect to dashboard
|
|
163
|
+
await expect(page).toHaveURL('/dashboard');
|
|
164
|
+
|
|
165
|
+
// Verify welcome message
|
|
166
|
+
await expect(page.locator('[data-testid=welcome-message]')).toContainText('Welcome, John');
|
|
167
|
+
});
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Quality Checks
|
|
171
|
+
|
|
172
|
+
### Accessibility Auditing
|
|
173
|
+
|
|
174
|
+
A11y validation:
|
|
175
|
+
|
|
176
|
+
- ARIA Compliance: ARIA labels, roles, and properties
|
|
177
|
+
- Keyboard Navigation: Tab order and keyboard accessibility
|
|
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
|
|
181
|
+
|
|
182
|
+
### Performance Analysis
|
|
183
|
+
|
|
184
|
+
Performance metrics:
|
|
185
|
+
|
|
186
|
+
- Core Web Vitals:
|
|
187
|
+
- Largest Contentful Paint (LCP) < 2.5s
|
|
188
|
+
- First Input Delay (FID) < 100ms
|
|
189
|
+
- Cumulative Layout Shift (CLS) < 0.1
|
|
190
|
+
- Bundle Size: JavaScript and CSS optimization recommendations
|
|
191
|
+
- Runtime Performance: Component re-render optimization
|
|
192
|
+
- Network Efficiency: Resource loading and caching strategies
|
|
193
|
+
|
|
194
|
+
### Code Quality Standards
|
|
195
|
+
|
|
196
|
+
Best practices:
|
|
197
|
+
|
|
198
|
+
- TypeScript: Type checking and compilation
|
|
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
|
|
203
|
+
|
|
204
|
+
## Configuration Options
|
|
205
|
+
|
|
206
|
+
Customize checking behavior:
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
// auto.config.ts
|
|
210
|
+
export default {
|
|
211
|
+
plugins: [
|
|
212
|
+
[
|
|
213
|
+
'@auto-engineer/frontend-checks',
|
|
214
|
+
{
|
|
215
|
+
// Testing configuration
|
|
216
|
+
testTimeout: 10000,
|
|
217
|
+
testCoverage: 80,
|
|
218
|
+
runE2ETests: true,
|
|
219
|
+
|
|
220
|
+
// Performance thresholds
|
|
221
|
+
performanceThresholds: {
|
|
222
|
+
lcp: 2500,
|
|
223
|
+
fid: 100,
|
|
224
|
+
cls: 0.1,
|
|
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
|
+
};
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Check Results and Reporting
|
|
243
|
+
|
|
244
|
+
### Test Results
|
|
245
|
+
|
|
246
|
+
Test reporting:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
Frontend Checks Results
|
|
250
|
+
=======================
|
|
251
|
+
|
|
252
|
+
✅ Unit Tests: 45/45 passed (100%)
|
|
253
|
+
✅ Integration Tests: 12/12 passed (100%)
|
|
254
|
+
✅ E2E Tests: 8/8 passed (100%)
|
|
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
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Detailed Reports
|
|
273
|
+
|
|
274
|
+
Generate reports:
|
|
275
|
+
|
|
276
|
+
- HTML Test Reports: Interactive test results with screenshots
|
|
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
|
|
281
|
+
|
|
282
|
+
## Integration with CI/CD
|
|
283
|
+
|
|
284
|
+
The frontend checks integrate with continuous integration:
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
# Run all frontend checks
|
|
288
|
+
auto check:client
|
|
289
|
+
|
|
290
|
+
# Exit codes:
|
|
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
|
+
```
|
|
324
|
+
|
|
325
|
+
## Integration with Other Plugins
|
|
326
|
+
|
|
327
|
+
Works with the Auto Engineer ecosystem:
|
|
328
|
+
|
|
329
|
+
- @auto-engineer/react-graphql-generator: Validates generated React applications
|
|
330
|
+
- @auto-engineer/frontend-implementation: 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
|
|
333
|
+
|
|
334
|
+
## Advanced Features
|
|
335
|
+
|
|
336
|
+
### Custom Test Patterns
|
|
337
|
+
|
|
338
|
+
Define project-specific testing patterns:
|
|
339
|
+
|
|
340
|
+
```typescript
|
|
341
|
+
// Custom test utilities
|
|
342
|
+
export const createTestUtils = () => ({
|
|
343
|
+
renderWithProviders: (component: React.ReactElement) => {
|
|
344
|
+
return render(
|
|
345
|
+
<MockedProvider>
|
|
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
|
+
});
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### Visual Regression Testing
|
|
363
|
+
|
|
364
|
+
Automated UI consistency validation:
|
|
365
|
+
|
|
366
|
+
- Screenshot Comparison: UI change detection
|
|
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
|
|
370
|
+
|
|
371
|
+
The Frontend Checks plugin ensures that React applications meet standards of quality, performance, accessibility, and user experience, providing confidence in production deployments.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-manifest.d.ts","sourceRoot":"","sources":["../src/cli-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE,eAAO,MAAM,YAAY,EAAE,WAW1B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const CLI_MANIFEST = {
|
|
2
|
+
category: '@auto-engineer/frontend-checks',
|
|
3
|
+
commands: {
|
|
4
|
+
'check:client': {
|
|
5
|
+
handler: () => import('./commands/check-client.js'),
|
|
6
|
+
description: 'Full frontend validation suite',
|
|
7
|
+
usage: 'check:client <client-dir>',
|
|
8
|
+
examples: ['$ auto check:client ./client'],
|
|
9
|
+
args: [{ name: 'client-dir', description: 'Client directory to check', required: true }],
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=cli-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-manifest.js","sourceRoot":"","sources":["../src/cli-manifest.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,QAAQ,EAAE,gCAAgC;IAC1C,QAAQ,EAAE;QACR,cAAc,EAAE;YACd,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC;YAChD,WAAW,EAAE,gCAAgC;YAC7C,KAAK,EAAE,2BAA2B;YAClC,QAAQ,EAAE,CAAC,8BAA8B,CAAC;YAC1C,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,2BAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACzF;KACF;CACF,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":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAa3F,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;CAC1B,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,KAAK,CACxC,mBAAmB,EACnB;IACE,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CACF,CAAC;AA8IF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,CAqEtD;AAED,eAAO,MAAM,yBAAyB,EAAE,cAAc,CAAC,kBAAkB,CA0BxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-client.js","sourceRoot":"","sources":["../../src/commands/check-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-client.js","sourceRoot":"","sources":["../../src/commands/check-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export declare function closeBrowser(): Promise<void>;
|
|
|
3
3
|
export declare function getTsErrors(projectPath: string): Promise<string[]>;
|
|
4
4
|
export declare function getBuildErrors(projectPath: string): Promise<string[]>;
|
|
5
5
|
export declare function getPageScreenshot(url: string): Promise<string>;
|
|
6
|
+
export { CLI_MANIFEST } from './cli-manifest';
|
|
6
7
|
export { checkClientCommandHandler, handleCheckClientCommand, type CheckClientCommand, type ClientCheckedEvent, type ClientCheckFailedEvent, } from './commands/check-client';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoGA,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBrE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAIlD;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBlE;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBrE;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBpE;AAGD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { chromium } from 'playwright';
|
|
2
1
|
import { exec, execSync } from 'child_process';
|
|
3
2
|
import createDebug from 'debug';
|
|
4
3
|
const debug = createDebug('frontend-checks:browser');
|
|
@@ -9,6 +8,7 @@ class BrowserManager {
|
|
|
9
8
|
constructor() {
|
|
10
9
|
this.browser = null;
|
|
11
10
|
this.browserInstalled = false;
|
|
11
|
+
this.chromium = null;
|
|
12
12
|
}
|
|
13
13
|
static getInstance() {
|
|
14
14
|
if (BrowserManager.instance === null) {
|
|
@@ -17,6 +17,15 @@ class BrowserManager {
|
|
|
17
17
|
}
|
|
18
18
|
return BrowserManager.instance;
|
|
19
19
|
}
|
|
20
|
+
async getChromium() {
|
|
21
|
+
if (!this.chromium) {
|
|
22
|
+
debug('Dynamically importing playwright...');
|
|
23
|
+
const playwright = await import('playwright');
|
|
24
|
+
this.chromium = playwright.chromium;
|
|
25
|
+
debug('Playwright imported successfully');
|
|
26
|
+
}
|
|
27
|
+
return this.chromium;
|
|
28
|
+
}
|
|
20
29
|
async ensureBrowserInstalled() {
|
|
21
30
|
if (this.browserInstalled) {
|
|
22
31
|
debugInstall('Browser already marked as installed');
|
|
@@ -25,6 +34,7 @@ class BrowserManager {
|
|
|
25
34
|
try {
|
|
26
35
|
// Try to launch to see if browser is already installed
|
|
27
36
|
debugInstall('Testing if Chromium is already installed...');
|
|
37
|
+
const chromium = await this.getChromium();
|
|
28
38
|
const testBrowser = await chromium.launch();
|
|
29
39
|
await testBrowser.close();
|
|
30
40
|
this.browserInstalled = true;
|
|
@@ -58,6 +68,7 @@ class BrowserManager {
|
|
|
58
68
|
debug('Browser not initialized, ensuring installation and launching');
|
|
59
69
|
await this.ensureBrowserInstalled();
|
|
60
70
|
debug('Launching Chromium browser');
|
|
71
|
+
const chromium = await this.getChromium();
|
|
61
72
|
this.browser = await chromium.launch();
|
|
62
73
|
debug('Browser launched successfully');
|
|
63
74
|
}
|
|
@@ -156,6 +167,8 @@ export async function getPageScreenshot(url) {
|
|
|
156
167
|
debugScreenshot('Page closed');
|
|
157
168
|
return buffer.toString('base64');
|
|
158
169
|
}
|
|
170
|
+
// Export CLI manifest
|
|
171
|
+
export { CLI_MANIFEST } from './cli-manifest.js';
|
|
159
172
|
// Export command handler
|
|
160
173
|
export { checkClientCommandHandler, handleCheckClientCommand, } from './commands/check-client.js';
|
|
161
174
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@auto-engineer/frontend-checks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js"
|
|
11
|
+
}
|
|
9
12
|
},
|
|
10
13
|
"files": [
|
|
11
14
|
"dist",
|
|
@@ -13,7 +16,7 @@
|
|
|
13
16
|
"CHANGELOG.md"
|
|
14
17
|
],
|
|
15
18
|
"dependencies": {
|
|
16
|
-
"@auto-engineer/message-bus": "^0.
|
|
19
|
+
"@auto-engineer/message-bus": "^0.4.0",
|
|
17
20
|
"debug": "^4.4.1",
|
|
18
21
|
"dotenv": "^16.6.1",
|
|
19
22
|
"playwright": "^1.54.1",
|
|
@@ -22,9 +25,11 @@
|
|
|
22
25
|
"publishConfig": {
|
|
23
26
|
"access": "public"
|
|
24
27
|
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@auto-engineer/cli": "^0.6.0"
|
|
30
|
+
},
|
|
25
31
|
"scripts": {
|
|
26
|
-
"
|
|
27
|
-
"build": "tsc && tsx ../../scripts/fix-esm-imports.ts && chmod +x dist/cli/check-client.js",
|
|
32
|
+
"build": "tsc && tsx ../../scripts/fix-esm-imports.ts",
|
|
28
33
|
"dev": "tsc --watch",
|
|
29
34
|
"test": "vitest run",
|
|
30
35
|
"lint": "eslint 'src/**/*.ts' --max-warnings 0 --config ../../eslint.config.ts",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check-client.d.ts","sourceRoot":"","sources":["../../src/cli/check-client.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC"}
|
package/dist/cli/check-client.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import 'dotenv/config';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
import { checkClientCommandHandler } from '../commands/check-client.js';
|
|
5
|
-
import createDebug from 'debug';
|
|
6
|
-
const debug = createDebug('frontend-checks:cli:check');
|
|
7
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
-
const isMain = process.argv[1] === __filename;
|
|
9
|
-
if (isMain) {
|
|
10
|
-
debug('CLI started with args: %o', process.argv.slice(2));
|
|
11
|
-
const clientDirectory = process.argv[2];
|
|
12
|
-
if (!clientDirectory) {
|
|
13
|
-
debug('ERROR: No client directory provided');
|
|
14
|
-
console.error('Usage: check:client <client-directory> [--skip-browser]');
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
const skipBrowserChecks = process.argv.includes('--skip-browser');
|
|
18
|
-
debug('Client directory argument: %s', clientDirectory);
|
|
19
|
-
debug('Skip browser checks: %s', skipBrowserChecks);
|
|
20
|
-
// Create command and execute handler
|
|
21
|
-
const command = {
|
|
22
|
-
type: 'CheckClient',
|
|
23
|
-
data: {
|
|
24
|
-
clientDirectory,
|
|
25
|
-
skipBrowserChecks,
|
|
26
|
-
},
|
|
27
|
-
timestamp: new Date(),
|
|
28
|
-
requestId: `cli-${Date.now()}`,
|
|
29
|
-
};
|
|
30
|
-
debug('Executing command handler');
|
|
31
|
-
void checkClientCommandHandler
|
|
32
|
-
.handle(command)
|
|
33
|
-
.then(() => {
|
|
34
|
-
debug('Command completed successfully');
|
|
35
|
-
})
|
|
36
|
-
.catch((error) => {
|
|
37
|
-
debug('Command failed: %O', error);
|
|
38
|
-
console.error('Failed to execute command:', error);
|
|
39
|
-
process.exit(1);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=check-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check-client.js","sourceRoot":"","sources":["../../src/cli/check-client.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAEvD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAElD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;AAE9C,IAAI,MAAM,EAAE,CAAC;IACX,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAElE,KAAK,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC;IACxD,KAAK,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAC;IAEpD,qCAAqC;IACrC,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,aAAsB;QAC5B,IAAI,EAAE;YACJ,eAAe;YACf,iBAAiB;SAClB;QACD,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;KAC/B,CAAC;IAEF,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACnC,KAAK,yBAAyB;SAC3B,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,EAAE;QACT,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC1C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
|