@orion-studios/payload-seo-audit 1.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.
Files changed (165) hide show
  1. package/README.md +127 -0
  2. package/bin/init.js +267 -0
  3. package/dist/api/backlinks-import.d.ts +4 -0
  4. package/dist/api/backlinks-import.d.ts.map +1 -0
  5. package/dist/api/backlinks-import.js +182 -0
  6. package/dist/api/cron.d.ts +4 -0
  7. package/dist/api/cron.d.ts.map +1 -0
  8. package/dist/api/cron.js +89 -0
  9. package/dist/api/index.d.ts +10 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api/index.js +21 -0
  12. package/dist/api/page-result.d.ts +4 -0
  13. package/dist/api/page-result.d.ts.map +1 -0
  14. package/dist/api/page-result.js +93 -0
  15. package/dist/api/page-results.d.ts +4 -0
  16. package/dist/api/page-results.d.ts.map +1 -0
  17. package/dist/api/page-results.js +83 -0
  18. package/dist/api/run-stream.d.ts +4 -0
  19. package/dist/api/run-stream.d.ts.map +1 -0
  20. package/dist/api/run-stream.js +273 -0
  21. package/dist/api/run.d.ts +4 -0
  22. package/dist/api/run.d.ts.map +1 -0
  23. package/dist/api/run.js +102 -0
  24. package/dist/api/snapshot-report.d.ts +4 -0
  25. package/dist/api/snapshot-report.d.ts.map +1 -0
  26. package/dist/api/snapshot-report.js +130 -0
  27. package/dist/api/snapshots.d.ts +4 -0
  28. package/dist/api/snapshots.d.ts.map +1 -0
  29. package/dist/api/snapshots.js +138 -0
  30. package/dist/api/trend.d.ts +4 -0
  31. package/dist/api/trend.d.ts.map +1 -0
  32. package/dist/api/trend.js +71 -0
  33. package/dist/collections/SeoAuthoritySnapshots.d.ts +3 -0
  34. package/dist/collections/SeoAuthoritySnapshots.d.ts.map +1 -0
  35. package/dist/collections/SeoAuthoritySnapshots.js +83 -0
  36. package/dist/collections/SeoKeywordVisibility.d.ts +3 -0
  37. package/dist/collections/SeoKeywordVisibility.d.ts.map +1 -0
  38. package/dist/collections/SeoKeywordVisibility.js +65 -0
  39. package/dist/collections/SeoPageResults.d.ts +3 -0
  40. package/dist/collections/SeoPageResults.d.ts.map +1 -0
  41. package/dist/collections/SeoPageResults.js +170 -0
  42. package/dist/collections/SeoSnapshots.d.ts +3 -0
  43. package/dist/collections/SeoSnapshots.d.ts.map +1 -0
  44. package/dist/collections/SeoSnapshots.js +131 -0
  45. package/dist/components/hooks/useSeoApi.d.ts +7 -0
  46. package/dist/components/hooks/useSeoApi.d.ts.map +1 -0
  47. package/dist/components/hooks/useSeoApi.js +31 -0
  48. package/dist/components/hooks/useSeoPageResults.d.ts +19 -0
  49. package/dist/components/hooks/useSeoPageResults.d.ts.map +1 -0
  50. package/dist/components/hooks/useSeoPageResults.js +62 -0
  51. package/dist/components/hooks/useSeoSnapshot.d.ts +8 -0
  52. package/dist/components/hooks/useSeoSnapshot.d.ts.map +1 -0
  53. package/dist/components/hooks/useSeoSnapshot.js +39 -0
  54. package/dist/components/hooks/useSeoTrend.d.ts +8 -0
  55. package/dist/components/hooks/useSeoTrend.d.ts.map +1 -0
  56. package/dist/components/hooks/useSeoTrend.js +38 -0
  57. package/dist/components/layout/SeoReportHeader.d.ts +10 -0
  58. package/dist/components/layout/SeoReportHeader.d.ts.map +1 -0
  59. package/dist/components/layout/SeoReportHeader.js +18 -0
  60. package/dist/components/layout/SeoReportShell.d.ts +9 -0
  61. package/dist/components/layout/SeoReportShell.d.ts.map +1 -0
  62. package/dist/components/layout/SeoReportShell.js +17 -0
  63. package/dist/components/pdf/PdfDownloadButton.d.ts +9 -0
  64. package/dist/components/pdf/PdfDownloadButton.d.ts.map +1 -0
  65. package/dist/components/pdf/PdfDownloadButton.js +80 -0
  66. package/dist/components/tables/IssueTable.d.ts +11 -0
  67. package/dist/components/tables/IssueTable.d.ts.map +1 -0
  68. package/dist/components/tables/IssueTable.js +121 -0
  69. package/dist/components/tables/PageResultsTable.d.ts +18 -0
  70. package/dist/components/tables/PageResultsTable.d.ts.map +1 -0
  71. package/dist/components/tables/PageResultsTable.js +96 -0
  72. package/dist/components/types.d.ts +107 -0
  73. package/dist/components/types.d.ts.map +1 -0
  74. package/dist/components/types.js +22 -0
  75. package/dist/components/utils/formatters.d.ts +15 -0
  76. package/dist/components/utils/formatters.d.ts.map +1 -0
  77. package/dist/components/utils/formatters.js +98 -0
  78. package/dist/components/utils/scoreHelpers.d.ts +17 -0
  79. package/dist/components/utils/scoreHelpers.d.ts.map +1 -0
  80. package/dist/components/utils/scoreHelpers.js +139 -0
  81. package/dist/components/views/SeoDashboard.d.ts +3 -0
  82. package/dist/components/views/SeoDashboard.d.ts.map +1 -0
  83. package/dist/components/views/SeoDashboard.js +239 -0
  84. package/dist/components/views/SeoPageReport.d.ts +3 -0
  85. package/dist/components/views/SeoPageReport.d.ts.map +1 -0
  86. package/dist/components/views/SeoPageReport.js +234 -0
  87. package/dist/components/views/SeoSnapshotReport.d.ts +3 -0
  88. package/dist/components/views/SeoSnapshotReport.d.ts.map +1 -0
  89. package/dist/components/views/SeoSnapshotReport.js +224 -0
  90. package/dist/components/visualization/CategoryScoreCard.d.ts +11 -0
  91. package/dist/components/visualization/CategoryScoreCard.d.ts.map +1 -0
  92. package/dist/components/visualization/CategoryScoreCard.js +17 -0
  93. package/dist/components/visualization/CategoryScoreGrid.d.ts +9 -0
  94. package/dist/components/visualization/CategoryScoreGrid.d.ts.map +1 -0
  95. package/dist/components/visualization/CategoryScoreGrid.js +32 -0
  96. package/dist/components/visualization/IssueCategoryChart.d.ts +8 -0
  97. package/dist/components/visualization/IssueCategoryChart.d.ts.map +1 -0
  98. package/dist/components/visualization/IssueCategoryChart.js +47 -0
  99. package/dist/components/visualization/MetricCard.d.ts +11 -0
  100. package/dist/components/visualization/MetricCard.d.ts.map +1 -0
  101. package/dist/components/visualization/MetricCard.js +17 -0
  102. package/dist/components/visualization/MetricCardRow.d.ts +7 -0
  103. package/dist/components/visualization/MetricCardRow.d.ts.map +1 -0
  104. package/dist/components/visualization/MetricCardRow.js +12 -0
  105. package/dist/components/visualization/ScoreBar.d.ts +11 -0
  106. package/dist/components/visualization/ScoreBar.d.ts.map +1 -0
  107. package/dist/components/visualization/ScoreBar.js +34 -0
  108. package/dist/components/visualization/ScoreGauge.d.ts +11 -0
  109. package/dist/components/visualization/ScoreGauge.d.ts.map +1 -0
  110. package/dist/components/visualization/ScoreGauge.js +28 -0
  111. package/dist/components/visualization/ScoreTrendChart.d.ts +9 -0
  112. package/dist/components/visualization/ScoreTrendChart.d.ts.map +1 -0
  113. package/dist/components/visualization/ScoreTrendChart.js +43 -0
  114. package/dist/components/visualization/SeverityBadge.d.ts +8 -0
  115. package/dist/components/visualization/SeverityBadge.d.ts.map +1 -0
  116. package/dist/components/visualization/SeverityBadge.js +14 -0
  117. package/dist/config.d.ts +38 -0
  118. package/dist/config.d.ts.map +1 -0
  119. package/dist/config.js +36 -0
  120. package/dist/exports/components.d.ts +4 -0
  121. package/dist/exports/components.d.ts.map +1 -0
  122. package/dist/exports/components.js +9 -0
  123. package/dist/globals/SeoDashboard.d.ts +3 -0
  124. package/dist/globals/SeoDashboard.d.ts.map +1 -0
  125. package/dist/globals/SeoDashboard.js +25 -0
  126. package/dist/index.d.ts +6 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +39 -0
  129. package/dist/utilities/access.d.ts +8 -0
  130. package/dist/utilities/access.d.ts.map +1 -0
  131. package/dist/utilities/access.js +11 -0
  132. package/dist/utilities/auth.d.ts +7 -0
  133. package/dist/utilities/auth.d.ts.map +1 -0
  134. package/dist/utilities/auth.js +28 -0
  135. package/dist/utilities/checks.d.ts +3 -0
  136. package/dist/utilities/checks.d.ts.map +1 -0
  137. package/dist/utilities/checks.js +255 -0
  138. package/dist/utilities/crawler.d.ts +14 -0
  139. package/dist/utilities/crawler.d.ts.map +1 -0
  140. package/dist/utilities/crawler.js +152 -0
  141. package/dist/utilities/gsc.d.ts +15 -0
  142. package/dist/utilities/gsc.d.ts.map +1 -0
  143. package/dist/utilities/gsc.js +69 -0
  144. package/dist/utilities/helpers.d.ts +7 -0
  145. package/dist/utilities/helpers.d.ts.map +1 -0
  146. package/dist/utilities/helpers.js +44 -0
  147. package/dist/utilities/pagespeed.d.ts +3 -0
  148. package/dist/utilities/pagespeed.d.ts.map +1 -0
  149. package/dist/utilities/pagespeed.js +49 -0
  150. package/dist/utilities/providers.d.ts +3 -0
  151. package/dist/utilities/providers.d.ts.map +1 -0
  152. package/dist/utilities/providers.js +18 -0
  153. package/dist/utilities/runAudit.d.ts +14 -0
  154. package/dist/utilities/runAudit.d.ts.map +1 -0
  155. package/dist/utilities/runAudit.js +224 -0
  156. package/dist/utilities/scoring.d.ts +3 -0
  157. package/dist/utilities/scoring.d.ts.map +1 -0
  158. package/dist/utilities/scoring.js +45 -0
  159. package/dist/utilities/triggers.d.ts +3 -0
  160. package/dist/utilities/triggers.d.ts.map +1 -0
  161. package/dist/utilities/triggers.js +39 -0
  162. package/dist/utilities/types.d.ts +87 -0
  163. package/dist/utilities/types.d.ts.map +1 -0
  164. package/dist/utilities/types.js +2 -0
  165. package/package.json +63 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scoreSEOIssues = void 0;
4
+ const helpers_1 = require("../utilities/helpers");
5
+ const categories = [
6
+ 'metadata',
7
+ 'indexability',
8
+ 'structure',
9
+ 'links',
10
+ 'media',
11
+ 'structuredData',
12
+ 'performance',
13
+ ];
14
+ const scoreCategory = (issues, category) => {
15
+ const penalty = issues
16
+ .filter((issue) => issue.category === category)
17
+ .reduce((sum, issue) => sum + helpers_1.severityWeights[issue.severity], 0);
18
+ return Math.max(0, Math.min(100, 100 - penalty));
19
+ };
20
+ const scoreSEOIssues = (issues) => {
21
+ const scores = categories.reduce((acc, category) => {
22
+ acc[category] = scoreCategory(issues, category);
23
+ return acc;
24
+ }, {
25
+ metadata: 100,
26
+ indexability: 100,
27
+ structure: 100,
28
+ links: 100,
29
+ media: 100,
30
+ structuredData: 100,
31
+ performance: 100,
32
+ });
33
+ const weightedOverall = scores.metadata * 0.2 +
34
+ scores.indexability * 0.2 +
35
+ scores.structure * 0.15 +
36
+ scores.links * 0.1 +
37
+ scores.media * 0.1 +
38
+ scores.structuredData * 0.1 +
39
+ scores.performance * 0.15;
40
+ return {
41
+ ...scores,
42
+ overall: Math.round(weightedOverall),
43
+ };
44
+ };
45
+ exports.scoreSEOIssues = scoreSEOIssues;
@@ -0,0 +1,3 @@
1
+ export declare const triggerSeoAuditForCollection: (slug: string) => Promise<void>;
2
+ export declare const triggerSeoAuditForGlobal: (slug: string) => Promise<void>;
3
+ //# sourceMappingURL=triggers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../../src/utilities/triggers.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,4BAA4B,GAAU,MAAM,MAAM,kBAG9D,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,MAAM,MAAM,kBAG1D,CAAA"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.triggerSeoAuditForGlobal = exports.triggerSeoAuditForCollection = void 0;
4
+ const SEO_TRIGGER_COLLECTIONS = new Set(['projects', 'services', 'posts', 'authors', 'categories', 'tags']);
5
+ const SEO_TRIGGER_GLOBALS = new Set(['home', 'services-page', 'work-page', 'blog-page', 'about', 'contact']);
6
+ const shouldTriggerFromCollection = (slug) => SEO_TRIGGER_COLLECTIONS.has(slug);
7
+ const shouldTriggerFromGlobal = (slug) => SEO_TRIGGER_GLOBALS.has(slug);
8
+ const getBaseUrl = () => (process.env.NEXT_PUBLIC_SERVER_URL || '').replace(/\/$/, '');
9
+ const triggerSEOAudit = async () => {
10
+ const baseUrl = getBaseUrl();
11
+ const secret = process.env.SEO_AUDIT_SECRET;
12
+ if (!baseUrl || !secret)
13
+ return;
14
+ try {
15
+ await fetch(`${baseUrl}/api/seo/run`, {
16
+ method: 'POST',
17
+ headers: {
18
+ 'content-type': 'application/json',
19
+ 'x-seo-audit-secret': secret,
20
+ },
21
+ body: JSON.stringify({ runType: 'publish-triggered' }),
22
+ });
23
+ }
24
+ catch (error) {
25
+ console.warn('SEO publish-triggered run failed:', error);
26
+ }
27
+ };
28
+ const triggerSeoAuditForCollection = async (slug) => {
29
+ if (!shouldTriggerFromCollection(slug))
30
+ return;
31
+ await triggerSEOAudit();
32
+ };
33
+ exports.triggerSeoAuditForCollection = triggerSeoAuditForCollection;
34
+ const triggerSeoAuditForGlobal = async (slug) => {
35
+ if (!shouldTriggerFromGlobal(slug))
36
+ return;
37
+ await triggerSEOAudit();
38
+ };
39
+ exports.triggerSeoAuditForGlobal = triggerSeoAuditForGlobal;
@@ -0,0 +1,87 @@
1
+ export type SEOIssueSeverity = 'critical' | 'high' | 'medium' | 'low' | 'info';
2
+ export type SEOIssueCategory = 'metadata' | 'indexability' | 'structure' | 'links' | 'media' | 'structuredData' | 'performance';
3
+ export type SEOIssue = {
4
+ fingerprint: string;
5
+ ruleID: string;
6
+ category: SEOIssueCategory;
7
+ severity: SEOIssueSeverity;
8
+ message: string;
9
+ recommendation?: string;
10
+ };
11
+ export type SEOCheckResult = {
12
+ title?: string;
13
+ metaDescription?: string;
14
+ canonical?: string;
15
+ robotsMeta?: string;
16
+ h1Count: number;
17
+ headingOrderIssues: number;
18
+ internalLinks: number;
19
+ externalLinks: number;
20
+ imagesTotal: number;
21
+ imagesMissingAlt: number;
22
+ structuredDataBlocks: number;
23
+ issues: SEOIssue[];
24
+ };
25
+ export type SEOPageScore = {
26
+ metadata: number;
27
+ indexability: number;
28
+ structure: number;
29
+ links: number;
30
+ media: number;
31
+ structuredData: number;
32
+ performance: number;
33
+ overall: number;
34
+ };
35
+ export type SEOPageResult = {
36
+ url: string;
37
+ path: string;
38
+ statusCode: number;
39
+ check: SEOCheckResult;
40
+ score: SEOPageScore;
41
+ };
42
+ export type SEOSnapshotSummary = {
43
+ pagesCrawled: number;
44
+ pagesChecked: number;
45
+ issueCounts: Record<SEOIssueSeverity, number>;
46
+ scores: SEOPageScore;
47
+ };
48
+ export type SEOPageSpeedSummary = {
49
+ averagePerformanceScore?: number;
50
+ averageLCPMs?: number;
51
+ averageCLS?: number;
52
+ };
53
+ export type SEOAuditRunType = 'scheduled' | 'manual' | 'publish-triggered';
54
+ export type SEOSiteRecord = {
55
+ id: number | string;
56
+ name?: string | null;
57
+ domain?: string | null;
58
+ canonicalHost?: string | null;
59
+ sitemapURL?: string | null;
60
+ keyURLs?: Array<{
61
+ url?: string | null;
62
+ }> | null;
63
+ crawlSettings?: {
64
+ maxPages?: number | null;
65
+ maxDepth?: number | null;
66
+ requestTimeoutMs?: number | null;
67
+ includePatterns?: Array<{
68
+ pattern?: string | null;
69
+ }> | null;
70
+ excludePatterns?: Array<{
71
+ pattern?: string | null;
72
+ }> | null;
73
+ } | null;
74
+ integrations?: {
75
+ enablePageSpeed?: boolean | null;
76
+ enableSearchConsole?: boolean | null;
77
+ } | null;
78
+ thresholds?: {
79
+ targetLCPMs?: number | null;
80
+ targetCLS?: number | null;
81
+ } | null;
82
+ };
83
+ export type SEOProviderAdapter = {
84
+ name: string;
85
+ isConfigured: () => boolean;
86
+ };
87
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utilities/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@orion-studios/payload-seo-audit",
3
+ "version": "1.0.0",
4
+ "description": "Professional SEO audit system for Payload CMS 3.0 + Next.js 15 projects",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./api": {
13
+ "types": "./dist/api/index.d.ts",
14
+ "default": "./dist/api/index.js"
15
+ },
16
+ "./components": {
17
+ "types": "./dist/exports/components.d.ts",
18
+ "default": "./dist/exports/components.js"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "bin"
24
+ ],
25
+ "bin": {
26
+ "payload-seo-audit": "./bin/init.js"
27
+ },
28
+ "scripts": {
29
+ "build": "tsc",
30
+ "dev": "tsc --watch",
31
+ "prepublishOnly": "npm run build"
32
+ },
33
+ "keywords": [
34
+ "payload",
35
+ "payloadcms",
36
+ "cms",
37
+ "seo",
38
+ "audit",
39
+ "nextjs",
40
+ "lighthouse",
41
+ "analytics"
42
+ ],
43
+ "author": "Orion Studios",
44
+ "license": "MIT",
45
+ "peerDependencies": {
46
+ "next": "^15.0.0",
47
+ "payload": "^3.0.0",
48
+ "react": "^19.0.0"
49
+ },
50
+ "devDependencies": {
51
+ "@types/node": "^22.0.0",
52
+ "@types/react": "^19.0.0",
53
+ "payload": "^3.75.0",
54
+ "typescript": "^5.6.0"
55
+ },
56
+ "dependencies": {
57
+ "cheerio": "^1.0.0",
58
+ "googleapis": "^144.0.0",
59
+ "html2pdf.js": "^0.10.2",
60
+ "lucide-react": "^0.460.0",
61
+ "recharts": "^2.15.0"
62
+ }
63
+ }