@focus-reactive/payload-plugin-seo 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin.css +1214 -0
- package/dist/components/SeoButton/index.d.ts +14 -0
- package/dist/components/SeoButton/index.d.ts.map +1 -0
- package/dist/components/SeoButton/index.js +81 -0
- package/dist/components/SeoButton/index.js.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/constants.d.ts +3 -0
- package/dist/components/SeoDrawer/TabsNav/constants.d.ts.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/constants.js +13 -0
- package/dist/components/SeoDrawer/TabsNav/constants.js.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/index.d.ts +8 -0
- package/dist/components/SeoDrawer/TabsNav/index.d.ts.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/index.js +14 -0
- package/dist/components/SeoDrawer/TabsNav/index.js.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/types.d.ts +8 -0
- package/dist/components/SeoDrawer/TabsNav/types.d.ts.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/types.js +1 -0
- package/dist/components/SeoDrawer/TabsNav/types.js.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/variants.d.ts +4 -0
- package/dist/components/SeoDrawer/TabsNav/variants.d.ts.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/variants.js +14 -0
- package/dist/components/SeoDrawer/TabsNav/variants.js.map +1 -0
- package/dist/components/SeoDrawer/analysisDecision.d.ts +7 -0
- package/dist/components/SeoDrawer/analysisDecision.d.ts.map +1 -0
- package/dist/components/SeoDrawer/analysisDecision.js +12 -0
- package/dist/components/SeoDrawer/analysisDecision.js.map +1 -0
- package/dist/components/SeoDrawer/build-analysis-input.d.ts +24 -0
- package/dist/components/SeoDrawer/build-analysis-input.d.ts.map +1 -0
- package/dist/components/SeoDrawer/build-analysis-input.js +27 -0
- package/dist/components/SeoDrawer/build-analysis-input.js.map +1 -0
- package/dist/components/SeoDrawer/buildInput.d.ts +17 -0
- package/dist/components/SeoDrawer/buildInput.d.ts.map +1 -0
- package/dist/components/SeoDrawer/buildInput.js +32 -0
- package/dist/components/SeoDrawer/buildInput.js.map +1 -0
- package/dist/components/SeoDrawer/components/Header.d.ts +9 -0
- package/dist/components/SeoDrawer/components/Header.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/Header.js +21 -0
- package/dist/components/SeoDrawer/components/Header.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.d.ts +3 -0
- package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.js +14 -0
- package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/index.d.ts +12 -0
- package/dist/components/SeoDrawer/components/SerpPreview/index.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/index.js +23 -0
- package/dist/components/SeoDrawer/components/SerpPreview/index.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.d.ts +8 -0
- package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.js +8 -0
- package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.d.ts +3 -0
- package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.js +16 -0
- package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/variants.d.ts +19 -0
- package/dist/components/SeoDrawer/components/SerpPreview/variants.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/variants.js +58 -0
- package/dist/components/SeoDrawer/components/SerpPreview/variants.js.map +1 -0
- package/dist/components/SeoDrawer/index.d.ts +18 -0
- package/dist/components/SeoDrawer/index.d.ts.map +1 -0
- package/dist/components/SeoDrawer/index.js +37 -0
- package/dist/components/SeoDrawer/index.js.map +1 -0
- package/dist/components/SeoDrawer/keyphrasePending.d.ts +2 -0
- package/dist/components/SeoDrawer/keyphrasePending.d.ts.map +1 -0
- package/dist/components/SeoDrawer/keyphrasePending.js +9 -0
- package/dist/components/SeoDrawer/keyphrasePending.js.map +1 -0
- package/dist/components/SeoDrawer/languagePacks.d.ts +2 -0
- package/dist/components/SeoDrawer/languagePacks.d.ts.map +1 -0
- package/dist/components/SeoDrawer/languagePacks.js +19 -0
- package/dist/components/SeoDrawer/languagePacks.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/InclusiveTab.d.ts +5 -0
- package/dist/components/SeoDrawer/tabs/InclusiveTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/InclusiveTab.js +46 -0
- package/dist/components/SeoDrawer/tabs/InclusiveTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/KeyphraseTab.d.ts +11 -0
- package/dist/components/SeoDrawer/tabs/KeyphraseTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/KeyphraseTab.js +72 -0
- package/dist/components/SeoDrawer/tabs/KeyphraseTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/OnPageTab.d.ts +5 -0
- package/dist/components/SeoDrawer/tabs/OnPageTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/OnPageTab.js +37 -0
- package/dist/components/SeoDrawer/tabs/OnPageTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/ReadabilityTab.d.ts +5 -0
- package/dist/components/SeoDrawer/tabs/ReadabilityTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/ReadabilityTab.js +37 -0
- package/dist/components/SeoDrawer/tabs/ReadabilityTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/SerpTab.d.ts +7 -0
- package/dist/components/SeoDrawer/tabs/SerpTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/SerpTab.js +41 -0
- package/dist/components/SeoDrawer/tabs/SerpTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/VitalsTab.d.ts +7 -0
- package/dist/components/SeoDrawer/tabs/VitalsTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/VitalsTab.js +42 -0
- package/dist/components/SeoDrawer/tabs/VitalsTab.js.map +1 -0
- package/dist/components/SeoDrawer/useAnalysis.d.ts +17 -0
- package/dist/components/SeoDrawer/useAnalysis.d.ts.map +1 -0
- package/dist/components/SeoDrawer/useAnalysis.js +57 -0
- package/dist/components/SeoDrawer/useAnalysis.js.map +1 -0
- package/dist/components/SeoDrawer/useLiveDocument.d.ts +22 -0
- package/dist/components/SeoDrawer/useLiveDocument.d.ts.map +1 -0
- package/dist/components/SeoDrawer/useLiveDocument.js +85 -0
- package/dist/components/SeoDrawer/useLiveDocument.js.map +1 -0
- package/dist/components/SeoDrawer/variants.d.ts +4 -0
- package/dist/components/SeoDrawer/variants.d.ts.map +1 -0
- package/dist/components/SeoDrawer/variants.js +14 -0
- package/dist/components/SeoDrawer/variants.js.map +1 -0
- package/dist/components/icons.d.ts +7 -0
- package/dist/components/icons.d.ts.map +1 -0
- package/dist/components/icons.js +40 -0
- package/dist/components/icons.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +15 -0
- package/dist/config.js.map +1 -0
- package/dist/constants/checkIds.d.ts +8 -0
- package/dist/constants/checkIds.d.ts.map +1 -0
- package/dist/constants/checkIds.js +21 -0
- package/dist/constants/checkIds.js.map +1 -0
- package/dist/constants/index.d.ts +5 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +10 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/statuses.d.ts +3 -0
- package/dist/constants/statuses.d.ts.map +1 -0
- package/dist/constants/statuses.js +9 -0
- package/dist/constants/statuses.js.map +1 -0
- package/dist/content/extractContent.d.ts +3 -0
- package/dist/content/extractContent.d.ts.map +1 -0
- package/dist/content/extractContent.js +31 -0
- package/dist/content/extractContent.js.map +1 -0
- package/dist/content/lexicalToHtml.d.ts +6 -0
- package/dist/content/lexicalToHtml.d.ts.map +1 -0
- package/dist/content/lexicalToHtml.js +15 -0
- package/dist/content/lexicalToHtml.js.map +1 -0
- package/dist/content/uploads/collect-upload-refs.d.ts +5 -0
- package/dist/content/uploads/collect-upload-refs.d.ts.map +1 -0
- package/dist/content/uploads/collect-upload-refs.js +19 -0
- package/dist/content/uploads/collect-upload-refs.js.map +1 -0
- package/dist/content/uploads/hydrate-values.d.ts +5 -0
- package/dist/content/uploads/hydrate-values.d.ts.map +1 -0
- package/dist/content/uploads/hydrate-values.js +15 -0
- package/dist/content/uploads/hydrate-values.js.map +1 -0
- package/dist/content/uploads/media-resolver.d.ts +7 -0
- package/dist/content/uploads/media-resolver.d.ts.map +1 -0
- package/dist/content/uploads/media-resolver.js +60 -0
- package/dist/content/uploads/media-resolver.js.map +1 -0
- package/dist/content/uploads/transform-lexical-uploads.d.ts +5 -0
- package/dist/content/uploads/transform-lexical-uploads.d.ts.map +1 -0
- package/dist/content/uploads/transform-lexical-uploads.js +34 -0
- package/dist/content/uploads/transform-lexical-uploads.js.map +1 -0
- package/dist/content/uploads/transform-upload-values.d.ts +10 -0
- package/dist/content/uploads/transform-upload-values.d.ts.map +1 -0
- package/dist/content/uploads/transform-upload-values.js +108 -0
- package/dist/content/uploads/transform-upload-values.js.map +1 -0
- package/dist/content/uploads/types.d.ts +8 -0
- package/dist/content/uploads/types.d.ts.map +1 -0
- package/dist/content/uploads/types.js +7 -0
- package/dist/content/uploads/types.js.map +1 -0
- package/dist/content/walkValue.d.ts +14 -0
- package/dist/content/walkValue.d.ts.map +1 -0
- package/dist/content/walkValue.js +62 -0
- package/dist/content/walkValue.js.map +1 -0
- package/dist/css.d.js +1 -0
- package/dist/css.d.js.map +1 -0
- package/dist/engine/assessorAdapter.d.ts +14 -0
- package/dist/engine/assessorAdapter.d.ts.map +1 -0
- package/dist/engine/assessorAdapter.js +23 -0
- package/dist/engine/assessorAdapter.js.map +1 -0
- package/dist/engine/buildPaper.d.ts +4 -0
- package/dist/engine/buildPaper.d.ts.map +1 -0
- package/dist/engine/buildPaper.js +16 -0
- package/dist/engine/buildPaper.js.map +1 -0
- package/dist/engine/extractCheckData.d.ts +4 -0
- package/dist/engine/extractCheckData.d.ts.map +1 -0
- package/dist/engine/extractCheckData.js +162 -0
- package/dist/engine/extractCheckData.js.map +1 -0
- package/dist/engine/helpers/has-keyphrase.d.ts +2 -0
- package/dist/engine/helpers/has-keyphrase.d.ts.map +1 -0
- package/dist/engine/helpers/has-keyphrase.js +7 -0
- package/dist/engine/helpers/has-keyphrase.js.map +1 -0
- package/dist/engine/helpers/title-progress.d.ts +5 -0
- package/dist/engine/helpers/title-progress.d.ts.map +1 -0
- package/dist/engine/helpers/title-progress.js +21 -0
- package/dist/engine/helpers/title-progress.js.map +1 -0
- package/dist/engine/inclusiveScore.d.ts +15 -0
- package/dist/engine/inclusiveScore.d.ts.map +1 -0
- package/dist/engine/inclusiveScore.js +25 -0
- package/dist/engine/inclusiveScore.js.map +1 -0
- package/dist/engine/recommendations.d.ts +7 -0
- package/dist/engine/recommendations.d.ts.map +1 -0
- package/dist/engine/recommendations.js +53 -0
- package/dist/engine/recommendations.js.map +1 -0
- package/dist/engine/researcherAdapter.d.ts +6 -0
- package/dist/engine/researcherAdapter.d.ts.map +1 -0
- package/dist/engine/researcherAdapter.js +16 -0
- package/dist/engine/researcherAdapter.js.map +1 -0
- package/dist/engine/runAnalysis/index.d.ts +3 -0
- package/dist/engine/runAnalysis/index.d.ts.map +1 -0
- package/dist/engine/runAnalysis/index.js +24 -0
- package/dist/engine/runAnalysis/index.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-inclusive.d.ts +4 -0
- package/dist/engine/runAnalysis/services/derive-inclusive.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-inclusive.js +47 -0
- package/dist/engine/runAnalysis/services/derive-inclusive.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-readability.d.ts +4 -0
- package/dist/engine/runAnalysis/services/derive-readability.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-readability.js +32 -0
- package/dist/engine/runAnalysis/services/derive-readability.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-seo.d.ts +18 -0
- package/dist/engine/runAnalysis/services/derive-seo.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-seo.js +40 -0
- package/dist/engine/runAnalysis/services/derive-seo.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-serp.d.ts +3 -0
- package/dist/engine/runAnalysis/services/derive-serp.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-serp.js +13 -0
- package/dist/engine/runAnalysis/services/derive-serp.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-vitals/index.d.ts +4 -0
- package/dist/engine/runAnalysis/services/derive-vitals/index.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-vitals/index.js +19 -0
- package/dist/engine/runAnalysis/services/derive-vitals/index.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-vitals/researches.d.ts +19 -0
- package/dist/engine/runAnalysis/services/derive-vitals/researches.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-vitals/researches.js +47 -0
- package/dist/engine/runAnalysis/services/derive-vitals/researches.js.map +1 -0
- package/dist/engine/runAnalysis/utils/enrich.d.ts +5 -0
- package/dist/engine/runAnalysis/utils/enrich.d.ts.map +1 -0
- package/dist/engine/runAnalysis/utils/enrich.js +16 -0
- package/dist/engine/runAnalysis/utils/enrich.js.map +1 -0
- package/dist/engine/runAnalysis/utils/toCategory.d.ts +3 -0
- package/dist/engine/runAnalysis/utils/toCategory.d.ts.map +1 -0
- package/dist/engine/runAnalysis/utils/toCategory.js +13 -0
- package/dist/engine/runAnalysis/utils/toCategory.js.map +1 -0
- package/dist/engine/scoreStatus.d.ts +8 -0
- package/dist/engine/scoreStatus.d.ts.map +1 -0
- package/dist/engine/scoreStatus.js +35 -0
- package/dist/engine/scoreStatus.js.map +1 -0
- package/dist/engine/types/analysis.d.ts +81 -0
- package/dist/engine/types/analysis.d.ts.map +1 -0
- package/dist/engine/types/analysis.js +1 -0
- package/dist/engine/types/analysis.js.map +1 -0
- package/dist/engine/types/paper.d.ts +8 -0
- package/dist/engine/types/paper.d.ts.map +1 -0
- package/dist/engine/types/paper.js +1 -0
- package/dist/engine/types/paper.js.map +1 -0
- package/dist/engine/types/visualization.d.ts +73 -0
- package/dist/engine/types/visualization.d.ts.map +1 -0
- package/dist/engine/types/visualization.js +1 -0
- package/dist/engine/types/visualization.js.map +1 -0
- package/dist/engine/visualization/buildGauge.d.ts +3 -0
- package/dist/engine/visualization/buildGauge.d.ts.map +1 -0
- package/dist/engine/visualization/buildGauge.js +62 -0
- package/dist/engine/visualization/buildGauge.js.map +1 -0
- package/dist/engine/visualization/formatGaugeValue.d.ts +3 -0
- package/dist/engine/visualization/formatGaugeValue.d.ts.map +1 -0
- package/dist/engine/visualization/formatGaugeValue.js +16 -0
- package/dist/engine/visualization/formatGaugeValue.js.map +1 -0
- package/dist/engine/visualization/gaugeSpecs.d.ts +4 -0
- package/dist/engine/visualization/gaugeSpecs.d.ts.map +1 -0
- package/dist/engine/visualization/gaugeSpecs.js +78 -0
- package/dist/engine/visualization/gaugeSpecs.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/constants.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/constants.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/constants.js +17 -0
- package/dist/engine/visualization/resolveVisualization/constants.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/index.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/index.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/index.js +43 -0
- package/dist/engine/visualization/resolveVisualization/index.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.d.ts +3 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.js +19 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.js +24 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.js +7 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.js +20 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.js +28 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/pluralize.d.ts +2 -0
- package/dist/engine/visualization/resolveVisualization/utils/pluralize.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/pluralize.js +5 -0
- package/dist/engine/visualization/resolveVisualization/utils/pluralize.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.d.ts +5 -0
- package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.js +8 -0
- package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readNumber.d.ts +2 -0
- package/dist/engine/visualization/resolveVisualization/utils/readNumber.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readNumber.js +8 -0
- package/dist/engine/visualization/resolveVisualization/utils/readNumber.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readPositions.d.ts +2 -0
- package/dist/engine/visualization/resolveVisualization/utils/readPositions.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readPositions.js +8 -0
- package/dist/engine/visualization/resolveVisualization/utils/readPositions.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +23 -0
- package/dist/plugin.js.map +1 -0
- package/dist/translations/en.d.ts +3 -0
- package/dist/translations/en.d.ts.map +1 -0
- package/dist/translations/en.js +17 -0
- package/dist/translations/en.js.map +1 -0
- package/dist/translations/types.d.ts +2 -0
- package/dist/translations/types.d.ts.map +1 -0
- package/dist/translations/types.js +1 -0
- package/dist/translations/types.js.map +1 -0
- package/dist/types/config.d.ts +39 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +1 -0
- package/dist/types/config.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/index.d.ts +5 -0
- package/dist/ui/CheckRow/CheckVisualization/index.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/index.js +27 -0
- package/dist/ui/CheckRow/CheckVisualization/index.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.d.ts +3 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.js +70 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.d.ts +3 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.js +16 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.d.ts +3 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.js +36 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.d.ts +3 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.js +32 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.js.map +1 -0
- package/dist/ui/CheckRow/constants/labels.d.ts +6 -0
- package/dist/ui/CheckRow/constants/labels.d.ts.map +1 -0
- package/dist/ui/CheckRow/constants/labels.js +103 -0
- package/dist/ui/CheckRow/constants/labels.js.map +1 -0
- package/dist/ui/CheckRow/index.d.ts +7 -0
- package/dist/ui/CheckRow/index.d.ts.map +1 -0
- package/dist/ui/CheckRow/index.js +29 -0
- package/dist/ui/CheckRow/index.js.map +1 -0
- package/dist/ui/FilterPills.d.ts +10 -0
- package/dist/ui/FilterPills.d.ts.map +1 -0
- package/dist/ui/FilterPills.js +37 -0
- package/dist/ui/FilterPills.js.map +1 -0
- package/dist/ui/KpiCard.d.ts +9 -0
- package/dist/ui/KpiCard.d.ts.map +1 -0
- package/dist/ui/KpiCard.js +19 -0
- package/dist/ui/KpiCard.js.map +1 -0
- package/dist/ui/Pill.d.ts +9 -0
- package/dist/ui/Pill.d.ts.map +1 -0
- package/dist/ui/Pill.js +20 -0
- package/dist/ui/Pill.js.map +1 -0
- package/dist/ui/ScoreRing.d.ts +8 -0
- package/dist/ui/ScoreRing.d.ts.map +1 -0
- package/dist/ui/ScoreRing.js +20 -0
- package/dist/ui/ScoreRing.js.map +1 -0
- package/dist/ui/SectionCard.d.ts +9 -0
- package/dist/ui/SectionCard.d.ts.map +1 -0
- package/dist/ui/SectionCard.js +16 -0
- package/dist/ui/SectionCard.js.map +1 -0
- package/dist/ui/SectionWrapper.d.ts +8 -0
- package/dist/ui/SectionWrapper.d.ts.map +1 -0
- package/dist/ui/SectionWrapper.js +10 -0
- package/dist/ui/SectionWrapper.js.map +1 -0
- package/dist/ui/SegmentedControl.d.ts +15 -0
- package/dist/ui/SegmentedControl.d.ts.map +1 -0
- package/dist/ui/SegmentedControl.js +75 -0
- package/dist/ui/SegmentedControl.js.map +1 -0
- package/dist/ui/TabHeader.d.ts +12 -0
- package/dist/ui/TabHeader.d.ts.map +1 -0
- package/dist/ui/TabHeader.js +22 -0
- package/dist/ui/TabHeader.js.map +1 -0
- package/dist/ui/Tooltip.d.ts +17 -0
- package/dist/ui/Tooltip.d.ts.map +1 -0
- package/dist/ui/Tooltip.js +81 -0
- package/dist/ui/Tooltip.js.map +1 -0
- package/dist/utils/config/getComponentPath.d.ts +2 -0
- package/dist/utils/config/getComponentPath.d.ts.map +1 -0
- package/dist/utils/config/getComponentPath.js +8 -0
- package/dist/utils/config/getComponentPath.js.map +1 -0
- package/dist/utils/config/mergeTranslations.d.ts +3 -0
- package/dist/utils/config/mergeTranslations.d.ts.map +1 -0
- package/dist/utils/config/mergeTranslations.js +11 -0
- package/dist/utils/config/mergeTranslations.js.map +1 -0
- package/dist/utils/config/overrideAdmin.d.ts +4 -0
- package/dist/utils/config/overrideAdmin.d.ts.map +1 -0
- package/dist/utils/config/overrideAdmin.js +43 -0
- package/dist/utils/config/overrideAdmin.js.map +1 -0
- package/dist/utils/style.d.ts +4 -0
- package/dist/utils/style.d.ts.map +1 -0
- package/dist/utils/style.js +11 -0
- package/dist/utils/style.js.map +1 -0
- package/dist/yoastseo.d.js +1 -0
- package/dist/yoastseo.d.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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: [120, 156],
|
|
23
|
+
scores: [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: [120, 156],\n scores: [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,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,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"}
|