laxy-verify 1.1.33 → 1.2.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/README.md +322 -304
- package/dist/audit/broken-links.d.ts +21 -21
- package/dist/audit/broken-links.js +86 -86
- package/dist/auth.d.ts +11 -6
- package/dist/auth.js +222 -188
- package/dist/cli.js +806 -724
- package/dist/comment.d.ts +21 -21
- package/dist/comment.js +134 -131
- package/dist/crawler.d.ts +36 -35
- package/dist/crawler.js +357 -356
- package/dist/e2e.d.ts +49 -49
- package/dist/e2e.js +565 -565
- package/dist/entitlement.d.ts +11 -11
- package/dist/entitlement.js +90 -88
- package/dist/init.js +87 -87
- package/dist/multi-viewport.d.ts +31 -31
- package/dist/multi-viewport.js +298 -298
- package/dist/playwright-runner.d.ts +16 -16
- package/dist/playwright-runner.js +208 -208
- package/dist/report-markdown.d.ts +39 -39
- package/dist/report-markdown.js +386 -386
- package/dist/security-audit.d.ts +9 -9
- package/dist/security-audit.js +64 -64
- package/dist/serve.d.ts +13 -13
- package/dist/serve.js +249 -246
- package/dist/trend.d.ts +50 -49
- package/dist/trend.js +148 -147
- package/dist/verification-core/index.d.ts +3 -3
- package/dist/verification-core/index.js +19 -19
- package/dist/verification-core/report.d.ts +14 -14
- package/dist/verification-core/report.js +409 -409
- package/dist/verification-core/tier-policy.d.ts +13 -13
- package/dist/verification-core/tier-policy.js +60 -60
- package/dist/verification-core/types.d.ts +108 -108
- package/dist/verification-core/types.js +2 -2
- package/dist/visual-diff.d.ts +26 -26
- package/dist/visual-diff.js +178 -178
- package/package.json +67 -67
package/README.md
CHANGED
|
@@ -1,304 +1,322 @@
|
|
|
1
|
-
# laxy-verify
|
|
2
|
-
|
|
3
|
-
`laxy-verify` is a deployment blocker gate for frontend apps.
|
|
4
|
-
|
|
5
|
-
Every verification run includes the same build, Lighthouse, E2E, multi-viewport, security, visual diff, and stability coverage regardless of plan.
|
|
6
|
-
|
|
7
|
-
## Quick start
|
|
8
|
-
|
|
9
|
-
Run it on a frontend app:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
cd your-project
|
|
13
|
-
npx laxy-verify .
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Generate config plus GitHub Actions workflow:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
npx laxy-verify --init
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
That creates:
|
|
23
|
-
|
|
24
|
-
- `.laxy.yml`
|
|
25
|
-
- `.github/workflows/laxy-verify.yml`
|
|
26
|
-
|
|
27
|
-
Optional: log in to connect the CLI to your Laxy account:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npx laxy-verify login
|
|
31
|
-
npx laxy-verify whoami
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
For CI, set `LAXY_TOKEN` instead of interactive login:
|
|
35
|
-
|
|
36
|
-
```yaml
|
|
37
|
-
env:
|
|
38
|
-
LAXY_TOKEN: ${{ secrets.LAXY_TOKEN }}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Why laxy-verify?
|
|
42
|
-
|
|
43
|
-
Most teams already have some mix of:
|
|
44
|
-
|
|
45
|
-
- `npm run build`
|
|
46
|
-
- Lighthouse
|
|
47
|
-
- Playwright or smoke checks
|
|
48
|
-
- CI status rules
|
|
49
|
-
|
|
50
|
-
The gap is not "can these tools exist together?" The gap is "who turns that pile of output into a safe merge or release decision?"
|
|
51
|
-
|
|
52
|
-
`laxy-verify` gives you:
|
|
53
|
-
|
|
54
|
-
- one command instead of a custom build plus audit plus smoke-check script stack
|
|
55
|
-
- one result file instead of scattered logs
|
|
56
|
-
- one blocker-first decision instead of "build passed, but do we actually trust this release?"
|
|
57
|
-
- optional account-linked automation on top of the same verification run
|
|
58
|
-
|
|
59
|
-
This is most useful if you ship frontend apps and want a practical gate before:
|
|
60
|
-
|
|
61
|
-
- merge
|
|
62
|
-
- client review
|
|
63
|
-
- QA handoff
|
|
64
|
-
- production release
|
|
65
|
-
|
|
66
|
-
##
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
|
|
125
|
-
npx laxy-verify
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
-
|
|
183
|
-
-
|
|
184
|
-
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
-
|
|
273
|
-
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
-
|
|
282
|
-
-
|
|
283
|
-
-
|
|
284
|
-
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
-
|
|
291
|
-
-
|
|
292
|
-
-
|
|
293
|
-
-
|
|
294
|
-
|
|
295
|
-
##
|
|
296
|
-
|
|
297
|
-
-
|
|
298
|
-
|
|
299
|
-
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
-
|
|
1
|
+
# laxy-verify
|
|
2
|
+
|
|
3
|
+
`laxy-verify` is a deployment blocker gate for frontend apps.
|
|
4
|
+
|
|
5
|
+
Every verification run includes the same build, Lighthouse, E2E, multi-viewport, security, visual diff, and stability coverage regardless of plan.
|
|
6
|
+
|
|
7
|
+
## Quick start
|
|
8
|
+
|
|
9
|
+
Run it on a frontend app:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
cd your-project
|
|
13
|
+
npx laxy-verify .
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Generate config plus GitHub Actions workflow:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx laxy-verify --init
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
That creates:
|
|
23
|
+
|
|
24
|
+
- `.laxy.yml`
|
|
25
|
+
- `.github/workflows/laxy-verify.yml`
|
|
26
|
+
|
|
27
|
+
Optional: log in to connect the CLI to your Laxy account:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx laxy-verify login
|
|
31
|
+
npx laxy-verify whoami
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
For CI, set `LAXY_TOKEN` instead of interactive login:
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
env:
|
|
38
|
+
LAXY_TOKEN: ${{ secrets.LAXY_TOKEN }}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Why laxy-verify?
|
|
42
|
+
|
|
43
|
+
Most teams already have some mix of:
|
|
44
|
+
|
|
45
|
+
- `npm run build`
|
|
46
|
+
- Lighthouse
|
|
47
|
+
- Playwright or smoke checks
|
|
48
|
+
- CI status rules
|
|
49
|
+
|
|
50
|
+
The gap is not "can these tools exist together?" The gap is "who turns that pile of output into a safe merge or release decision?"
|
|
51
|
+
|
|
52
|
+
`laxy-verify` gives you:
|
|
53
|
+
|
|
54
|
+
- one command instead of a custom build plus audit plus smoke-check script stack
|
|
55
|
+
- one result file instead of scattered logs
|
|
56
|
+
- one blocker-first decision instead of "build passed, but do we actually trust this release?"
|
|
57
|
+
- optional account-linked automation on top of the same verification run
|
|
58
|
+
|
|
59
|
+
This is most useful if you ship frontend apps and want a practical gate before:
|
|
60
|
+
|
|
61
|
+
- merge
|
|
62
|
+
- client review
|
|
63
|
+
- QA handoff
|
|
64
|
+
- production release
|
|
65
|
+
|
|
66
|
+
## vs other tools
|
|
67
|
+
|
|
68
|
+
No single competitor covers this combination. Here is where each tool stops:
|
|
69
|
+
|
|
70
|
+
| | laxy-verify | LHCI | Checkly | Percy / Argos | Unlighthouse | QA Wolf |
|
|
71
|
+
|--|--|--|--|--|--|--|
|
|
72
|
+
| Build failure detection | yes | no | no | no | no | no |
|
|
73
|
+
| Auto-generated E2E | yes | no | write your own | no | no | yes |
|
|
74
|
+
| Security audit | yes | no | no | no | no | no |
|
|
75
|
+
| Lighthouse (multi-run avg) | yes | yes | no | no | yes | no |
|
|
76
|
+
| Visual diff | yes | no | no | yes | no | no |
|
|
77
|
+
| Multi-viewport checks | yes | no | separate config | no | yes | no |
|
|
78
|
+
| Ship/hold release decision | yes | score only | no | no | no | no |
|
|
79
|
+
| Zero config to start | yes | no | no | no | partial | no |
|
|
80
|
+
| Free full coverage | yes | yes | limited | limited | yes | enterprise |
|
|
81
|
+
|
|
82
|
+
LHCI gives you Lighthouse. Percy gives you visual diffs. Checkly watches your production uptime. None of them produce a merge or release decision from one command.
|
|
83
|
+
|
|
84
|
+
## The failures it is meant to catch
|
|
85
|
+
|
|
86
|
+
Use `laxy-verify` when you want to catch things like:
|
|
87
|
+
|
|
88
|
+
- the production build passes locally but fails in CI
|
|
89
|
+
- the app opens, but a key button or form flow is broken
|
|
90
|
+
- desktop looks fine, but a mobile CTA is pushed out of view
|
|
91
|
+
- Lighthouse looks acceptable, but the user-visible path is still not safe to ship
|
|
92
|
+
- a PR needs a clear hold reason instead of a vague "something failed"
|
|
93
|
+
|
|
94
|
+
## What it actually checks
|
|
95
|
+
|
|
96
|
+
A standard run includes:
|
|
97
|
+
|
|
98
|
+
- production build success
|
|
99
|
+
- Lighthouse thresholds (3 runs for stable evidence)
|
|
100
|
+
- E2E scenarios for user-visible flows
|
|
101
|
+
- multi-viewport checks (desktop, tablet, mobile)
|
|
102
|
+
- blocker-aware reporting and release decisions
|
|
103
|
+
|
|
104
|
+
Every run includes:
|
|
105
|
+
|
|
106
|
+
- security audit
|
|
107
|
+
- visual diff evidence
|
|
108
|
+
- stability pass (second E2E run)
|
|
109
|
+
|
|
110
|
+
## What you get from one run
|
|
111
|
+
|
|
112
|
+
- a release decision such as `quick-pass`, `client-ready`, `release-ready`, `hold`, or `investigate`
|
|
113
|
+
- a verification grade: `Gold`, `Silver`, `Bronze`, or `Unverified`
|
|
114
|
+
- `.laxy-result.json` for CI and automation
|
|
115
|
+
- `laxy-verify-report.md` for human review and AI handoff
|
|
116
|
+
|
|
117
|
+
Grades still exist, but they are not the main point. The main point is whether the run found blockers you should stop on.
|
|
118
|
+
|
|
119
|
+
## Quick start
|
|
120
|
+
|
|
121
|
+
Run it on a frontend app:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
cd your-project
|
|
125
|
+
npx laxy-verify .
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Generate config plus CI workflow:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npx laxy-verify --init
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
That creates:
|
|
135
|
+
|
|
136
|
+
- `.laxy.yml`
|
|
137
|
+
- `.github/workflows/laxy-verify.yml`
|
|
138
|
+
|
|
139
|
+
Optional: log in to connect the CLI to your Laxy account:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
npx laxy-verify login
|
|
143
|
+
npx laxy-verify whoami
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
For CI, set `LAXY_TOKEN` instead of interactive login:
|
|
147
|
+
|
|
148
|
+
```yaml
|
|
149
|
+
env:
|
|
150
|
+
LAXY_TOKEN: ${{ secrets.LAXY_TOKEN }}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Example workflow
|
|
154
|
+
|
|
155
|
+
1. Run `npx laxy-verify .` locally before opening or merging a PR.
|
|
156
|
+
2. Fix broken builds, broken flows, and visible regressions.
|
|
157
|
+
3. Commit `.laxy.yml`.
|
|
158
|
+
4. Run `npx laxy-verify --init`.
|
|
159
|
+
5. Let the GitHub Action apply the same gate on every PR.
|
|
160
|
+
|
|
161
|
+
## Example output
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
Decision: client-ready
|
|
165
|
+
Grade: Gold
|
|
166
|
+
|
|
167
|
+
Passed:
|
|
168
|
+
- production build
|
|
169
|
+
- Lighthouse thresholds
|
|
170
|
+
- core user flows
|
|
171
|
+
- desktop, tablet, and mobile viewport checks
|
|
172
|
+
|
|
173
|
+
Artifacts:
|
|
174
|
+
- .laxy-result.json
|
|
175
|
+
- laxy-verify-report.md
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## The decision it helps you make
|
|
179
|
+
|
|
180
|
+
`laxy-verify` answers a delivery decision, not just a score:
|
|
181
|
+
|
|
182
|
+
- Would this break for real users right now?
|
|
183
|
+
- What would block a client demo or QA handoff?
|
|
184
|
+
- Is there enough evidence to merge or release with confidence?
|
|
185
|
+
|
|
186
|
+
All verification checks already run without a paid plan gate.
|
|
187
|
+
|
|
188
|
+
## Grades
|
|
189
|
+
|
|
190
|
+
| Grade | Meaning |
|
|
191
|
+
|---|---|
|
|
192
|
+
| Gold | Build passed, E2E passed, Lighthouse passed, and release-level evidence passed |
|
|
193
|
+
| Silver | Build passed and E2E passed |
|
|
194
|
+
| Bronze | Build passed |
|
|
195
|
+
| Unverified | Build failed |
|
|
196
|
+
|
|
197
|
+
Default Lighthouse thresholds:
|
|
198
|
+
|
|
199
|
+
- Performance `>= 70`
|
|
200
|
+
- Accessibility `>= 85`
|
|
201
|
+
- SEO `>= 80`
|
|
202
|
+
- Best Practices `>= 80`
|
|
203
|
+
|
|
204
|
+
## Config
|
|
205
|
+
|
|
206
|
+
All fields in `.laxy.yml` are optional.
|
|
207
|
+
|
|
208
|
+
```yaml
|
|
209
|
+
framework: auto
|
|
210
|
+
build_command: ""
|
|
211
|
+
dev_command: ""
|
|
212
|
+
package_manager: auto
|
|
213
|
+
port: 3000
|
|
214
|
+
build_timeout: 300
|
|
215
|
+
dev_timeout: 60
|
|
216
|
+
lighthouse_runs: 1
|
|
217
|
+
fail_on: bronze
|
|
218
|
+
|
|
219
|
+
thresholds:
|
|
220
|
+
performance: 70
|
|
221
|
+
accessibility: 85
|
|
222
|
+
seo: 80
|
|
223
|
+
best_practices: 80
|
|
224
|
+
|
|
225
|
+
crawl: false
|
|
226
|
+
max_crawl_depth: 3
|
|
227
|
+
max_crawl_pages: 10
|
|
228
|
+
browsers:
|
|
229
|
+
- chromium
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Useful adjustments:
|
|
233
|
+
|
|
234
|
+
- raise `fail_on` in CI when you want stricter gates
|
|
235
|
+
- set `build_command` or `dev_command` if auto-detection is not enough
|
|
236
|
+
- increase `lighthouse_runs` for more stable performance evidence
|
|
237
|
+
- point the CLI at the actual app directory in a monorepo
|
|
238
|
+
|
|
239
|
+
## CLI
|
|
240
|
+
|
|
241
|
+
```text
|
|
242
|
+
npx laxy-verify [project-dir]
|
|
243
|
+
|
|
244
|
+
Options:
|
|
245
|
+
--format console|json
|
|
246
|
+
--ci
|
|
247
|
+
--config <path>
|
|
248
|
+
--fail-on unverified|bronze|silver|gold
|
|
249
|
+
--skip-lighthouse
|
|
250
|
+
--plan-override free|pro|team
|
|
251
|
+
--badge
|
|
252
|
+
--init
|
|
253
|
+
--multi-viewport
|
|
254
|
+
--help
|
|
255
|
+
|
|
256
|
+
Subcommands:
|
|
257
|
+
login [email]
|
|
258
|
+
logout
|
|
259
|
+
whoami
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
`--plan-override` is only for plan-label and automation testing. Verification coverage stays the same on every plan.
|
|
263
|
+
|
|
264
|
+
## Result files
|
|
265
|
+
|
|
266
|
+
Every run writes `.laxy-result.json`.
|
|
267
|
+
|
|
268
|
+
When the run finds something worth reviewing, it also writes `laxy-verify-report.md`.
|
|
269
|
+
|
|
270
|
+
Typical use:
|
|
271
|
+
|
|
272
|
+
- `.laxy-result.json` for CI parsing and machine decisions
|
|
273
|
+
- `laxy-verify-report.md` for human review, PR discussion, or AI-assisted fixes
|
|
274
|
+
|
|
275
|
+
The markdown report is designed to be readable and easy to paste into coding tools.
|
|
276
|
+
|
|
277
|
+
It includes:
|
|
278
|
+
|
|
279
|
+
- the main stop-or-ship decision in plain English
|
|
280
|
+
- what passed
|
|
281
|
+
- blockers and warnings
|
|
282
|
+
- exact verification evidence
|
|
283
|
+
- failed scenarios
|
|
284
|
+
- a `Copy For AI` section
|
|
285
|
+
|
|
286
|
+
## What this is good at
|
|
287
|
+
|
|
288
|
+
Use `laxy-verify` when you want:
|
|
289
|
+
|
|
290
|
+
- a merge or release gate for frontend apps
|
|
291
|
+
- one repeatable command for build plus audit plus visible-flow verification
|
|
292
|
+
- a decision that non-authors can understand
|
|
293
|
+
- JSON output for automation without building your own wrapper
|
|
294
|
+
|
|
295
|
+
## What this is not
|
|
296
|
+
|
|
297
|
+
`laxy-verify` is not trying to replace:
|
|
298
|
+
|
|
299
|
+
- your full Playwright suite
|
|
300
|
+
- deep visual QA by designers
|
|
301
|
+
- production observability
|
|
302
|
+
- manual exploratory testing
|
|
303
|
+
|
|
304
|
+
It is a pre-merge and pre-release verification layer, not your entire quality system.
|
|
305
|
+
|
|
306
|
+
## Limitations
|
|
307
|
+
|
|
308
|
+
- monorepos should target the real app subdirectory
|
|
309
|
+
- dev-server-based Lighthouse is not identical to production hosting
|
|
310
|
+
- visual diff and viewport checks increase runtime
|
|
311
|
+
- best stability is on current LTS Node releases
|
|
312
|
+
|
|
313
|
+
## Requirements
|
|
314
|
+
|
|
315
|
+
- Node `>=20.18.0 <25`
|
|
316
|
+
- a frontend app with a runnable build flow
|
|
317
|
+
- optional: `playwright` if your project already uses it
|
|
318
|
+
|
|
319
|
+
## Links
|
|
320
|
+
|
|
321
|
+
- GitHub: https://github.com/SUNgm24/Laxy/tree/main/laxy-verify
|
|
322
|
+
- Issues: https://github.com/SUNgm24/Laxy/issues
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Broken-links audit.
|
|
3
|
-
* Uses the crawl result to find all internal links, then validates each
|
|
4
|
-
* with an HTTP HEAD/GET request. Links that return 4xx/5xx or timeout are
|
|
5
|
-
* reported as blockers.
|
|
6
|
-
*/
|
|
7
|
-
import { type CrawlResult } from "../crawler.js";
|
|
8
|
-
export interface BrokenLink {
|
|
9
|
-
url: string;
|
|
10
|
-
path: string;
|
|
11
|
-
status: number;
|
|
12
|
-
statusText: string;
|
|
13
|
-
severity: "critical" | "high";
|
|
14
|
-
}
|
|
15
|
-
export interface BrokenLinksResult {
|
|
16
|
-
brokenLinks: BrokenLink[];
|
|
17
|
-
checkedCount: number;
|
|
18
|
-
hasBrokenLinks: boolean;
|
|
19
|
-
summary: string;
|
|
20
|
-
}
|
|
21
|
-
export declare function auditBrokenLinks(crawlResult: CrawlResult, baseUrl: string, abortSignal?: AbortSignal): Promise<BrokenLinksResult>;
|
|
1
|
+
/**
|
|
2
|
+
* Broken-links audit.
|
|
3
|
+
* Uses the crawl result to find all internal links, then validates each
|
|
4
|
+
* with an HTTP HEAD/GET request. Links that return 4xx/5xx or timeout are
|
|
5
|
+
* reported as blockers.
|
|
6
|
+
*/
|
|
7
|
+
import { type CrawlResult } from "../crawler.js";
|
|
8
|
+
export interface BrokenLink {
|
|
9
|
+
url: string;
|
|
10
|
+
path: string;
|
|
11
|
+
status: number;
|
|
12
|
+
statusText: string;
|
|
13
|
+
severity: "critical" | "high";
|
|
14
|
+
}
|
|
15
|
+
export interface BrokenLinksResult {
|
|
16
|
+
brokenLinks: BrokenLink[];
|
|
17
|
+
checkedCount: number;
|
|
18
|
+
hasBrokenLinks: boolean;
|
|
19
|
+
summary: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function auditBrokenLinks(crawlResult: CrawlResult, baseUrl: string, abortSignal?: AbortSignal): Promise<BrokenLinksResult>;
|