@actuate-media/cms-admin 0.57.2 → 0.58.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 +12 -0
- package/dist/actuate-admin.css +1 -1
- package/dist/components/seo/SeoIssueFixDrawer.d.ts.map +1 -1
- package/dist/components/seo/SeoIssueFixDrawer.js +2 -0
- package/dist/components/seo/SeoIssueFixDrawer.js.map +1 -1
- package/dist/components/seo/SeoIssueFixPanel.d.ts +14 -0
- package/dist/components/seo/SeoIssueFixPanel.d.ts.map +1 -0
- package/dist/components/seo/SeoIssueFixPanel.js +208 -0
- package/dist/components/seo/SeoIssueFixPanel.js.map +1 -0
- package/dist/lib/seo-service.d.ts +131 -0
- package/dist/lib/seo-service.d.ts.map +1 -1
- package/dist/lib/seo-service.js +127 -0
- package/dist/lib/seo-service.js.map +1 -1
- package/dist/views/seo/AuditTab.d.ts.map +1 -1
- package/dist/views/seo/AuditTab.js +87 -12
- package/dist/views/seo/AuditTab.js.map +1 -1
- package/package.json +2 -2
- package/src/components/seo/SeoIssueFixDrawer.tsx +2 -0
- package/src/components/seo/SeoIssueFixPanel.tsx +589 -0
- package/src/lib/seo-service.ts +263 -0
- package/src/views/seo/AuditTab.tsx +193 -70
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
import { Check, ChevronDown, Loader2, Sparkles, Wand2 } from 'lucide-react';
|
|
5
|
+
import { toast } from 'sonner';
|
|
6
|
+
import { applySeoIssueFix, fetchSeoIssueFixSuggestion, fetchSeoContentBrief, fetchSeoContentResearch, generateSeoContentBrief, ignoreSeoIssue, isInlineSeoFixIssue, researchAndBriefSeoIssue, supportsSeoContentBrief, supportsSeoContentResearch, } from '../../lib/seo-service.js';
|
|
7
|
+
import { SeoErrorState, btnPrimary, btnSecondary } from './primitives.js';
|
|
8
|
+
function formatValue(value) {
|
|
9
|
+
if (value === null || value === '')
|
|
10
|
+
return '—';
|
|
11
|
+
if (typeof value === 'boolean')
|
|
12
|
+
return value ? 'Yes' : 'No';
|
|
13
|
+
if (value.length > 280)
|
|
14
|
+
return `${value.slice(0, 277)}…`;
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
function ChangePreview({ changes }) {
|
|
18
|
+
if (changes.length === 0)
|
|
19
|
+
return null;
|
|
20
|
+
return (_jsx("div", { className: "border-border overflow-hidden rounded-md border", children: _jsxs("table", { className: "w-full text-sm", "aria-label": "Proposed SEO changes", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-border bg-muted/40 text-muted-foreground border-b text-left", children: [_jsx("th", { scope: "col", className: "py-2 pr-3 pl-3 font-medium", children: "Field" }), _jsx("th", { scope: "col", className: "py-2 pr-3 font-medium", children: "Current" }), _jsx("th", { scope: "col", className: "py-2 pr-3 font-medium", children: "Proposed" })] }) }), _jsx("tbody", { className: "divide-border divide-y", children: changes.map((c) => (_jsxs("tr", { children: [_jsx("td", { className: "text-foreground py-2 pr-3 pl-3 font-medium", children: c.label }), _jsx("td", { className: "text-muted-foreground max-w-48 py-2 pr-3 wrap-break-word", children: formatValue(c.before) }), _jsx("td", { className: "text-foreground max-w-48 py-2 pr-3 wrap-break-word", children: formatValue(c.after) })] }, c.field))) })] }) }));
|
|
21
|
+
}
|
|
22
|
+
function ContentResearchCard({ research }) {
|
|
23
|
+
return (_jsxs("div", { className: "border-border bg-card space-y-3 rounded-md border p-4", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsxs("span", { className: "bg-accent text-foreground inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium", children: [_jsx(Sparkles, { className: "h-3 w-3", "aria-hidden": true }), "Topic research"] }) }), _jsx("p", { className: "text-foreground text-sm", children: research.summary }), _jsxs("ul", { className: "text-foreground space-y-1.5 text-sm", children: [research.focusKeyword ? (_jsxs("li", { children: [_jsx("span", { className: "text-muted-foreground", children: "Focus keyword: " }), research.focusKeyword] })) : null, research.suggestedWordCount ? (_jsxs("li", { children: [_jsx("span", { className: "text-muted-foreground", children: "Suggested length: " }), "~", research.suggestedWordCount, " words"] })) : null] }), research.outline.length > 0 ? (_jsxs("div", { children: [_jsx("p", { className: "text-muted-foreground mb-1.5 text-xs font-medium tracking-wide uppercase", children: "Suggested outline" }), _jsx("ul", { className: "text-foreground list-disc space-y-1 pl-5 text-sm", children: research.outline.map((item) => (_jsx("li", { children: item }, item))) })] })) : null, research.faqCandidates.length > 0 ? (_jsxs("div", { children: [_jsx("p", { className: "text-muted-foreground mb-1.5 text-xs font-medium tracking-wide uppercase", children: "FAQ candidates" }), _jsx("ul", { className: "text-foreground list-disc space-y-1 pl-5 text-sm", children: research.faqCandidates.map((q) => (_jsx("li", { children: q }, q))) })] })) : null] }));
|
|
24
|
+
}
|
|
25
|
+
function ContentBriefCard({ brief }) {
|
|
26
|
+
return (_jsxs("div", { className: "border-border bg-card space-y-3 rounded-md border p-4", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsxs("span", { className: "bg-primary/10 text-primary inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium", children: [_jsx(Sparkles, { className: "h-3 w-3", "aria-hidden": true }), "AI content brief"] }) }), _jsx("p", { className: "text-foreground text-sm", children: brief.summary }), _jsxs("ul", { className: "text-foreground space-y-1.5 text-sm", children: [brief.suggestedH1 ? (_jsxs("li", { children: [_jsx("span", { className: "text-muted-foreground", children: "Suggested H1: " }), brief.suggestedH1] })) : null, brief.targetWordCount ? (_jsxs("li", { children: [_jsx("span", { className: "text-muted-foreground", children: "Target length: " }), "~", brief.targetWordCount, ' ', "words"] })) : null, brief.keyTakeawayDraft ? (_jsxs("li", { children: [_jsx("span", { className: "text-muted-foreground", children: "GEO takeaway: " }), brief.keyTakeawayDraft] })) : null, brief.geoNote ? (_jsxs("li", { children: [_jsx("span", { className: "text-muted-foreground", children: "GEO note: " }), brief.geoNote] })) : null] }), brief.topics.length > 0 ? (_jsxs("div", { children: [_jsx("p", { className: "text-muted-foreground mb-1.5 text-xs font-medium tracking-wide uppercase", children: "Topics to cover" }), _jsx("ul", { className: "text-foreground list-disc space-y-1 pl-5 text-sm", children: brief.topics.map((topic) => (_jsx("li", { children: topic }, topic))) })] })) : null, brief.sections.map((section) => (_jsxs("div", { children: [_jsx("p", { className: "text-foreground text-sm font-medium", children: section.heading }), section.bullets.length > 0 ? (_jsx("ul", { className: "text-muted-foreground mt-1 list-disc space-y-1 pl-5 text-sm", children: section.bullets.map((bullet) => (_jsx("li", { children: bullet }, bullet))) })) : null] }, section.heading)))] }));
|
|
27
|
+
}
|
|
28
|
+
function manualPath(issue) {
|
|
29
|
+
const ent = issue.entityType;
|
|
30
|
+
const id = issue.entityId;
|
|
31
|
+
switch (issue.fixActionType) {
|
|
32
|
+
case 'edit-metadata':
|
|
33
|
+
case 'edit-canonical':
|
|
34
|
+
case 'edit-og':
|
|
35
|
+
case 'edit-og-image':
|
|
36
|
+
case 'edit-schema':
|
|
37
|
+
if (ent && id) {
|
|
38
|
+
return `/seo?tab=content&entityType=${ent}&entityId=${encodeURIComponent(id)}`;
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
case 'edit-content':
|
|
42
|
+
if (ent === 'page' && id)
|
|
43
|
+
return `/pages/${id}`;
|
|
44
|
+
if (ent && id) {
|
|
45
|
+
return `/seo?tab=content&entityType=${ent}&entityId=${encodeURIComponent(id)}`;
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
case 'fix-broken-link':
|
|
49
|
+
case 'fix-link':
|
|
50
|
+
case 'create-redirect':
|
|
51
|
+
return '/seo?tab=redirects';
|
|
52
|
+
case 'optimize-media':
|
|
53
|
+
return '/media';
|
|
54
|
+
case 'improve-speed':
|
|
55
|
+
return '/seo?tab=technical';
|
|
56
|
+
default:
|
|
57
|
+
if (ent === 'page' && id)
|
|
58
|
+
return `/pages/${id}`;
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function SeoIssueFixPanel({ issue, expanded, onChanged, onNavigate, onOpenDetails, }) {
|
|
63
|
+
const inlineFix = isInlineSeoFixIssue(issue.type);
|
|
64
|
+
const contentBriefEligible = supportsSeoContentBrief(issue.type);
|
|
65
|
+
const researchEligible = supportsSeoContentResearch(issue.type);
|
|
66
|
+
const [suggestion, setSuggestion] = useState(null);
|
|
67
|
+
const [contentBrief, setContentBrief] = useState(null);
|
|
68
|
+
const [contentResearch, setContentResearch] = useState(null);
|
|
69
|
+
const [competitorUrls, setCompetitorUrls] = useState(['', '', '']);
|
|
70
|
+
const [briefStale, setBriefStale] = useState(false);
|
|
71
|
+
const [researchStale, setResearchStale] = useState(false);
|
|
72
|
+
const [loading, setLoading] = useState(false);
|
|
73
|
+
const [error, setError] = useState(null);
|
|
74
|
+
const [busy, setBusy] = useState(false);
|
|
75
|
+
const [generatingBrief, setGeneratingBrief] = useState(false);
|
|
76
|
+
const [researching, setResearching] = useState(false);
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
if (!expanded) {
|
|
79
|
+
setSuggestion(null);
|
|
80
|
+
setContentBrief(null);
|
|
81
|
+
setContentResearch(null);
|
|
82
|
+
setCompetitorUrls(['', '', '']);
|
|
83
|
+
setBriefStale(false);
|
|
84
|
+
setResearchStale(false);
|
|
85
|
+
setError(null);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
let alive = true;
|
|
89
|
+
setLoading(true);
|
|
90
|
+
setError(null);
|
|
91
|
+
async function load() {
|
|
92
|
+
if (inlineFix) {
|
|
93
|
+
const res = await fetchSeoIssueFixSuggestion(issue.id);
|
|
94
|
+
if (!alive)
|
|
95
|
+
return;
|
|
96
|
+
if (res.error)
|
|
97
|
+
setError(res.error);
|
|
98
|
+
else
|
|
99
|
+
setSuggestion(res.suggestion ?? null);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (contentBriefEligible) {
|
|
103
|
+
const briefRes = await fetchSeoContentBrief(issue.id);
|
|
104
|
+
if (!alive)
|
|
105
|
+
return;
|
|
106
|
+
if (briefRes.error)
|
|
107
|
+
setError(briefRes.error);
|
|
108
|
+
else {
|
|
109
|
+
setContentBrief(briefRes.brief ?? null);
|
|
110
|
+
setBriefStale(briefRes.stale ?? false);
|
|
111
|
+
}
|
|
112
|
+
if (researchEligible) {
|
|
113
|
+
const researchRes = await fetchSeoContentResearch(issue.id);
|
|
114
|
+
if (!alive)
|
|
115
|
+
return;
|
|
116
|
+
if (researchRes.error && !briefRes.error)
|
|
117
|
+
setError(researchRes.error);
|
|
118
|
+
else if (!researchRes.error) {
|
|
119
|
+
setContentResearch(researchRes.research ?? null);
|
|
120
|
+
setResearchStale(researchRes.stale ?? false);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
load()
|
|
126
|
+
.catch((e) => alive && setError(e instanceof Error ? e.message : 'Failed to load'))
|
|
127
|
+
.finally(() => alive && setLoading(false));
|
|
128
|
+
return () => {
|
|
129
|
+
alive = false;
|
|
130
|
+
};
|
|
131
|
+
}, [expanded, issue.id, inlineFix, contentBriefEligible, researchEligible]);
|
|
132
|
+
function parsedCompetitorUrls() {
|
|
133
|
+
return competitorUrls
|
|
134
|
+
.map((u) => u.trim())
|
|
135
|
+
.filter(Boolean)
|
|
136
|
+
.slice(0, 3);
|
|
137
|
+
}
|
|
138
|
+
async function handleApprove() {
|
|
139
|
+
if (!suggestion?.autoFixable)
|
|
140
|
+
return;
|
|
141
|
+
setBusy(true);
|
|
142
|
+
const res = await applySeoIssueFix(issue.id, suggestion.fingerprint);
|
|
143
|
+
setBusy(false);
|
|
144
|
+
if (res.error) {
|
|
145
|
+
toast.error(res.error);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
toast.success('Fix applied and issue resolved.');
|
|
149
|
+
onChanged?.();
|
|
150
|
+
}
|
|
151
|
+
async function handleResearchAndBrief() {
|
|
152
|
+
setResearching(true);
|
|
153
|
+
const res = await researchAndBriefSeoIssue(issue.id, parsedCompetitorUrls());
|
|
154
|
+
setResearching(false);
|
|
155
|
+
if (res.error) {
|
|
156
|
+
toast.error(res.error);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (res.research) {
|
|
160
|
+
setContentResearch(res.research);
|
|
161
|
+
setResearchStale(false);
|
|
162
|
+
}
|
|
163
|
+
if (res.brief) {
|
|
164
|
+
setContentBrief(res.brief);
|
|
165
|
+
setBriefStale(false);
|
|
166
|
+
}
|
|
167
|
+
toast.success('Research and content brief generated — review before editing the page.');
|
|
168
|
+
}
|
|
169
|
+
async function handleGenerateBrief() {
|
|
170
|
+
setGeneratingBrief(true);
|
|
171
|
+
const res = await generateSeoContentBrief(issue.id);
|
|
172
|
+
setGeneratingBrief(false);
|
|
173
|
+
if (res.error) {
|
|
174
|
+
toast.error(res.error);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (res.brief) {
|
|
178
|
+
setContentBrief(res.brief);
|
|
179
|
+
setBriefStale(false);
|
|
180
|
+
toast.success('Content brief generated — review before editing the page.');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async function handleIgnore() {
|
|
184
|
+
setBusy(true);
|
|
185
|
+
const res = await ignoreSeoIssue(issue.id);
|
|
186
|
+
setBusy(false);
|
|
187
|
+
if (res.error)
|
|
188
|
+
return toast.error(res.error);
|
|
189
|
+
toast.success('Issue ignored.');
|
|
190
|
+
onChanged?.();
|
|
191
|
+
}
|
|
192
|
+
const manualRoute = manualPath(issue);
|
|
193
|
+
if (!expanded)
|
|
194
|
+
return null;
|
|
195
|
+
return (_jsx("tr", { children: _jsx("td", { colSpan: 5, className: "bg-muted/30 px-4 py-4", children: _jsx("div", { className: "space-y-4", children: loading ? (_jsxs("div", { className: "text-muted-foreground flex items-center gap-2 text-sm", role: "status", "aria-live": "polite", children: [_jsx(Loader2, { className: "h-4 w-4 motion-safe:animate-spin", "aria-hidden": true }), inlineFix ? 'Loading suggested fix…' : 'Loading issue details…'] })) : error ? (_jsx(SeoErrorState, { message: error })) : (_jsxs(_Fragment, { children: [!inlineFix && (issue.description || issue.recommendation) ? (_jsxs("div", { className: "space-y-2", children: [issue.description ? (_jsx("p", { className: "text-foreground text-sm", children: issue.description })) : null, issue.recommendation ? (_jsxs("p", { className: "text-muted-foreground text-sm", children: [_jsx("span", { className: "text-foreground font-medium", children: "Recommended fix: " }), issue.recommendation] })) : null] })) : null, inlineFix && suggestion ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex flex-wrap items-center gap-2", children: suggestion.source === 'ai' && !suggestion.aiUnavailable ? (_jsxs("span", { className: "bg-primary/10 text-primary inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium", children: [_jsx(Sparkles, { className: "h-3 w-3", "aria-hidden": true }), "AI suggestion"] })) : suggestion.source === 'deterministic' ? (_jsx("span", { className: "bg-muted text-muted-foreground rounded-full px-2.5 py-0.5 text-xs font-medium", children: "Rule-based fix" })) : null }), _jsxs("div", { className: "flex items-start gap-2", children: [_jsx(Sparkles, { className: "text-primary mt-0.5 h-4 w-4 shrink-0", "aria-hidden": true }), _jsx("p", { className: "text-foreground text-sm", children: suggestion.justification })] }), _jsx(ChangePreview, { changes: suggestion.changes })] })) : null, contentBriefEligible ? (_jsxs(_Fragment, { children: [researchEligible ? (_jsxs("div", { className: "space-y-2", children: [_jsx("p", { className: "text-muted-foreground text-sm", children: "Optional competitor URLs (SSRF-safe fetch, max 3) to enrich topic research for thin content." }), competitorUrls.map((value, index) => (_jsxs("label", { className: "block", children: [_jsxs("span", { className: "text-muted-foreground sr-only", children: ["Competitor URL ", index + 1] }), _jsx("input", { type: "url", value: value, onChange: (e) => {
|
|
196
|
+
const next = [...competitorUrls];
|
|
197
|
+
next[index] = e.target.value;
|
|
198
|
+
setCompetitorUrls(next);
|
|
199
|
+
}, placeholder: `Competitor URL ${index + 1} (optional)`, className: "border-border bg-input-background text-foreground focus-visible:ring-ring w-full rounded-md border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none" })] }, index)))] })) : null, researchStale && !contentResearch ? (_jsx("p", { className: "text-muted-foreground text-sm", role: "status", children: "Previous topic research is outdated because the page changed." })) : null, contentResearch ? _jsx(ContentResearchCard, { research: contentResearch }) : null, briefStale && !contentBrief ? (_jsx("p", { className: "text-muted-foreground text-sm", role: "status", children: "A previous content brief is outdated because the page changed. Generate a new one." })) : null, contentBrief ? _jsx(ContentBriefCard, { brief: contentBrief }) : null, !contentBrief ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "Generate an AI content brief with suggested headings, topics, and GEO guidance for your dev team." })) : null] })) : null, _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [inlineFix && suggestion?.autoFixable ? (_jsxs("button", { type: "button", className: btnPrimary, onClick: handleApprove, disabled: busy, children: [_jsx(Check, { className: "h-4 w-4", "aria-hidden": true }), busy ? 'Applying…' : 'Approve fix'] })) : inlineFix && suggestion?.aiUnavailable ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "Configure an AI provider in Settings \u2192 AI to enable generated fixes for this issue." })) : null, contentBriefEligible ? (_jsxs(_Fragment, { children: [researchEligible ? (_jsxs("button", { type: "button", className: !contentBrief && !contentResearch ? btnPrimary : btnSecondary, onClick: handleResearchAndBrief, disabled: busy || researching || generatingBrief, children: [_jsx(Sparkles, { className: `h-4 w-4 ${researching ? 'motion-safe:animate-pulse' : ''}`, "aria-hidden": true }), researching ? 'Researching…' : 'Research & brief'] })) : null, _jsxs("button", { type: "button", className: contentBrief ? btnSecondary : btnPrimary, onClick: handleGenerateBrief, disabled: busy || generatingBrief || researching, children: [_jsx(Wand2, { className: `h-4 w-4 ${generatingBrief ? 'motion-safe:animate-pulse' : ''}`, "aria-hidden": true }), generatingBrief
|
|
200
|
+
? 'Generating brief…'
|
|
201
|
+
: contentBrief
|
|
202
|
+
? 'Regenerate brief'
|
|
203
|
+
: 'Generate content brief'] })] })) : null, !inlineFix && !contentBriefEligible ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "This issue requires manual follow-up in the admin or codebase." })) : null, manualRoute && onNavigate ? (_jsx("button", { type: "button", className: btnSecondary, onClick: () => onNavigate(manualRoute), disabled: busy, children: "Edit manually" })) : null, _jsx("button", { type: "button", className: btnSecondary, onClick: handleIgnore, disabled: busy, children: "Ignore" }), onOpenDetails ? (_jsx("button", { type: "button", className: "text-primary hover:bg-accent focus-visible:ring-ring rounded-md px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none", onClick: onOpenDetails, disabled: busy, children: "More details" })) : null] })] })) }) }) }));
|
|
204
|
+
}
|
|
205
|
+
export function SeoIssueFixToggle({ expanded, fixable, onToggle, }) {
|
|
206
|
+
return (_jsxs("button", { type: "button", onClick: onToggle, "aria-expanded": expanded, className: "text-primary hover:bg-accent focus-visible:ring-ring inline-flex items-center gap-1 rounded-md px-2 py-1 text-sm focus-visible:ring-2 focus-visible:outline-none", children: [fixable ? 'Fix' : 'View', _jsx(ChevronDown, { className: `h-3.5 w-3.5 motion-safe:transition-transform ${expanded ? 'rotate-180' : ''}`, "aria-hidden": true })] }));
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=SeoIssueFixPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SeoIssueFixPanel.js","sourceRoot":"","sources":["../../../src/components/seo/SeoIssueFixPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -200,6 +200,137 @@ export declare function ignoreSeoIssue(issueId: string): Promise<{
|
|
|
200
200
|
export declare function reopenSeoIssue(issueId: string): Promise<{
|
|
201
201
|
error?: string;
|
|
202
202
|
}>;
|
|
203
|
+
export interface SeoFixFieldChange {
|
|
204
|
+
field: string;
|
|
205
|
+
label: string;
|
|
206
|
+
before: string | boolean | null;
|
|
207
|
+
after: string | boolean | null;
|
|
208
|
+
}
|
|
209
|
+
export interface SeoIssueFixSuggestion {
|
|
210
|
+
autoFixable: boolean;
|
|
211
|
+
source?: 'deterministic' | 'ai';
|
|
212
|
+
aiUnavailable?: boolean;
|
|
213
|
+
fingerprint: string;
|
|
214
|
+
patch: Record<string, unknown>;
|
|
215
|
+
changes: SeoFixFieldChange[];
|
|
216
|
+
justification: string;
|
|
217
|
+
}
|
|
218
|
+
export declare function fetchSeoIssueFixSuggestion(issueId: string): Promise<{
|
|
219
|
+
suggestion?: SeoIssueFixSuggestion;
|
|
220
|
+
error?: string;
|
|
221
|
+
}>;
|
|
222
|
+
export declare function applySeoIssueFix(issueId: string, fingerprint: string): Promise<{
|
|
223
|
+
issue?: SeoIssue;
|
|
224
|
+
error?: string;
|
|
225
|
+
}>;
|
|
226
|
+
export interface SeoFixBriefExport {
|
|
227
|
+
markdown: string;
|
|
228
|
+
filename: string;
|
|
229
|
+
issueCount: number;
|
|
230
|
+
}
|
|
231
|
+
export interface SeoFixBriefExportQuery {
|
|
232
|
+
severity?: SeoSeverity | 'all';
|
|
233
|
+
status?: SeoIssueStatus | 'all';
|
|
234
|
+
auditRunId?: string;
|
|
235
|
+
/** Default true — only issues needing dev/content handoff. */
|
|
236
|
+
manualOnly?: boolean;
|
|
237
|
+
/** Default true — embed cached AI content briefs when available. */
|
|
238
|
+
includeContentBriefs?: boolean;
|
|
239
|
+
/** Default true — embed cached topic research when available. */
|
|
240
|
+
includeContentResearch?: boolean;
|
|
241
|
+
}
|
|
242
|
+
export declare function exportSeoFixBrief(query?: SeoFixBriefExportQuery): Promise<{
|
|
243
|
+
data?: SeoFixBriefExport;
|
|
244
|
+
error?: string;
|
|
245
|
+
}>;
|
|
246
|
+
/** Issue types with inline Approve fix in the Audit tab (keep in sync with cms-core). */
|
|
247
|
+
export declare const SEO_INLINE_FIX_ISSUE_TYPES: Set<string>;
|
|
248
|
+
export declare function isInlineSeoFixIssue(type: string): boolean;
|
|
249
|
+
export declare const SEO_CONTENT_BRIEF_ISSUE_TYPES: readonly ["thin-content", "missing-h1", "multiple-h1", "missing-alt-text"];
|
|
250
|
+
export declare function supportsSeoContentBrief(type: string): boolean;
|
|
251
|
+
export interface SeoContentBriefSection {
|
|
252
|
+
heading: string;
|
|
253
|
+
bullets: string[];
|
|
254
|
+
}
|
|
255
|
+
export interface SeoContentBrief {
|
|
256
|
+
issueType: string;
|
|
257
|
+
entityId: string;
|
|
258
|
+
fingerprint: string;
|
|
259
|
+
generatedAt: string;
|
|
260
|
+
summary: string;
|
|
261
|
+
suggestedH1: string | null;
|
|
262
|
+
targetWordCount: number | null;
|
|
263
|
+
topics: string[];
|
|
264
|
+
sections: SeoContentBriefSection[];
|
|
265
|
+
keyTakeawayDraft: string | null;
|
|
266
|
+
geoNote: string | null;
|
|
267
|
+
}
|
|
268
|
+
export declare function fetchSeoContentBrief(issueId: string): Promise<{
|
|
269
|
+
supported?: boolean;
|
|
270
|
+
brief?: SeoContentBrief | null;
|
|
271
|
+
stale?: boolean;
|
|
272
|
+
error?: string;
|
|
273
|
+
}>;
|
|
274
|
+
export declare function generateSeoContentBrief(issueId: string): Promise<{
|
|
275
|
+
brief?: SeoContentBrief;
|
|
276
|
+
error?: string;
|
|
277
|
+
}>;
|
|
278
|
+
export declare const SEO_RESEARCH_ISSUE_TYPES: readonly ["thin-content"];
|
|
279
|
+
export declare function supportsSeoContentResearch(type: string): boolean;
|
|
280
|
+
export interface SeoContentResearchCompetitor {
|
|
281
|
+
url: string;
|
|
282
|
+
title: string;
|
|
283
|
+
note: string;
|
|
284
|
+
}
|
|
285
|
+
export interface SeoContentResearch {
|
|
286
|
+
issueType: string;
|
|
287
|
+
entityId: string;
|
|
288
|
+
fingerprint: string;
|
|
289
|
+
generatedAt: string;
|
|
290
|
+
focusKeyword: string | null;
|
|
291
|
+
suggestedWordCount: number | null;
|
|
292
|
+
outline: string[];
|
|
293
|
+
faqCandidates: string[];
|
|
294
|
+
entitiesToMention: string[];
|
|
295
|
+
competitorInsights: SeoContentResearchCompetitor[];
|
|
296
|
+
summary: string;
|
|
297
|
+
}
|
|
298
|
+
export declare function fetchSeoContentResearch(issueId: string): Promise<{
|
|
299
|
+
supported?: boolean;
|
|
300
|
+
research?: SeoContentResearch | null;
|
|
301
|
+
stale?: boolean;
|
|
302
|
+
error?: string;
|
|
303
|
+
}>;
|
|
304
|
+
export declare function generateSeoContentResearch(issueId: string, competitorUrls?: string[]): Promise<{
|
|
305
|
+
research?: SeoContentResearch;
|
|
306
|
+
error?: string;
|
|
307
|
+
}>;
|
|
308
|
+
export declare function researchAndBriefSeoIssue(issueId: string, competitorUrls?: string[]): Promise<{
|
|
309
|
+
research?: SeoContentResearch | null;
|
|
310
|
+
brief?: SeoContentBrief;
|
|
311
|
+
error?: string;
|
|
312
|
+
}>;
|
|
313
|
+
export interface BatchContentBriefResult {
|
|
314
|
+
generated: number;
|
|
315
|
+
skipped: number;
|
|
316
|
+
failed: number;
|
|
317
|
+
results: Array<{
|
|
318
|
+
issueId: string;
|
|
319
|
+
status: 'generated' | 'skipped' | 'failed';
|
|
320
|
+
error?: string;
|
|
321
|
+
}>;
|
|
322
|
+
}
|
|
323
|
+
export interface BatchContentBriefQuery {
|
|
324
|
+
severity?: SeoSeverity | 'all';
|
|
325
|
+
status?: SeoIssueStatus | 'all';
|
|
326
|
+
issueIds?: string[];
|
|
327
|
+
skipExisting?: boolean;
|
|
328
|
+
includeResearch?: boolean;
|
|
329
|
+
}
|
|
330
|
+
export declare function batchGenerateSeoContentBriefs(query?: BatchContentBriefQuery): Promise<{
|
|
331
|
+
data?: BatchContentBriefResult;
|
|
332
|
+
error?: string;
|
|
333
|
+
}>;
|
|
203
334
|
export interface SitemapStatus {
|
|
204
335
|
sitemapUrl: string;
|
|
205
336
|
lastGeneratedAt: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seo-service.d.ts","sourceRoot":"","sources":["../../src/lib/seo-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seo-service.d.ts","sourceRoot":"","sources":["../../src/lib/seo-service.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/seo-service.js
CHANGED
|
@@ -140,6 +140,133 @@ export async function reopenSeoIssue(issueId) {
|
|
|
140
140
|
const res = await cmsApi(`/seo/issues/${encodeURIComponent(issueId)}/reopen`, { method: 'POST' });
|
|
141
141
|
return res.error ? { error: res.error } : {};
|
|
142
142
|
}
|
|
143
|
+
export async function fetchSeoIssueFixSuggestion(issueId) {
|
|
144
|
+
const res = await cmsApi(`/seo/issues/${encodeURIComponent(issueId)}/suggest-fix`, { method: 'POST' });
|
|
145
|
+
if (res.error)
|
|
146
|
+
return { error: res.error };
|
|
147
|
+
return { suggestion: res.data?.suggestion };
|
|
148
|
+
}
|
|
149
|
+
export async function applySeoIssueFix(issueId, fingerprint) {
|
|
150
|
+
const res = await cmsApi(`/seo/issues/${encodeURIComponent(issueId)}/apply-fix`, {
|
|
151
|
+
method: 'POST',
|
|
152
|
+
body: JSON.stringify({ fingerprint }),
|
|
153
|
+
});
|
|
154
|
+
if (res.error)
|
|
155
|
+
return { error: res.error };
|
|
156
|
+
return { issue: res.data?.issue };
|
|
157
|
+
}
|
|
158
|
+
export async function exportSeoFixBrief(query = {}) {
|
|
159
|
+
const params = new URLSearchParams();
|
|
160
|
+
if (query.severity && query.severity !== 'all')
|
|
161
|
+
params.set('severity', query.severity);
|
|
162
|
+
if (query.status && query.status !== 'all')
|
|
163
|
+
params.set('status', query.status);
|
|
164
|
+
if (query.auditRunId)
|
|
165
|
+
params.set('auditRunId', query.auditRunId);
|
|
166
|
+
if (query.manualOnly === false)
|
|
167
|
+
params.set('manualOnly', 'false');
|
|
168
|
+
if (query.includeContentBriefs === false)
|
|
169
|
+
params.set('includeContentBriefs', 'false');
|
|
170
|
+
if (query.includeContentResearch === false)
|
|
171
|
+
params.set('includeContentResearch', 'false');
|
|
172
|
+
const qs = params.toString();
|
|
173
|
+
const res = await cmsApi(`/seo/issues/export-brief${qs ? `?${qs}` : ''}`);
|
|
174
|
+
if (res.error)
|
|
175
|
+
return { error: res.error };
|
|
176
|
+
return { data: res.data };
|
|
177
|
+
}
|
|
178
|
+
/** Issue types with inline Approve fix in the Audit tab (keep in sync with cms-core). */
|
|
179
|
+
export const SEO_INLINE_FIX_ISSUE_TYPES = new Set([
|
|
180
|
+
'meta-title-length',
|
|
181
|
+
'meta-description-length',
|
|
182
|
+
'accidental-noindex',
|
|
183
|
+
'missing-meta-title',
|
|
184
|
+
'missing-meta-description',
|
|
185
|
+
'missing-canonical',
|
|
186
|
+
'duplicate-meta-title',
|
|
187
|
+
'duplicate-meta-description',
|
|
188
|
+
'missing-structured-data',
|
|
189
|
+
]);
|
|
190
|
+
export function isInlineSeoFixIssue(type) {
|
|
191
|
+
return SEO_INLINE_FIX_ISSUE_TYPES.has(type);
|
|
192
|
+
}
|
|
193
|
+
export const SEO_CONTENT_BRIEF_ISSUE_TYPES = [
|
|
194
|
+
'thin-content',
|
|
195
|
+
'missing-h1',
|
|
196
|
+
'multiple-h1',
|
|
197
|
+
'missing-alt-text',
|
|
198
|
+
];
|
|
199
|
+
export function supportsSeoContentBrief(type) {
|
|
200
|
+
return SEO_CONTENT_BRIEF_ISSUE_TYPES.includes(type);
|
|
201
|
+
}
|
|
202
|
+
export async function fetchSeoContentBrief(issueId) {
|
|
203
|
+
const res = await cmsApi(`/seo/issues/${encodeURIComponent(issueId)}/content-brief`);
|
|
204
|
+
if (res.error)
|
|
205
|
+
return { error: res.error };
|
|
206
|
+
return {
|
|
207
|
+
supported: res.data?.supported,
|
|
208
|
+
brief: res.data?.brief,
|
|
209
|
+
stale: res.data?.stale,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
export async function generateSeoContentBrief(issueId) {
|
|
213
|
+
const res = await cmsApi(`/seo/issues/${encodeURIComponent(issueId)}/content-brief`, { method: 'POST' });
|
|
214
|
+
if (res.error)
|
|
215
|
+
return { error: res.error };
|
|
216
|
+
return { brief: res.data?.brief };
|
|
217
|
+
}
|
|
218
|
+
export const SEO_RESEARCH_ISSUE_TYPES = ['thin-content'];
|
|
219
|
+
export function supportsSeoContentResearch(type) {
|
|
220
|
+
return SEO_RESEARCH_ISSUE_TYPES.includes(type);
|
|
221
|
+
}
|
|
222
|
+
export async function fetchSeoContentResearch(issueId) {
|
|
223
|
+
const res = await cmsApi(`/seo/issues/${encodeURIComponent(issueId)}/content-research`);
|
|
224
|
+
if (res.error)
|
|
225
|
+
return { error: res.error };
|
|
226
|
+
return {
|
|
227
|
+
supported: res.data?.supported,
|
|
228
|
+
research: res.data?.research,
|
|
229
|
+
stale: res.data?.stale,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
export async function generateSeoContentResearch(issueId, competitorUrls) {
|
|
233
|
+
const res = await cmsApi(`/seo/issues/${encodeURIComponent(issueId)}/content-research`, {
|
|
234
|
+
method: 'POST',
|
|
235
|
+
body: JSON.stringify({ competitorUrls: competitorUrls?.filter(Boolean) }),
|
|
236
|
+
});
|
|
237
|
+
if (res.error)
|
|
238
|
+
return { error: res.error };
|
|
239
|
+
return { research: res.data?.research };
|
|
240
|
+
}
|
|
241
|
+
export async function researchAndBriefSeoIssue(issueId, competitorUrls) {
|
|
242
|
+
const res = await cmsApi(`/seo/issues/${encodeURIComponent(issueId)}/research-and-brief`, {
|
|
243
|
+
method: 'POST',
|
|
244
|
+
body: JSON.stringify({ competitorUrls: competitorUrls?.filter(Boolean) }),
|
|
245
|
+
});
|
|
246
|
+
if (res.error)
|
|
247
|
+
return { error: res.error };
|
|
248
|
+
return { research: res.data?.research, brief: res.data?.brief };
|
|
249
|
+
}
|
|
250
|
+
export async function batchGenerateSeoContentBriefs(query = {}) {
|
|
251
|
+
const body = {};
|
|
252
|
+
if (query.severity && query.severity !== 'all')
|
|
253
|
+
body.severity = query.severity;
|
|
254
|
+
if (query.status && query.status !== 'all')
|
|
255
|
+
body.status = query.status;
|
|
256
|
+
if (query.issueIds?.length)
|
|
257
|
+
body.issueIds = query.issueIds;
|
|
258
|
+
if (query.skipExisting === false)
|
|
259
|
+
body.skipExisting = false;
|
|
260
|
+
if (query.includeResearch)
|
|
261
|
+
body.includeResearch = true;
|
|
262
|
+
const res = await cmsApi('/seo/issues/batch-content-briefs', {
|
|
263
|
+
method: 'POST',
|
|
264
|
+
body: JSON.stringify(body),
|
|
265
|
+
});
|
|
266
|
+
if (res.error)
|
|
267
|
+
return { error: res.error };
|
|
268
|
+
return { data: res.data };
|
|
269
|
+
}
|
|
143
270
|
export async function fetchSitemapStatus() {
|
|
144
271
|
const res = await cmsApi('/seo/sitemap/status');
|
|
145
272
|
throwIfError(res);
|