ax-audit 4.2.1 → 6.0.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 +19 -0
- package/README.md +39 -4
- package/dist/baseline.js +1 -1
- package/dist/baseline.js.map +1 -1
- package/dist/check-ids.js +1 -1
- package/dist/check-ids.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +1 -85
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +0 -135
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/license.d.ts +8 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +18 -0
- package/dist/license.js.map +1 -0
- package/dist/metadata.d.ts +6 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +205 -0
- package/dist/metadata.js.map +1 -0
- package/dist/orchestrator.d.ts +1 -0
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +134 -56
- package/dist/orchestrator.js.map +1 -1
- package/dist/scorer.js +2 -2
- package/dist/scorer.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/api.md +14 -3
- package/docs/architecture.md +9 -98
- package/docs/ci.md +19 -0
- package/docs/cli.md +11 -0
- package/docs/faq.md +18 -0
- package/docs/getting-started.md +33 -1
- package/package.json +5 -5
- package/dist/checks/agent-access.d.ts +0 -33
- package/dist/checks/agent-access.d.ts.map +0 -1
- package/dist/checks/agent-access.js +0 -256
- package/dist/checks/agent-access.js.map +0 -1
- package/dist/checks/agent-card.d.ts +0 -37
- package/dist/checks/agent-card.d.ts.map +0 -1
- package/dist/checks/agent-card.js +0 -352
- package/dist/checks/agent-card.js.map +0 -1
- package/dist/checks/agent-operability.d.ts +0 -66
- package/dist/checks/agent-operability.d.ts.map +0 -1
- package/dist/checks/agent-operability.js +0 -383
- package/dist/checks/agent-operability.js.map +0 -1
- package/dist/checks/agent-skills.d.ts +0 -24
- package/dist/checks/agent-skills.d.ts.map +0 -1
- package/dist/checks/agent-skills.js +0 -316
- package/dist/checks/agent-skills.js.map +0 -1
- package/dist/checks/ai-catalog.d.ts +0 -28
- package/dist/checks/ai-catalog.d.ts.map +0 -1
- package/dist/checks/ai-catalog.js +0 -254
- package/dist/checks/ai-catalog.js.map +0 -1
- package/dist/checks/ai-directives.d.ts +0 -57
- package/dist/checks/ai-directives.d.ts.map +0 -1
- package/dist/checks/ai-directives.js +0 -263
- package/dist/checks/ai-directives.js.map +0 -1
- package/dist/checks/api-discovery.d.ts +0 -26
- package/dist/checks/api-discovery.d.ts.map +0 -1
- package/dist/checks/api-discovery.js +0 -432
- package/dist/checks/api-discovery.js.map +0 -1
- package/dist/checks/auth-discovery.d.ts +0 -28
- package/dist/checks/auth-discovery.d.ts.map +0 -1
- package/dist/checks/auth-discovery.js +0 -302
- package/dist/checks/auth-discovery.js.map +0 -1
- package/dist/checks/commerce-discovery.d.ts +0 -40
- package/dist/checks/commerce-discovery.d.ts.map +0 -1
- package/dist/checks/commerce-discovery.js +0 -295
- package/dist/checks/commerce-discovery.js.map +0 -1
- package/dist/checks/content-negotiation.d.ts +0 -4
- package/dist/checks/content-negotiation.d.ts.map +0 -1
- package/dist/checks/content-negotiation.js +0 -253
- package/dist/checks/content-negotiation.js.map +0 -1
- package/dist/checks/crawl-efficiency.d.ts +0 -16
- package/dist/checks/crawl-efficiency.d.ts.map +0 -1
- package/dist/checks/crawl-efficiency.js +0 -186
- package/dist/checks/crawl-efficiency.js.map +0 -1
- package/dist/checks/frontmatter.d.ts +0 -34
- package/dist/checks/frontmatter.d.ts.map +0 -1
- package/dist/checks/frontmatter.js +0 -100
- package/dist/checks/frontmatter.js.map +0 -1
- package/dist/checks/html-rendering.d.ts +0 -21
- package/dist/checks/html-rendering.d.ts.map +0 -1
- package/dist/checks/html-rendering.js +0 -221
- package/dist/checks/html-rendering.js.map +0 -1
- package/dist/checks/html-utils.d.ts +0 -66
- package/dist/checks/html-utils.d.ts.map +0 -1
- package/dist/checks/html-utils.js +0 -139
- package/dist/checks/html-utils.js.map +0 -1
- package/dist/checks/http-headers.d.ts +0 -11
- package/dist/checks/http-headers.d.ts.map +0 -1
- package/dist/checks/http-headers.js +0 -249
- package/dist/checks/http-headers.js.map +0 -1
- package/dist/checks/http-hygiene.d.ts +0 -26
- package/dist/checks/http-hygiene.d.ts.map +0 -1
- package/dist/checks/http-hygiene.js +0 -257
- package/dist/checks/http-hygiene.js.map +0 -1
- package/dist/checks/index.d.ts +0 -3
- package/dist/checks/index.d.ts.map +0 -1
- package/dist/checks/index.js +0 -55
- package/dist/checks/index.js.map +0 -1
- package/dist/checks/llms-txt.d.ts +0 -19
- package/dist/checks/llms-txt.d.ts.map +0 -1
- package/dist/checks/llms-txt.js +0 -281
- package/dist/checks/llms-txt.js.map +0 -1
- package/dist/checks/mcp-discovery.d.ts +0 -30
- package/dist/checks/mcp-discovery.d.ts.map +0 -1
- package/dist/checks/mcp-discovery.js +0 -523
- package/dist/checks/mcp-discovery.js.map +0 -1
- package/dist/checks/meta-tags.d.ts +0 -17
- package/dist/checks/meta-tags.d.ts.map +0 -1
- package/dist/checks/meta-tags.js +0 -188
- package/dist/checks/meta-tags.js.map +0 -1
- package/dist/checks/robots-parser.d.ts +0 -110
- package/dist/checks/robots-parser.d.ts.map +0 -1
- package/dist/checks/robots-parser.js +0 -277
- package/dist/checks/robots-parser.js.map +0 -1
- package/dist/checks/robots-txt.d.ts +0 -6
- package/dist/checks/robots-txt.d.ts.map +0 -1
- package/dist/checks/robots-txt.js +0 -367
- package/dist/checks/robots-txt.js.map +0 -1
- package/dist/checks/rsl.d.ts +0 -4
- package/dist/checks/rsl.d.ts.map +0 -1
- package/dist/checks/rsl.js +0 -242
- package/dist/checks/rsl.js.map +0 -1
- package/dist/checks/security-txt.d.ts +0 -4
- package/dist/checks/security-txt.d.ts.map +0 -1
- package/dist/checks/security-txt.js +0 -81
- package/dist/checks/security-txt.js.map +0 -1
- package/dist/checks/seo-basics.d.ts +0 -13
- package/dist/checks/seo-basics.d.ts.map +0 -1
- package/dist/checks/seo-basics.js +0 -221
- package/dist/checks/seo-basics.js.map +0 -1
- package/dist/checks/sitemap.d.ts +0 -12
- package/dist/checks/sitemap.d.ts.map +0 -1
- package/dist/checks/sitemap.js +0 -240
- package/dist/checks/sitemap.js.map +0 -1
- package/dist/checks/structured-data.d.ts +0 -4
- package/dist/checks/structured-data.d.ts.map +0 -1
- package/dist/checks/structured-data.js +0 -408
- package/dist/checks/structured-data.js.map +0 -1
- package/dist/checks/structured-fields.d.ts +0 -46
- package/dist/checks/structured-fields.d.ts.map +0 -1
- package/dist/checks/structured-fields.js +0 -112
- package/dist/checks/structured-fields.js.map +0 -1
- package/dist/checks/surface.d.ts +0 -59
- package/dist/checks/surface.d.ts.map +0 -1
- package/dist/checks/surface.js +0 -106
- package/dist/checks/surface.js.map +0 -1
- package/dist/checks/tls-https.d.ts +0 -13
- package/dist/checks/tls-https.d.ts.map +0 -1
- package/dist/checks/tls-https.js +0 -163
- package/dist/checks/tls-https.js.map +0 -1
- package/dist/checks/usage-policy.d.ts +0 -53
- package/dist/checks/usage-policy.d.ts.map +0 -1
- package/dist/checks/usage-policy.js +0 -339
- package/dist/checks/usage-policy.js.map +0 -1
- package/dist/checks/utils.d.ts +0 -40
- package/dist/checks/utils.d.ts.map +0 -1
- package/dist/checks/utils.js +0 -74
- package/dist/checks/utils.js.map +0 -1
- package/dist/checks/waf.d.ts +0 -75
- package/dist/checks/waf.d.ts.map +0 -1
- package/dist/checks/waf.js +0 -203
- package/dist/checks/waf.js.map +0 -1
- package/dist/checks/webmcp.d.ts +0 -55
- package/dist/checks/webmcp.d.ts.map +0 -1
- package/dist/checks/webmcp.js +0 -209
- package/dist/checks/webmcp.js.map +0 -1
- package/dist/checks/well-known.d.ts +0 -38
- package/dist/checks/well-known.d.ts.map +0 -1
- package/dist/checks/well-known.js +0 -202
- package/dist/checks/well-known.js.map +0 -1
- package/dist/fetcher.d.ts +0 -15
- package/dist/fetcher.d.ts.map +0 -1
- package/dist/fetcher.js +0 -127
- package/dist/fetcher.js.map +0 -1
- package/dist/guide-urls.d.ts +0 -2
- package/dist/guide-urls.d.ts.map +0 -1
- package/dist/guide-urls.js +0 -5
- package/dist/guide-urls.js.map +0 -1
- package/docs/roadmap.md +0 -367
package/dist/metadata.js
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/** Descriptions only. Check execution is private to AX Rush. */
|
|
2
|
+
export const checks = [
|
|
3
|
+
{
|
|
4
|
+
meta: {
|
|
5
|
+
id: 'llms-txt',
|
|
6
|
+
name: 'LLMs.txt',
|
|
7
|
+
description: 'Checks /llms.txt presence, spec compliance, and link health',
|
|
8
|
+
category: 'discovery',
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
meta: {
|
|
13
|
+
id: 'robots-txt',
|
|
14
|
+
name: 'Robots.txt',
|
|
15
|
+
description: 'Checks AI crawler configuration in robots.txt',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
meta: {
|
|
20
|
+
id: 'agent-card',
|
|
21
|
+
name: 'Agent Card (A2A)',
|
|
22
|
+
description: 'Checks the A2A Agent Card at /.well-known/agent-card.json',
|
|
23
|
+
category: 'protocols',
|
|
24
|
+
aliases: ['agent-json'],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
meta: {
|
|
29
|
+
id: 'security-txt',
|
|
30
|
+
name: 'Security.txt',
|
|
31
|
+
description: 'Checks /.well-known/security.txt RFC 9116 compliance',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
meta: {
|
|
36
|
+
id: 'structured-data',
|
|
37
|
+
name: 'Structured Data',
|
|
38
|
+
description: 'Checks JSON-LD structured data on homepage',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
meta: {
|
|
43
|
+
id: 'meta-tags',
|
|
44
|
+
name: 'Meta Tags',
|
|
45
|
+
description: 'Checks AI meta tags, rel="alternate", rel="me", and Open Graph / Twitter Card completeness',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
meta: {
|
|
50
|
+
id: 'api-discovery',
|
|
51
|
+
name: 'API Discovery',
|
|
52
|
+
description: 'Checks how agents discover an API description (RFC 9727 catalog, service-desc links, OpenAPI)',
|
|
53
|
+
category: 'protocols',
|
|
54
|
+
aliases: ['openapi'],
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
meta: {
|
|
59
|
+
id: 'http-headers',
|
|
60
|
+
name: 'HTTP Headers',
|
|
61
|
+
description: 'Checks security headers, AI discovery Link headers, and CORS',
|
|
62
|
+
category: 'discovery',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
meta: {
|
|
67
|
+
id: 'mcp-discovery',
|
|
68
|
+
name: 'MCP Discovery',
|
|
69
|
+
description: 'Checks how AI agents discover this site’s Model Context Protocol server',
|
|
70
|
+
category: 'protocols',
|
|
71
|
+
aliases: ['mcp'],
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
meta: {
|
|
76
|
+
id: 'html-rendering',
|
|
77
|
+
name: 'HTML Rendering',
|
|
78
|
+
description: 'Checks server-rendered content, semantic landmarks, and SPA-shell heuristics',
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
meta: {
|
|
83
|
+
id: 'sitemap',
|
|
84
|
+
name: 'Sitemap',
|
|
85
|
+
description: 'Checks sitemap.xml presence, structure, and freshness',
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
meta: {
|
|
90
|
+
id: 'seo-basics',
|
|
91
|
+
name: 'SEO Basics',
|
|
92
|
+
description: 'Checks <title>, meta description, canonical, lang, charset, viewport, hreflang',
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
meta: {
|
|
97
|
+
id: 'tls-https',
|
|
98
|
+
name: 'TLS / HTTPS',
|
|
99
|
+
description: 'Checks HTTPS, HTTP→HTTPS redirect, and HSTS configuration',
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
meta: {
|
|
104
|
+
id: 'content-negotiation',
|
|
105
|
+
name: 'Content Negotiation',
|
|
106
|
+
description: 'Checks whether the homepage serves Markdown to AI agents via Accept: text/markdown',
|
|
107
|
+
category: 'content',
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
meta: {
|
|
112
|
+
id: 'rsl',
|
|
113
|
+
name: 'RSL License',
|
|
114
|
+
description: 'Checks Really Simple Licensing (RSL) discovery and license document validity',
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
meta: {
|
|
119
|
+
id: 'agent-access',
|
|
120
|
+
name: 'Agent Access',
|
|
121
|
+
description: 'Checks that AI crawler user-agents are not blocked or served reduced content (cloaking)',
|
|
122
|
+
category: 'access',
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
meta: {
|
|
127
|
+
id: 'crawl-efficiency',
|
|
128
|
+
name: 'Crawl Efficiency',
|
|
129
|
+
description: 'Checks compression, conditional GET (ETag / Last-Modified), and response size',
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
meta: {
|
|
134
|
+
id: 'ai-directives',
|
|
135
|
+
name: 'AI Directives',
|
|
136
|
+
description: 'Checks page-level robots directives that govern AI answers and summaries',
|
|
137
|
+
category: 'access',
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
meta: {
|
|
142
|
+
id: 'usage-policy',
|
|
143
|
+
name: 'Usage Policy',
|
|
144
|
+
description: 'Checks machine-readable AI usage signals for coverage and internal consistency',
|
|
145
|
+
category: 'policy',
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
meta: {
|
|
150
|
+
id: 'http-hygiene',
|
|
151
|
+
name: 'HTTP Hygiene',
|
|
152
|
+
description: 'Checks status-code honesty, redirect depth, rate-limit headers and content typing',
|
|
153
|
+
category: 'access',
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
meta: {
|
|
158
|
+
id: 'ai-catalog',
|
|
159
|
+
name: 'AI Catalog',
|
|
160
|
+
description: 'Checks the agent resource catalog (ai-catalog.json / ard.json) and whether its entries resolve',
|
|
161
|
+
category: 'protocols',
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
meta: {
|
|
166
|
+
id: 'agent-skills',
|
|
167
|
+
name: 'Agent Skills',
|
|
168
|
+
description: 'Checks discoverable Agent Skills (SKILL.md) and their frontmatter',
|
|
169
|
+
category: 'protocols',
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
meta: {
|
|
174
|
+
id: 'webmcp',
|
|
175
|
+
name: 'WebMCP',
|
|
176
|
+
description: 'Checks declarative WebMCP tool annotations on forms',
|
|
177
|
+
category: 'protocols',
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
meta: {
|
|
182
|
+
id: 'commerce-discovery',
|
|
183
|
+
name: 'Commerce Discovery',
|
|
184
|
+
description: 'Checks the Universal Commerce Protocol profile for agent-driven purchasing',
|
|
185
|
+
category: 'protocols',
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
meta: {
|
|
190
|
+
id: 'auth-discovery',
|
|
191
|
+
name: 'Auth Discovery',
|
|
192
|
+
description: 'Checks OAuth metadata (RFC 9728 / RFC 8414) so agents can authenticate without documentation',
|
|
193
|
+
category: 'protocols',
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
meta: {
|
|
198
|
+
id: 'agent-operability',
|
|
199
|
+
name: 'Agent Operability',
|
|
200
|
+
description: 'Checks whether interactive elements are nameable and operable by a browser agent',
|
|
201
|
+
category: 'content',
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
];
|
|
205
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AuditOptions, AuditReport, BatchAuditReport, BatchOptions } from './types.js';
|
|
2
|
+
/** Send a URL to AX Rush. No check implementation or local fallback ships in npm. */
|
|
2
3
|
export declare function audit(options: AuditOptions): Promise<AuditReport>;
|
|
3
4
|
export declare function batchAudit(urls: string[], options?: BatchOptions): Promise<BatchAuditReport>;
|
|
4
5
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA6F5F,qFAAqF;AACrF,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA4CvE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwCtG"}
|
package/dist/orchestrator.js
CHANGED
|
@@ -1,67 +1,145 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
import { accountKey, LicenseError } from './license.js';
|
|
2
|
+
import { getGrade } from './scorer.js';
|
|
3
|
+
import { allSelectableIds } from './check-ids.js';
|
|
4
|
+
const ENDPOINT = 'https://axrush.com/api/v1/engine/audit';
|
|
5
|
+
const PROFILES = new Set(['auto', 'api', 'mcp', 'agent', 'docs', 'commerce', 'all']);
|
|
6
|
+
const CHECKS = new Set(allSelectableIds().map((id) => id.toLowerCase()));
|
|
7
|
+
function payload(options) {
|
|
8
|
+
try {
|
|
9
|
+
const url = new URL(options.url);
|
|
10
|
+
if (!['http:', 'https:'].includes(url.protocol) ||
|
|
11
|
+
url.username ||
|
|
12
|
+
url.password ||
|
|
13
|
+
(url.port && !['80', '443'].includes(url.port)) ||
|
|
14
|
+
options.url.length > 2048)
|
|
15
|
+
throw new Error();
|
|
16
|
+
if (options.profile !== undefined && !PROFILES.has(options.profile))
|
|
17
|
+
throw new Error();
|
|
18
|
+
if (options.checks !== undefined &&
|
|
19
|
+
(!Array.isArray(options.checks) ||
|
|
20
|
+
!options.checks.length ||
|
|
21
|
+
options.checks.length > 26 ||
|
|
22
|
+
options.checks.some((id) => typeof id !== 'string' || !CHECKS.has(id.toLowerCase()))))
|
|
23
|
+
throw new Error();
|
|
24
|
+
if (options.timeout !== undefined &&
|
|
25
|
+
(!Number.isInteger(options.timeout) || options.timeout < 100 || options.timeout > 10_000))
|
|
26
|
+
throw new Error();
|
|
27
|
+
if (options.retries !== undefined &&
|
|
28
|
+
(!Number.isInteger(options.retries) || options.retries < 0 || options.retries > 2))
|
|
29
|
+
throw new Error();
|
|
29
30
|
return {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
duration: 0,
|
|
31
|
+
url: url.toString(),
|
|
32
|
+
checks: options.checks,
|
|
33
|
+
profile: options.profile,
|
|
34
|
+
timeout: options.timeout,
|
|
35
|
+
retries: options.retries,
|
|
36
36
|
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
throw new LicenseError('INVALID_INPUT', 'Use a public HTTP(S) URL without credentials, supported checks/profile, timeout 100–10000 ms and retries 0–2.');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function validReport(value) {
|
|
43
|
+
if (!value || typeof value !== 'object')
|
|
44
|
+
return false;
|
|
45
|
+
const r = value;
|
|
46
|
+
return (typeof r.url === 'string' &&
|
|
47
|
+
typeof r.timestamp === 'string' &&
|
|
48
|
+
Number.isFinite(Date.parse(r.timestamp)) &&
|
|
49
|
+
typeof r.overallScore === 'number' &&
|
|
50
|
+
Number.isFinite(r.overallScore) &&
|
|
51
|
+
r.overallScore >= 0 &&
|
|
52
|
+
r.overallScore <= 100 &&
|
|
53
|
+
typeof r.duration === 'number' &&
|
|
54
|
+
Number.isFinite(r.duration) &&
|
|
55
|
+
r.duration >= 0 &&
|
|
56
|
+
typeof r.engine === 'string' &&
|
|
57
|
+
!!r.engine &&
|
|
58
|
+
!!r.grade &&
|
|
59
|
+
typeof r.grade.min === 'number' &&
|
|
60
|
+
typeof r.grade.label === 'string' &&
|
|
61
|
+
typeof r.grade.color === 'string' &&
|
|
62
|
+
Array.isArray(r.results) &&
|
|
63
|
+
r.results.length > 0 &&
|
|
64
|
+
r.results.every((result) => result &&
|
|
65
|
+
typeof result.id === 'string' &&
|
|
66
|
+
typeof result.name === 'string' &&
|
|
67
|
+
typeof result.description === 'string' &&
|
|
68
|
+
typeof result.score === 'number' &&
|
|
69
|
+
Number.isFinite(result.score) &&
|
|
70
|
+
result.score >= 0 &&
|
|
71
|
+
result.score <= 100 &&
|
|
72
|
+
typeof result.duration === 'number' &&
|
|
73
|
+
Array.isArray(result.findings) &&
|
|
74
|
+
result.findings.every((finding) => finding && ['pass', 'warn', 'fail'].includes(finding.status) && typeof finding.message === 'string')));
|
|
75
|
+
}
|
|
76
|
+
/** Send a URL to AX Rush. No check implementation or local fallback ships in npm. */
|
|
77
|
+
export async function audit(options) {
|
|
78
|
+
const key = accountKey(options.apiKey);
|
|
79
|
+
const body = payload(options);
|
|
80
|
+
const controller = new AbortController();
|
|
81
|
+
const timer = setTimeout(() => controller.abort(), 65_000);
|
|
82
|
+
try {
|
|
83
|
+
const response = await fetch(ENDPOINT, {
|
|
84
|
+
method: 'POST',
|
|
85
|
+
headers: { authorization: `Bearer ${key}`, accept: 'application/json', 'content-type': 'application/json' },
|
|
86
|
+
body: JSON.stringify(body),
|
|
87
|
+
redirect: 'error',
|
|
88
|
+
signal: controller.signal,
|
|
89
|
+
cache: 'no-store',
|
|
90
|
+
});
|
|
91
|
+
if (response.status === 401)
|
|
92
|
+
throw new LicenseError('INVALID_KEY', 'Your AX Rush key is invalid or revoked. Create a key at https://axrush.com/account/api.');
|
|
93
|
+
if (response.status === 403)
|
|
94
|
+
throw new LicenseError('PLAN_REQUIRED', 'An active paid AX Rush subscription is required. Manage it at https://axrush.com/account/billing.');
|
|
95
|
+
if (response.status === 429)
|
|
96
|
+
throw new LicenseError('RATE_LIMITED', 'Too many audits for this organization or target. Try again later.');
|
|
97
|
+
if (response.status === 400 || response.status === 413)
|
|
98
|
+
throw new LicenseError('INVALID_INPUT', 'AX Rush rejected the audit input. Use a publicly reachable HTTP(S) URL and supported options. Local/private networks are not supported.');
|
|
99
|
+
if (!response.ok)
|
|
100
|
+
throw new Error();
|
|
101
|
+
const result = await response.json();
|
|
102
|
+
if (!validReport(result))
|
|
103
|
+
throw new Error();
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
if (error instanceof LicenseError)
|
|
108
|
+
throw error;
|
|
109
|
+
throw new LicenseError('VALIDATION_UNAVAILABLE', 'AX Rush could not complete the audit request. Check your connection and try again. No local audit was performed.');
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
clearTimeout(timer);
|
|
113
|
+
}
|
|
48
114
|
}
|
|
49
115
|
export async function batchAudit(urls, options = {}) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
116
|
+
accountKey(options.apiKey);
|
|
117
|
+
if (!Array.isArray(urls) ||
|
|
118
|
+
!urls.length ||
|
|
119
|
+
urls.length > 100 ||
|
|
120
|
+
(options.concurrency !== undefined &&
|
|
121
|
+
(!Number.isInteger(options.concurrency) || options.concurrency < 1 || options.concurrency > 4))) {
|
|
122
|
+
throw new LicenseError('INVALID_INPUT', 'Provide 1–100 URLs and a concurrency between 1 and 4.');
|
|
123
|
+
}
|
|
124
|
+
urls.forEach((url) => payload({ ...options, url }));
|
|
125
|
+
const started = performance.now();
|
|
54
126
|
const reports = new Array(urls.length);
|
|
55
127
|
let next = 0;
|
|
128
|
+
let failed = false;
|
|
56
129
|
async function worker() {
|
|
57
|
-
while (next < urls.length) {
|
|
58
|
-
const
|
|
59
|
-
|
|
130
|
+
while (!failed && next < urls.length) {
|
|
131
|
+
const index = next++;
|
|
132
|
+
try {
|
|
133
|
+
reports[index] = await audit({ ...options, url: urls[index] });
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
failed = true;
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
60
139
|
}
|
|
61
140
|
}
|
|
62
|
-
await Promise.all(Array.from({ length: Math.min(concurrency, urls.length) }, worker));
|
|
63
|
-
const
|
|
64
|
-
const averageScore = Math.round(scores.reduce((a, b) => a + b, 0) / scores.length);
|
|
141
|
+
await Promise.all(Array.from({ length: Math.min(options.concurrency ?? 1, urls.length) }, worker));
|
|
142
|
+
const averageScore = Math.round(reports.reduce((sum, report) => sum + report.overallScore, 0) / reports.length);
|
|
65
143
|
return {
|
|
66
144
|
reports,
|
|
67
145
|
summary: {
|
|
@@ -71,7 +149,7 @@ export async function batchAudit(urls, options = {}) {
|
|
|
71
149
|
averageScore,
|
|
72
150
|
grade: getGrade(averageScore),
|
|
73
151
|
},
|
|
74
|
-
duration: Math.round(performance.now() -
|
|
152
|
+
duration: Math.round(performance.now() - started),
|
|
75
153
|
};
|
|
76
154
|
}
|
|
77
155
|
//# sourceMappingURL=orchestrator.js.map
|
package/dist/orchestrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/dist/scorer.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CHECK_CATEGORIES, CHECK_WEIGHTS, GRADES } from './constants.js';
|
|
2
|
-
import { checks as allChecks } from './
|
|
3
|
-
|
|
2
|
+
import { checks as allChecks } from './metadata.js';
|
|
3
|
+
const clampScore = (score) => Math.max(0, Math.min(100, score));
|
|
4
4
|
/**
|
|
5
5
|
* Weighted average across the checks that ran and apply.
|
|
6
6
|
*
|
package/dist/scorer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scorer.js","sourceRoot":"","sources":["../src/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"scorer.js","sourceRoot":"","sources":["../src/scorer.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -111,6 +111,8 @@ export interface Grade {
|
|
|
111
111
|
color: string;
|
|
112
112
|
}
|
|
113
113
|
export interface AuditReport {
|
|
114
|
+
/** Server engine provenance, present on reports returned by AX Rush 6+. */
|
|
115
|
+
engine?: string;
|
|
114
116
|
url: string;
|
|
115
117
|
timestamp: string;
|
|
116
118
|
overallScore: number;
|
|
@@ -120,6 +122,8 @@ export interface AuditReport {
|
|
|
120
122
|
}
|
|
121
123
|
export interface AuditOptions {
|
|
122
124
|
url: string;
|
|
125
|
+
/** AX Rush organization key. Defaults to AXRUSH_API_KEY. Requires an active paid plan. */
|
|
126
|
+
apiKey?: string;
|
|
123
127
|
checks?: string[];
|
|
124
128
|
/**
|
|
125
129
|
* Forces protocol checks applicable. By default a check for a surface the
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAExF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;CAC1E;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;IAC7D,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,KAAK,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAIrE;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,6BAA6B;AAC7B,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,YAAY,EAAE,SAAS,EAAE,CAAC;CAC3B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/docs/api.md
CHANGED
|
@@ -11,13 +11,17 @@ The package is ESM-only (`"type": "module"`), targets Node 18+ (built-in `fetch`
|
|
|
11
11
|
|
|
12
12
|
## `audit(options): Promise<AuditReport>`
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Executes selected checks on the private AX Rush service and returns its report.
|
|
15
|
+
The URL and options are sent to AX Rush; no audit runs on the client. An active
|
|
16
|
+
paid subscription and an organization key from https://axrush.com/account/api
|
|
17
|
+
are required for every call. `apiKey` defaults to `AXRUSH_API_KEY`.
|
|
15
18
|
|
|
16
19
|
```typescript
|
|
17
20
|
function audit(options: AuditOptions): Promise<AuditReport>;
|
|
18
21
|
|
|
19
22
|
interface AuditOptions {
|
|
20
23
|
url: string; // required, fully qualified (scheme included)
|
|
24
|
+
apiKey?: string; // defaults to AXRUSH_API_KEY; active paid AX Rush plan required
|
|
21
25
|
checks?: string[]; // default: all. Unknown IDs are silently ignored here
|
|
22
26
|
// (the CLI validates them; the API does not)
|
|
23
27
|
timeout?: number; // ms per request, default 10000
|
|
@@ -40,7 +44,10 @@ report.results; // CheckResult[]
|
|
|
40
44
|
report.duration; // ms
|
|
41
45
|
```
|
|
42
46
|
|
|
43
|
-
`audit`
|
|
47
|
+
`audit` rejects with `LicenseError`: `MISSING_KEY`, `INVALID_KEY`, `PLAN_REQUIRED`,
|
|
48
|
+
`INVALID_INPUT`, `RATE_LIMITED`, or `VALIDATION_UNAVAILABLE`. Network failures,
|
|
49
|
+
malformed service responses and access refusals never trigger a local fallback.
|
|
50
|
+
Only public HTTP(S) targets are supported; the service blocks private addresses.
|
|
44
51
|
|
|
45
52
|
## `batchAudit(urls, options?): Promise<BatchAuditReport>`
|
|
46
53
|
|
|
@@ -52,7 +59,7 @@ interface BatchOptions extends Omit<AuditOptions, 'url'> {
|
|
|
52
59
|
}
|
|
53
60
|
```
|
|
54
61
|
|
|
55
|
-
|
|
62
|
+
A batch accepts 1–100 URLs and concurrency 1–4 (default 1). Each URL is a separate authenticated service request and consumes the shared rate limit. Report order matches input order. Invalid options reject before any request.
|
|
56
63
|
|
|
57
64
|
```typescript
|
|
58
65
|
const batch = await batchAudit(urls, { concurrency: 4, retries: 2 });
|
|
@@ -69,6 +76,7 @@ batch.summary.grade; // Grade for the average
|
|
|
69
76
|
```typescript
|
|
70
77
|
interface AuditReport {
|
|
71
78
|
url: string;
|
|
79
|
+
engine?: string; // private server engine provenance
|
|
72
80
|
timestamp: string; // ISO 8601
|
|
73
81
|
overallScore: number; // 0–100
|
|
74
82
|
grade: Grade;
|
|
@@ -121,6 +129,7 @@ function diffBaseline(baseline: BaselineData, report: AuditReport): BaselineDiff
|
|
|
121
129
|
|
|
122
130
|
interface BaselineData {
|
|
123
131
|
url: string;
|
|
132
|
+
engine?: string; // private server engine provenance
|
|
124
133
|
timestamp: string;
|
|
125
134
|
overallScore: number;
|
|
126
135
|
checks: Record<string, number>; // checkId → score
|
|
@@ -254,3 +263,5 @@ Within a major version, the exported function signatures and the `AuditReport` J
|
|
|
254
263
|
## Exported types
|
|
255
264
|
|
|
256
265
|
`AuditOptions`, `BatchOptions`, `AuditReport`, `BatchAuditReport`, `CheckResult`, `CheckMeta`, `CheckContext`, `CheckModule`, `Finding`, `FindingStatus`, `FetchOptions`, `FetchResponse`, `Grade`, `OutputFormat`, `BaselineData`, `BaselineDiff`, `CheckDiff`.
|
|
266
|
+
|
|
267
|
+
`checks` exposes metadata only, with no `run` function. Execute checks through `audit({ url, checks: [id], apiKey })`, which calls AX Rush. Keep keys out of browser bundles.
|