@focus-reactive/payload-plugin-seo 1.0.0 → 1.0.2

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 (406) hide show
  1. package/dist/admin.css +1214 -0
  2. package/dist/components/SeoButton/index.d.ts +14 -0
  3. package/dist/components/SeoButton/index.d.ts.map +1 -0
  4. package/dist/components/SeoButton/index.js +81 -0
  5. package/dist/components/SeoButton/index.js.map +1 -0
  6. package/dist/components/SeoDrawer/TabsNav/constants.d.ts +3 -0
  7. package/dist/components/SeoDrawer/TabsNav/constants.d.ts.map +1 -0
  8. package/dist/components/SeoDrawer/TabsNav/constants.js +13 -0
  9. package/dist/components/SeoDrawer/TabsNav/constants.js.map +1 -0
  10. package/dist/components/SeoDrawer/TabsNav/index.d.ts +8 -0
  11. package/dist/components/SeoDrawer/TabsNav/index.d.ts.map +1 -0
  12. package/dist/components/SeoDrawer/TabsNav/index.js +14 -0
  13. package/dist/components/SeoDrawer/TabsNav/index.js.map +1 -0
  14. package/dist/components/SeoDrawer/TabsNav/types.d.ts +8 -0
  15. package/dist/components/SeoDrawer/TabsNav/types.d.ts.map +1 -0
  16. package/dist/components/SeoDrawer/TabsNav/types.js +1 -0
  17. package/dist/components/SeoDrawer/TabsNav/types.js.map +1 -0
  18. package/dist/components/SeoDrawer/TabsNav/variants.d.ts +4 -0
  19. package/dist/components/SeoDrawer/TabsNav/variants.d.ts.map +1 -0
  20. package/dist/components/SeoDrawer/TabsNav/variants.js +14 -0
  21. package/dist/components/SeoDrawer/TabsNav/variants.js.map +1 -0
  22. package/dist/components/SeoDrawer/analysisDecision.d.ts +7 -0
  23. package/dist/components/SeoDrawer/analysisDecision.d.ts.map +1 -0
  24. package/dist/components/SeoDrawer/analysisDecision.js +12 -0
  25. package/dist/components/SeoDrawer/analysisDecision.js.map +1 -0
  26. package/dist/components/SeoDrawer/build-analysis-input.d.ts +24 -0
  27. package/dist/components/SeoDrawer/build-analysis-input.d.ts.map +1 -0
  28. package/dist/components/SeoDrawer/build-analysis-input.js +27 -0
  29. package/dist/components/SeoDrawer/build-analysis-input.js.map +1 -0
  30. package/dist/components/SeoDrawer/buildInput.d.ts +17 -0
  31. package/dist/components/SeoDrawer/buildInput.d.ts.map +1 -0
  32. package/dist/components/SeoDrawer/buildInput.js +32 -0
  33. package/dist/components/SeoDrawer/buildInput.js.map +1 -0
  34. package/dist/components/SeoDrawer/components/Header.d.ts +9 -0
  35. package/dist/components/SeoDrawer/components/Header.d.ts.map +1 -0
  36. package/dist/components/SeoDrawer/components/Header.js +21 -0
  37. package/dist/components/SeoDrawer/components/Header.js.map +1 -0
  38. package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.d.ts +3 -0
  39. package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.d.ts.map +1 -0
  40. package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.js +14 -0
  41. package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.js.map +1 -0
  42. package/dist/components/SeoDrawer/components/SerpPreview/index.d.ts +12 -0
  43. package/dist/components/SeoDrawer/components/SerpPreview/index.d.ts.map +1 -0
  44. package/dist/components/SeoDrawer/components/SerpPreview/index.js +23 -0
  45. package/dist/components/SeoDrawer/components/SerpPreview/index.js.map +1 -0
  46. package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.d.ts +8 -0
  47. package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.d.ts.map +1 -0
  48. package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.js +8 -0
  49. package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.js.map +1 -0
  50. package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.d.ts +3 -0
  51. package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.d.ts.map +1 -0
  52. package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.js +16 -0
  53. package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.js.map +1 -0
  54. package/dist/components/SeoDrawer/components/SerpPreview/variants.d.ts +19 -0
  55. package/dist/components/SeoDrawer/components/SerpPreview/variants.d.ts.map +1 -0
  56. package/dist/components/SeoDrawer/components/SerpPreview/variants.js +58 -0
  57. package/dist/components/SeoDrawer/components/SerpPreview/variants.js.map +1 -0
  58. package/dist/components/SeoDrawer/index.d.ts +18 -0
  59. package/dist/components/SeoDrawer/index.d.ts.map +1 -0
  60. package/dist/components/SeoDrawer/index.js +37 -0
  61. package/dist/components/SeoDrawer/index.js.map +1 -0
  62. package/dist/components/SeoDrawer/keyphrasePending.d.ts +2 -0
  63. package/dist/components/SeoDrawer/keyphrasePending.d.ts.map +1 -0
  64. package/dist/components/SeoDrawer/keyphrasePending.js +9 -0
  65. package/dist/components/SeoDrawer/keyphrasePending.js.map +1 -0
  66. package/dist/components/SeoDrawer/languagePacks.d.ts +2 -0
  67. package/dist/components/SeoDrawer/languagePacks.d.ts.map +1 -0
  68. package/dist/components/SeoDrawer/languagePacks.js +19 -0
  69. package/dist/components/SeoDrawer/languagePacks.js.map +1 -0
  70. package/dist/components/SeoDrawer/tabs/InclusiveTab.d.ts +5 -0
  71. package/dist/components/SeoDrawer/tabs/InclusiveTab.d.ts.map +1 -0
  72. package/dist/components/SeoDrawer/tabs/InclusiveTab.js +46 -0
  73. package/dist/components/SeoDrawer/tabs/InclusiveTab.js.map +1 -0
  74. package/dist/components/SeoDrawer/tabs/KeyphraseTab.d.ts +11 -0
  75. package/dist/components/SeoDrawer/tabs/KeyphraseTab.d.ts.map +1 -0
  76. package/dist/components/SeoDrawer/tabs/KeyphraseTab.js +72 -0
  77. package/dist/components/SeoDrawer/tabs/KeyphraseTab.js.map +1 -0
  78. package/dist/components/SeoDrawer/tabs/OnPageTab.d.ts +5 -0
  79. package/dist/components/SeoDrawer/tabs/OnPageTab.d.ts.map +1 -0
  80. package/dist/components/SeoDrawer/tabs/OnPageTab.js +37 -0
  81. package/dist/components/SeoDrawer/tabs/OnPageTab.js.map +1 -0
  82. package/dist/components/SeoDrawer/tabs/ReadabilityTab.d.ts +5 -0
  83. package/dist/components/SeoDrawer/tabs/ReadabilityTab.d.ts.map +1 -0
  84. package/dist/components/SeoDrawer/tabs/ReadabilityTab.js +37 -0
  85. package/dist/components/SeoDrawer/tabs/ReadabilityTab.js.map +1 -0
  86. package/dist/components/SeoDrawer/tabs/SerpTab.d.ts +7 -0
  87. package/dist/components/SeoDrawer/tabs/SerpTab.d.ts.map +1 -0
  88. package/dist/components/SeoDrawer/tabs/SerpTab.js +41 -0
  89. package/dist/components/SeoDrawer/tabs/SerpTab.js.map +1 -0
  90. package/dist/components/SeoDrawer/tabs/VitalsTab.d.ts +7 -0
  91. package/dist/components/SeoDrawer/tabs/VitalsTab.d.ts.map +1 -0
  92. package/dist/components/SeoDrawer/tabs/VitalsTab.js +42 -0
  93. package/dist/components/SeoDrawer/tabs/VitalsTab.js.map +1 -0
  94. package/dist/components/SeoDrawer/useAnalysis.d.ts +17 -0
  95. package/dist/components/SeoDrawer/useAnalysis.d.ts.map +1 -0
  96. package/dist/components/SeoDrawer/useAnalysis.js +57 -0
  97. package/dist/components/SeoDrawer/useAnalysis.js.map +1 -0
  98. package/dist/components/SeoDrawer/useLiveDocument.d.ts +22 -0
  99. package/dist/components/SeoDrawer/useLiveDocument.d.ts.map +1 -0
  100. package/dist/components/SeoDrawer/useLiveDocument.js +85 -0
  101. package/dist/components/SeoDrawer/useLiveDocument.js.map +1 -0
  102. package/dist/components/SeoDrawer/variants.d.ts +4 -0
  103. package/dist/components/SeoDrawer/variants.d.ts.map +1 -0
  104. package/dist/components/SeoDrawer/variants.js +14 -0
  105. package/dist/components/SeoDrawer/variants.js.map +1 -0
  106. package/dist/components/icons.d.ts +7 -0
  107. package/dist/components/icons.d.ts.map +1 -0
  108. package/dist/components/icons.js +40 -0
  109. package/dist/components/icons.js.map +1 -0
  110. package/dist/config.d.ts +4 -0
  111. package/dist/config.d.ts.map +1 -0
  112. package/dist/config.js +15 -0
  113. package/dist/config.js.map +1 -0
  114. package/dist/constants/checkIds.d.ts +8 -0
  115. package/dist/constants/checkIds.d.ts.map +1 -0
  116. package/dist/constants/checkIds.js +21 -0
  117. package/dist/constants/checkIds.js.map +1 -0
  118. package/dist/constants/index.d.ts +5 -0
  119. package/dist/constants/index.d.ts.map +1 -0
  120. package/dist/constants/index.js +10 -0
  121. package/dist/constants/index.js.map +1 -0
  122. package/dist/constants/statuses.d.ts +3 -0
  123. package/dist/constants/statuses.d.ts.map +1 -0
  124. package/dist/constants/statuses.js +9 -0
  125. package/dist/constants/statuses.js.map +1 -0
  126. package/dist/content/extractContent.d.ts +3 -0
  127. package/dist/content/extractContent.d.ts.map +1 -0
  128. package/dist/content/extractContent.js +31 -0
  129. package/dist/content/extractContent.js.map +1 -0
  130. package/dist/content/lexicalToHtml.d.ts +6 -0
  131. package/dist/content/lexicalToHtml.d.ts.map +1 -0
  132. package/dist/content/lexicalToHtml.js +15 -0
  133. package/dist/content/lexicalToHtml.js.map +1 -0
  134. package/dist/content/uploads/collect-upload-refs.d.ts +5 -0
  135. package/dist/content/uploads/collect-upload-refs.d.ts.map +1 -0
  136. package/dist/content/uploads/collect-upload-refs.js +19 -0
  137. package/dist/content/uploads/collect-upload-refs.js.map +1 -0
  138. package/dist/content/uploads/hydrate-values.d.ts +5 -0
  139. package/dist/content/uploads/hydrate-values.d.ts.map +1 -0
  140. package/dist/content/uploads/hydrate-values.js +15 -0
  141. package/dist/content/uploads/hydrate-values.js.map +1 -0
  142. package/dist/content/uploads/media-resolver.d.ts +7 -0
  143. package/dist/content/uploads/media-resolver.d.ts.map +1 -0
  144. package/dist/content/uploads/media-resolver.js +60 -0
  145. package/dist/content/uploads/media-resolver.js.map +1 -0
  146. package/dist/content/uploads/transform-lexical-uploads.d.ts +5 -0
  147. package/dist/content/uploads/transform-lexical-uploads.d.ts.map +1 -0
  148. package/dist/content/uploads/transform-lexical-uploads.js +34 -0
  149. package/dist/content/uploads/transform-lexical-uploads.js.map +1 -0
  150. package/dist/content/uploads/transform-upload-values.d.ts +10 -0
  151. package/dist/content/uploads/transform-upload-values.d.ts.map +1 -0
  152. package/dist/content/uploads/transform-upload-values.js +108 -0
  153. package/dist/content/uploads/transform-upload-values.js.map +1 -0
  154. package/dist/content/uploads/types.d.ts +8 -0
  155. package/dist/content/uploads/types.d.ts.map +1 -0
  156. package/dist/content/uploads/types.js +7 -0
  157. package/dist/content/uploads/types.js.map +1 -0
  158. package/dist/content/walkValue.d.ts +14 -0
  159. package/dist/content/walkValue.d.ts.map +1 -0
  160. package/dist/content/walkValue.js +62 -0
  161. package/dist/content/walkValue.js.map +1 -0
  162. package/dist/css.d.js +1 -0
  163. package/dist/css.d.js.map +1 -0
  164. package/dist/engine/assessorAdapter.d.ts +14 -0
  165. package/dist/engine/assessorAdapter.d.ts.map +1 -0
  166. package/dist/engine/assessorAdapter.js +23 -0
  167. package/dist/engine/assessorAdapter.js.map +1 -0
  168. package/dist/engine/buildPaper.d.ts +4 -0
  169. package/dist/engine/buildPaper.d.ts.map +1 -0
  170. package/dist/engine/buildPaper.js +16 -0
  171. package/dist/engine/buildPaper.js.map +1 -0
  172. package/dist/engine/extractCheckData.d.ts +4 -0
  173. package/dist/engine/extractCheckData.d.ts.map +1 -0
  174. package/dist/engine/extractCheckData.js +162 -0
  175. package/dist/engine/extractCheckData.js.map +1 -0
  176. package/dist/engine/helpers/has-keyphrase.d.ts +2 -0
  177. package/dist/engine/helpers/has-keyphrase.d.ts.map +1 -0
  178. package/dist/engine/helpers/has-keyphrase.js +7 -0
  179. package/dist/engine/helpers/has-keyphrase.js.map +1 -0
  180. package/dist/engine/helpers/title-progress.d.ts +5 -0
  181. package/dist/engine/helpers/title-progress.d.ts.map +1 -0
  182. package/dist/engine/helpers/title-progress.js +21 -0
  183. package/dist/engine/helpers/title-progress.js.map +1 -0
  184. package/dist/engine/inclusiveScore.d.ts +15 -0
  185. package/dist/engine/inclusiveScore.d.ts.map +1 -0
  186. package/dist/engine/inclusiveScore.js +25 -0
  187. package/dist/engine/inclusiveScore.js.map +1 -0
  188. package/dist/engine/recommendations.d.ts +7 -0
  189. package/dist/engine/recommendations.d.ts.map +1 -0
  190. package/dist/engine/recommendations.js +53 -0
  191. package/dist/engine/recommendations.js.map +1 -0
  192. package/dist/engine/researcherAdapter.d.ts +6 -0
  193. package/dist/engine/researcherAdapter.d.ts.map +1 -0
  194. package/dist/engine/researcherAdapter.js +16 -0
  195. package/dist/engine/researcherAdapter.js.map +1 -0
  196. package/dist/engine/runAnalysis/index.d.ts +3 -0
  197. package/dist/engine/runAnalysis/index.d.ts.map +1 -0
  198. package/dist/engine/runAnalysis/index.js +24 -0
  199. package/dist/engine/runAnalysis/index.js.map +1 -0
  200. package/dist/engine/runAnalysis/services/derive-inclusive.d.ts +4 -0
  201. package/dist/engine/runAnalysis/services/derive-inclusive.d.ts.map +1 -0
  202. package/dist/engine/runAnalysis/services/derive-inclusive.js +47 -0
  203. package/dist/engine/runAnalysis/services/derive-inclusive.js.map +1 -0
  204. package/dist/engine/runAnalysis/services/derive-readability.d.ts +4 -0
  205. package/dist/engine/runAnalysis/services/derive-readability.d.ts.map +1 -0
  206. package/dist/engine/runAnalysis/services/derive-readability.js +32 -0
  207. package/dist/engine/runAnalysis/services/derive-readability.js.map +1 -0
  208. package/dist/engine/runAnalysis/services/derive-seo.d.ts +18 -0
  209. package/dist/engine/runAnalysis/services/derive-seo.d.ts.map +1 -0
  210. package/dist/engine/runAnalysis/services/derive-seo.js +40 -0
  211. package/dist/engine/runAnalysis/services/derive-seo.js.map +1 -0
  212. package/dist/engine/runAnalysis/services/derive-serp.d.ts +3 -0
  213. package/dist/engine/runAnalysis/services/derive-serp.d.ts.map +1 -0
  214. package/dist/engine/runAnalysis/services/derive-serp.js +13 -0
  215. package/dist/engine/runAnalysis/services/derive-serp.js.map +1 -0
  216. package/dist/engine/runAnalysis/services/derive-vitals/index.d.ts +4 -0
  217. package/dist/engine/runAnalysis/services/derive-vitals/index.d.ts.map +1 -0
  218. package/dist/engine/runAnalysis/services/derive-vitals/index.js +19 -0
  219. package/dist/engine/runAnalysis/services/derive-vitals/index.js.map +1 -0
  220. package/dist/engine/runAnalysis/services/derive-vitals/researches.d.ts +19 -0
  221. package/dist/engine/runAnalysis/services/derive-vitals/researches.d.ts.map +1 -0
  222. package/dist/engine/runAnalysis/services/derive-vitals/researches.js +47 -0
  223. package/dist/engine/runAnalysis/services/derive-vitals/researches.js.map +1 -0
  224. package/dist/engine/runAnalysis/utils/enrich.d.ts +5 -0
  225. package/dist/engine/runAnalysis/utils/enrich.d.ts.map +1 -0
  226. package/dist/engine/runAnalysis/utils/enrich.js +16 -0
  227. package/dist/engine/runAnalysis/utils/enrich.js.map +1 -0
  228. package/dist/engine/runAnalysis/utils/toCategory.d.ts +3 -0
  229. package/dist/engine/runAnalysis/utils/toCategory.d.ts.map +1 -0
  230. package/dist/engine/runAnalysis/utils/toCategory.js +13 -0
  231. package/dist/engine/runAnalysis/utils/toCategory.js.map +1 -0
  232. package/dist/engine/scoreStatus.d.ts +8 -0
  233. package/dist/engine/scoreStatus.d.ts.map +1 -0
  234. package/dist/engine/scoreStatus.js +35 -0
  235. package/dist/engine/scoreStatus.js.map +1 -0
  236. package/dist/engine/types/analysis.d.ts +81 -0
  237. package/dist/engine/types/analysis.d.ts.map +1 -0
  238. package/dist/engine/types/analysis.js +1 -0
  239. package/dist/engine/types/analysis.js.map +1 -0
  240. package/dist/engine/types/paper.d.ts +8 -0
  241. package/dist/engine/types/paper.d.ts.map +1 -0
  242. package/dist/engine/types/paper.js +1 -0
  243. package/dist/engine/types/paper.js.map +1 -0
  244. package/dist/engine/types/visualization.d.ts +73 -0
  245. package/dist/engine/types/visualization.d.ts.map +1 -0
  246. package/dist/engine/types/visualization.js +1 -0
  247. package/dist/engine/types/visualization.js.map +1 -0
  248. package/dist/engine/visualization/buildGauge.d.ts +3 -0
  249. package/dist/engine/visualization/buildGauge.d.ts.map +1 -0
  250. package/dist/engine/visualization/buildGauge.js +62 -0
  251. package/dist/engine/visualization/buildGauge.js.map +1 -0
  252. package/dist/engine/visualization/formatGaugeValue.d.ts +3 -0
  253. package/dist/engine/visualization/formatGaugeValue.d.ts.map +1 -0
  254. package/dist/engine/visualization/formatGaugeValue.js +16 -0
  255. package/dist/engine/visualization/formatGaugeValue.js.map +1 -0
  256. package/dist/engine/visualization/gaugeSpecs.d.ts +4 -0
  257. package/dist/engine/visualization/gaugeSpecs.d.ts.map +1 -0
  258. package/dist/engine/visualization/gaugeSpecs.js +78 -0
  259. package/dist/engine/visualization/gaugeSpecs.js.map +1 -0
  260. package/dist/engine/visualization/resolveVisualization/constants.d.ts +4 -0
  261. package/dist/engine/visualization/resolveVisualization/constants.d.ts.map +1 -0
  262. package/dist/engine/visualization/resolveVisualization/constants.js +17 -0
  263. package/dist/engine/visualization/resolveVisualization/constants.js.map +1 -0
  264. package/dist/engine/visualization/resolveVisualization/index.d.ts +4 -0
  265. package/dist/engine/visualization/resolveVisualization/index.d.ts.map +1 -0
  266. package/dist/engine/visualization/resolveVisualization/index.js +43 -0
  267. package/dist/engine/visualization/resolveVisualization/index.js.map +1 -0
  268. package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.d.ts +3 -0
  269. package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.d.ts.map +1 -0
  270. package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.js +19 -0
  271. package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.js.map +1 -0
  272. package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.d.ts +4 -0
  273. package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.d.ts.map +1 -0
  274. package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.js +24 -0
  275. package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.js.map +1 -0
  276. package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.d.ts +4 -0
  277. package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.d.ts.map +1 -0
  278. package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.js +7 -0
  279. package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.js.map +1 -0
  280. package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.d.ts +4 -0
  281. package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.d.ts.map +1 -0
  282. package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.js +20 -0
  283. package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.js.map +1 -0
  284. package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.d.ts +4 -0
  285. package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.d.ts.map +1 -0
  286. package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.js +28 -0
  287. package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.js.map +1 -0
  288. package/dist/engine/visualization/resolveVisualization/utils/pluralize.d.ts +2 -0
  289. package/dist/engine/visualization/resolveVisualization/utils/pluralize.d.ts.map +1 -0
  290. package/dist/engine/visualization/resolveVisualization/utils/pluralize.js +5 -0
  291. package/dist/engine/visualization/resolveVisualization/utils/pluralize.js.map +1 -0
  292. package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.d.ts +5 -0
  293. package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.d.ts.map +1 -0
  294. package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.js +8 -0
  295. package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.js.map +1 -0
  296. package/dist/engine/visualization/resolveVisualization/utils/readNumber.d.ts +2 -0
  297. package/dist/engine/visualization/resolveVisualization/utils/readNumber.d.ts.map +1 -0
  298. package/dist/engine/visualization/resolveVisualization/utils/readNumber.js +8 -0
  299. package/dist/engine/visualization/resolveVisualization/utils/readNumber.js.map +1 -0
  300. package/dist/engine/visualization/resolveVisualization/utils/readPositions.d.ts +2 -0
  301. package/dist/engine/visualization/resolveVisualization/utils/readPositions.d.ts.map +1 -0
  302. package/dist/engine/visualization/resolveVisualization/utils/readPositions.js +8 -0
  303. package/dist/engine/visualization/resolveVisualization/utils/readPositions.js.map +1 -0
  304. package/dist/index.d.ts +3 -0
  305. package/dist/index.d.ts.map +1 -0
  306. package/dist/index.js +5 -0
  307. package/dist/index.js.map +1 -0
  308. package/dist/plugin.d.ts +4 -0
  309. package/dist/plugin.d.ts.map +1 -0
  310. package/dist/plugin.js +23 -0
  311. package/dist/plugin.js.map +1 -0
  312. package/dist/translations/en.d.ts +3 -0
  313. package/dist/translations/en.d.ts.map +1 -0
  314. package/dist/translations/en.js +17 -0
  315. package/dist/translations/en.js.map +1 -0
  316. package/dist/translations/types.d.ts +2 -0
  317. package/dist/translations/types.d.ts.map +1 -0
  318. package/dist/translations/types.js +1 -0
  319. package/dist/translations/types.js.map +1 -0
  320. package/dist/types/config.d.ts +39 -0
  321. package/dist/types/config.d.ts.map +1 -0
  322. package/dist/types/config.js +1 -0
  323. package/dist/types/config.js.map +1 -0
  324. package/dist/ui/CheckRow/CheckVisualization/index.d.ts +5 -0
  325. package/dist/ui/CheckRow/CheckVisualization/index.d.ts.map +1 -0
  326. package/dist/ui/CheckRow/CheckVisualization/index.js +27 -0
  327. package/dist/ui/CheckRow/CheckVisualization/index.js.map +1 -0
  328. package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.d.ts +3 -0
  329. package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.d.ts.map +1 -0
  330. package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.js +72 -0
  331. package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.js.map +1 -0
  332. package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.d.ts +3 -0
  333. package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.d.ts.map +1 -0
  334. package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.js +16 -0
  335. package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.js.map +1 -0
  336. package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.d.ts +3 -0
  337. package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.d.ts.map +1 -0
  338. package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.js +36 -0
  339. package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.js.map +1 -0
  340. package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.d.ts +3 -0
  341. package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.d.ts.map +1 -0
  342. package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.js +32 -0
  343. package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.js.map +1 -0
  344. package/dist/ui/CheckRow/constants/labels.d.ts +6 -0
  345. package/dist/ui/CheckRow/constants/labels.d.ts.map +1 -0
  346. package/dist/ui/CheckRow/constants/labels.js +103 -0
  347. package/dist/ui/CheckRow/constants/labels.js.map +1 -0
  348. package/dist/ui/CheckRow/index.d.ts +7 -0
  349. package/dist/ui/CheckRow/index.d.ts.map +1 -0
  350. package/dist/ui/CheckRow/index.js +29 -0
  351. package/dist/ui/CheckRow/index.js.map +1 -0
  352. package/dist/ui/FilterPills.d.ts +10 -0
  353. package/dist/ui/FilterPills.d.ts.map +1 -0
  354. package/dist/ui/FilterPills.js +37 -0
  355. package/dist/ui/FilterPills.js.map +1 -0
  356. package/dist/ui/KpiCard.d.ts +9 -0
  357. package/dist/ui/KpiCard.d.ts.map +1 -0
  358. package/dist/ui/KpiCard.js +19 -0
  359. package/dist/ui/KpiCard.js.map +1 -0
  360. package/dist/ui/Pill.d.ts +9 -0
  361. package/dist/ui/Pill.d.ts.map +1 -0
  362. package/dist/ui/Pill.js +20 -0
  363. package/dist/ui/Pill.js.map +1 -0
  364. package/dist/ui/ScoreRing.d.ts +8 -0
  365. package/dist/ui/ScoreRing.d.ts.map +1 -0
  366. package/dist/ui/ScoreRing.js +20 -0
  367. package/dist/ui/ScoreRing.js.map +1 -0
  368. package/dist/ui/SectionCard.d.ts +9 -0
  369. package/dist/ui/SectionCard.d.ts.map +1 -0
  370. package/dist/ui/SectionCard.js +16 -0
  371. package/dist/ui/SectionCard.js.map +1 -0
  372. package/dist/ui/SectionWrapper.d.ts +8 -0
  373. package/dist/ui/SectionWrapper.d.ts.map +1 -0
  374. package/dist/ui/SectionWrapper.js +10 -0
  375. package/dist/ui/SectionWrapper.js.map +1 -0
  376. package/dist/ui/SegmentedControl.d.ts +15 -0
  377. package/dist/ui/SegmentedControl.d.ts.map +1 -0
  378. package/dist/ui/SegmentedControl.js +75 -0
  379. package/dist/ui/SegmentedControl.js.map +1 -0
  380. package/dist/ui/TabHeader.d.ts +12 -0
  381. package/dist/ui/TabHeader.d.ts.map +1 -0
  382. package/dist/ui/TabHeader.js +22 -0
  383. package/dist/ui/TabHeader.js.map +1 -0
  384. package/dist/ui/Tooltip.d.ts +17 -0
  385. package/dist/ui/Tooltip.d.ts.map +1 -0
  386. package/dist/ui/Tooltip.js +81 -0
  387. package/dist/ui/Tooltip.js.map +1 -0
  388. package/dist/utils/config/getComponentPath.d.ts +2 -0
  389. package/dist/utils/config/getComponentPath.d.ts.map +1 -0
  390. package/dist/utils/config/getComponentPath.js +8 -0
  391. package/dist/utils/config/getComponentPath.js.map +1 -0
  392. package/dist/utils/config/mergeTranslations.d.ts +3 -0
  393. package/dist/utils/config/mergeTranslations.d.ts.map +1 -0
  394. package/dist/utils/config/mergeTranslations.js +11 -0
  395. package/dist/utils/config/mergeTranslations.js.map +1 -0
  396. package/dist/utils/config/overrideAdmin.d.ts +4 -0
  397. package/dist/utils/config/overrideAdmin.d.ts.map +1 -0
  398. package/dist/utils/config/overrideAdmin.js +43 -0
  399. package/dist/utils/config/overrideAdmin.js.map +1 -0
  400. package/dist/utils/style.d.ts +4 -0
  401. package/dist/utils/style.d.ts.map +1 -0
  402. package/dist/utils/style.js +11 -0
  403. package/dist/utils/style.js.map +1 -0
  404. package/dist/yoastseo.d.js +1 -0
  405. package/dist/yoastseo.d.js.map +1 -0
  406. package/package.json +1 -1
@@ -0,0 +1,47 @@
1
+ import { getResearch } from "../../../researcherAdapter";
2
+ const WORDS_PER_MINUTE = 200;
3
+ const MAX_PROMINENT_WORDS = 5;
4
+ function countWords(researcher) {
5
+ const raw = getResearch(researcher, "wordCountInText");
6
+ return typeof raw === "number" ? raw : raw?.count ?? 0;
7
+ }
8
+ function countSentences(researcher) {
9
+ const fromArray = (getResearch(researcher, "countSentencesFromText") ?? []).length;
10
+ if (fromArray > 0)
11
+ return fromArray;
12
+ return getResearch(researcher, "countSentencesFromText") ?? 0;
13
+ }
14
+ function countParagraphs(researcher) {
15
+ return (getResearch(researcher, "getParagraphs") ?? []).length;
16
+ }
17
+ function countImages(researcher) {
18
+ return getResearch(researcher, "imageCount") ?? 0;
19
+ }
20
+ function countVideos(researcher) {
21
+ return getResearch(researcher, "videoCount") ?? 0;
22
+ }
23
+ function estimateReadingTime({ researcher, words }) {
24
+ return getResearch(researcher, "readingTime") ?? Math.max(1, Math.round(words / WORDS_PER_MINUTE));
25
+ }
26
+ function findProminentWords({ researcher, keyphrase }) {
27
+ const keyphraseWords = new Set(keyphrase.toLowerCase().split(/\s+/u).filter(Boolean));
28
+ const insights = getResearch(researcher, "getProminentWordsForInsights") ?? [];
29
+ return insights.slice(0, MAX_PROMINENT_WORDS).map((entry) => {
30
+ const word = entry.getWord?.() ?? String(entry);
31
+ return {
32
+ word,
33
+ count: entry.getOccurrences?.() ?? 0,
34
+ isKeyphrase: keyphraseWords.has(word.toLowerCase())
35
+ };
36
+ });
37
+ }
38
+ export {
39
+ countImages,
40
+ countParagraphs,
41
+ countSentences,
42
+ countVideos,
43
+ countWords,
44
+ estimateReadingTime,
45
+ findProminentWords
46
+ };
47
+ //# sourceMappingURL=researches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/engine/runAnalysis/services/derive-vitals/researches.ts"],"sourcesContent":["import { getResearch } from \"../../../researcherAdapter\";\nimport type { YoastResearcher } from \"../../../researcherAdapter\";\nimport type { ProminentWord } from \"../../../types/analysis\";\n\nconst WORDS_PER_MINUTE = 200;\nconst MAX_PROMINENT_WORDS = 5;\n\nexport function countWords(researcher: YoastResearcher): number {\n const raw = getResearch<number | { count?: number }>(researcher, \"wordCountInText\");\n\n return typeof raw === \"number\" ? raw : (raw?.count ?? 0);\n}\n\nexport function countSentences(researcher: YoastResearcher): number {\n const fromArray = (getResearch<unknown[]>(researcher, \"countSentencesFromText\") ?? []).length;\n\n if (fromArray > 0) return fromArray;\n\n return getResearch<number>(researcher, \"countSentencesFromText\") ?? 0;\n}\n\nexport function countParagraphs(researcher: YoastResearcher): number {\n return (getResearch<unknown[]>(researcher, \"getParagraphs\") ?? []).length;\n}\n\nexport function countImages(researcher: YoastResearcher): number {\n return getResearch<number>(researcher, \"imageCount\") ?? 0;\n}\n\nexport function countVideos(researcher: YoastResearcher): number {\n return getResearch<number>(researcher, \"videoCount\") ?? 0;\n}\n\ninterface EstimateReadingTimeArgs {\n researcher: YoastResearcher;\n words: number;\n}\n\nexport function estimateReadingTime({ researcher, words }: EstimateReadingTimeArgs): number {\n return getResearch<number>(researcher, \"readingTime\") ?? Math.max(1, Math.round(words / WORDS_PER_MINUTE));\n}\n\ninterface FindProminentWordsArgs {\n researcher: YoastResearcher;\n keyphrase: string;\n}\n\nexport function findProminentWords({ researcher, keyphrase }: FindProminentWordsArgs): ProminentWord[] {\n const keyphraseWords = new Set(keyphrase.toLowerCase().split(/\\s+/u).filter(Boolean));\n\n const insights = getResearch<{ getWord?: () => string; getOccurrences?: () => number }[]>(researcher, \"getProminentWordsForInsights\") ?? [];\n\n return insights.slice(0, MAX_PROMINENT_WORDS).map((entry) => {\n const word = entry.getWord?.() ?? String(entry);\n\n return {\n word,\n count: entry.getOccurrences?.() ?? 0,\n isKeyphrase: keyphraseWords.has(word.toLowerCase()),\n };\n });\n}\n"],"mappings":"AAAA,SAAS,mBAAmB;AAI5B,MAAM,mBAAmB;AACzB,MAAM,sBAAsB;AAErB,SAAS,WAAW,YAAqC;AAC9D,QAAM,MAAM,YAAyC,YAAY,iBAAiB;AAElF,SAAO,OAAO,QAAQ,WAAW,MAAO,KAAK,SAAS;AACxD;AAEO,SAAS,eAAe,YAAqC;AAClE,QAAM,aAAa,YAAuB,YAAY,wBAAwB,KAAK,CAAC,GAAG;AAEvF,MAAI,YAAY;AAAG,WAAO;AAE1B,SAAO,YAAoB,YAAY,wBAAwB,KAAK;AACtE;AAEO,SAAS,gBAAgB,YAAqC;AACnE,UAAQ,YAAuB,YAAY,eAAe,KAAK,CAAC,GAAG;AACrE;AAEO,SAAS,YAAY,YAAqC;AAC/D,SAAO,YAAoB,YAAY,YAAY,KAAK;AAC1D;AAEO,SAAS,YAAY,YAAqC;AAC/D,SAAO,YAAoB,YAAY,YAAY,KAAK;AAC1D;AAOO,SAAS,oBAAoB,EAAE,YAAY,MAAM,GAAoC;AAC1F,SAAO,YAAoB,YAAY,aAAa,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,gBAAgB,CAAC;AAC3G;AAOO,SAAS,mBAAmB,EAAE,YAAY,UAAU,GAA4C;AACrG,QAAM,iBAAiB,IAAI,IAAI,UAAU,YAAY,EAAE,MAAM,MAAM,EAAE,OAAO,OAAO,CAAC;AAEpF,QAAM,WAAW,YAAyE,YAAY,8BAA8B,KAAK,CAAC;AAE1I,SAAO,SAAS,MAAM,GAAG,mBAAmB,EAAE,IAAI,CAAC,UAAU;AAC3D,UAAM,OAAO,MAAM,UAAU,KAAK,OAAO,KAAK;AAE9C,WAAO;AAAA,MACL;AAAA,MACA,OAAO,MAAM,iBAAiB,KAAK;AAAA,MACnC,aAAa,eAAe,IAAI,KAAK,YAAY,CAAC;AAAA,IACpD;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,5 @@
1
+ import type { YoastResearcher } from "../../researcherAdapter";
2
+ import type { CheckResult } from "../../types/analysis";
3
+ import type { PaperLike } from "../../types/paper";
4
+ export declare function enrich(checks: CheckResult[], paper: PaperLike, researcher: YoastResearcher): CheckResult[];
5
+ //# sourceMappingURL=enrich.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrich.d.ts","sourceRoot":"","sources":["../../../../src/engine/runAnalysis/utils/enrich.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKnD,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,GAAG,WAAW,EAAE,CAU1G"}
@@ -0,0 +1,16 @@
1
+ import { extractCheckData } from "../../extractCheckData";
2
+ import { resolveVisualization } from "../../visualization/resolveVisualization";
3
+ function enrich(checks, paper, researcher) {
4
+ return checks.map((check) => {
5
+ const data = extractCheckData(check.id, paper, researcher);
6
+ return {
7
+ ...check,
8
+ data,
9
+ viz: resolveVisualization(check, data)
10
+ };
11
+ });
12
+ }
13
+ export {
14
+ enrich
15
+ };
16
+ //# sourceMappingURL=enrich.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/engine/runAnalysis/utils/enrich.ts"],"sourcesContent":["import type { YoastResearcher } from \"../../researcherAdapter\";\nimport type { CheckResult } from \"../../types/analysis\";\nimport type { PaperLike } from \"../../types/paper\";\n\nimport { extractCheckData } from \"../../extractCheckData\";\nimport { resolveVisualization } from \"../../visualization/resolveVisualization\";\n\nexport function enrich(checks: CheckResult[], paper: PaperLike, researcher: YoastResearcher): CheckResult[] {\n return checks.map((check) => {\n const data = extractCheckData(check.id, paper, researcher);\n\n return {\n ...check,\n data,\n viz: resolveVisualization(check, data),\n };\n });\n}\n"],"mappings":"AAIA,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AAE9B,SAAS,OAAO,QAAuB,OAAkB,YAA4C;AAC1G,SAAO,OAAO,IAAI,CAAC,UAAU;AAC3B,UAAM,OAAO,iBAAiB,MAAM,IAAI,OAAO,UAAU;AAEzD,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,KAAK,qBAAqB,OAAO,IAAI;AAAA,IACvC;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { CategoryResult, CheckResult } from "../../types/analysis";
2
+ export declare function toCategory(checks: CheckResult[]): CategoryResult;
3
+ //# sourceMappingURL=toCategory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toCategory.d.ts","sourceRoot":"","sources":["../../../../src/engine/runAnalysis/utils/toCategory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExE,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,CAQhE"}
@@ -0,0 +1,13 @@
1
+ import { ringToStatus, statusToRing } from "../../scoreStatus";
2
+ function toCategory(checks) {
3
+ const ringScore = statusToRing(checks);
4
+ return {
5
+ ringScore,
6
+ status: ringToStatus(ringScore),
7
+ checks
8
+ };
9
+ }
10
+ export {
11
+ toCategory
12
+ };
13
+ //# sourceMappingURL=toCategory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/engine/runAnalysis/utils/toCategory.ts"],"sourcesContent":["import { ringToStatus, statusToRing } from \"../../scoreStatus\";\nimport type { CategoryResult, CheckResult } from \"../../types/analysis\";\n\nexport function toCategory(checks: CheckResult[]): CategoryResult {\n const ringScore = statusToRing(checks);\n\n return {\n ringScore,\n status: ringToStatus(ringScore),\n checks,\n };\n}\n"],"mappings":"AAAA,SAAS,cAAc,oBAAoB;AAGpC,SAAS,WAAW,QAAuC;AAChE,QAAM,YAAY,aAAa,MAAM;AAErC,SAAO;AAAA,IACL;AAAA,IACA,QAAQ,aAAa,SAAS;AAAA,IAC9B;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,8 @@
1
+ import type { Status } from "./types/analysis";
2
+ export declare function scoreToStatus(score: number): Status;
3
+ export declare function fleschToStatus(score: number): Status;
4
+ export declare function statusToRing(checks: {
5
+ status: Status;
6
+ }[]): number;
7
+ export declare function ringToStatus(ring: number): Status;
8
+ //# sourceMappingURL=scoreStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoreStatus.d.ts","sourceRoot":"","sources":["../../src/engine/scoreStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpD;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAMjE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD"}
@@ -0,0 +1,35 @@
1
+ function scoreToStatus(score) {
2
+ if (score > 7)
3
+ return "good";
4
+ if (score > 4)
5
+ return "warn";
6
+ return "bad";
7
+ }
8
+ function fleschToStatus(score) {
9
+ if (score >= 60)
10
+ return "good";
11
+ if (score >= 50)
12
+ return "warn";
13
+ return "bad";
14
+ }
15
+ const WEIGHT = { good: 1, warn: 0.5, bad: 0 };
16
+ function statusToRing(checks) {
17
+ if (checks.length === 0)
18
+ return 100;
19
+ const sum = checks.reduce((acc, c) => acc + WEIGHT[c.status], 0);
20
+ return Math.round(sum / checks.length * 100);
21
+ }
22
+ function ringToStatus(ring) {
23
+ if (ring >= 80)
24
+ return "good";
25
+ if (ring >= 50)
26
+ return "warn";
27
+ return "bad";
28
+ }
29
+ export {
30
+ fleschToStatus,
31
+ ringToStatus,
32
+ scoreToStatus,
33
+ statusToRing
34
+ };
35
+ //# sourceMappingURL=scoreStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/engine/scoreStatus.ts"],"sourcesContent":["import type { Status } from \"./types/analysis\";\n\nexport function scoreToStatus(score: number): Status {\n if (score > 7) return \"good\";\n if (score > 4) return \"warn\";\n\n return \"bad\";\n}\n\nexport function fleschToStatus(score: number): Status {\n if (score >= 60) return \"good\";\n if (score >= 50) return \"warn\";\n\n return \"bad\";\n}\n\nconst WEIGHT: Record<Status, number> = { good: 1, warn: 0.5, bad: 0 };\n\nexport function statusToRing(checks: { status: Status }[]): number {\n if (checks.length === 0) return 100;\n\n const sum = checks.reduce((acc, c) => acc + WEIGHT[c.status], 0);\n\n return Math.round((sum / checks.length) * 100);\n}\n\nexport function ringToStatus(ring: number): Status {\n if (ring >= 80) return \"good\";\n if (ring >= 50) return \"warn\";\n\n return \"bad\";\n}\n"],"mappings":"AAEO,SAAS,cAAc,OAAuB;AACnD,MAAI,QAAQ;AAAG,WAAO;AACtB,MAAI,QAAQ;AAAG,WAAO;AAEtB,SAAO;AACT;AAEO,SAAS,eAAe,OAAuB;AACpD,MAAI,SAAS;AAAI,WAAO;AACxB,MAAI,SAAS;AAAI,WAAO;AAExB,SAAO;AACT;AAEA,MAAM,SAAiC,EAAE,MAAM,GAAG,MAAM,KAAK,KAAK,EAAE;AAE7D,SAAS,aAAa,QAAsC;AACjE,MAAI,OAAO,WAAW;AAAG,WAAO;AAEhC,QAAM,MAAM,OAAO,OAAO,CAAC,KAAK,MAAM,MAAM,OAAO,EAAE,MAAM,GAAG,CAAC;AAE/D,SAAO,KAAK,MAAO,MAAM,OAAO,SAAU,GAAG;AAC/C;AAEO,SAAS,aAAa,MAAsB;AACjD,MAAI,QAAQ;AAAI,WAAO;AACvB,MAAI,QAAQ;AAAI,WAAO;AAEvB,SAAO;AACT;","names":[]}
@@ -0,0 +1,81 @@
1
+ import type { Visualization } from "./visualization";
2
+ export type Status = "good" | "warn" | "bad";
3
+ export type TotalStatus = Status | "idle";
4
+ export interface CheckResult {
5
+ id: string;
6
+ status: Status;
7
+ score: number;
8
+ recommendation?: string;
9
+ data?: Record<string, unknown>;
10
+ viz?: Visualization;
11
+ }
12
+ export interface InclusiveFlag {
13
+ term: string;
14
+ suggestion: string;
15
+ location: string;
16
+ }
17
+ export interface InclusiveCategory {
18
+ name: string;
19
+ flags: InclusiveFlag[];
20
+ }
21
+ export interface ProminentWord {
22
+ word: string;
23
+ count: number;
24
+ isKeyphrase: boolean;
25
+ }
26
+ export interface VitalsResult {
27
+ words: number;
28
+ sentences: number;
29
+ paragraphs: number;
30
+ images: number;
31
+ videos: number;
32
+ readingTimeMinutes: number;
33
+ prominentWords: ProminentWord[];
34
+ }
35
+ export interface SerpResult {
36
+ title: string;
37
+ url: string;
38
+ description: string;
39
+ siteName: string;
40
+ }
41
+ export interface CategoryResult {
42
+ ringScore: number;
43
+ status: Status;
44
+ checks: CheckResult[];
45
+ }
46
+ export interface AnalysisResult {
47
+ overall: {
48
+ seoScore: number;
49
+ status: Status;
50
+ };
51
+ keyphrase: CategoryResult;
52
+ onPage: CategoryResult;
53
+ readability: CategoryResult;
54
+ inclusive: {
55
+ ringScore: number;
56
+ status: Status;
57
+ categories: InclusiveCategory[];
58
+ cleanCategories: string[];
59
+ };
60
+ vitals: VitalsResult;
61
+ serp: SerpResult;
62
+ }
63
+ export interface AnalysisInput {
64
+ title: string;
65
+ slug: string;
66
+ description: string;
67
+ contentHtml: string;
68
+ keyphrase: string;
69
+ locale: string;
70
+ site: {
71
+ name: string;
72
+ baseUrl: string;
73
+ };
74
+ has: {
75
+ seoTitle: boolean;
76
+ metaDescription: boolean;
77
+ slug: boolean;
78
+ content: boolean;
79
+ };
80
+ }
81
+ //# sourceMappingURL=analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../../src/engine/types/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,iBAAiB,EAAE,CAAC;QAChC,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,GAAG,EAAE;QACH,QAAQ,EAAE,OAAO,CAAC;QAClB,eAAe,EAAE,OAAO,CAAC;QACzB,IAAI,EAAE,OAAO,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,8 @@
1
+ import type { Paper } from "yoastseo";
2
+ export type PaperData = InstanceType<typeof Paper>;
3
+ export interface PaperLike {
4
+ getTitle?: () => string;
5
+ getText?: () => string;
6
+ getKeyword?: () => string;
7
+ }
8
+ //# sourceMappingURL=paper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paper.d.ts","sourceRoot":"","sources":["../../../src/engine/types/paper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=paper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,73 @@
1
+ import type { Status } from "./analysis";
2
+ export interface GaugeBand {
3
+ startPct: number;
4
+ endPct: number;
5
+ status: Status;
6
+ }
7
+ export interface GaugeTickLabel {
8
+ pct: number;
9
+ text: string;
10
+ emphasis?: "good";
11
+ }
12
+ export interface GaugeModel {
13
+ bands: GaugeBand[];
14
+ markerPct: number;
15
+ markerLabel: string;
16
+ markerStatus: Status;
17
+ labels: GaugeTickLabel[];
18
+ }
19
+ export type GaugeUnit = "words" | "chars" | "px" | "percent" | "score";
20
+ interface YoastScoredSpec {
21
+ statusSource: "yoast";
22
+ axisMin: number;
23
+ axisMax: number;
24
+ thresholds: number[];
25
+ scores: number[];
26
+ unit: GaugeUnit;
27
+ }
28
+ interface DirectStatusSpec {
29
+ statusSource: "direct";
30
+ axisMin: number;
31
+ axisMax: number;
32
+ thresholds: number[];
33
+ statuses: Status[];
34
+ unit: GaugeUnit;
35
+ }
36
+ export type GaugeSpec = YoastScoredSpec | DirectStatusSpec;
37
+ export type SwatchTone = "good" | "warn" | "bad" | "muted";
38
+ export interface SegmentModel {
39
+ countLabel?: string;
40
+ filledPct: number;
41
+ filledStatus: Status;
42
+ legend?: {
43
+ tone: SwatchTone;
44
+ label: string;
45
+ }[];
46
+ }
47
+ export interface DrilldownModel {
48
+ items: {
49
+ left: string;
50
+ right: string;
51
+ }[];
52
+ label: string;
53
+ }
54
+ export interface DistributionModel {
55
+ positions: number[];
56
+ }
57
+ export type Visualization = {
58
+ type: "presence";
59
+ } | {
60
+ type: "value-range";
61
+ gauge: GaugeModel;
62
+ } | {
63
+ type: "proportion";
64
+ segment: SegmentModel;
65
+ } | {
66
+ type: "count-drilldown";
67
+ drilldown: DrilldownModel;
68
+ } | {
69
+ type: "distribution";
70
+ distribution: DistributionModel;
71
+ };
72
+ export {};
73
+ //# sourceMappingURL=visualization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualization.d.ts","sourceRoot":"","sources":["../../../src/engine/types/visualization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvE,UAAU,eAAe;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,UAAU,gBAAgB;IACxB,YAAY,EAAE,QAAQ,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,iBAAiB,CAAA;CAAE,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=visualization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { GaugeModel, GaugeSpec } from "../types/visualization";
2
+ export declare function buildGauge(spec: GaugeSpec, markerValue: number, markerLabel: string): GaugeModel;
3
+ //# sourceMappingURL=buildGauge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildGauge.d.ts","sourceRoot":"","sources":["../../../src/engine/visualization/buildGauge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAa,UAAU,EAAE,SAAS,EAAkB,MAAM,wBAAwB,CAAC;AAG/F,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAkEhG"}
@@ -0,0 +1,62 @@
1
+ import { scoreToStatus } from "../scoreStatus";
2
+ import { formatGaugeValue } from "./formatGaugeValue";
3
+ function buildGauge(spec, markerValue, markerLabel) {
4
+ const toPct = (v) => (v - spec.axisMin) / (spec.axisMax - spec.axisMin) * 100;
5
+ const clamp = (n, lo, hi) => Math.min(Math.max(n, lo), hi);
6
+ const edges = [spec.axisMin, ...spec.thresholds, spec.axisMax];
7
+ const statusAt = (i) => {
8
+ if (spec.statusSource === "yoast") {
9
+ const score = spec.scores[i];
10
+ return scoreToStatus(score ?? 0);
11
+ }
12
+ return spec.statuses[i] ?? "bad";
13
+ };
14
+ const bands = [];
15
+ for (let i = 0; i < edges.length - 1; i++) {
16
+ const lo = edges[i] ?? spec.axisMin;
17
+ const hi = edges[i + 1] ?? spec.axisMax;
18
+ bands.push({
19
+ startPct: toPct(lo),
20
+ endPct: toPct(hi),
21
+ status: statusAt(i)
22
+ });
23
+ }
24
+ const markerPct = clamp(toPct(markerValue), 0, 100);
25
+ const lastBandIndex = bands.length - 1;
26
+ let markerBandIndex = lastBandIndex;
27
+ for (let i = 0; i < lastBandIndex; i++) {
28
+ const upper = edges[i + 1] ?? spec.axisMax;
29
+ if (markerValue <= upper) {
30
+ markerBandIndex = i;
31
+ break;
32
+ }
33
+ }
34
+ const markerBand = bands[markerBandIndex] ?? bands[lastBandIndex];
35
+ const markerStatus = markerBand?.status ?? "bad";
36
+ const labels = [
37
+ {
38
+ pct: toPct(spec.axisMin),
39
+ text: formatGaugeValue(spec.axisMin, spec.unit)
40
+ }
41
+ ];
42
+ const goodIndex = bands.findIndex((band) => band.status === "good");
43
+ const goodBand = goodIndex === -1 ? void 0 : bands[goodIndex];
44
+ if (goodBand) {
45
+ const goodLo = edges[goodIndex] ?? spec.axisMin;
46
+ const goodHi = edges[goodIndex + 1] ?? spec.axisMax;
47
+ labels.push({
48
+ pct: (goodBand.startPct + goodBand.endPct) / 2,
49
+ text: `${formatGaugeValue(goodLo, spec.unit)}\u2013${formatGaugeValue(goodHi, spec.unit)}`,
50
+ emphasis: "good"
51
+ });
52
+ }
53
+ labels.push({
54
+ pct: toPct(spec.axisMax),
55
+ text: formatGaugeValue(spec.axisMax, spec.unit)
56
+ });
57
+ return { bands, markerPct, markerLabel, markerStatus, labels };
58
+ }
59
+ export {
60
+ buildGauge
61
+ };
62
+ //# sourceMappingURL=buildGauge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/engine/visualization/buildGauge.ts"],"sourcesContent":["import { scoreToStatus } from \"../scoreStatus\";\nimport type { Status } from \"../types/analysis\";\nimport type { GaugeBand, GaugeModel, GaugeSpec, GaugeTickLabel } from \"../types/visualization\";\nimport { formatGaugeValue } from \"./formatGaugeValue\";\n\nexport function buildGauge(spec: GaugeSpec, markerValue: number, markerLabel: string): GaugeModel {\n const toPct = (v: number): number => ((v - spec.axisMin) / (spec.axisMax - spec.axisMin)) * 100;\n\n const clamp = (n: number, lo: number, hi: number): number => Math.min(Math.max(n, lo), hi);\n\n const edges = [spec.axisMin, ...spec.thresholds, spec.axisMax];\n\n const statusAt = (i: number): Status => {\n if (spec.statusSource === \"yoast\") {\n const score = spec.scores[i];\n return scoreToStatus(score ?? 0);\n }\n return spec.statuses[i] ?? \"bad\";\n };\n\n const bands: GaugeBand[] = [];\n for (let i = 0; i < edges.length - 1; i++) {\n const lo = edges[i] ?? spec.axisMin;\n const hi = edges[i + 1] ?? spec.axisMax;\n\n bands.push({\n startPct: toPct(lo),\n endPct: toPct(hi),\n status: statusAt(i),\n });\n }\n\n const markerPct = clamp(toPct(markerValue), 0, 100);\n\n const lastBandIndex = bands.length - 1;\n let markerBandIndex = lastBandIndex;\n for (let i = 0; i < lastBandIndex; i++) {\n const upper = edges[i + 1] ?? spec.axisMax;\n if (markerValue <= upper) {\n markerBandIndex = i;\n break;\n }\n }\n const markerBand = bands[markerBandIndex] ?? bands[lastBandIndex];\n const markerStatus: Status = markerBand?.status ?? \"bad\";\n\n const labels: GaugeTickLabel[] = [\n {\n pct: toPct(spec.axisMin),\n text: formatGaugeValue(spec.axisMin, spec.unit),\n },\n ];\n\n const goodIndex = bands.findIndex((band) => band.status === \"good\");\n const goodBand = goodIndex === -1 ? undefined : bands[goodIndex];\n if (goodBand) {\n const goodLo = edges[goodIndex] ?? spec.axisMin;\n const goodHi = edges[goodIndex + 1] ?? spec.axisMax;\n labels.push({\n pct: (goodBand.startPct + goodBand.endPct) / 2,\n text: `${formatGaugeValue(goodLo, spec.unit)}–${formatGaugeValue(goodHi, spec.unit)}`,\n emphasis: \"good\",\n });\n }\n\n labels.push({\n pct: toPct(spec.axisMax),\n text: formatGaugeValue(spec.axisMax, spec.unit),\n });\n\n return { bands, markerPct, markerLabel, markerStatus, labels };\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAG9B,SAAS,wBAAwB;AAE1B,SAAS,WAAW,MAAiB,aAAqB,aAAiC;AAChG,QAAM,QAAQ,CAAC,OAAwB,IAAI,KAAK,YAAY,KAAK,UAAU,KAAK,WAAY;AAE5F,QAAM,QAAQ,CAAC,GAAW,IAAY,OAAuB,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE;AAEzF,QAAM,QAAQ,CAAC,KAAK,SAAS,GAAG,KAAK,YAAY,KAAK,OAAO;AAE7D,QAAM,WAAW,CAAC,MAAsB;AACtC,QAAI,KAAK,iBAAiB,SAAS;AACjC,YAAM,QAAQ,KAAK,OAAO,CAAC;AAC3B,aAAO,cAAc,SAAS,CAAC;AAAA,IACjC;AACA,WAAO,KAAK,SAAS,CAAC,KAAK;AAAA,EAC7B;AAEA,QAAM,QAAqB,CAAC;AAC5B,WAAS,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;AACzC,UAAM,KAAK,MAAM,CAAC,KAAK,KAAK;AAC5B,UAAM,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK;AAEhC,UAAM,KAAK;AAAA,MACT,UAAU,MAAM,EAAE;AAAA,MAClB,QAAQ,MAAM,EAAE;AAAA,MAChB,QAAQ,SAAS,CAAC;AAAA,IACpB,CAAC;AAAA,EACH;AAEA,QAAM,YAAY,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG;AAElD,QAAM,gBAAgB,MAAM,SAAS;AACrC,MAAI,kBAAkB;AACtB,WAAS,IAAI,GAAG,IAAI,eAAe,KAAK;AACtC,UAAM,QAAQ,MAAM,IAAI,CAAC,KAAK,KAAK;AACnC,QAAI,eAAe,OAAO;AACxB,wBAAkB;AAClB;AAAA,IACF;AAAA,EACF;AACA,QAAM,aAAa,MAAM,eAAe,KAAK,MAAM,aAAa;AAChE,QAAM,eAAuB,YAAY,UAAU;AAEnD,QAAM,SAA2B;AAAA,IAC/B;AAAA,MACE,KAAK,MAAM,KAAK,OAAO;AAAA,MACvB,MAAM,iBAAiB,KAAK,SAAS,KAAK,IAAI;AAAA,IAChD;AAAA,EACF;AAEA,QAAM,YAAY,MAAM,UAAU,CAAC,SAAS,KAAK,WAAW,MAAM;AAClE,QAAM,WAAW,cAAc,KAAK,SAAY,MAAM,SAAS;AAC/D,MAAI,UAAU;AACZ,UAAM,SAAS,MAAM,SAAS,KAAK,KAAK;AACxC,UAAM,SAAS,MAAM,YAAY,CAAC,KAAK,KAAK;AAC5C,WAAO,KAAK;AAAA,MACV,MAAM,SAAS,WAAW,SAAS,UAAU;AAAA,MAC7C,MAAM,GAAG,iBAAiB,QAAQ,KAAK,IAAI,CAAC,SAAI,iBAAiB,QAAQ,KAAK,IAAI,CAAC;AAAA,MACnF,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AAEA,SAAO,KAAK;AAAA,IACV,KAAK,MAAM,KAAK,OAAO;AAAA,IACvB,MAAM,iBAAiB,KAAK,SAAS,KAAK,IAAI;AAAA,EAChD,CAAC;AAED,SAAO,EAAE,OAAO,WAAW,aAAa,cAAc,OAAO;AAC/D;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { GaugeUnit } from "../types/visualization";
2
+ export declare function formatGaugeValue(value: number, unit: GaugeUnit): string;
3
+ //# sourceMappingURL=formatGaugeValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatGaugeValue.d.ts","sourceRoot":"","sources":["../../../src/engine/visualization/formatGaugeValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAWvE"}
@@ -0,0 +1,16 @@
1
+ function formatGaugeValue(value, unit) {
2
+ switch (unit) {
3
+ case "px":
4
+ return `${value}px`;
5
+ case "percent":
6
+ return `${value.toFixed(1)}%`;
7
+ case "words":
8
+ case "chars":
9
+ case "score":
10
+ return String(value);
11
+ }
12
+ }
13
+ export {
14
+ formatGaugeValue
15
+ };
16
+ //# sourceMappingURL=formatGaugeValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/engine/visualization/formatGaugeValue.ts"],"sourcesContent":["import type { GaugeUnit } from \"../types/visualization\";\n\nexport function formatGaugeValue(value: number, unit: GaugeUnit): string {\n switch (unit) {\n case \"px\":\n return `${value}px`;\n case \"percent\":\n return `${value.toFixed(1)}%`;\n case \"words\":\n case \"chars\":\n case \"score\":\n return String(value);\n }\n}\n"],"mappings":"AAEO,SAAS,iBAAiB,OAAe,MAAyB;AACvE,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,GAAG,KAAK;AAAA,IACjB,KAAK;AACH,aAAO,GAAG,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC5B,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,OAAO,KAAK;AAAA,EACvB;AACF;","names":[]}
@@ -0,0 +1,4 @@
1
+ import type { CheckId } from "../../constants/checkIds";
2
+ import type { GaugeSpec } from "../types/visualization";
3
+ export declare const GAUGE_SPECS: Partial<Record<CheckId, GaugeSpec>>;
4
+ //# sourceMappingURL=gaugeSpecs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gaugeSpecs.d.ts","sourceRoot":"","sources":["../../../src/engine/visualization/gaugeSpecs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAyE3D,CAAC"}
@@ -0,0 +1,78 @@
1
+ const GAUGE_SPECS = {
2
+ keyphraseLength: {
3
+ statusSource: "yoast",
4
+ axisMin: 0,
5
+ axisMax: 12,
6
+ thresholds: [4, 8],
7
+ scores: [9, 6, 3],
8
+ unit: "words"
9
+ },
10
+ keyphraseDensity: {
11
+ statusSource: "yoast",
12
+ axisMin: 0,
13
+ axisMax: 5,
14
+ thresholds: [0.5, 3],
15
+ scores: [4, 9, -10],
16
+ unit: "percent"
17
+ },
18
+ metaDescriptionLength: {
19
+ statusSource: "yoast",
20
+ axisMin: 0,
21
+ axisMax: 180,
22
+ thresholds: [0, 120, 156],
23
+ scores: [3, 6, 9, 6],
24
+ unit: "chars"
25
+ },
26
+ titleWidth: {
27
+ statusSource: "yoast",
28
+ axisMin: 0,
29
+ axisMax: 700,
30
+ thresholds: [400, 600],
31
+ scores: [6, 9, 3],
32
+ unit: "px"
33
+ },
34
+ textLength: {
35
+ statusSource: "yoast",
36
+ axisMin: 0,
37
+ axisMax: 350,
38
+ thresholds: [250, 300],
39
+ scores: [3, 6, 9],
40
+ unit: "words"
41
+ },
42
+ fleschReadingEase: {
43
+ statusSource: "direct",
44
+ axisMin: 0,
45
+ axisMax: 100,
46
+ thresholds: [50, 60],
47
+ statuses: ["bad", "warn", "good"],
48
+ unit: "score"
49
+ },
50
+ textSentenceLength: {
51
+ statusSource: "direct",
52
+ axisMin: 0,
53
+ axisMax: 50,
54
+ thresholds: [25, 30],
55
+ statuses: ["good", "warn", "bad"],
56
+ unit: "percent"
57
+ },
58
+ passiveVoice: {
59
+ statusSource: "direct",
60
+ axisMin: 0,
61
+ axisMax: 50,
62
+ thresholds: [10, 15],
63
+ statuses: ["good", "warn", "bad"],
64
+ unit: "percent"
65
+ },
66
+ textTransitionWords: {
67
+ statusSource: "direct",
68
+ axisMin: 0,
69
+ axisMax: 50,
70
+ thresholds: [20, 30],
71
+ statuses: ["bad", "warn", "good"],
72
+ unit: "percent"
73
+ }
74
+ };
75
+ export {
76
+ GAUGE_SPECS
77
+ };
78
+ //# sourceMappingURL=gaugeSpecs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/engine/visualization/gaugeSpecs.ts"],"sourcesContent":["import type { CheckId } from \"../../constants/checkIds\";\nimport type { GaugeSpec } from \"../types/visualization\";\n\nexport const GAUGE_SPECS: Partial<Record<CheckId, GaugeSpec>> = {\n keyphraseLength: {\n statusSource: \"yoast\",\n axisMin: 0,\n axisMax: 12,\n thresholds: [4, 8],\n scores: [9, 6, 3],\n unit: \"words\",\n },\n keyphraseDensity: {\n statusSource: \"yoast\",\n axisMin: 0,\n axisMax: 5,\n thresholds: [0.5, 3],\n scores: [4, 9, -10],\n unit: \"percent\",\n },\n metaDescriptionLength: {\n statusSource: \"yoast\",\n axisMin: 0,\n axisMax: 180,\n thresholds: [0, 120, 156],\n scores: [3, 6, 9, 6],\n unit: \"chars\",\n },\n titleWidth: {\n statusSource: \"yoast\",\n axisMin: 0,\n axisMax: 700,\n thresholds: [400, 600],\n scores: [6, 9, 3],\n unit: \"px\",\n },\n textLength: {\n statusSource: \"yoast\",\n axisMin: 0,\n axisMax: 350,\n thresholds: [250, 300],\n scores: [3, 6, 9],\n unit: \"words\",\n },\n fleschReadingEase: {\n statusSource: \"direct\",\n axisMin: 0,\n axisMax: 100,\n thresholds: [50, 60],\n statuses: [\"bad\", \"warn\", \"good\"],\n unit: \"score\",\n },\n textSentenceLength: {\n statusSource: \"direct\",\n axisMin: 0,\n axisMax: 50,\n thresholds: [25, 30],\n statuses: [\"good\", \"warn\", \"bad\"],\n unit: \"percent\",\n },\n passiveVoice: {\n statusSource: \"direct\",\n axisMin: 0,\n axisMax: 50,\n thresholds: [10, 15],\n statuses: [\"good\", \"warn\", \"bad\"],\n unit: \"percent\",\n },\n textTransitionWords: {\n statusSource: \"direct\",\n axisMin: 0,\n axisMax: 50,\n thresholds: [20, 30],\n statuses: [\"bad\", \"warn\", \"good\"],\n unit: \"percent\",\n },\n};\n"],"mappings":"AAGO,MAAM,cAAmD;AAAA,EAC9D,iBAAiB;AAAA,IACf,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY,CAAC,GAAG,CAAC;AAAA,IACjB,QAAQ,CAAC,GAAG,GAAG,CAAC;AAAA,IAChB,MAAM;AAAA,EACR;AAAA,EACA,kBAAkB;AAAA,IAChB,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY,CAAC,KAAK,CAAC;AAAA,IACnB,QAAQ,CAAC,GAAG,GAAG,GAAG;AAAA,IAClB,MAAM;AAAA,EACR;AAAA,EACA,uBAAuB;AAAA,IACrB,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY,CAAC,GAAG,KAAK,GAAG;AAAA,IACxB,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,IACnB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY,CAAC,KAAK,GAAG;AAAA,IACrB,QAAQ,CAAC,GAAG,GAAG,CAAC;AAAA,IAChB,MAAM;AAAA,EACR;AAAA,EACA,YAAY;AAAA,IACV,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY,CAAC,KAAK,GAAG;AAAA,IACrB,QAAQ,CAAC,GAAG,GAAG,CAAC;AAAA,IAChB,MAAM;AAAA,EACR;AAAA,EACA,mBAAmB;AAAA,IACjB,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY,CAAC,IAAI,EAAE;AAAA,IACnB,UAAU,CAAC,OAAO,QAAQ,MAAM;AAAA,IAChC,MAAM;AAAA,EACR;AAAA,EACA,oBAAoB;AAAA,IAClB,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY,CAAC,IAAI,EAAE;AAAA,IACnB,UAAU,CAAC,QAAQ,QAAQ,KAAK;AAAA,IAChC,MAAM;AAAA,EACR;AAAA,EACA,cAAc;AAAA,IACZ,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY,CAAC,IAAI,EAAE;AAAA,IACnB,UAAU,CAAC,QAAQ,QAAQ,KAAK;AAAA,IAChC,MAAM;AAAA,EACR;AAAA,EACA,qBAAqB;AAAA,IACnB,cAAc;AAAA,IACd,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY,CAAC,IAAI,EAAE;AAAA,IACnB,UAAU,CAAC,OAAO,QAAQ,MAAM;AAAA,IAChC,MAAM;AAAA,EACR;AACF;","names":[]}
@@ -0,0 +1,4 @@
1
+ import type { CheckId } from "../../../constants/checkIds";
2
+ export declare const gaugeKeyByCheck: Partial<Record<CheckId, string>>;
3
+ export declare const PRESENCE_CHECKS: Set<"textLength" | "introductionKeyword" | "keyphraseLength" | "keyphraseDensity" | "metaDescriptionKeyword" | "subheadingsKeyword" | "textCompetingLinks" | "imageKeyphrase" | "keyphraseInSEOTitle" | "slugKeyword" | "keyphraseDistribution" | "metaDescriptionLength" | "titleWidth" | "images" | "externalLinks" | "internalLinks" | "singleH1" | "fleschReadingEase" | "subheadingsTooLong" | "textParagraphTooLong" | "textSentenceLength" | "textTransitionWords" | "passiveVoice" | "sentenceBeginnings" | "functionWordsInKeyphrase">;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/engine/visualization/resolveVisualization/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAE3D,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAU5D,CAAC;AAEF,eAAO,MAAM,eAAe,ihBAA8J,CAAC"}
@@ -0,0 +1,17 @@
1
+ const gaugeKeyByCheck = {
2
+ keyphraseLength: "words",
3
+ keyphraseDensity: "densityPct",
4
+ metaDescriptionLength: "chars",
5
+ titleWidth: "px",
6
+ textLength: "words",
7
+ textSentenceLength: "pct",
8
+ textTransitionWords: "pct",
9
+ passiveVoice: "pct",
10
+ fleschReadingEase: "score"
11
+ };
12
+ const PRESENCE_CHECKS = /* @__PURE__ */ new Set(["introductionKeyword", "metaDescriptionKeyword", "keyphraseInSEOTitle", "slugKeyword", "functionWordsInKeyphrase", "images", "singleH1"]);
13
+ export {
14
+ PRESENCE_CHECKS,
15
+ gaugeKeyByCheck
16
+ };
17
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/engine/visualization/resolveVisualization/constants.ts"],"sourcesContent":["import type { CheckId } from \"../../../constants/checkIds\";\n\nexport const gaugeKeyByCheck: Partial<Record<CheckId, string>> = {\n keyphraseLength: \"words\",\n keyphraseDensity: \"densityPct\",\n metaDescriptionLength: \"chars\",\n titleWidth: \"px\",\n textLength: \"words\",\n textSentenceLength: \"pct\",\n textTransitionWords: \"pct\",\n passiveVoice: \"pct\",\n fleschReadingEase: \"score\",\n};\n\nexport const PRESENCE_CHECKS = new Set<CheckId>([\"introductionKeyword\", \"metaDescriptionKeyword\", \"keyphraseInSEOTitle\", \"slugKeyword\", \"functionWordsInKeyphrase\", \"images\", \"singleH1\"]);\n"],"mappings":"AAEO,MAAM,kBAAoD;AAAA,EAC/D,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,mBAAmB;AACrB;AAEO,MAAM,kBAAkB,oBAAI,IAAa,CAAC,uBAAuB,0BAA0B,uBAAuB,eAAe,4BAA4B,UAAU,UAAU,CAAC;","names":[]}
@@ -0,0 +1,4 @@
1
+ import type { CheckResult } from "../../types/analysis";
2
+ import type { Visualization } from "../../types/visualization";
3
+ export declare function resolveVisualization(check: CheckResult, data: Record<string, unknown> | undefined): Visualization;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engine/visualization/resolveVisualization/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAS/D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,aAAa,CA+BjH"}