@drowlink/aeo-linter-core 0.1.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 (161) hide show
  1. package/dist/__tests__/audit-contract.test.d.ts +2 -0
  2. package/dist/__tests__/audit-contract.test.d.ts.map +1 -0
  3. package/dist/__tests__/audit-contract.test.js +120 -0
  4. package/dist/__tests__/audit-contract.test.js.map +1 -0
  5. package/dist/__tests__/gatherers.test.d.ts +2 -0
  6. package/dist/__tests__/gatherers.test.d.ts.map +1 -0
  7. package/dist/__tests__/gatherers.test.js +139 -0
  8. package/dist/__tests__/gatherers.test.js.map +1 -0
  9. package/dist/__tests__/runner.test.d.ts +2 -0
  10. package/dist/__tests__/runner.test.d.ts.map +1 -0
  11. package/dist/__tests__/runner.test.js +77 -0
  12. package/dist/__tests__/runner.test.js.map +1 -0
  13. package/dist/audits/ai-accessibility/ai-bot-sitemap.d.ts +10 -0
  14. package/dist/audits/ai-accessibility/ai-bot-sitemap.d.ts.map +1 -0
  15. package/dist/audits/ai-accessibility/ai-bot-sitemap.js +27 -0
  16. package/dist/audits/ai-accessibility/ai-bot-sitemap.js.map +1 -0
  17. package/dist/audits/ai-accessibility/ai-robots-txt.d.ts +10 -0
  18. package/dist/audits/ai-accessibility/ai-robots-txt.d.ts.map +1 -0
  19. package/dist/audits/ai-accessibility/ai-robots-txt.js +54 -0
  20. package/dist/audits/ai-accessibility/ai-robots-txt.js.map +1 -0
  21. package/dist/audits/ai-accessibility/ai-x-robots-tag.d.ts +10 -0
  22. package/dist/audits/ai-accessibility/ai-x-robots-tag.d.ts.map +1 -0
  23. package/dist/audits/ai-accessibility/ai-x-robots-tag.js +36 -0
  24. package/dist/audits/ai-accessibility/ai-x-robots-tag.js.map +1 -0
  25. package/dist/audits/audit.d.ts +56 -0
  26. package/dist/audits/audit.d.ts.map +1 -0
  27. package/dist/audits/audit.js +86 -0
  28. package/dist/audits/audit.js.map +1 -0
  29. package/dist/audits/content-chunking/chunk-token-density.d.ts +10 -0
  30. package/dist/audits/content-chunking/chunk-token-density.d.ts.map +1 -0
  31. package/dist/audits/content-chunking/chunk-token-density.js +44 -0
  32. package/dist/audits/content-chunking/chunk-token-density.js.map +1 -0
  33. package/dist/audits/content-chunking/heading-hierarchy.d.ts +10 -0
  34. package/dist/audits/content-chunking/heading-hierarchy.d.ts.map +1 -0
  35. package/dist/audits/content-chunking/heading-hierarchy.js +54 -0
  36. package/dist/audits/content-chunking/heading-hierarchy.js.map +1 -0
  37. package/dist/audits/content-chunking/semantic-containers.d.ts +10 -0
  38. package/dist/audits/content-chunking/semantic-containers.d.ts.map +1 -0
  39. package/dist/audits/content-chunking/semantic-containers.js +34 -0
  40. package/dist/audits/content-chunking/semantic-containers.js.map +1 -0
  41. package/dist/audits/direct-answer-density/concise-answer-wordcount.d.ts +10 -0
  42. package/dist/audits/direct-answer-density/concise-answer-wordcount.d.ts.map +1 -0
  43. package/dist/audits/direct-answer-density/concise-answer-wordcount.js +42 -0
  44. package/dist/audits/direct-answer-density/concise-answer-wordcount.js.map +1 -0
  45. package/dist/audits/direct-answer-density/direct-definition-answering.d.ts +10 -0
  46. package/dist/audits/direct-answer-density/direct-definition-answering.d.ts.map +1 -0
  47. package/dist/audits/direct-answer-density/direct-definition-answering.js +43 -0
  48. package/dist/audits/direct-answer-density/direct-definition-answering.js.map +1 -0
  49. package/dist/audits/direct-answer-density/question-heading-alignment.d.ts +10 -0
  50. package/dist/audits/direct-answer-density/question-heading-alignment.d.ts.map +1 -0
  51. package/dist/audits/direct-answer-density/question-heading-alignment.js +35 -0
  52. package/dist/audits/direct-answer-density/question-heading-alignment.js.map +1 -0
  53. package/dist/audits/index.d.ts +19 -0
  54. package/dist/audits/index.d.ts.map +1 -0
  55. package/dist/audits/index.js +36 -0
  56. package/dist/audits/index.js.map +1 -0
  57. package/dist/audits/structured-data/entity-sameas-links.d.ts +10 -0
  58. package/dist/audits/structured-data/entity-sameas-links.d.ts.map +1 -0
  59. package/dist/audits/structured-data/entity-sameas-links.js +43 -0
  60. package/dist/audits/structured-data/entity-sameas-links.js.map +1 -0
  61. package/dist/audits/structured-data/jsonld-syntax-validity.d.ts +10 -0
  62. package/dist/audits/structured-data/jsonld-syntax-validity.d.ts.map +1 -0
  63. package/dist/audits/structured-data/jsonld-syntax-validity.js +43 -0
  64. package/dist/audits/structured-data/jsonld-syntax-validity.js.map +1 -0
  65. package/dist/audits/structured-data/rag-schema-presence.d.ts +10 -0
  66. package/dist/audits/structured-data/rag-schema-presence.d.ts.map +1 -0
  67. package/dist/audits/structured-data/rag-schema-presence.js +48 -0
  68. package/dist/audits/structured-data/rag-schema-presence.js.map +1 -0
  69. package/dist/config/default-config.d.ts +7 -0
  70. package/dist/config/default-config.d.ts.map +1 -0
  71. package/dist/config/default-config.js +71 -0
  72. package/dist/config/default-config.js.map +1 -0
  73. package/dist/gather/driver/cheerio-driver.d.ts +27 -0
  74. package/dist/gather/driver/cheerio-driver.d.ts.map +1 -0
  75. package/dist/gather/driver/cheerio-driver.js +64 -0
  76. package/dist/gather/driver/cheerio-driver.js.map +1 -0
  77. package/dist/gather/gatherer.d.ts +12 -0
  78. package/dist/gather/gatherer.d.ts.map +1 -0
  79. package/dist/gather/gatherer.js +6 -0
  80. package/dist/gather/gatherer.js.map +1 -0
  81. package/dist/gather/gatherers/content-chunks-gatherer.d.ts +10 -0
  82. package/dist/gather/gatherers/content-chunks-gatherer.d.ts.map +1 -0
  83. package/dist/gather/gatherers/content-chunks-gatherer.js +100 -0
  84. package/dist/gather/gatherers/content-chunks-gatherer.js.map +1 -0
  85. package/dist/gather/gatherers/direct-answers-gatherer.d.ts +10 -0
  86. package/dist/gather/gatherers/direct-answers-gatherer.d.ts.map +1 -0
  87. package/dist/gather/gatherers/direct-answers-gatherer.js +58 -0
  88. package/dist/gather/gatherers/direct-answers-gatherer.js.map +1 -0
  89. package/dist/gather/gatherers/headings-hierarchy-gatherer.d.ts +10 -0
  90. package/dist/gather/gatherers/headings-hierarchy-gatherer.d.ts.map +1 -0
  91. package/dist/gather/gatherers/headings-hierarchy-gatherer.js +60 -0
  92. package/dist/gather/gatherers/headings-hierarchy-gatherer.js.map +1 -0
  93. package/dist/gather/gatherers/http-headers-gatherer.d.ts +10 -0
  94. package/dist/gather/gatherers/http-headers-gatherer.d.ts.map +1 -0
  95. package/dist/gather/gatherers/http-headers-gatherer.js +25 -0
  96. package/dist/gather/gatherers/http-headers-gatherer.js.map +1 -0
  97. package/dist/gather/gatherers/jsonld-gatherer.d.ts +11 -0
  98. package/dist/gather/gatherers/jsonld-gatherer.d.ts.map +1 -0
  99. package/dist/gather/gatherers/jsonld-gatherer.js +110 -0
  100. package/dist/gather/gatherers/jsonld-gatherer.js.map +1 -0
  101. package/dist/gather/gatherers/meta-tags-gatherer.d.ts +10 -0
  102. package/dist/gather/gatherers/meta-tags-gatherer.d.ts.map +1 -0
  103. package/dist/gather/gatherers/meta-tags-gatherer.js +45 -0
  104. package/dist/gather/gatherers/meta-tags-gatherer.js.map +1 -0
  105. package/dist/gather/gatherers/robots-txt-gatherer.d.ts +12 -0
  106. package/dist/gather/gatherers/robots-txt-gatherer.d.ts.map +1 -0
  107. package/dist/gather/gatherers/robots-txt-gatherer.js +139 -0
  108. package/dist/gather/gatherers/robots-txt-gatherer.js.map +1 -0
  109. package/dist/gather/gatherers/url-gatherer.d.ts +10 -0
  110. package/dist/gather/gatherers/url-gatherer.d.ts.map +1 -0
  111. package/dist/gather/gatherers/url-gatherer.js +19 -0
  112. package/dist/gather/gatherers/url-gatherer.js.map +1 -0
  113. package/dist/gather/index.d.ts +14 -0
  114. package/dist/gather/index.d.ts.map +1 -0
  115. package/dist/gather/index.js +14 -0
  116. package/dist/gather/index.js.map +1 -0
  117. package/dist/index.d.ts +11 -0
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +11 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/report/html-reporter.d.ts +11 -0
  122. package/dist/report/html-reporter.d.ts.map +1 -0
  123. package/dist/report/html-reporter.js +285 -0
  124. package/dist/report/html-reporter.js.map +1 -0
  125. package/dist/report/index.d.ts +6 -0
  126. package/dist/report/index.d.ts.map +1 -0
  127. package/dist/report/index.js +6 -0
  128. package/dist/report/index.js.map +1 -0
  129. package/dist/report/terminal-reporter.d.ts +8 -0
  130. package/dist/report/terminal-reporter.d.ts.map +1 -0
  131. package/dist/report/terminal-reporter.js +50 -0
  132. package/dist/report/terminal-reporter.js.map +1 -0
  133. package/dist/runner/aggregator.d.ts +17 -0
  134. package/dist/runner/aggregator.d.ts.map +1 -0
  135. package/dist/runner/aggregator.js +59 -0
  136. package/dist/runner/aggregator.js.map +1 -0
  137. package/dist/runner/runner.d.ts +29 -0
  138. package/dist/runner/runner.d.ts.map +1 -0
  139. package/dist/runner/runner.js +125 -0
  140. package/dist/runner/runner.js.map +1 -0
  141. package/dist/types/artifacts.d.ts +188 -0
  142. package/dist/types/artifacts.d.ts.map +1 -0
  143. package/dist/types/artifacts.js +7 -0
  144. package/dist/types/artifacts.js.map +1 -0
  145. package/dist/types/audit.d.ts +122 -0
  146. package/dist/types/audit.d.ts.map +1 -0
  147. package/dist/types/audit.js +6 -0
  148. package/dist/types/audit.js.map +1 -0
  149. package/dist/types/config.d.ts +74 -0
  150. package/dist/types/config.d.ts.map +1 -0
  151. package/dist/types/config.js +5 -0
  152. package/dist/types/config.js.map +1 -0
  153. package/dist/types/gatherer.d.ts +32 -0
  154. package/dist/types/gatherer.d.ts.map +1 -0
  155. package/dist/types/gatherer.js +5 -0
  156. package/dist/types/gatherer.js.map +1 -0
  157. package/dist/types/index.d.ts +8 -0
  158. package/dist/types/index.d.ts.map +1 -0
  159. package/dist/types/index.js +8 -0
  160. package/dist/types/index.js.map +1 -0
  161. package/package.json +54 -0
@@ -0,0 +1,188 @@
1
+ /**
2
+ * @fileoverview Tipos y contratos para los artefactos recolectados por los Gatherers.
3
+ * Siguiendo el patrón de Google Lighthouse, los Gatherers extraen datos crudos del DOM/red
4
+ * y producen un objeto tipado `Artifacts` que las auditorías consumen como funciones puras.
5
+ */
6
+ /**
7
+ * Información de URL navegada y redirigida
8
+ */
9
+ export interface URLArtifact {
10
+ requestedUrl: string;
11
+ finalUrl: string;
12
+ domain: string;
13
+ pathname: string;
14
+ protocol: string;
15
+ }
16
+ /**
17
+ * Regla de acceso para un User-Agent específico en robots.txt
18
+ */
19
+ export interface RobotsAgentRule {
20
+ userAgent: string;
21
+ allow: string[];
22
+ disallow: string[];
23
+ crawlDelay?: number;
24
+ }
25
+ /**
26
+ * Artefacto con el contenido e interpretación del archivo robots.txt
27
+ */
28
+ export interface RobotsTxtArtifact {
29
+ rawContent: string | null;
30
+ statusCode: number | null;
31
+ exists: boolean;
32
+ sitemaps: string[];
33
+ /** Reglas por User-Agent mapeadas por nombre en minúsculas */
34
+ rulesByAgent: Record<string, RobotsAgentRule>;
35
+ /** Directivas específicas identificadas para bots de IA conocidos */
36
+ aiBotsStatus: {
37
+ gptBot?: 'allowed' | 'disallowed' | 'partially_disallowed' | 'not_specified';
38
+ perplexityBot?: 'allowed' | 'disallowed' | 'partially_disallowed' | 'not_specified';
39
+ claudeBot?: 'allowed' | 'disallowed' | 'partially_disallowed' | 'not_specified';
40
+ googleExtended?: 'allowed' | 'disallowed' | 'partially_disallowed' | 'not_specified';
41
+ ccBot?: 'allowed' | 'disallowed' | 'partially_disallowed' | 'not_specified';
42
+ bytespider?: 'allowed' | 'disallowed' | 'partially_disallowed' | 'not_specified';
43
+ cohereAi?: 'allowed' | 'disallowed' | 'partially_disallowed' | 'not_specified';
44
+ };
45
+ }
46
+ /**
47
+ * Encabezados HTTP recolectados de la respuesta principal
48
+ */
49
+ export interface HttpHeadersArtifact {
50
+ statusCode: number;
51
+ headers: Record<string, string | string[]>;
52
+ xRobotsTag: string | null;
53
+ contentType: string | null;
54
+ cacheControl: string | null;
55
+ contentEncoding: string | null;
56
+ }
57
+ /**
58
+ * Item o nodo JSON-LD individual extraído del documento
59
+ */
60
+ export interface JSONLDItem {
61
+ raw: string;
62
+ parsed: Record<string, unknown> | null;
63
+ type: string | string[] | null;
64
+ context: string | null;
65
+ isValid: boolean;
66
+ syntaxErrors?: string[];
67
+ }
68
+ /**
69
+ * Artefacto de datos estructurados JSON-LD
70
+ */
71
+ export interface JSONLDArtifact {
72
+ items: JSONLDItem[];
73
+ schemasCountByType: Record<string, number>;
74
+ hasFAQPage: boolean;
75
+ hasHowTo: boolean;
76
+ hasArticle: boolean;
77
+ hasQAPage: boolean;
78
+ hasOrganization: boolean;
79
+ hasProduct: boolean;
80
+ hasSameAs: boolean;
81
+ sameAsUrls: string[];
82
+ }
83
+ /**
84
+ * Meta etiquetas y atributos de cabecera HTML
85
+ */
86
+ export interface MetaTagsArtifact {
87
+ title: string | null;
88
+ description: string | null;
89
+ canonicalUrl: string | null;
90
+ viewport: string | null;
91
+ charset: string | null;
92
+ openGraph: Record<string, string>;
93
+ twitterCard: Record<string, string>;
94
+ robotsMeta: string | null;
95
+ }
96
+ /**
97
+ * Elemento de encabezado en la jerarquía del DOM
98
+ */
99
+ export interface HeadingNode {
100
+ level: 1 | 2 | 3 | 4 | 5 | 6;
101
+ text: string;
102
+ id?: string;
103
+ index: number;
104
+ parentHeadingIndex?: number;
105
+ }
106
+ /**
107
+ * Artefacto con el análisis de jerarquía de encabezados (H1-H6)
108
+ */
109
+ export interface HeadingsHierarchyArtifact {
110
+ headings: HeadingNode[];
111
+ h1Count: number;
112
+ h2Count: number;
113
+ h3Count: number;
114
+ hasSingleH1: boolean;
115
+ isHierarchySequential: boolean;
116
+ skippedLevels: Array<{
117
+ from: number;
118
+ to: number;
119
+ text: string;
120
+ }>;
121
+ }
122
+ /**
123
+ * Bloque o chunk de contenido semántico orientado a ingestión RAG / LLM
124
+ */
125
+ export interface ContentChunk {
126
+ id: string;
127
+ headingText?: string;
128
+ headingLevel?: number;
129
+ text: string;
130
+ wordCount: number;
131
+ estimatedTokens: number;
132
+ parentTag: string;
133
+ hasList: boolean;
134
+ hasTable: boolean;
135
+ hasCode: boolean;
136
+ isSemanticContainer: boolean;
137
+ }
138
+ /**
139
+ * Artefacto de fragmentación de contenido semántico (Chunking)
140
+ */
141
+ export interface ContentChunksArtifact {
142
+ chunks: ContentChunk[];
143
+ totalWordCount: number;
144
+ totalEstimatedTokens: number;
145
+ averageChunkTokenCount: number;
146
+ semanticTagsUsed: string[];
147
+ hasSemanticMain: boolean;
148
+ hasSemanticArticle: boolean;
149
+ hasSemanticSections: boolean;
150
+ }
151
+ /**
152
+ * Detección de patrones de pregunta y respuesta directa en el contenido
153
+ */
154
+ export interface DirectAnswerPair {
155
+ question: string;
156
+ questionSource: 'heading' | 'bold_text' | 'faq_schema' | 'paragraph';
157
+ answerText: string;
158
+ answerWordCount: number;
159
+ isConcise: boolean;
160
+ hasDirectDefinition: boolean;
161
+ confidenceScore: number;
162
+ }
163
+ /**
164
+ * Artefacto con la densidad de respuestas directas identificadas
165
+ */
166
+ export interface DirectAnswersArtifact {
167
+ pairs: DirectAnswerPair[];
168
+ directAnswerRatio: number;
169
+ conciseAnswersCount: number;
170
+ definitionPatternsFound: number;
171
+ }
172
+ /**
173
+ * Contrato principal de artefactos recopilados por el pipeline de Gatherers.
174
+ * Este objeto es inmutable y se entrega a cada Audit.
175
+ */
176
+ export interface Artifacts {
177
+ URL: URLArtifact;
178
+ RobotsTxt: RobotsTxtArtifact;
179
+ HttpHeaders: HttpHeadersArtifact;
180
+ JSONLD: JSONLDArtifact;
181
+ MetaTags: MetaTagsArtifact;
182
+ HeadingsHierarchy: HeadingsHierarchyArtifact;
183
+ ContentChunks: ContentChunksArtifact;
184
+ DirectAnswers: DirectAnswersArtifact;
185
+ /** Espacio para artefactos personalizados de extensiones o plugins */
186
+ [customArtifact: string]: unknown;
187
+ }
188
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/types/artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Tipos y contratos para los artefactos recolectados por los Gatherers.
3
+ * Siguiendo el patrón de Google Lighthouse, los Gatherers extraen datos crudos del DOM/red
4
+ * y producen un objeto tipado `Artifacts` que las auditorías consumen como funciones puras.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/types/artifacts.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * @fileoverview Tipos y contratos para las auditorías, resultados y detalles.
3
+ * Diseñado replicando fielmente la estructura de Google Lighthouse.
4
+ */
5
+ import type { Artifacts } from './artifacts.js';
6
+ /**
7
+ * Modo de presentación visual del puntaje
8
+ */
9
+ export type ScoreDisplayMode = 'binary' | 'numeric' | 'informative' | 'notApplicable' | 'error' | 'manual';
10
+ /**
11
+ * Encabezado de columna para detalles tabulares
12
+ */
13
+ export interface TableHeading {
14
+ key: string;
15
+ label: string;
16
+ valueType?: 'text' | 'url' | 'numeric' | 'code' | 'bytes' | 'ms' | 'status';
17
+ subItemsHeading?: {
18
+ key: string;
19
+ valueType?: string;
20
+ };
21
+ }
22
+ /**
23
+ * Detalle tipo tabla para mostrar elementos evaluados
24
+ */
25
+ export interface TableDetails {
26
+ type: 'table';
27
+ headings: TableHeading[];
28
+ items: Array<Record<string, unknown>>;
29
+ summary?: {
30
+ wastedMs?: number;
31
+ wastedBytes?: number;
32
+ totalItems?: number;
33
+ [key: string]: unknown;
34
+ };
35
+ }
36
+ /**
37
+ * Detalle tipo lista simple de hallazgos
38
+ */
39
+ export interface ListDetails {
40
+ type: 'list';
41
+ items: Array<string | {
42
+ text: string;
43
+ subItems?: string[];
44
+ }>;
45
+ }
46
+ /**
47
+ * Detalle para datos de depuración / inspección cruda
48
+ */
49
+ export interface DebugDataDetails {
50
+ type: 'debugdata';
51
+ data: Record<string, unknown>;
52
+ }
53
+ /**
54
+ * Detalle para oportunidades de mejora con ahorros o ganancias
55
+ */
56
+ export interface OpportunityDetails {
57
+ type: 'opportunity';
58
+ headings: TableHeading[];
59
+ items: Array<Record<string, unknown>>;
60
+ potentialGain?: string;
61
+ }
62
+ /**
63
+ * Unión de tipos de detalles admitidos en el resultado de auditoría
64
+ */
65
+ export type AuditDetails = TableDetails | ListDetails | DebugDataDetails | OpportunityDetails;
66
+ /**
67
+ * Resultado formal retornado por la ejecución de una auditoría
68
+ */
69
+ export interface AuditResult {
70
+ /** Identificador único de la auditoría (e.g. 'ai-robots-txt') */
71
+ id: string;
72
+ /** Puntaje normalizado entre 0 y 1 (o null si es notApplicable / informative) */
73
+ score: number | null;
74
+ /** Modo de visualización del score */
75
+ scoreDisplayMode: ScoreDisplayMode;
76
+ /** Título descriptivo (en estado exitoso o general) */
77
+ title: string;
78
+ /** Explicación detallada de la auditoría y por qué es importante para AEO */
79
+ description: string;
80
+ /** Valor numérico crudo asociado (e.g. 85 para 85 palabras o 3 para 3 errores) */
81
+ numericValue?: number;
82
+ /** Unidad del valor numérico (e.g. 'words', 'ms', 'items', '%') */
83
+ numericUnit?: string;
84
+ /** Texto formateado para presentación directa (e.g. "3 direct answers found") */
85
+ displayValue?: string;
86
+ /** Razón por la cual la auditoría falló o dio este score */
87
+ explanation?: string;
88
+ /** Mensaje de error si la auditoría falló al ejecutarse */
89
+ errorMessage?: string;
90
+ /** Detalles estructurados para rendering en UI/CLI */
91
+ details?: AuditDetails;
92
+ /** Advertencias opcionales que no invalidan el score pero informan al usuario */
93
+ warnings?: string[];
94
+ }
95
+ /**
96
+ * Metadatos estáticos requeridos por cada definición de auditoría
97
+ */
98
+ export interface AuditMeta {
99
+ /** ID único de la auditoría */
100
+ id: string;
101
+ /** Título cuando pasa o título neutral */
102
+ title: string;
103
+ /** Título cuando la auditoría falla o no alcanza el score deseado */
104
+ failureTitle?: string;
105
+ /** Explicación y enlaces de documentación (Markdown) */
106
+ description: string;
107
+ /** Artefactos que esta auditoría requiere para poder ejecutarse */
108
+ requiredArtifacts: Array<keyof Artifacts>;
109
+ }
110
+ /**
111
+ * Contexto de ejecución pasado a la función de auditoría
112
+ */
113
+ export interface AuditContext {
114
+ options?: Record<string, unknown>;
115
+ settings?: {
116
+ locale?: string;
117
+ maxWaitForFulfill?: number;
118
+ [key: string]: unknown;
119
+ };
120
+ computedCache?: Map<string, unknown>;
121
+ }
122
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/types/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Tipos y contratos para las auditorías, resultados y detalles.
3
+ * Diseñado replicando fielmente la estructura de Google Lighthouse.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/types/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @fileoverview Tipos para la configuración, categorías y cálculo ponderado de scores.
3
+ */
4
+ import type { AuditMeta } from './audit.js';
5
+ /**
6
+ * Referencia a una auditoría dentro de una categoría, con su peso específico
7
+ */
8
+ export interface AuditRef {
9
+ /** Identificador de la auditoría */
10
+ id: string;
11
+ /** Peso relativo de la auditoría en la categoría (e.g. 1 a 10) */
12
+ weight: number;
13
+ /** Grupo visual opcional para organizar en la UI / reporte */
14
+ group?: string;
15
+ }
16
+ /**
17
+ * Categoría que agrupa auditorías temáticas
18
+ */
19
+ export interface CategoryConfig {
20
+ /** Título de la categoría */
21
+ title: string;
22
+ /** Descripción del propósito y su relevancia en AEO */
23
+ description: string;
24
+ /** Lista de auditorías ponderadas que pertenecen a esta categoría */
25
+ auditRefs: AuditRef[];
26
+ /** Peso global de la categoría respecto al score total (opcional) */
27
+ weight?: number;
28
+ }
29
+ /**
30
+ * Configuración completa del linter
31
+ */
32
+ export interface LinterConfig {
33
+ /** Categorías configuradas */
34
+ categories: Record<string, CategoryConfig>;
35
+ /** Auditorías registradas en esta configuración (IDs o Metas) */
36
+ audits?: Array<string | AuditMeta>;
37
+ /** Configuración global y banderas */
38
+ settings?: {
39
+ locale?: string;
40
+ maxWaitForFulfill?: number;
41
+ userAgent?: string;
42
+ [key: string]: unknown;
43
+ };
44
+ }
45
+ /**
46
+ * Resultado evaluado de una categoría con su puntaje ponderado
47
+ */
48
+ export interface CategoryResult {
49
+ id: string;
50
+ title: string;
51
+ description: string;
52
+ /** Score ponderado de la categoría (0 - 1) */
53
+ score: number | null;
54
+ /** Auditorías ejecutadas asociadas a esta categoría con sus resultados */
55
+ auditRefs: Array<AuditRef & {
56
+ result: import('./audit.js').AuditResult;
57
+ }>;
58
+ }
59
+ /**
60
+ * Resultado completo del análisis AEO
61
+ */
62
+ export interface AeoReportResult {
63
+ url: string;
64
+ fetchTime: string;
65
+ aeoVersion: string;
66
+ userAgent: string;
67
+ /** Puntuación general agregada (0 - 100) */
68
+ overallScore: number;
69
+ /** Resultados por categoría */
70
+ categories: Record<string, CategoryResult>;
71
+ /** Mapa directo de auditorías por id */
72
+ audits: Record<string, import('./audit.js').AuditResult>;
73
+ }
74
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,iEAAiE;IACjE,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnC,sCAAsC;IACtC,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,0EAA0E;IAC1E,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG;QAAE,MAAM,EAAE,OAAO,YAAY,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,WAAW,CAAC,CAAC;CAC1D"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @fileoverview Tipos para la configuración, categorías y cálculo ponderado de scores.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @fileoverview Tipos y contratos para la fase de Gatherers (recolección).
3
+ */
4
+ import type { Artifacts } from './artifacts.js';
5
+ /**
6
+ * Driver abstracto o adaptador de protocolo para extraer información de la página/DOM
7
+ */
8
+ export interface Driver {
9
+ evaluate<T>(script: string | (() => T)): Promise<T>;
10
+ fetch(url: string, init?: RequestInit): Promise<Response>;
11
+ getUrl(): Promise<string>;
12
+ getHtml(): Promise<string>;
13
+ getHttpHeaders(): Promise<Record<string, string | string[]>>;
14
+ }
15
+ /**
16
+ * Contexto de recolección entregado a cada Gatherer
17
+ */
18
+ export interface GathererContext {
19
+ url: string;
20
+ driver: Driver;
21
+ settings?: Record<string, unknown>;
22
+ }
23
+ /**
24
+ * Interfaz base para un Gatherer
25
+ */
26
+ export interface IGatherer<K extends keyof Artifacts = keyof Artifacts> {
27
+ /** Nombre del artefacto que produce */
28
+ name: K;
29
+ /** Método de recolección */
30
+ getArtifact(context: GathererContext): Promise<Artifacts[K]>;
31
+ }
32
+ //# sourceMappingURL=gatherer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gatherer.d.ts","sourceRoot":"","sources":["../../src/types/gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,SAAS,GAAG,MAAM,SAAS;IACpE,uCAAuC;IACvC,IAAI,EAAE,CAAC,CAAC;IACR,4BAA4B;IAC5B,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9D"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @fileoverview Tipos y contratos para la fase de Gatherers (recolección).
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=gatherer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gatherer.js","sourceRoot":"","sources":["../../src/types/gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview Exportaciones de todos los tipos del motor AEO Linter
3
+ */
4
+ export * from './artifacts.js';
5
+ export * from './audit.js';
6
+ export * from './config.js';
7
+ export * from './gatherer.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview Exportaciones de todos los tipos del motor AEO Linter
3
+ */
4
+ export * from './artifacts.js';
5
+ export * from './audit.js';
6
+ export * from './config.js';
7
+ export * from './gatherer.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@drowlink/aeo-linter-core",
3
+ "version": "0.1.0",
4
+ "description": "Core engine and audit pipeline for AEO/GEO linter (Lighthouse architecture)",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./types": {
14
+ "types": "./dist/types/index.d.ts",
15
+ "import": "./dist/types/index.js"
16
+ },
17
+ "./config": {
18
+ "types": "./dist/config/default-config.d.ts",
19
+ "import": "./dist/config/default-config.js"
20
+ }
21
+ },
22
+ "scripts": {
23
+ "build": "tsc",
24
+ "typecheck": "tsc --noEmit",
25
+ "test": "vitest run",
26
+ "prepublishOnly": "npm run build"
27
+ },
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/DrowLink/aeo-audit-linter.git",
34
+ "directory": "core"
35
+ },
36
+ "keywords": [
37
+ "aeo",
38
+ "geo",
39
+ "linter",
40
+ "lighthouse",
41
+ "seo",
42
+ "ai-search",
43
+ "rag"
44
+ ],
45
+ "author": "DrowLink",
46
+ "license": "MIT",
47
+ "devDependencies": {
48
+ "typescript": "^5.4.5",
49
+ "vitest": "^1.6.0"
50
+ },
51
+ "dependencies": {
52
+ "cheerio": "^1.2.0"
53
+ }
54
+ }