@actuate-media/cms-core 0.28.0 → 0.29.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/dist/__tests__/diagnostics/env.test.js +18 -0
- package/dist/__tests__/diagnostics/env.test.js.map +1 -1
- package/dist/__tests__/media/seo.test.d.ts +2 -0
- package/dist/__tests__/media/seo.test.d.ts.map +1 -0
- package/dist/__tests__/media/seo.test.js +186 -0
- package/dist/__tests__/media/seo.test.js.map +1 -0
- package/dist/__tests__/redirects/graph.test.d.ts +2 -0
- package/dist/__tests__/redirects/graph.test.d.ts.map +1 -0
- package/dist/__tests__/redirects/graph.test.js +104 -0
- package/dist/__tests__/redirects/graph.test.js.map +1 -0
- package/dist/__tests__/redirects/suggest.test.d.ts +2 -0
- package/dist/__tests__/redirects/suggest.test.d.ts.map +1 -0
- package/dist/__tests__/redirects/suggest.test.js +28 -0
- package/dist/__tests__/redirects/suggest.test.js.map +1 -0
- package/dist/__tests__/seo/audit-engine.test.d.ts +2 -0
- package/dist/__tests__/seo/audit-engine.test.d.ts.map +1 -0
- package/dist/__tests__/seo/audit-engine.test.js +152 -0
- package/dist/__tests__/seo/audit-engine.test.js.map +1 -0
- package/dist/__tests__/seo/config-store.test.js +24 -160
- package/dist/__tests__/seo/config-store.test.js.map +1 -1
- package/dist/__tests__/seo/score.test.d.ts +2 -0
- package/dist/__tests__/seo/score.test.d.ts.map +1 -0
- package/dist/__tests__/seo/score.test.js +152 -0
- package/dist/__tests__/seo/score.test.js.map +1 -0
- package/dist/__tests__/setup/index.test.d.ts +2 -0
- package/dist/__tests__/setup/index.test.d.ts.map +1 -0
- package/dist/__tests__/setup/index.test.js +82 -0
- package/dist/__tests__/setup/index.test.js.map +1 -0
- package/dist/api/handlers.d.ts.map +1 -1
- package/dist/api/handlers.js +2095 -228
- package/dist/api/handlers.js.map +1 -1
- package/dist/diagnostics/env.d.ts.map +1 -1
- package/dist/diagnostics/env.js +9 -5
- package/dist/diagnostics/env.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.d.ts.map +1 -1
- package/dist/media/index.js +1 -0
- package/dist/media/index.js.map +1 -1
- package/dist/media/seo.d.ts +88 -0
- package/dist/media/seo.d.ts.map +1 -0
- package/dist/media/seo.js +215 -0
- package/dist/media/seo.js.map +1 -0
- package/dist/redirects/graph.d.ts +68 -0
- package/dist/redirects/graph.d.ts.map +1 -0
- package/dist/redirects/graph.js +136 -0
- package/dist/redirects/graph.js.map +1 -0
- package/dist/redirects/index.d.ts +5 -0
- package/dist/redirects/index.d.ts.map +1 -0
- package/dist/redirects/index.js +3 -0
- package/dist/redirects/index.js.map +1 -0
- package/dist/redirects/suggest.d.ts +21 -0
- package/dist/redirects/suggest.d.ts.map +1 -0
- package/dist/redirects/suggest.js +55 -0
- package/dist/redirects/suggest.js.map +1 -0
- package/dist/seo/audit-engine.d.ts +119 -0
- package/dist/seo/audit-engine.d.ts.map +1 -0
- package/dist/seo/audit-engine.js +402 -0
- package/dist/seo/audit-engine.js.map +1 -0
- package/dist/seo/audit-runner.d.ts +41 -0
- package/dist/seo/audit-runner.d.ts.map +1 -0
- package/dist/seo/audit-runner.js +223 -0
- package/dist/seo/audit-runner.js.map +1 -0
- package/dist/seo/config-store.d.ts +28 -0
- package/dist/seo/config-store.d.ts.map +1 -1
- package/dist/seo/config-store.js +22 -0
- package/dist/seo/config-store.js.map +1 -1
- package/dist/seo/index.d.ts +7 -2
- package/dist/seo/index.d.ts.map +1 -1
- package/dist/seo/index.js +4 -1
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/score.d.ts +128 -0
- package/dist/seo/score.d.ts.map +1 -0
- package/dist/seo/score.js +213 -0
- package/dist/seo/score.js.map +1 -0
- package/dist/setup/index.d.ts +16 -1
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +52 -2
- package/dist/setup/index.js.map +1 -1
- package/package.json +1 -1
- package/prisma/migrations/0008_media_center/migration.sql +47 -0
- package/prisma/migrations/0009_seo/migration.sql +143 -0
- package/prisma/schema.prisma +183 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/diagnostics/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAElE,MAAM,WAAW,QAAQ;IACvB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,sBAAsB;IACtB,MAAM,EAAE,gBAAgB,CAAA;IACxB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAA;IACX,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,QAAQ,EAAE,CAAA;CACnB;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/diagnostics/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAElE,MAAM,WAAW,QAAQ;IACvB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,sBAAsB;IACtB,MAAM,EAAE,gBAAgB,CAAA;IACxB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAA;IACX,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAA;IAClB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,QAAQ,EAAE,CAAA;CACnB;AAoDD,UAAU,SAAS;IACjB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACtC;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,SAAuB,GAAG,eAAe,CA6QjF"}
|
package/dist/diagnostics/env.js
CHANGED
|
@@ -29,15 +29,19 @@ function isPlaceholder(value) {
|
|
|
29
29
|
* Determine which transactional email provider (if any) is configured via env.
|
|
30
30
|
* Mirrors `resolveEmailConfigFromEnv()` in `@actuate-media/plugin-email`:
|
|
31
31
|
* an explicit `EMAIL_PROVIDER` wins, otherwise we infer from the presence of
|
|
32
|
-
* `SMTP_HOST` (SMTP)
|
|
33
|
-
* provider label, or `null` when none is
|
|
32
|
+
* `SMTP_HOST` (SMTP), an SMTP.com API key (SMTP.com), or `RESEND_API_KEY`
|
|
33
|
+
* (Resend). Returns a human-readable provider label, or `null` when none is
|
|
34
|
+
* configured.
|
|
34
35
|
*/
|
|
35
36
|
function detectEmailProvider(source) {
|
|
36
37
|
const provider = source.get('EMAIL_PROVIDER');
|
|
37
38
|
const resend = source.get('RESEND_API_KEY');
|
|
38
39
|
const smtpHost = source.get('SMTP_HOST');
|
|
39
40
|
const sesRegion = source.get('SES_REGION') ?? source.get('AWS_REGION');
|
|
40
|
-
|
|
41
|
+
// Accept the canonical `SMTPCOM_API_KEY` and the shorter `SMTP_KEY` alias
|
|
42
|
+
// (SMTP.com's dashboard surfaces the latter). Kept in lockstep with
|
|
43
|
+
// `resolveEmailConfigFromEnv()` in `@actuate-media/plugin-email`.
|
|
44
|
+
const smtpComKey = source.get('SMTPCOM_API_KEY') ?? source.get('SMTP_KEY');
|
|
41
45
|
switch (provider) {
|
|
42
46
|
case 'smtp':
|
|
43
47
|
return smtpHost ? 'SMTP' : null;
|
|
@@ -50,7 +54,7 @@ function detectEmailProvider(source) {
|
|
|
50
54
|
case undefined:
|
|
51
55
|
case '':
|
|
52
56
|
// No explicit provider: infer from whichever credentials are present.
|
|
53
|
-
return smtpHost ? 'SMTP' : resend ? 'Resend' : null;
|
|
57
|
+
return smtpHost ? 'SMTP' : smtpComKey ? 'SMTP.com' : resend ? 'Resend' : null;
|
|
54
58
|
default:
|
|
55
59
|
return null;
|
|
56
60
|
}
|
|
@@ -268,7 +272,7 @@ export function validateEnvShape(source = PROCESS_ENV) {
|
|
|
268
272
|
checks.push({
|
|
269
273
|
name: 'RESEND_API_KEY',
|
|
270
274
|
status: 'warn',
|
|
271
|
-
message: 'Optional. No email provider configured (
|
|
275
|
+
message: 'Optional. No email provider configured (RESEND_API_KEY for Resend; EMAIL_PROVIDER=smtp with SMTP_HOST/SMTP_USER/SMTP_PASS for a generic relay; or SMTP_KEY/SMTP_CHANNEL/SMTP_EMAIL for SMTP.com). Transactional email (lead notifications, password reset) is silently skipped.',
|
|
272
276
|
required: false,
|
|
273
277
|
});
|
|
274
278
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/diagnostics/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwBH,MAAM,MAAM,GAAG,gBAAgB,CAAA;AAC/B,MAAM,oBAAoB,GAAG;IAC3B,wBAAwB;IACxB,2BAA2B;IAC3B,cAAc;IACd,UAAU;IACV,OAAO;IACP,uBAAuB;CACxB,CAAA;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AACxD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/diagnostics/env.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -80,6 +80,10 @@ export type { SEOAnalysisResult, SEOCheck, AnalysisInput, ReadabilityResult } fr
|
|
|
80
80
|
export { generateOpenAPISpec } from './api/openapi.js';
|
|
81
81
|
export { generateMetaTags, renderMetaTagsHtml, generateNextMetadata, resolveRobotsDirectives, resolveTitle, getDocumentTitle, generateLlmsTxt, } from './seo/index.js';
|
|
82
82
|
export type { MetaTagInput, RobotsDirectives, RobotsResolutionInput, RobotsSettings, TitleTemplateConfig, TitleVariable, LlmsTxtConfig, LlmsTxtPage, } from './seo/index.js';
|
|
83
|
+
export { calculatePageSeoScore, calculateSiteSeoScore, gradeForSeoScore, PAGE_SEO_WEIGHTS, SITE_SEO_WEIGHTS, runSeoAuditAnalysis, buildQuickWins, issueKeyFor, runAndPersistAudit, gatherAuditEntities, DEFAULT_SEO_MODULE_SETTINGS, resolveSeoModuleSettings, } from './seo/index.js';
|
|
84
|
+
export type { SeoGrade, SeoScoreCheck, PageSeoScoreResult, PageSeoScoreInput, SiteSeoScoreResult, AuditEntityInput, DetectedIssue, SeoAuditResult, SeoModuleSettings, } from './seo/index.js';
|
|
85
|
+
export { normalizeRedirectPath, detectChainsAndLoops, wouldCreateLoop, isRedirectStale, suggestRedirectTarget, } from './redirects/index.js';
|
|
86
|
+
export type { RedirectRecord, DetectedChain, SuggestCandidate } from './redirects/index.js';
|
|
83
87
|
export { hasChildren, validateTree, pageNodeSchema, sectionNodeSchema, containerNodeSchema, rowNodeSchema, columnNodeSchema, blockNodeSchema, savedSectionRefSchema, createId, findNode, findParent, addNode, removeNode, moveNode, updateNodeSettings, updateBlockData, createEmptyPage, createSection, createContainer, createRow, createColumn, createBlock, createSavedSectionRef, BlockCatalog, extractContent, analyzeReadability, analyzeSEO, analyzeDesign, BUILT_IN_TEMPLATES, buildStructurePrompt, buildContentPrompt, buildSEOPrompt, buildAccessibilityPrompt, PAGE_TREE_SCHEMA_REFERENCE, auditAccessibility, fixAccessibility, } from './page-builder/index.js';
|
|
84
88
|
export type { SectionSettings, ContainerSettings, RowSettings, ColumnSettings, BlockSettings, SavedSectionRefSettings, ResponsiveOverrides, PageNode, SectionNode, ContainerNode, RowNode, ColumnNode, BlockNode, SavedSectionRefNode, BuilderNode, NodeType, ParentNode, VariantDefinition, BlockTypeDefinition, PreviewTheme, PageBuilderConfig, TreeValidationResult, ExtractedContent, ReadabilityResult as BuilderReadabilityResult, SEOCheck as BuilderSEOCheck, SEOAnalysis as BuilderSEOAnalysis, PageSettings as BuilderPageSettings, DesignCategory, DesignCheck as BuilderDesignCheck, DesignSuggestion, DesignAnalysis, BuiltInTemplate, GenerationStep, GenerationContext, StepResult, GenerationResult, GenerationProgress, A11yIssue, A11yReport, } from './page-builder/index.js';
|
|
85
89
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -84,6 +84,10 @@ export { analyzeContent, calculateReadability, stripHtmlTags, countSyllables, de
|
|
|
84
84
|
export { generateOpenAPISpec } from './api/openapi.js';
|
|
85
85
|
// SEO
|
|
86
86
|
export { generateMetaTags, renderMetaTagsHtml, generateNextMetadata, resolveRobotsDirectives, resolveTitle, getDocumentTitle, generateLlmsTxt, } from './seo/index.js';
|
|
87
|
+
// SEO Operations Center — scoring, audit engine, config module settings
|
|
88
|
+
export { calculatePageSeoScore, calculateSiteSeoScore, gradeForSeoScore, PAGE_SEO_WEIGHTS, SITE_SEO_WEIGHTS, runSeoAuditAnalysis, buildQuickWins, issueKeyFor, runAndPersistAudit, gatherAuditEntities, DEFAULT_SEO_MODULE_SETTINGS, resolveSeoModuleSettings, } from './seo/index.js';
|
|
89
|
+
// Redirect engine — chain/loop detection, normalization, 404 suggestions
|
|
90
|
+
export { normalizeRedirectPath, detectChainsAndLoops, wouldCreateLoop, isRedirectStale, suggestRedirectTarget, } from './redirects/index.js';
|
|
87
91
|
// Page Builder
|
|
88
92
|
export { hasChildren, validateTree, pageNodeSchema, sectionNodeSchema, containerNodeSchema, rowNodeSchema, columnNodeSchema, blockNodeSchema, savedSectionRefSchema, createId, findNode, findParent, addNode, removeNode, moveNode, updateNodeSettings, updateBlockData, createEmptyPage, createSection, createContainer, createRow, createColumn, createBlock, createSavedSectionRef, BlockCatalog, extractContent, analyzeReadability, analyzeSEO, analyzeDesign, BUILT_IN_TEMPLATES, buildStructurePrompt, buildContentPrompt, buildSEOPrompt, buildAccessibilityPrompt, PAGE_TREE_SCHEMA_REFERENCE, auditAccessibility, fixAccessibility, } from './page-builder/index.js';
|
|
89
93
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/media/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { optimizeImage, getImageMetadata, formatBytes } from './optimize.js';
|
|
2
2
|
export type { OptimizationResult, OptimizeOptions } from './optimize.js';
|
|
3
|
+
export { calculateMediaSeoScore, gradeForScore, isGenericFilename, mediaKind, MEDIA_SEO_WEIGHTS, } from './seo.js';
|
|
4
|
+
export type { MediaKind, MediaSeoGrade, MediaSeoSeverity, MediaSeoIssue, MediaSeoScoreResult, MediaSeoInput, MediaSeoOptions, } from './seo.js';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5E,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5E,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,iBAAiB,GAClB,MAAM,UAAU,CAAA;AACjB,YAAY,EACV,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,eAAe,GAChB,MAAM,UAAU,CAAA"}
|
package/dist/media/index.js
CHANGED
package/dist/media/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE5E,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,iBAAiB,GAClB,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media SEO scoring.
|
|
3
|
+
*
|
|
4
|
+
* Pure, dependency-free functions that derive an SEO score and a list of
|
|
5
|
+
* actionable issues from a media asset's metadata. The score is intentionally
|
|
6
|
+
* *derived* (never persisted) so it can never drift out of sync with the
|
|
7
|
+
* underlying metadata — every read recomputes it from the current fields.
|
|
8
|
+
*
|
|
9
|
+
* The weights below are the contract the admin SEO drawer, the SEO Audit
|
|
10
|
+
* table, and the `validateMediaSEO` MCP tool all share. Changing a weight is a
|
|
11
|
+
* behavioural change to every surface that shows a media score, so keep the
|
|
12
|
+
* unit tests in `__tests__/seo.test.ts` as the source of truth.
|
|
13
|
+
*/
|
|
14
|
+
/** Coarse asset class derived from a MIME type. */
|
|
15
|
+
export type MediaKind = 'image' | 'video' | 'pdf' | 'svg' | 'audio' | 'other';
|
|
16
|
+
export type MediaSeoGrade = 'good' | 'needs-work' | 'poor' | 'critical';
|
|
17
|
+
export type MediaSeoSeverity = 'critical' | 'high' | 'medium' | 'low';
|
|
18
|
+
/** A single, actionable SEO problem with a stable machine-readable `type`. */
|
|
19
|
+
export interface MediaSeoIssue {
|
|
20
|
+
/** Stable identifier, e.g. `missing-alt`. Safe to switch/route on. */
|
|
21
|
+
type: string;
|
|
22
|
+
severity: MediaSeoSeverity;
|
|
23
|
+
/** Human-readable, operator-safe description. */
|
|
24
|
+
message: string;
|
|
25
|
+
/** The asset field this issue maps to, when applicable. */
|
|
26
|
+
field?: string;
|
|
27
|
+
/** Whether the AI metadata flow can plausibly fix this issue. */
|
|
28
|
+
fixableWithAI: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface MediaSeoScoreResult {
|
|
31
|
+
/** 0–100, integer. */
|
|
32
|
+
score: number;
|
|
33
|
+
grade: MediaSeoGrade;
|
|
34
|
+
issues: MediaSeoIssue[];
|
|
35
|
+
}
|
|
36
|
+
/** The metadata subset the score depends on. */
|
|
37
|
+
export interface MediaSeoInput {
|
|
38
|
+
fileName?: string | null;
|
|
39
|
+
mimeType?: string | null;
|
|
40
|
+
altText?: string | null;
|
|
41
|
+
title?: string | null;
|
|
42
|
+
caption?: string | null;
|
|
43
|
+
description?: string | null;
|
|
44
|
+
focusKeyword?: string | null;
|
|
45
|
+
sizeBytes?: number | null;
|
|
46
|
+
width?: number | null;
|
|
47
|
+
height?: number | null;
|
|
48
|
+
}
|
|
49
|
+
export interface MediaSeoOptions {
|
|
50
|
+
/**
|
|
51
|
+
* Bytes above which an image is flagged as oversized. Defaults to 2 MB —
|
|
52
|
+
* large enough to allow a quality hero image, small enough to flag
|
|
53
|
+
* un-optimised originals. Set from `config.media.maxImageSeoBytes`.
|
|
54
|
+
*/
|
|
55
|
+
maxImageBytes?: number;
|
|
56
|
+
}
|
|
57
|
+
/** SEO weights. Must sum to 100. */
|
|
58
|
+
export declare const MEDIA_SEO_WEIGHTS: {
|
|
59
|
+
readonly altText: 30;
|
|
60
|
+
readonly title: 20;
|
|
61
|
+
readonly description: 20;
|
|
62
|
+
readonly caption: 10;
|
|
63
|
+
readonly descriptiveFileName: 10;
|
|
64
|
+
readonly focusKeyword: 10;
|
|
65
|
+
};
|
|
66
|
+
/** Map a MIME type to a coarse {@link MediaKind}. */
|
|
67
|
+
export declare function mediaKind(mimeType?: string | null): MediaKind;
|
|
68
|
+
/**
|
|
69
|
+
* Whether a filename is generic/non-descriptive (e.g. `IMG_4892.jpg`). A
|
|
70
|
+
* descriptive name needs at least one alphabetic run of 3+ chars and must not
|
|
71
|
+
* match a known camera/screenshot/default pattern.
|
|
72
|
+
*/
|
|
73
|
+
export declare function isGenericFilename(fileName?: string | null): boolean;
|
|
74
|
+
/** Map a numeric score to a grade bucket. */
|
|
75
|
+
export declare function gradeForScore(score: number): MediaSeoGrade;
|
|
76
|
+
/**
|
|
77
|
+
* Compute the SEO score (0–100) and issue list for a media asset.
|
|
78
|
+
*
|
|
79
|
+
* Scoring (weights in {@link MEDIA_SEO_WEIGHTS}, sum 100):
|
|
80
|
+
* alt text +30, title +20, description +20, caption +10,
|
|
81
|
+
* descriptive filename +10, focus keyword +10.
|
|
82
|
+
*
|
|
83
|
+
* Issues are additive context and do not subtract from the score directly —
|
|
84
|
+
* e.g. an oversized image still scores on metadata, but surfaces an
|
|
85
|
+
* `oversized-image` issue operators can act on.
|
|
86
|
+
*/
|
|
87
|
+
export declare function calculateMediaSeoScore(input: MediaSeoInput, options?: MediaSeoOptions): MediaSeoScoreResult;
|
|
88
|
+
//# sourceMappingURL=seo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/media/seo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,mDAAmD;AACnD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAA;AAE7E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,CAAA;AAEvE,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;AAErE,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,aAAa,CAAA;IACpB,MAAM,EAAE,aAAa,EAAE,CAAA;CACxB;AAED,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAID,oCAAoC;AACpC,eAAO,MAAM,iBAAiB;;;;;;;CAOpB,CAAA;AAqCV,qDAAqD;AACrD,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAQ7D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAQnE;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAK1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,eAAoB,GAC5B,mBAAmB,CA8GrB"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media SEO scoring.
|
|
3
|
+
*
|
|
4
|
+
* Pure, dependency-free functions that derive an SEO score and a list of
|
|
5
|
+
* actionable issues from a media asset's metadata. The score is intentionally
|
|
6
|
+
* *derived* (never persisted) so it can never drift out of sync with the
|
|
7
|
+
* underlying metadata — every read recomputes it from the current fields.
|
|
8
|
+
*
|
|
9
|
+
* The weights below are the contract the admin SEO drawer, the SEO Audit
|
|
10
|
+
* table, and the `validateMediaSEO` MCP tool all share. Changing a weight is a
|
|
11
|
+
* behavioural change to every surface that shows a media score, so keep the
|
|
12
|
+
* unit tests in `__tests__/seo.test.ts` as the source of truth.
|
|
13
|
+
*/
|
|
14
|
+
const DEFAULT_MAX_IMAGE_BYTES = 2 * 1024 * 1024;
|
|
15
|
+
/** SEO weights. Must sum to 100. */
|
|
16
|
+
export const MEDIA_SEO_WEIGHTS = {
|
|
17
|
+
altText: 30,
|
|
18
|
+
title: 20,
|
|
19
|
+
description: 20,
|
|
20
|
+
caption: 10,
|
|
21
|
+
descriptiveFileName: 10,
|
|
22
|
+
focusKeyword: 10,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Filenames that carry no semantic value. These come straight off cameras,
|
|
26
|
+
* screenshot tools, and "save as" defaults, so they neither help users nor
|
|
27
|
+
* search engines. Matched case-insensitively against the name without its
|
|
28
|
+
* extension.
|
|
29
|
+
*/
|
|
30
|
+
const GENERIC_FILENAME_PATTERNS = [
|
|
31
|
+
/^img[-_ ]?\d+$/i, // IMG_4892
|
|
32
|
+
/^dsc[-_ ]?\d+$/i, // DSC_0001
|
|
33
|
+
/^dscf\d+$/i, // DSCF1234 (Fujifilm)
|
|
34
|
+
/^p\d{6,}$/i, // P1010101
|
|
35
|
+
/^image[-_ ]?\d*$/i, // image, image1
|
|
36
|
+
/^photo[-_ ]?\d*$/i, // photo, photo-2
|
|
37
|
+
/^pic[-_ ]?\d*$/i,
|
|
38
|
+
/^untitled[-_ ]?\d*$/i,
|
|
39
|
+
/^screen[-_ ]?shot.*$/i, // Screen Shot 2024-...
|
|
40
|
+
/^screenshot.*$/i,
|
|
41
|
+
/^download[-_ ]?\d*$/i,
|
|
42
|
+
/^file[-_ ]?\d*$/i,
|
|
43
|
+
/^new[-_ ]?\d+$/i,
|
|
44
|
+
/^\d+$/i, // 12345
|
|
45
|
+
/^[a-f0-9]{8,}$/i, // hex blobs / hashes
|
|
46
|
+
];
|
|
47
|
+
/** True when `value` is a non-empty string after trimming. */
|
|
48
|
+
function present(value) {
|
|
49
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
50
|
+
}
|
|
51
|
+
/** Strip a single trailing extension from a filename. */
|
|
52
|
+
function stripExtension(name) {
|
|
53
|
+
const dot = name.lastIndexOf('.');
|
|
54
|
+
return dot > 0 ? name.slice(0, dot) : name;
|
|
55
|
+
}
|
|
56
|
+
/** Map a MIME type to a coarse {@link MediaKind}. */
|
|
57
|
+
export function mediaKind(mimeType) {
|
|
58
|
+
const mime = (mimeType ?? '').toLowerCase();
|
|
59
|
+
if (mime === 'image/svg+xml')
|
|
60
|
+
return 'svg';
|
|
61
|
+
if (mime.startsWith('image/'))
|
|
62
|
+
return 'image';
|
|
63
|
+
if (mime.startsWith('video/'))
|
|
64
|
+
return 'video';
|
|
65
|
+
if (mime.startsWith('audio/'))
|
|
66
|
+
return 'audio';
|
|
67
|
+
if (mime === 'application/pdf')
|
|
68
|
+
return 'pdf';
|
|
69
|
+
return 'other';
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Whether a filename is generic/non-descriptive (e.g. `IMG_4892.jpg`). A
|
|
73
|
+
* descriptive name needs at least one alphabetic run of 3+ chars and must not
|
|
74
|
+
* match a known camera/screenshot/default pattern.
|
|
75
|
+
*/
|
|
76
|
+
export function isGenericFilename(fileName) {
|
|
77
|
+
if (!present(fileName))
|
|
78
|
+
return true;
|
|
79
|
+
const base = stripExtension(String(fileName).trim());
|
|
80
|
+
if (base.length === 0)
|
|
81
|
+
return true;
|
|
82
|
+
if (GENERIC_FILENAME_PATTERNS.some((re) => re.test(base)))
|
|
83
|
+
return true;
|
|
84
|
+
// Require some real word content: at least three consecutive letters.
|
|
85
|
+
if (!/[a-z]{3,}/i.test(base))
|
|
86
|
+
return true;
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
/** Map a numeric score to a grade bucket. */
|
|
90
|
+
export function gradeForScore(score) {
|
|
91
|
+
if (score >= 80)
|
|
92
|
+
return 'good';
|
|
93
|
+
if (score >= 60)
|
|
94
|
+
return 'needs-work';
|
|
95
|
+
if (score >= 1)
|
|
96
|
+
return 'poor';
|
|
97
|
+
return 'critical';
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Compute the SEO score (0–100) and issue list for a media asset.
|
|
101
|
+
*
|
|
102
|
+
* Scoring (weights in {@link MEDIA_SEO_WEIGHTS}, sum 100):
|
|
103
|
+
* alt text +30, title +20, description +20, caption +10,
|
|
104
|
+
* descriptive filename +10, focus keyword +10.
|
|
105
|
+
*
|
|
106
|
+
* Issues are additive context and do not subtract from the score directly —
|
|
107
|
+
* e.g. an oversized image still scores on metadata, but surfaces an
|
|
108
|
+
* `oversized-image` issue operators can act on.
|
|
109
|
+
*/
|
|
110
|
+
export function calculateMediaSeoScore(input, options = {}) {
|
|
111
|
+
const kind = mediaKind(input.mimeType);
|
|
112
|
+
const maxImageBytes = options.maxImageBytes ?? DEFAULT_MAX_IMAGE_BYTES;
|
|
113
|
+
const hasAlt = present(input.altText);
|
|
114
|
+
const hasTitle = present(input.title);
|
|
115
|
+
const hasDescription = present(input.description);
|
|
116
|
+
const hasCaption = present(input.caption);
|
|
117
|
+
const hasFocusKeyword = present(input.focusKeyword);
|
|
118
|
+
const genericName = isGenericFilename(input.fileName);
|
|
119
|
+
let score = 0;
|
|
120
|
+
if (hasAlt)
|
|
121
|
+
score += MEDIA_SEO_WEIGHTS.altText;
|
|
122
|
+
if (hasTitle)
|
|
123
|
+
score += MEDIA_SEO_WEIGHTS.title;
|
|
124
|
+
if (hasDescription)
|
|
125
|
+
score += MEDIA_SEO_WEIGHTS.description;
|
|
126
|
+
if (hasCaption)
|
|
127
|
+
score += MEDIA_SEO_WEIGHTS.caption;
|
|
128
|
+
if (!genericName)
|
|
129
|
+
score += MEDIA_SEO_WEIGHTS.descriptiveFileName;
|
|
130
|
+
if (hasFocusKeyword)
|
|
131
|
+
score += MEDIA_SEO_WEIGHTS.focusKeyword;
|
|
132
|
+
score = Math.max(0, Math.min(100, Math.round(score)));
|
|
133
|
+
const issues = [];
|
|
134
|
+
// Alt text matters most for images/SVGs (screen readers + image search).
|
|
135
|
+
if (!hasAlt && (kind === 'image' || kind === 'svg')) {
|
|
136
|
+
issues.push({
|
|
137
|
+
type: 'missing-alt',
|
|
138
|
+
severity: 'high',
|
|
139
|
+
message: 'Add alt text describing this image for accessibility and image search.',
|
|
140
|
+
field: 'altText',
|
|
141
|
+
fixableWithAI: true,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
if (!hasTitle) {
|
|
145
|
+
issues.push({
|
|
146
|
+
type: 'missing-title',
|
|
147
|
+
severity: 'medium',
|
|
148
|
+
message: 'Add a title to give this asset a clear, human-readable label.',
|
|
149
|
+
field: 'title',
|
|
150
|
+
fixableWithAI: true,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
if (!hasDescription) {
|
|
154
|
+
issues.push({
|
|
155
|
+
type: 'missing-description',
|
|
156
|
+
severity: 'medium',
|
|
157
|
+
message: 'Add a description to provide richer context for search and reuse.',
|
|
158
|
+
field: 'description',
|
|
159
|
+
fixableWithAI: true,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
if (genericName) {
|
|
163
|
+
issues.push({
|
|
164
|
+
type: 'generic-filename',
|
|
165
|
+
severity: 'low',
|
|
166
|
+
message: 'Rename to a descriptive filename — generic names like IMG_4892 hurt SEO.',
|
|
167
|
+
field: 'fileName',
|
|
168
|
+
fixableWithAI: true,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
if (kind === 'image' && typeof input.sizeBytes === 'number' && input.sizeBytes > maxImageBytes) {
|
|
172
|
+
issues.push({
|
|
173
|
+
type: 'oversized-image',
|
|
174
|
+
severity: 'medium',
|
|
175
|
+
message: 'Image is large — optimise it to improve page load performance.',
|
|
176
|
+
field: 'sizeBytes',
|
|
177
|
+
fixableWithAI: false,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
// Video accessibility: captions/transcript. We track this as caption today.
|
|
181
|
+
if (kind === 'video' && !hasCaption) {
|
|
182
|
+
issues.push({
|
|
183
|
+
type: 'missing-video-caption',
|
|
184
|
+
severity: 'medium',
|
|
185
|
+
message: 'Add a caption or transcript reference for this video.',
|
|
186
|
+
field: 'caption',
|
|
187
|
+
fixableWithAI: false,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
if (kind === 'pdf' && !hasTitle) {
|
|
191
|
+
// Already emitted missing-title above; no duplicate. Kept for clarity that
|
|
192
|
+
// PDFs are intentionally covered by the generic title check.
|
|
193
|
+
}
|
|
194
|
+
// Surface the overall verdict as an issue when the score is weak, so the
|
|
195
|
+
// audit table can show a single "poor score" row chip.
|
|
196
|
+
const grade = gradeForScore(score);
|
|
197
|
+
if (grade === 'critical') {
|
|
198
|
+
issues.push({
|
|
199
|
+
type: 'critical-score',
|
|
200
|
+
severity: 'critical',
|
|
201
|
+
message: 'No SEO metadata set. This asset is invisible to search and assistive tech.',
|
|
202
|
+
fixableWithAI: true,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
else if (grade === 'poor') {
|
|
206
|
+
issues.push({
|
|
207
|
+
type: 'poor-score',
|
|
208
|
+
severity: 'high',
|
|
209
|
+
message: 'Low SEO score — fill in the missing metadata fields below.',
|
|
210
|
+
fixableWithAI: true,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return { score, grade, issues };
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=seo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seo.js","sourceRoot":"","sources":["../../src/media/seo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoDH,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAE/C,oCAAoC;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,EAAE;IACX,mBAAmB,EAAE,EAAE;IACvB,YAAY,EAAE,EAAE;CACR,CAAA;AAEV;;;;;GAKG;AACH,MAAM,yBAAyB,GAAa;IAC1C,iBAAiB,EAAE,WAAW;IAC9B,iBAAiB,EAAE,WAAW;IAC9B,YAAY,EAAE,sBAAsB;IACpC,YAAY,EAAE,WAAW;IACzB,mBAAmB,EAAE,gBAAgB;IACrC,mBAAmB,EAAE,iBAAiB;IACtC,iBAAiB;IACjB,sBAAsB;IACtB,uBAAuB,EAAE,uBAAuB;IAChD,iBAAiB;IACjB,sBAAsB;IACtB,kBAAkB;IAClB,iBAAiB;IACjB,QAAQ,EAAE,QAAQ;IAClB,iBAAiB,EAAE,qBAAqB;CACzC,CAAA;AAED,8DAA8D;AAC9D,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AAC7D,CAAC;AAED,yDAAyD;AACzD,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACjC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,SAAS,CAAC,QAAwB;IAChD,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3C,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,KAAK,CAAA;IAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC7C,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAA;IAC5C,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAwB;IACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IACnC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACtE,sEAAsE;IACtE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACzC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,MAAM,CAAA;IAC9B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,YAAY,CAAA;IACpC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,MAAM,CAAA;IAC7B,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAoB,EACpB,UAA2B,EAAE;IAE7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,uBAAuB,CAAA;IAEtE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAErD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,MAAM;QAAE,KAAK,IAAI,iBAAiB,CAAC,OAAO,CAAA;IAC9C,IAAI,QAAQ;QAAE,KAAK,IAAI,iBAAiB,CAAC,KAAK,CAAA;IAC9C,IAAI,cAAc;QAAE,KAAK,IAAI,iBAAiB,CAAC,WAAW,CAAA;IAC1D,IAAI,UAAU;QAAE,KAAK,IAAI,iBAAiB,CAAC,OAAO,CAAA;IAClD,IAAI,CAAC,WAAW;QAAE,KAAK,IAAI,iBAAiB,CAAC,mBAAmB,CAAA;IAChE,IAAI,eAAe;QAAE,KAAK,IAAI,iBAAiB,CAAC,YAAY,CAAA;IAE5D,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAErD,MAAM,MAAM,GAAoB,EAAE,CAAA;IAElC,yEAAyE;IACzE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,wEAAwE;YACjF,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,+DAA+D;YACxE,KAAK,EAAE,OAAO;YACd,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,mEAAmE;YAC5E,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,0EAA0E;YACnF,KAAK,EAAE,UAAU;YACjB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,GAAG,aAAa,EAAE,CAAC;QAC/F,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,gEAAgE;YACzE,KAAK,EAAE,WAAW;YAClB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAA;IACJ,CAAC;IAED,4EAA4E;IAC5E,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,uDAAuD;YAChE,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,2EAA2E;QAC3E,6DAA6D;IAC/D,CAAC;IAED,yEAAyE;IACzE,uDAAuD;IACvD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,4EAA4E;YACrF,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;IACJ,CAAC;SAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,4DAA4D;YACrE,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AACjC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redirect graph utilities — pure functions for chain/loop detection,
|
|
3
|
+
* loop-prevention on write, path normalization, and stale detection.
|
|
4
|
+
*
|
|
5
|
+
* Lives in cms-core (not plugin-redirects) because the API layer needs it and
|
|
6
|
+
* the dependency direction forbids core importing a plugin. The plugin's
|
|
7
|
+
* request-time middleware can stay independent.
|
|
8
|
+
*/
|
|
9
|
+
export interface RedirectRecord {
|
|
10
|
+
id: string;
|
|
11
|
+
from: string;
|
|
12
|
+
to: string;
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
statusCode?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Normalize a path for matching: drop query/hash, ensure a single leading
|
|
18
|
+
* slash, strip a trailing slash (except root), and lowercase. External
|
|
19
|
+
* absolute URLs are returned lowercased without a forced leading slash.
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeRedirectPath(input: string): string;
|
|
22
|
+
/** True when a redirect points to an external (absolute) destination. */
|
|
23
|
+
export declare function isExternal(to: string): boolean;
|
|
24
|
+
interface Edge {
|
|
25
|
+
to: string;
|
|
26
|
+
toNorm: string;
|
|
27
|
+
id: string;
|
|
28
|
+
}
|
|
29
|
+
/** Build a normalized from -> edge map of enabled rules. */
|
|
30
|
+
export declare function buildEdgeMap(rules: RedirectRecord[]): Map<string, Edge>;
|
|
31
|
+
export interface ChainResolution {
|
|
32
|
+
/** Normalized path sequence, starting at `start`. */
|
|
33
|
+
hops: string[];
|
|
34
|
+
/** Final destination (normalized) the chain settles on, or the loop entry. */
|
|
35
|
+
terminal: string;
|
|
36
|
+
/** True when a cycle was detected. */
|
|
37
|
+
loop: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Follow the redirect map from `start` until a path with no further mapping
|
|
41
|
+
* (terminal) or a cycle is reached. Bounded by `maxHops`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function resolveChain(map: Map<string, Edge>, start: string, maxHops?: number): ChainResolution;
|
|
44
|
+
export interface DetectedChain {
|
|
45
|
+
id: string;
|
|
46
|
+
kind: 'chain' | 'loop';
|
|
47
|
+
/** Full hop sequence (normalized paths). */
|
|
48
|
+
hops: string[];
|
|
49
|
+
/** Suggested single-hop source. */
|
|
50
|
+
suggestedFrom: string;
|
|
51
|
+
/** Suggested single-hop destination (final terminal, or loop break). */
|
|
52
|
+
suggestedTo: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Detect multi-hop chains (3+ nodes => 2+ redirects) and loops across the
|
|
56
|
+
* rule set. Returns one entry per chain/loop keyed by a stable id derived from
|
|
57
|
+
* the starting source.
|
|
58
|
+
*/
|
|
59
|
+
export declare function detectChainsAndLoops(rules: RedirectRecord[]): DetectedChain[];
|
|
60
|
+
/**
|
|
61
|
+
* Would adding (or updating to) `from -> to` create a loop or self-redirect?
|
|
62
|
+
* Simulates the new edge over the existing rule set.
|
|
63
|
+
*/
|
|
64
|
+
export declare function wouldCreateLoop(rules: RedirectRecord[], from: string, to: string, ignoreId?: string): boolean;
|
|
65
|
+
/** A redirect is stale when it hasn't been hit in 60+ days. */
|
|
66
|
+
export declare function isRedirectStale(lastHitAt: Date | string | null | undefined, now?: Date): boolean;
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/redirects/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS3D;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;CACX;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CASvE;AAED,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAA;IAChB,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAA;CACd;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,eAAe,CAoBjG;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,GAAG,MAAM,CAAA;IACtB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,CAgC7E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EAAE,EACvB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAWT;AAID,+DAA+D;AAC/D,wBAAgB,eAAe,CAC7B,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC3C,GAAG,OAAa,GACf,OAAO,CAMT"}
|