crawlemon 0.1.0 → 0.3.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 +95 -5
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5433 -1548
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,14 +1,42 @@
|
|
|
1
1
|
# Crawlemon
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**SEO CI for modern web apps — catch SEO regressions before you merge.**
|
|
4
4
|
|
|
5
|
-
Crawlemon is
|
|
5
|
+
Crawlemon is the SEO safety layer between code and production. It works like an ESLint / Dependabot for SEO: run it locally or in CI, evaluate the SEO Quality Gate, prevent search regressions from merging, and automatically apply safe deterministic fixes.
|
|
6
6
|
|
|
7
7
|
No account, cloud connection, browser, AI provider, or API key is required.
|
|
8
8
|
|
|
9
|
+
## What is new in 0.3.0
|
|
10
|
+
|
|
11
|
+
- Production-grade static resolution for Next.js: site config, `metadataBase`, title objects (`default`/`template`/`absolute`), and layout inheritance.
|
|
12
|
+
- Relative canonical URLs are resolved (not flagged) when a site origin is known.
|
|
13
|
+
- Dynamic metadata from `generateMetadata` is no longer reported as missing, and duplicate-title findings only fire for statically declared, indexable titles.
|
|
14
|
+
- Internal links and sitemaps are validated against dynamic routes and `generateStaticParams`.
|
|
15
|
+
- `<h1>` headings inside locally-imported components are detected; redirect-only pages are exempted.
|
|
16
|
+
|
|
17
|
+
## What is new in 0.2.0
|
|
18
|
+
|
|
19
|
+
- Stable deterministic audit and graph ordering.
|
|
20
|
+
- Clean-As-You-Code confidence enforcement: unverified AI hypotheses cannot block.
|
|
21
|
+
- Independent evidence and rejected-claim recording for semantic AI resolution.
|
|
22
|
+
- Safer AI fix boundaries and zero-new-regression sandbox verification.
|
|
23
|
+
- Expanded adversarial, integration, and high-cardinality coverage.
|
|
24
|
+
|
|
9
25
|
## Quick start
|
|
10
26
|
|
|
11
|
-
|
|
27
|
+
Compare your current branch/working tree against `main` and evaluate the SEO Quality Gate:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx crawlemon diff
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Or compare against a specific git base ref:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx crawlemon diff --base origin/main
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Run a full local audit:
|
|
12
40
|
|
|
13
41
|
```bash
|
|
14
42
|
npx crawlemon audit
|
|
@@ -29,14 +57,20 @@ npx crawlemon fix
|
|
|
29
57
|
## Requirements
|
|
30
58
|
|
|
31
59
|
- Node.js 20 or newer
|
|
32
|
-
-
|
|
60
|
+
- Supported framework: Next.js, Nuxt, SvelteKit, Astro, Remix, Vite, or static HTML
|
|
33
61
|
- Run the command from the project root
|
|
34
62
|
|
|
35
63
|
Crawlemon uses static source analysis. It does not run your application, install its dependencies, or execute repository scripts.
|
|
36
64
|
|
|
37
65
|
## Commands
|
|
38
66
|
|
|
39
|
-
### `
|
|
67
|
+
### `diff`
|
|
68
|
+
|
|
69
|
+
Compare code changes vs base ref, compute blast radius, and evaluate the SEO Quality Gate:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx crawlemon diff [--base <ref>] [--json]
|
|
73
|
+
```
|
|
40
74
|
|
|
41
75
|
Discover routes and run deterministic SEO checks:
|
|
42
76
|
|
|
@@ -149,6 +183,62 @@ npx crawlemon --help
|
|
|
149
183
|
npx crawlemon --version
|
|
150
184
|
```
|
|
151
185
|
|
|
186
|
+
## GitHub Actions
|
|
187
|
+
|
|
188
|
+
Run Crawlemon on every pull request and every push to `main` by creating
|
|
189
|
+
`.github/workflows/crawlemon.yml` in your Next.js repository:
|
|
190
|
+
|
|
191
|
+
```yaml
|
|
192
|
+
name: SEO audit
|
|
193
|
+
|
|
194
|
+
on:
|
|
195
|
+
pull_request:
|
|
196
|
+
push:
|
|
197
|
+
branches: [main]
|
|
198
|
+
|
|
199
|
+
permissions:
|
|
200
|
+
contents: read
|
|
201
|
+
|
|
202
|
+
jobs:
|
|
203
|
+
crawlemon:
|
|
204
|
+
name: Crawlemon
|
|
205
|
+
runs-on: ubuntu-latest
|
|
206
|
+
timeout-minutes: 5
|
|
207
|
+
|
|
208
|
+
steps:
|
|
209
|
+
- name: Check out repository
|
|
210
|
+
uses: actions/checkout@v4
|
|
211
|
+
|
|
212
|
+
- name: Set up Node.js
|
|
213
|
+
uses: actions/setup-node@v4
|
|
214
|
+
with:
|
|
215
|
+
node-version: 20
|
|
216
|
+
|
|
217
|
+
- name: Audit SEO
|
|
218
|
+
env:
|
|
219
|
+
CI: true
|
|
220
|
+
run: npx --yes crawlemon@0.3.0 audit
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
The exact package version is pinned so an upstream release cannot unexpectedly
|
|
224
|
+
change your CI result. Update `crawlemon@0.3.0` deliberately when you are ready
|
|
225
|
+
to adopt a newer version.
|
|
226
|
+
|
|
227
|
+
With `CI=true`, the workflow fails when Crawlemon finds at least one error-level
|
|
228
|
+
issue. Warnings and notices remain visible in the report without failing the job.
|
|
229
|
+
No repository secret, API key, dependency installation, or build step is required.
|
|
230
|
+
|
|
231
|
+
If the Next.js application is inside a monorepo subdirectory, set the step's
|
|
232
|
+
working directory:
|
|
233
|
+
|
|
234
|
+
```yaml
|
|
235
|
+
- name: Audit SEO
|
|
236
|
+
working-directory: apps/web
|
|
237
|
+
env:
|
|
238
|
+
CI: true
|
|
239
|
+
run: npx --yes crawlemon@0.3.0 audit
|
|
240
|
+
```
|
|
241
|
+
|
|
152
242
|
## Zero-configuration detection
|
|
153
243
|
|
|
154
244
|
Crawlemon automatically detects:
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
+
import type { AuditResult } from "@crawlemon/shared";
|
|
2
|
+
/**
|
|
3
|
+
* Safely audits a base git ref without running untrusted scripts or executing builds.
|
|
4
|
+
*/
|
|
5
|
+
export declare function auditGitRef(projectRoot: string, ref: string): Promise<AuditResult>;
|
|
1
6
|
export declare function runCli(args: string[]): Promise<void>;
|