@drowlink/aeo-linter-core 0.1.1 → 0.1.3

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 (95) hide show
  1. package/dist/__tests__/audit-contract.test.js +12 -13
  2. package/dist/__tests__/audit-contract.test.js.map +1 -1
  3. package/dist/__tests__/gatherers.test.js +11 -12
  4. package/dist/__tests__/gatherers.test.js.map +1 -1
  5. package/dist/__tests__/runner.test.js +12 -12
  6. package/dist/__tests__/runner.test.js.map +1 -1
  7. package/dist/audits/ai-accessibility/ai-bot-sitemap.d.ts +1 -1
  8. package/dist/audits/ai-accessibility/ai-bot-sitemap.js +6 -6
  9. package/dist/audits/ai-accessibility/ai-bot-sitemap.js.map +1 -1
  10. package/dist/audits/ai-accessibility/ai-robots-txt.d.ts +1 -1
  11. package/dist/audits/ai-accessibility/ai-robots-txt.d.ts.map +1 -1
  12. package/dist/audits/ai-accessibility/ai-robots-txt.js +11 -12
  13. package/dist/audits/ai-accessibility/ai-robots-txt.js.map +1 -1
  14. package/dist/audits/ai-accessibility/ai-x-robots-tag.d.ts +1 -1
  15. package/dist/audits/ai-accessibility/ai-x-robots-tag.js +8 -8
  16. package/dist/audits/ai-accessibility/ai-x-robots-tag.js.map +1 -1
  17. package/dist/audits/audit.d.ts +13 -13
  18. package/dist/audits/audit.js +14 -14
  19. package/dist/audits/audit.js.map +1 -1
  20. package/dist/audits/content-chunking/chunk-token-density.d.ts +1 -1
  21. package/dist/audits/content-chunking/chunk-token-density.js +12 -12
  22. package/dist/audits/content-chunking/chunk-token-density.js.map +1 -1
  23. package/dist/audits/content-chunking/heading-hierarchy.d.ts +1 -1
  24. package/dist/audits/content-chunking/heading-hierarchy.js +13 -13
  25. package/dist/audits/content-chunking/heading-hierarchy.js.map +1 -1
  26. package/dist/audits/content-chunking/semantic-containers.d.ts +1 -1
  27. package/dist/audits/content-chunking/semantic-containers.js +7 -7
  28. package/dist/audits/content-chunking/semantic-containers.js.map +1 -1
  29. package/dist/audits/direct-answer-density/concise-answer-wordcount.d.ts +1 -1
  30. package/dist/audits/direct-answer-density/concise-answer-wordcount.js +11 -11
  31. package/dist/audits/direct-answer-density/concise-answer-wordcount.js.map +1 -1
  32. package/dist/audits/direct-answer-density/direct-definition-answering.d.ts +1 -1
  33. package/dist/audits/direct-answer-density/direct-definition-answering.js +12 -12
  34. package/dist/audits/direct-answer-density/direct-definition-answering.js.map +1 -1
  35. package/dist/audits/direct-answer-density/question-heading-alignment.d.ts +1 -1
  36. package/dist/audits/direct-answer-density/question-heading-alignment.js +7 -7
  37. package/dist/audits/direct-answer-density/question-heading-alignment.js.map +1 -1
  38. package/dist/audits/index.d.ts +1 -1
  39. package/dist/audits/index.js +1 -1
  40. package/dist/audits/structured-data/entity-sameas-links.d.ts +1 -1
  41. package/dist/audits/structured-data/entity-sameas-links.js +11 -11
  42. package/dist/audits/structured-data/entity-sameas-links.js.map +1 -1
  43. package/dist/audits/structured-data/jsonld-syntax-validity.d.ts +1 -1
  44. package/dist/audits/structured-data/jsonld-syntax-validity.js +12 -12
  45. package/dist/audits/structured-data/jsonld-syntax-validity.js.map +1 -1
  46. package/dist/audits/structured-data/rag-schema-presence.d.ts +1 -1
  47. package/dist/audits/structured-data/rag-schema-presence.js +13 -13
  48. package/dist/audits/structured-data/rag-schema-presence.js.map +1 -1
  49. package/dist/config/default-config.d.ts +2 -2
  50. package/dist/config/default-config.js +6 -6
  51. package/dist/config/default-config.js.map +1 -1
  52. package/dist/gather/driver/cheerio-driver.d.ts +1 -1
  53. package/dist/gather/driver/cheerio-driver.js +4 -4
  54. package/dist/gather/driver/cheerio-driver.js.map +1 -1
  55. package/dist/gather/gatherers/content-chunks-gatherer.d.ts +1 -1
  56. package/dist/gather/gatherers/content-chunks-gatherer.d.ts.map +1 -1
  57. package/dist/gather/gatherers/content-chunks-gatherer.js +4 -6
  58. package/dist/gather/gatherers/content-chunks-gatherer.js.map +1 -1
  59. package/dist/gather/gatherers/direct-answers-gatherer.d.ts +1 -1
  60. package/dist/gather/gatherers/direct-answers-gatherer.d.ts.map +1 -1
  61. package/dist/gather/gatherers/direct-answers-gatherer.js +4 -5
  62. package/dist/gather/gatherers/direct-answers-gatherer.js.map +1 -1
  63. package/dist/gather/gatherers/headings-hierarchy-gatherer.d.ts +1 -1
  64. package/dist/gather/gatherers/headings-hierarchy-gatherer.js +2 -2
  65. package/dist/gather/gatherers/headings-hierarchy-gatherer.js.map +1 -1
  66. package/dist/gather/gatherers/robots-txt-gatherer.d.ts +1 -1
  67. package/dist/gather/gatherers/robots-txt-gatherer.d.ts.map +1 -1
  68. package/dist/gather/gatherers/robots-txt-gatherer.js +2 -4
  69. package/dist/gather/gatherers/robots-txt-gatherer.js.map +1 -1
  70. package/dist/report/html-reporter.d.ts +2 -2
  71. package/dist/report/html-reporter.js +9 -9
  72. package/dist/report/html-reporter.js.map +1 -1
  73. package/dist/report/terminal-reporter.d.ts +1 -1
  74. package/dist/report/terminal-reporter.js +3 -3
  75. package/dist/report/terminal-reporter.js.map +1 -1
  76. package/dist/runner/aggregator.d.ts +3 -3
  77. package/dist/runner/aggregator.js +5 -5
  78. package/dist/runner/aggregator.js.map +1 -1
  79. package/dist/runner/runner.d.ts +7 -7
  80. package/dist/runner/runner.d.ts.map +1 -1
  81. package/dist/runner/runner.js +17 -18
  82. package/dist/runner/runner.js.map +1 -1
  83. package/dist/types/artifacts.d.ts +19 -21
  84. package/dist/types/artifacts.d.ts.map +1 -1
  85. package/dist/types/artifacts.js +3 -3
  86. package/dist/types/audit.d.ts +29 -29
  87. package/dist/types/audit.d.ts.map +1 -1
  88. package/dist/types/audit.js +2 -2
  89. package/dist/types/config.d.ts +21 -21
  90. package/dist/types/config.d.ts.map +1 -1
  91. package/dist/types/config.js +1 -1
  92. package/dist/types/gatherer.d.ts +6 -6
  93. package/dist/types/gatherer.d.ts.map +1 -1
  94. package/dist/types/gatherer.js +1 -1
  95. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"jsonld-syntax-validity.js","sourceRoot":"","sources":["../../../src/audits/structured-data/jsonld-syntax-validity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAC3C,MAAM,CAAU,IAAI,GAAc;QACvC,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,gEAAgE;QACvE,YAAY,EAAE,sDAAsD;QACpE,WAAW,EACT,wHAAwH;QAC1H,iBAAiB,EAAE,CAAC,QAAQ,CAAC;KAC9B,CAAC;IAEK,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,SAAoB;QACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC;gBAC9B,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE,gDAAgD;gBAC9D,WAAW,EAAE,yFAAyF;aACvG,CAAC,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QAC7D,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAE/C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAClD,KAAK,EAAE,GAAG,GAAG,CAAC;YACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa;YAC/F,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB;YACrD,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SACpE,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,mBAAmB,CAAC;YAC9B,KAAK;YACL,YAAY,EAAE,GAAG,UAAU,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,0BAA0B;YAC/E,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAC5B;gBACE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE;gBAClD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;gBAClD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;gBACvD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE;aACtD,EACD,UAAU,CACX;SACF,CAAC,CAAC;IACL,CAAC"}
1
+ {"version":3,"file":"jsonld-syntax-validity.js","sourceRoot":"","sources":["../../../src/audits/structured-data/jsonld-syntax-validity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAC3C,MAAM,CAAU,IAAI,GAAc;QACvC,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,kDAAkD;QACzD,YAAY,EAAE,0DAA0D;QACxE,WAAW,EACT,gHAAgH;QAClH,iBAAiB,EAAE,CAAC,QAAQ,CAAC;KAC9B,CAAC;IAEK,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,SAAoB;QACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC;gBAC9B,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE,iDAAiD;gBAC/D,WAAW,EAAE,2FAA2F;aACzG,CAAC,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QAC7D,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAE/C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAClD,KAAK,EAAE,GAAG,GAAG,CAAC;YACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3F,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc;YAC/C,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;SACjE,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,mBAAmB,CAAC;YAC9B,KAAK;YACL,YAAY,EAAE,GAAG,UAAU,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,2BAA2B;YAChF,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAC5B;gBACE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE;gBAClD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;gBAClD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;gBACvD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;aACrD,EACD,UAAU,CACX;SACF,CAAC,CAAC;IACL,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview Auditoría para evaluar la presencia de esquemas de alto valor para RAG
2
+ * @fileoverview Audit evaluating presence of high-value schemas for RAG & Answer Engines
3
3
  */
4
4
  import { Audit } from '../audit.js';
5
5
  import type { Artifacts, AuditMeta, AuditResult } from '../../types/index.js';
@@ -1,22 +1,22 @@
1
1
  /**
2
- * @fileoverview Auditoría para evaluar la presencia de esquemas de alto valor para RAG
2
+ * @fileoverview Audit evaluating presence of high-value schemas for RAG & Answer Engines
3
3
  */
4
4
  import { Audit } from '../audit.js';
5
5
  export class RagSchemaPresenceAudit extends Audit {
6
6
  static meta = {
7
7
  id: 'rag-schema-presence',
8
- title: 'La página implementa esquemas JSON-LD optimizados para RAG (FAQ, HowTo, Article)',
9
- failureTitle: 'Faltan esquemas estructurados de alto valor para RAG',
10
- description: 'Los esquemas como FAQPage, HowTo, QAPage y Article permiten a los Answer Engines extraer pares pregunta-respuesta y contenido estructurado directamente en sus respuestas sintetizadas.',
8
+ title: 'Page implements RAG-optimized JSON-LD schemas (FAQPage, HowTo, Article)',
9
+ failureTitle: 'Missing high-value structured schemas for RAG',
10
+ description: 'Schemas like FAQPage, HowTo, QAPage, and Article enable Answer Engines to extract Q&A pairs and step-by-step information directly into synthesized answers.',
11
11
  requiredArtifacts: ['JSONLD'],
12
12
  };
13
13
  static async audit(artifacts) {
14
14
  const jsonld = artifacts.JSONLD;
15
15
  const ragSchemas = [
16
- { name: 'FAQPage', present: jsonld.hasFAQPage, value: 'Pares Q&A directos' },
17
- { name: 'HowTo / QAPage', present: jsonld.hasHowTo || jsonld.hasQAPage, value: 'Instrucciones paso a paso' },
18
- { name: 'Article / TechArticle', present: jsonld.hasArticle, value: 'Metadatos de autoría y contenido' },
19
- { name: 'Organization / Product', present: jsonld.hasOrganization || jsonld.hasProduct, value: 'Entidad de negocio / producto' },
16
+ { name: 'FAQPage', present: jsonld.hasFAQPage, value: 'Direct Q&A pairs' },
17
+ { name: 'HowTo / QAPage', present: jsonld.hasHowTo || jsonld.hasQAPage, value: 'Step-by-step instructional procedures' },
18
+ { name: 'Article / TechArticle', present: jsonld.hasArticle, value: 'Authorship and content metadata' },
19
+ { name: 'Organization / Product', present: jsonld.hasOrganization || jsonld.hasProduct, value: 'Business entity / product metadata' },
20
20
  ];
21
21
  const presentCount = ragSchemas.filter((s) => s.present).length;
22
22
  let score = 0;
@@ -31,16 +31,16 @@ export class RagSchemaPresenceAudit extends Audit {
31
31
  }
32
32
  const tableItems = ragSchemas.map((s) => ({
33
33
  schema: s.name,
34
- status: s.present ? 'Implementado' : 'No encontrado',
34
+ status: s.present ? 'Implemented' : 'Not found',
35
35
  benefit: s.value,
36
36
  }));
37
37
  return this.generateAuditResult({
38
38
  score,
39
- displayValue: `${presentCount} tipo(s) de esquema RAG detectados`,
39
+ displayValue: `${presentCount} RAG schema type(s) detected`,
40
40
  details: this.makeTableDetails([
41
- { key: 'schema', label: 'Tipo de Esquema', valueType: 'code' },
42
- { key: 'status', label: 'Estado', valueType: 'status' },
43
- { key: 'benefit', label: 'Impacto en RAG / AEO', valueType: 'text' },
41
+ { key: 'schema', label: 'Schema Type', valueType: 'code' },
42
+ { key: 'status', label: 'Status', valueType: 'status' },
43
+ { key: 'benefit', label: 'Impact on RAG / AEO', valueType: 'text' },
44
44
  ], tableItems),
45
45
  });
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rag-schema-presence.js","sourceRoot":"","sources":["../../../src/audits/structured-data/rag-schema-presence.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACxC,MAAM,CAAU,IAAI,GAAc;QACvC,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,kFAAkF;QACzF,YAAY,EAAE,sDAAsD;QACpE,WAAW,EACT,yLAAyL;QAC3L,iBAAiB,EAAE,CAAC,QAAQ,CAAC;KAC9B,CAAC;IAEK,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,SAAoB;QACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhC,MAAM,UAAU,GAAG;YACjB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,oBAAoB,EAAE;YAC5E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,2BAA2B,EAAE;YAC5G,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,kCAAkC,EAAE;YACxG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,+BAA+B,EAAE;SACjI,CAAC;QAEF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAChE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YAC9B,KAAK,GAAG,GAAG,CAAC;QACd,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,GAAG,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,EAAE,CAAC,CAAC,IAAI;YACd,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe;YACpD,OAAO,EAAE,CAAC,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,mBAAmB,CAAC;YAC9B,KAAK;YACL,YAAY,EAAE,GAAG,YAAY,oCAAoC;YACjE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAC5B;gBACE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE;gBAC9D,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;gBACvD,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAE;aACrE,EACD,UAAU,CACX;SACF,CAAC,CAAC;IACL,CAAC"}
1
+ {"version":3,"file":"rag-schema-presence.js","sourceRoot":"","sources":["../../../src/audits/structured-data/rag-schema-presence.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACxC,MAAM,CAAU,IAAI,GAAc;QACvC,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,yEAAyE;QAChF,YAAY,EAAE,+CAA+C;QAC7D,WAAW,EACT,6JAA6J;QAC/J,iBAAiB,EAAE,CAAC,QAAQ,CAAC;KAC9B,CAAC;IAEK,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,SAAoB;QACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhC,MAAM,UAAU,GAAG;YACjB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE;YAC1E,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,uCAAuC,EAAE;YACxH,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,iCAAiC,EAAE;YACvG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,oCAAoC,EAAE;SACtI,CAAC;QAEF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAChE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YAC9B,KAAK,GAAG,GAAG,CAAC;QACd,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,GAAG,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,EAAE,CAAC,CAAC,IAAI;YACd,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;YAC/C,OAAO,EAAE,CAAC,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,mBAAmB,CAAC;YAC9B,KAAK;YACL,YAAY,EAAE,GAAG,YAAY,8BAA8B;YAC3D,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAC5B;gBACE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE;gBAC1D,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;gBACvD,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,EAAE;aACpE,EACD,UAAU,CACX;SACF,CAAC,CAAC;IACL,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @fileoverview Configuración por defecto de AEO Linter con ponderaciones de categorías y auditorías.
3
- * Estructurado fielmente al modelo de configuración de Google Lighthouse (categories + auditRefs con weights).
2
+ * @fileoverview Default AEO Linter configuration with category weights and audit definitions.
3
+ * Follows the Google Lighthouse configuration model (categories + auditRefs with weights).
4
4
  */
5
5
  import type { LinterConfig } from '../types/config.js';
6
6
  export declare const defaultConfig: LinterConfig;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @fileoverview Configuración por defecto de AEO Linter con ponderaciones de categorías y auditorías.
3
- * Estructurado fielmente al modelo de configuración de Google Lighthouse (categories + auditRefs con weights).
2
+ * @fileoverview Default AEO Linter configuration with category weights and audit definitions.
3
+ * Follows the Google Lighthouse configuration model (categories + auditRefs with weights).
4
4
  */
5
5
  export const defaultConfig = {
6
6
  settings: {
@@ -10,7 +10,7 @@ export const defaultConfig = {
10
10
  categories: {
11
11
  'ai-accessibility': {
12
12
  title: 'AI Accessibility & Crawling',
13
- description: 'Verifica que los agentes y rastreadores de IA (GPTBot, PerplexityBot, ClaudeBot, Google-Extended, etc.) tengan acceso sin restricciones innecesarias vía robots.txt y cabeceras HTTP.',
13
+ description: 'Verifies that AI agents and search crawlers (GPTBot, PerplexityBot, ClaudeBot, Google-Extended, etc.) have unrestricted crawling permissions via robots.txt and HTTP headers.',
14
14
  weight: 25,
15
15
  auditRefs: [
16
16
  { id: 'ai-robots-txt', weight: 10, group: 'crawling' },
@@ -20,7 +20,7 @@ export const defaultConfig = {
20
20
  },
21
21
  'structured-data': {
22
22
  title: 'Structured Data & RAG Schemas',
23
- description: 'Audita esquemas JSON-LD optimizados para RAG (FAQPage, HowTo, Article, QAPage, sameAs) que enriquecen los grafos de conocimiento de los modelos de lenguaje.',
23
+ description: 'Audits JSON-LD schemas optimized for RAG (FAQPage, HowTo, Article, QAPage, sameAs) that enrich LLM knowledge graphs with structured entity data.',
24
24
  weight: 25,
25
25
  auditRefs: [
26
26
  { id: 'jsonld-syntax-validity', weight: 8, group: 'schema' },
@@ -30,7 +30,7 @@ export const defaultConfig = {
30
30
  },
31
31
  'content-chunking': {
32
32
  title: 'Content Chunking & Semantic Structure',
33
- description: 'Evalúa la jerarquía H1-H3, la segmentación semántica (<article>, <section>, <main>) y la densidad de tokens por bloque para facilitar la tokenización y embeddings en RAG.',
33
+ description: 'Evaluates H1-H3 sequential hierarchy, semantic partitioning (<article>, <section>, <main>), and token density per block for optimal RAG embedding extraction.',
34
34
  weight: 25,
35
35
  auditRefs: [
36
36
  { id: 'heading-hierarchy', weight: 8, group: 'structure' },
@@ -40,7 +40,7 @@ export const defaultConfig = {
40
40
  },
41
41
  'direct-answer-density': {
42
42
  title: 'Direct Answer Density',
43
- description: 'Detecta la concisión y presencia de respuestas directas e inmediatas a preguntas clave, optimizando la extracción para Answer Engines (Perplexity, SearchGPT, AI Overviews).',
43
+ description: 'Detects concise, direct definitions and answers to key user questions, optimizing extraction for Answer Engines (Perplexity, SearchGPT, AI Overviews).',
44
44
  weight: 25,
45
45
  auditRefs: [
46
46
  { id: 'direct-definition-answering', weight: 10, group: 'answers' },
@@ -1 +1 @@
1
- {"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../src/config/default-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,QAAQ,EAAE;QACR,MAAM,EAAE,OAAO;QACf,iBAAiB,EAAE,KAAK;KACzB;IACD,UAAU,EAAE;QACV,kBAAkB,EAAE;YAClB,KAAK,EAAE,6BAA6B;YACpC,WAAW,EACT,uLAAuL;YACzL,MAAM,EAAE,EAAE;YACV,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;gBACtD,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;gBACvD,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;aACvD;SACF;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,+BAA+B;YACtC,WAAW,EACT,8JAA8J;YAChK,MAAM,EAAE,EAAE;YACV,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAC5D,EAAE,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACzD,EAAE,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE;aACnE;SACF;QACD,kBAAkB,EAAE;YAClB,KAAK,EAAE,uCAAuC;YAC9C,WAAW,EACT,4KAA4K;YAC9K,MAAM,EAAE,EAAE;YACV,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;gBAC1D,EAAE,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;gBAC5D,EAAE,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;aAC9D;SACF;QACD,uBAAuB,EAAE;YACvB,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACT,8KAA8K;YAChL,MAAM,EAAE,EAAE;YACV,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,6BAA6B,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;gBACnE,EAAE,EAAE,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC/D,EAAE,EAAE,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;aAClE;SACF;KACF;IACD,MAAM,EAAE;QACN,mBAAmB;QACnB,eAAe;QACf,iBAAiB;QACjB,gBAAgB;QAChB,kBAAkB;QAClB,wBAAwB;QACxB,qBAAqB;QACrB,qBAAqB;QACrB,mBAAmB;QACnB,mBAAmB;QACnB,qBAAqB;QACrB,qBAAqB;QACrB,wBAAwB;QACxB,6BAA6B;QAC7B,0BAA0B;QAC1B,4BAA4B;KAC7B;CACF,CAAC"}
1
+ {"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../src/config/default-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,QAAQ,EAAE;QACR,MAAM,EAAE,OAAO;QACf,iBAAiB,EAAE,KAAK;KACzB;IACD,UAAU,EAAE;QACV,kBAAkB,EAAE;YAClB,KAAK,EAAE,6BAA6B;YACpC,WAAW,EACT,+KAA+K;YACjL,MAAM,EAAE,EAAE;YACV,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;gBACtD,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;gBACvD,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;aACvD;SACF;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,+BAA+B;YACtC,WAAW,EACT,kJAAkJ;YACpJ,MAAM,EAAE,EAAE;YACV,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAC5D,EAAE,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACzD,EAAE,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE;aACnE;SACF;QACD,kBAAkB,EAAE;YAClB,KAAK,EAAE,uCAAuC;YAC9C,WAAW,EACT,+JAA+J;YACjK,MAAM,EAAE,EAAE;YACV,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;gBAC1D,EAAE,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;gBAC5D,EAAE,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;aAC9D;SACF;QACD,uBAAuB,EAAE;YACvB,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACT,wJAAwJ;YAC1J,MAAM,EAAE,EAAE;YACV,SAAS,EAAE;gBACT,EAAE,EAAE,EAAE,6BAA6B,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;gBACnE,EAAE,EAAE,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC/D,EAAE,EAAE,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;aAClE;SACF;KACF;IACD,MAAM,EAAE;QACN,mBAAmB;QACnB,eAAe;QACf,iBAAiB;QACjB,gBAAgB;QAChB,kBAAkB;QAClB,wBAAwB;QACxB,qBAAqB;QACrB,qBAAqB;QACrB,mBAAmB;QACnB,mBAAmB;QACnB,qBAAqB;QACrB,qBAAqB;QACrB,wBAAwB;QACxB,6BAA6B;QAC7B,0BAA0B;QAC1B,4BAA4B;KAC7B;CACF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview Implementación de Driver basada en Fetch + Cheerio para entornos Node.js / CLI.
2
+ * @fileoverview Driver implementation based on Fetch + Cheerio for Node.js / CLI environments.
3
3
  */
4
4
  import * as cheerio from 'cheerio';
5
5
  import type { Driver } from '../../types/index.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview Implementación de Driver basada en Fetch + Cheerio para entornos Node.js / CLI.
2
+ * @fileoverview Driver implementation based on Fetch + Cheerio for Node.js / CLI environments.
3
3
  */
4
4
  import * as cheerio from 'cheerio';
5
5
  export class CheerioDriver {
@@ -16,7 +16,7 @@ export class CheerioDriver {
16
16
  static async createFromUrl(targetUrl, fetchFn = fetch, options) {
17
17
  const defaultHeaders = {
18
18
  'User-Agent': options?.userAgent ||
19
- 'Mozilla/5.0 (compatible; AEOLinter/1.0; +https://github.com/aeo-linter)',
19
+ 'Mozilla/5.0 (compatible; AEOLinter/1.0; +https://github.com/DrowLink/aeo-audit-linter)',
20
20
  Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
21
21
  ...options?.headers,
22
22
  };
@@ -25,7 +25,7 @@ export class CheerioDriver {
25
25
  redirect: 'follow',
26
26
  });
27
27
  if (!res.ok) {
28
- throw new Error(`Error HTTP ${res.status} al cargar ${targetUrl}: ${res.statusText}`);
28
+ throw new Error(`HTTP ${res.status} error fetching ${targetUrl}: ${res.statusText}`);
29
29
  }
30
30
  const html = await res.text();
31
31
  const finalUrl = res.url || targetUrl;
@@ -43,7 +43,7 @@ export class CheerioDriver {
43
43
  if (typeof script === 'function') {
44
44
  return script();
45
45
  }
46
- throw new Error('evaluate() con string no soportado en CheerioDriver');
46
+ throw new Error('evaluate() with raw string is not supported in CheerioDriver');
47
47
  }
48
48
  async fetch(url, init) {
49
49
  return fetch(url, init);
@@ -1 +1 @@
1
- {"version":3,"file":"cheerio-driver.js","sourceRoot":"","sources":["../../../src/gather/driver/cheerio-driver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,MAAM,OAAO,aAAa;IAChB,GAAG,CAAS;IACZ,IAAI,CAAS;IACb,OAAO,CAAoC;IAC3C,CAAC,CAAqB;IAE9B,YAAY,OAIX;QACC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,aAAa,CAC/B,SAAiB,EACjB,UAAwB,KAAK,EAC7B,OAAkE;QAElE,MAAM,cAAc,GAAG;YACrB,YAAY,EACV,OAAO,EAAE,SAAS;gBAClB,yEAAyE;YAC3E,MAAM,EAAE,iEAAiE;YACzE,GAAG,OAAO,EAAE,OAAO;SACpB,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE;YACnC,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,MAAM,cAAc,SAAS,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC;QAEtC,MAAM,aAAa,GAAsC,EAAE,CAAC;QAC5D,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/B,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,aAAa,CAAC;YACvB,GAAG,EAAE,QAAQ;YACb,IAAI;YACJ,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAI,MAA0B;QACjD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,MAAM,EAAE,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,IAAkB;QAChD,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"cheerio-driver.js","sourceRoot":"","sources":["../../../src/gather/driver/cheerio-driver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,MAAM,OAAO,aAAa;IAChB,GAAG,CAAS;IACZ,IAAI,CAAS;IACb,OAAO,CAAoC;IAC3C,CAAC,CAAqB;IAE9B,YAAY,OAIX;QACC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,aAAa,CAC/B,SAAiB,EACjB,UAAwB,KAAK,EAC7B,OAAkE;QAElE,MAAM,cAAc,GAAG;YACrB,YAAY,EACV,OAAO,EAAE,SAAS;gBAClB,wFAAwF;YAC1F,MAAM,EAAE,iEAAiE;YACzE,GAAG,OAAO,EAAE,OAAO;SACpB,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE;YACnC,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,mBAAmB,SAAS,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC;QAEtC,MAAM,aAAa,GAAsC,EAAE,CAAC;QAC5D,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/B,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,aAAa,CAAC;YACvB,GAAG,EAAE,QAAQ;YACb,IAAI;YACJ,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAI,MAA0B;QACjD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,MAAM,EAAE,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,IAAkB;QAChD,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview ContentChunksGatherer para segmentación semántica de contenido y estimación de tokens para RAG.
2
+ * @fileoverview ContentChunksGatherer for semantic content chunking and token density estimation for RAG.
3
3
  */
4
4
  import { Gatherer } from '../gatherer.js';
5
5
  import type { ContentChunksArtifact, GathererContext } from '../../types/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"content-chunks-gatherer.d.ts","sourceRoot":"","sources":["../../../src/gather/gatherers/content-chunks-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAgB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjG,qBAAa,qBAAsB,SAAQ,QAAQ,CAAC,eAAe,CAAC;IAClE,SAAyB,IAAI,EAAG,eAAe,CAAU;IAEnC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAmG5F"}
1
+ {"version":3,"file":"content-chunks-gatherer.d.ts","sourceRoot":"","sources":["../../../src/gather/gatherers/content-chunks-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAgB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjG,qBAAa,qBAAsB,SAAQ,QAAQ,CAAC,eAAe,CAAC;IAClE,SAAyB,IAAI,EAAG,eAAe,CAAU;IAEnC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAiG5F"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview ContentChunksGatherer para segmentación semántica de contenido y estimación de tokens para RAG.
2
+ * @fileoverview ContentChunksGatherer for semantic content chunking and token density estimation for RAG.
3
3
  */
4
4
  import * as cheerio from 'cheerio';
5
5
  import { Gatherer } from '../gatherer.js';
@@ -8,7 +8,7 @@ export class ContentChunksGatherer extends Gatherer {
8
8
  async getArtifact(context) {
9
9
  const html = await context.driver.getHtml();
10
10
  const $ = cheerio.load(html);
11
- // Remover scripts, styles, navs redundantes para el análisis de contenido textual
11
+ // Remove boilerplate non-content tags
12
12
  $('script, style, noscript, svg, nav, footer, header').remove();
13
13
  const semanticTagsUsed = [];
14
14
  if ($('main').length > 0)
@@ -19,13 +19,11 @@ export class ContentChunksGatherer extends Gatherer {
19
19
  semanticTagsUsed.push('section');
20
20
  const chunks = [];
21
21
  let chunkCounter = 0;
22
- // Buscar secciones o elementos principales
23
22
  const contentContainers = $('article, section, main');
24
23
  const targetElements = contentContainers.length > 0 ? contentContainers : $('body');
25
24
  targetElements.each((_, container) => {
26
25
  const containerTag = container.tagName.toLowerCase();
27
26
  const isSemantic = ['article', 'section', 'main'].includes(containerTag);
28
- // Dividir el contenedor por encabezados internos o párrafos
29
27
  const subNodes = $(container).children('h1, h2, h3, h4, p, ul, ol, table, pre');
30
28
  let currentHeading = undefined;
31
29
  let bufferText = '';
@@ -39,7 +37,7 @@ export class ContentChunksGatherer extends Gatherer {
39
37
  const words = text.split(/\s+/).filter(Boolean);
40
38
  const wordCount = words.length;
41
39
  if (wordCount < 10)
42
- return; // Ignorar fragmentos irrelevantes
40
+ return; // Ignore small noise fragments
43
41
  const estimatedTokens = Math.round(wordCount * 1.3);
44
42
  chunks.push({
45
43
  id: `chunk-${++chunkCounter}`,
@@ -74,7 +72,7 @@ export class ContentChunksGatherer extends Gatherer {
74
72
  if (tag === 'pre' || $(el).find('code').length > 0)
75
73
  hasCode = true;
76
74
  bufferText += ' ' + $(el).text().trim();
77
- // Si el chunk supera ~350 palabras, creamos un sub-chunk para embeddings
75
+ // Split into a subchunk if exceeding ~350 words for embeddings
78
76
  if (bufferText.split(/\s+/).length > 350) {
79
77
  flushChunk();
80
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"content-chunks-gatherer.js","sourceRoot":"","sources":["../../../src/gather/gatherers/content-chunks-gatherer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-chunks-gatherer.js","sourceRoot":"","sources":["../../../src/gather/gatherers/content-chunks-gatherer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview DirectAnswersGatherer para detectar patrones de preguntas clave y respuestas concisas inmediatas.
2
+ * @fileoverview DirectAnswersGatherer to detect query patterns and immediate concise answers.
3
3
  */
4
4
  import { Gatherer } from '../gatherer.js';
5
5
  import type { DirectAnswersArtifact, GathererContext } from '../../types/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"direct-answers-gatherer.d.ts","sourceRoot":"","sources":["../../../src/gather/gatherers/direct-answers-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAoB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAErG,qBAAa,qBAAsB,SAAQ,QAAQ,CAAC,eAAe,CAAC;IAClE,SAAyB,IAAI,EAAG,eAAe,CAAU;IAEnC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAyD5F"}
1
+ {"version":3,"file":"direct-answers-gatherer.d.ts","sourceRoot":"","sources":["../../../src/gather/gatherers/direct-answers-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAoB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAErG,qBAAa,qBAAsB,SAAQ,QAAQ,CAAC,eAAe,CAAC;IAClE,SAAyB,IAAI,EAAG,eAAe,CAAU;IAEnC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAwD5F"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview DirectAnswersGatherer para detectar patrones de preguntas clave y respuestas concisas inmediatas.
2
+ * @fileoverview DirectAnswersGatherer to detect query patterns and immediate concise answers.
3
3
  */
4
4
  import * as cheerio from 'cheerio';
5
5
  import { Gatherer } from '../gatherer.js';
@@ -10,19 +10,18 @@ export class DirectAnswersGatherer extends Gatherer {
10
10
  const $ = cheerio.load(html);
11
11
  const pairs = [];
12
12
  let definitionPatternsFound = 0;
13
- const questionWordsRegex = /^(¿|\?|qué|que|cómo|como|por qué|porque|cuál|cual|cuándo|cuando|dónde|donde|quién|quien|what|how|why|when|where|who|which|is|are|can|do|does)\b/i;
14
- const definitionRegex = /\b(es un|es una|es el|es la|son los|son las|se refiere a|se define como|consiste en|hace referencia a|is a|is an|is the|are the|refers to|is defined as|means)\b/i;
13
+ const questionWordsRegex = /^(what|how|why|when|where|who|which|is|are|can|do|does|should|will|¿|\?|qué|que|cómo|como|por qué|porque|cuál|cual)\b/i;
14
+ const definitionRegex = /\b(is a|is an|is the|are the|refers to|is defined as|means|consists of|es un|es una|es el|es la|son los|son las|se refiere a|se define como|consiste en)\b/i;
15
15
  $('h1, h2, h3, h4').each((_, el) => {
16
16
  const headingText = $(el).text().trim();
17
17
  const isQuestion = headingText.includes('?') || questionWordsRegex.test(headingText);
18
18
  if (isQuestion) {
19
- // Encontrar el siguiente párrafo o lista
20
19
  const nextElem = $(el).nextAll('p, ul, ol').first();
21
20
  if (nextElem.length > 0) {
22
21
  const answerText = nextElem.text().trim().replace(/\s+/g, ' ');
23
22
  const words = answerText.split(/\s+/).filter(Boolean);
24
23
  const answerWordCount = words.length;
25
- // Conciso para Answer Engines: típicamente entre 20 y 75 palabras (ideal 30-60)
24
+ // Concise for Answer Engines: typically between 20 and 75 words (ideal 30-60)
26
25
  const isConcise = answerWordCount >= 20 && answerWordCount <= 75;
27
26
  const hasDirectDefinition = definitionRegex.test(answerText.slice(0, 150));
28
27
  if (hasDirectDefinition) {
@@ -1 +1 @@
1
- {"version":3,"file":"direct-answers-gatherer.js","sourceRoot":"","sources":["../../../src/gather/gatherers/direct-answers-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,OAAO,qBAAsB,SAAQ,QAAyB;IACzC,IAAI,GAAG,eAAwB,CAAC;IAEzC,KAAK,CAAC,WAAW,CAAC,OAAwB;QACxD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,IAAI,uBAAuB,GAAG,CAAC,CAAC;QAEhC,MAAM,kBAAkB,GAAG,kJAAkJ,CAAC;QAC9K,MAAM,eAAe,GAAG,mKAAmK,CAAC;QAE5L,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACjC,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAErF,IAAI,UAAU,EAAE,CAAC;gBACf,yCAAyC;gBACzC,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACtD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;oBAErC,gFAAgF;oBAChF,MAAM,SAAS,GAAG,eAAe,IAAI,EAAE,IAAI,eAAe,IAAI,EAAE,CAAC;oBACjE,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAE3E,IAAI,mBAAmB,EAAE,CAAC;wBACxB,uBAAuB,EAAE,CAAC;oBAC5B,CAAC;oBAED,IAAI,UAAU,GAAG,GAAG,CAAC;oBACrB,IAAI,SAAS;wBAAE,UAAU,IAAI,GAAG,CAAC;oBACjC,IAAI,mBAAmB;wBAAE,UAAU,IAAI,GAAG,CAAC;oBAE3C,KAAK,CAAC,IAAI,CAAC;wBACT,QAAQ,EAAE,WAAW;wBACrB,cAAc,EAAE,SAAS;wBACzB,UAAU;wBACV,eAAe;wBACf,SAAS;wBACT,mBAAmB;wBACnB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC;qBAC3C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QACpE,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpF,OAAO;YACL,KAAK;YACL,iBAAiB;YACjB,mBAAmB;YACnB,uBAAuB;SACxB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"direct-answers-gatherer.js","sourceRoot":"","sources":["../../../src/gather/gatherers/direct-answers-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,OAAO,qBAAsB,SAAQ,QAAyB;IACzC,IAAI,GAAG,eAAwB,CAAC;IAEzC,KAAK,CAAC,WAAW,CAAC,OAAwB;QACxD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,IAAI,uBAAuB,GAAG,CAAC,CAAC;QAEhC,MAAM,kBAAkB,GAAG,wHAAwH,CAAC;QACpJ,MAAM,eAAe,GAAG,6JAA6J,CAAC;QAEtL,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACjC,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAErF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACtD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;oBAErC,8EAA8E;oBAC9E,MAAM,SAAS,GAAG,eAAe,IAAI,EAAE,IAAI,eAAe,IAAI,EAAE,CAAC;oBACjE,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAE3E,IAAI,mBAAmB,EAAE,CAAC;wBACxB,uBAAuB,EAAE,CAAC;oBAC5B,CAAC;oBAED,IAAI,UAAU,GAAG,GAAG,CAAC;oBACrB,IAAI,SAAS;wBAAE,UAAU,IAAI,GAAG,CAAC;oBACjC,IAAI,mBAAmB;wBAAE,UAAU,IAAI,GAAG,CAAC;oBAE3C,KAAK,CAAC,IAAI,CAAC;wBACT,QAAQ,EAAE,WAAW;wBACrB,cAAc,EAAE,SAAS;wBACzB,UAAU;wBACV,eAAe;wBACf,SAAS;wBACT,mBAAmB;wBACnB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC;qBAC3C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QACpE,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpF,OAAO;YACL,KAAK;YACL,iBAAiB;YACjB,mBAAmB;YACnB,uBAAuB;SACxB,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview HeadingsHierarchyGatherer para evaluar la jerarquía y secuencia H1-H6.
2
+ * @fileoverview HeadingsHierarchyGatherer to evaluate H1-H6 sequential hierarchy and structure.
3
3
  */
4
4
  import { Gatherer } from '../gatherer.js';
5
5
  import type { HeadingsHierarchyArtifact, GathererContext } from '../../types/index.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview HeadingsHierarchyGatherer para evaluar la jerarquía y secuencia H1-H6.
2
+ * @fileoverview HeadingsHierarchyGatherer to evaluate H1-H6 sequential hierarchy and structure.
3
3
  */
4
4
  import * as cheerio from 'cheerio';
5
5
  import { Gatherer } from '../gatherer.js';
@@ -36,7 +36,7 @@ export class HeadingsHierarchyGatherer extends Gatherer {
36
36
  for (let i = 1; i < headings.length; i++) {
37
37
  const prev = headings[i - 1];
38
38
  const curr = headings[i];
39
- // Un salto de nivel ocurre cuando se incrementa la profundidad en más de 1 nivel (e.g. h1 -> h3)
39
+ // A skipped level occurs when heading depth increases by more than 1 (e.g. h1 -> h3)
40
40
  if (curr.level > prev.level + 1) {
41
41
  isHierarchySequential = false;
42
42
  skippedLevels.push({
@@ -1 +1 @@
1
- {"version":3,"file":"headings-hierarchy-gatherer.js","sourceRoot":"","sources":["../../../src/gather/gatherers/headings-hierarchy-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,OAAO,yBAA0B,SAAQ,QAA6B;IACjD,IAAI,GAAG,mBAA4B,CAAC;IAE7C,KAAK,CAAC,WAAW,CAAC,OAAwB;QACxD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,eAAe,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAAC;QACpD,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAyB,CAAC;YACtE,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACtD,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE5B,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC3B,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC3B,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAE3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,IAAI;gBACJ,EAAE;gBACF,KAAK;aACN,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAsD,EAAE,CAAC;QAC5E,IAAI,qBAAqB,GAAG,IAAI,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEzB,iGAAiG;YACjG,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAChC,qBAAqB,GAAG,KAAK,CAAC;gBAC9B,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,IAAI,CAAC,KAAK;oBAChB,EAAE,EAAE,IAAI,CAAC,KAAK;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,QAAQ;YACR,OAAO;YACP,OAAO;YACP,OAAO;YACP,WAAW,EAAE,OAAO,KAAK,CAAC;YAC1B,qBAAqB;YACrB,aAAa;SACd,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"headings-hierarchy-gatherer.js","sourceRoot":"","sources":["../../../src/gather/gatherers/headings-hierarchy-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,OAAO,yBAA0B,SAAQ,QAA6B;IACjD,IAAI,GAAG,mBAA4B,CAAC;IAE7C,KAAK,CAAC,WAAW,CAAC,OAAwB;QACxD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,eAAe,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAAC;QACpD,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAyB,CAAC;YACtE,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACtD,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE5B,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC3B,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC3B,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAE3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,IAAI;gBACJ,EAAE;gBACF,KAAK;aACN,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAsD,EAAE,CAAC;QAC5E,IAAI,qBAAqB,GAAG,IAAI,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEzB,qFAAqF;YACrF,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAChC,qBAAqB,GAAG,KAAK,CAAC;gBAC9B,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,IAAI,CAAC,KAAK;oBAChB,EAAE,EAAE,IAAI,CAAC,KAAK;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,QAAQ;YACR,OAAO;YACP,OAAO;YACP,OAAO;YACP,WAAW,EAAE,OAAO,KAAK,CAAC;YAC1B,qBAAqB;YACrB,aAAa;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview RobotsTxtGatherer para obtener y parsear robots.txt y evaluar directivas de bots de IA.
2
+ * @fileoverview RobotsTxtGatherer to fetch and parse robots.txt and evaluate AI bot directives.
3
3
  */
4
4
  import { Gatherer } from '../gatherer.js';
5
5
  import type { RobotsTxtArtifact, GathererContext } from '../../types/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"robots-txt-gatherer.d.ts","sourceRoot":"","sources":["../../../src/gather/gatherers/robots-txt-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAmB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEhG,qBAAa,iBAAkB,SAAQ,QAAQ,CAAC,WAAW,CAAC;IAC1D,SAAyB,IAAI,EAAG,WAAW,CAAU;IAE/B,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsCvF,OAAO,CAAC,cAAc;IAiEtB,OAAO,CAAC,cAAc;CAgDvB"}
1
+ {"version":3,"file":"robots-txt-gatherer.d.ts","sourceRoot":"","sources":["../../../src/gather/gatherers/robots-txt-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAmB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEhG,qBAAa,iBAAkB,SAAQ,QAAQ,CAAC,WAAW,CAAC;IAC1D,SAAyB,IAAI,EAAG,WAAW,CAAU;IAE/B,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqCvF,OAAO,CAAC,cAAc;IAgEtB,OAAO,CAAC,cAAc;CAgDvB"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview RobotsTxtGatherer para obtener y parsear robots.txt y evaluar directivas de bots de IA.
2
+ * @fileoverview RobotsTxtGatherer to fetch and parse robots.txt and evaluate AI bot directives.
3
3
  */
4
4
  import { Gatherer } from '../gatherer.js';
5
5
  export class RobotsTxtGatherer extends Gatherer {
@@ -16,7 +16,7 @@ export class RobotsTxtGatherer extends Gatherer {
16
16
  statusCode = response.status;
17
17
  if (response.ok) {
18
18
  const text = await response.text();
19
- // Verificar que no sea una página de error 404 disfrazada de HTML
19
+ // Verify it is not an HTML 404 page masquerading as 200
20
20
  if (!text.trim().toLowerCase().startsWith('<!doctype html') && !text.trim().toLowerCase().startsWith('<html')) {
21
21
  rawContent = text;
22
22
  exists = true;
@@ -24,7 +24,6 @@ export class RobotsTxtGatherer extends Gatherer {
24
24
  }
25
25
  }
26
26
  catch {
27
- // Ignorar errores de red y marcar como no existente
28
27
  exists = false;
29
28
  }
30
29
  const { rulesByAgent, sitemaps } = this.parseRobotsTxt(rawContent || '');
@@ -57,7 +56,6 @@ export class RobotsTxtGatherer extends Gatherer {
57
56
  const value = line.slice(colonIdx + 1).trim();
58
57
  if (key === 'user-agent') {
59
58
  const agent = value.toLowerCase();
60
- // Si veníamos procesando otro grupo, iniciamos nuevo grupo si no es consecutivo
61
59
  currentAgents = [agent];
62
60
  if (!rulesByAgent[agent]) {
63
61
  rulesByAgent[agent] = {
@@ -1 +1 @@
1
- {"version":3,"file":"robots-txt-gatherer.js","sourceRoot":"","sources":["../../../src/gather/gatherers/robots-txt-gatherer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"robots-txt-gatherer.js","sourceRoot":"","sources":["../../../src/gather/gatherers/robots-txt-gatherer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,OAAO,iBAAkB,SAAQ,QAAqB;IACjC,IAAI,GAAG,WAAoB,CAAC;IAErC,KAAK,CAAC,WAAW,CAAC,OAAwB;QACxD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,MAAM,aAAa,CAAC;QAEhD,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvD,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC7B,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,wDAAwD;gBACxD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9G,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAExE,OAAO;YACL,UAAU;YACV,UAAU;YACV,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,YAAY;SACb,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,OAAe;QAIpC,MAAM,YAAY,GAAoC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,aAAa,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;gBAAE,SAAS;YAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAE9C,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAClC,aAAa,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,YAAY,CAAC,KAAK,CAAC,GAAG;wBACpB,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACb,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1D,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;oBAC/B,IAAI,KAAK,EAAE,CAAC;wBACV,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;oBAC/B,IAAI,KAAK,EAAE,CAAC;wBACV,YAAY,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClB,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;wBAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;wBAC9B,IAAI,IAAI;4BAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACpC,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,KAAK,EAAE,CAAC;oBACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC;IAEO,cAAc,CACpB,KAAsC,EACtC,QAAgB;QAEhB,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAuE,EAAE;YACxG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAE5B,MAAM,IAAI,GAAG,OAAO,IAAI,QAAQ,CAAC;YACjC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,eAAe,CAAC;YACzB,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAErE,IAAI,eAAe,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,OAAO,YAAY,CAAC;YACtB,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAErE,IAAI,gBAAgB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvC,OAAO,YAAY,CAAC;YACtB,CAAC;YAED,IAAI,aAAa,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvC,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,sBAAsB,CAAC;YAChC,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;YAC1B,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC;YACxC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC;YAChC,cAAc,EAAE,QAAQ,CAAC,iBAAiB,CAAC;YAC3C,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;YACxB,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC;YAClC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC;SAChC,CAAC;IACJ,CAAC;CACF"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @fileoverview Generador de reportes HTML interactivos con diseño visual inspirado en Google Lighthouse.
2
+ * @fileoverview Generates standalone interactive HTML reports inspired by Google Lighthouse.
3
3
  */
4
4
  import type { AeoReportResult } from '../types/index.js';
5
5
  export declare class HtmlReporter {
6
6
  /**
7
- * Genera un documento HTML standalone autocontenido con diseño moderno, gauges de puntuación y tablas interactivas.
7
+ * Generates a self-contained HTML document with score gauges and audit breakdowns.
8
8
  */
9
9
  static generate(report: AeoReportResult): string;
10
10
  }
@@ -1,19 +1,19 @@
1
1
  /**
2
- * @fileoverview Generador de reportes HTML interactivos con diseño visual inspirado en Google Lighthouse.
2
+ * @fileoverview Generates standalone interactive HTML reports inspired by Google Lighthouse.
3
3
  */
4
4
  export class HtmlReporter {
5
5
  /**
6
- * Genera un documento HTML standalone autocontenido con diseño moderno, gauges de puntuación y tablas interactivas.
6
+ * Generates a self-contained HTML document with score gauges and audit breakdowns.
7
7
  */
8
8
  static generate(report) {
9
9
  const getScoreColor = (score) => {
10
10
  if (score === null)
11
11
  return '#9e9e9e';
12
12
  if (score >= 0.9 || score >= 90)
13
- return '#0cce6b'; // Verde Lighthouse
13
+ return '#0cce6b'; // Lighthouse Green
14
14
  if (score >= 0.5 || score >= 50)
15
- return '#ffa400'; // Naranja Lighthouse
16
- return '#ff4e42'; // Rojo Lighthouse
15
+ return '#ffa400'; // Lighthouse Orange
16
+ return '#ff4e42'; // Lighthouse Red
17
17
  };
18
18
  const getScoreCategoryClass = (score) => {
19
19
  if (score === null)
@@ -88,7 +88,7 @@ export class HtmlReporter {
88
88
  </summary>
89
89
  <div class="audit-body">
90
90
  <p class="audit-desc">${audit.description}</p>
91
- ${audit.explanation ? `<p class="audit-explanation"><strong>Diagnóstico:</strong> ${audit.explanation}</p>` : ''}
91
+ ${audit.explanation ? `<p class="audit-explanation"><strong>Diagnostic:</strong> ${audit.explanation}</p>` : ''}
92
92
  ${detailsHtml}
93
93
  </div>
94
94
  </details>
@@ -114,7 +114,7 @@ export class HtmlReporter {
114
114
  `;
115
115
  };
116
116
  return `<!DOCTYPE html>
117
- <html lang="es">
117
+ <html lang="en">
118
118
  <head>
119
119
  <meta charset="UTF-8">
120
120
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -264,13 +264,13 @@ export class HtmlReporter {
264
264
  <div class="container">
265
265
  <div class="brand">AEO Linter Engine &bull; Lighthouse Architecture</div>
266
266
  <h1>${report.url}</h1>
267
- <p class="meta">Analizado el ${new Date(report.fetchTime).toLocaleString()} | AEO v${report.aeoVersion}</p>
267
+ <p class="meta">Audited on ${new Date(report.fetchTime).toLocaleString('en-US')} | AEO v${report.aeoVersion}</p>
268
268
  </div>
269
269
  </header>
270
270
 
271
271
  <main class="container">
272
272
  <div class="gauges-grid">
273
- ${renderGauge(report.overallScore, 'Score General AEO')}
273
+ ${renderGauge(report.overallScore, 'Overall AEO Score')}
274
274
  ${Object.values(report.categories)
275
275
  .map((cat) => renderGauge(cat.score !== null ? Math.round(cat.score * 100) : 0, cat.title))
276
276
  .join('')}
@@ -1 +1 @@
1
- {"version":3,"file":"html-reporter.js","sourceRoot":"","sources":["../../src/report/html-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-reporter.js","sourceRoot":"","sources":["../../src/report/html-reporter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview Formateador de resultados para la salida estándar en terminal (CLI).
2
+ * @fileoverview Formats audit reports for standard terminal / console output.
3
3
  */
4
4
  import type { AeoReportResult } from '../types/index.js';
5
5
  export declare class TerminalReporter {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview Formateador de resultados para la salida estándar en terminal (CLI).
2
+ * @fileoverview Formats audit reports for standard terminal / console output.
3
3
  */
4
4
  export class TerminalReporter {
5
5
  static generate(report) {
@@ -18,10 +18,10 @@ export class TerminalReporter {
18
18
  lines.push('\x1b[1m\x1b[36m============================================================\x1b[0m');
19
19
  lines.push(`\x1b[1m AEO Linter Report - Answer Engine Optimization\x1b[0m`);
20
20
  lines.push(` URL: \x1b[4m${report.url}\x1b[0m`);
21
- lines.push(` Fecha: ${new Date(report.fetchTime).toLocaleString()}`);
21
+ lines.push(` Date: ${new Date(report.fetchTime).toLocaleString('en-US')}`);
22
22
  lines.push('\x1b[1m\x1b[36m============================================================\x1b[0m');
23
23
  lines.push('');
24
- lines.push(`\x1b[1m Score General AEO: ${formatScore(report.overallScore)} / 100\x1b[0m`);
24
+ lines.push(`\x1b[1m Overall AEO Score: ${formatScore(report.overallScore)} / 100\x1b[0m`);
25
25
  lines.push('');
26
26
  for (const cat of Object.values(report.categories)) {
27
27
  const catScore = cat.score !== null ? Math.round(cat.score * 100) : null;