axyseo 2.0.0-alpha.0.0.20 → 2.0.0-alpha.0.0.5

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 (310) hide show
  1. package/build/index.js +0 -8
  2. package/build/index.js.map +1 -1
  3. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js.map +1 -1
  4. package/build/languageProcessing/helpers/morphology/buildTopicStems.js.map +1 -1
  5. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js.map +1 -1
  6. package/build/languageProcessing/languages/_default/Researcher.js +1 -1
  7. package/build/languageProcessing/languages/_default/Researcher.js.map +1 -1
  8. package/build/languageProcessing/languages/_default/helpers/getStemmer.js +1 -1
  9. package/build/languageProcessing/languages/_default/helpers/getStemmer.js.map +1 -1
  10. package/build/languageProcessing/languages/ar/Researcher.js +1 -1
  11. package/build/languageProcessing/languages/ar/Researcher.js.map +1 -1
  12. package/build/languageProcessing/languages/ar/helpers/getStemmer.js +1 -1
  13. package/build/languageProcessing/languages/ar/helpers/getStemmer.js.map +1 -1
  14. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js +1 -1
  15. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js.map +1 -1
  16. package/build/languageProcessing/languages/ca/Researcher.js +1 -1
  17. package/build/languageProcessing/languages/ca/Researcher.js.map +1 -1
  18. package/build/languageProcessing/languages/ca/helpers/getStemmer.js +1 -1
  19. package/build/languageProcessing/languages/ca/helpers/getStemmer.js.map +1 -1
  20. package/build/languageProcessing/languages/cs/Researcher.js +1 -1
  21. package/build/languageProcessing/languages/cs/Researcher.js.map +1 -1
  22. package/build/languageProcessing/languages/cs/helpers/getClauses.js +1 -1
  23. package/build/languageProcessing/languages/cs/helpers/getClauses.js.map +1 -1
  24. package/build/languageProcessing/languages/cs/helpers/getStemmer.js +1 -1
  25. package/build/languageProcessing/languages/cs/helpers/getStemmer.js.map +1 -1
  26. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js +1 -1
  27. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js.map +1 -1
  28. package/build/languageProcessing/languages/cs/values/Clause.js +1 -1
  29. package/build/languageProcessing/languages/cs/values/Clause.js.map +1 -1
  30. package/build/languageProcessing/languages/de/Researcher.js +1 -1
  31. package/build/languageProcessing/languages/de/Researcher.js.map +1 -1
  32. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +1 -1
  33. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js.map +1 -1
  34. package/build/languageProcessing/languages/de/helpers/getClauses.js +1 -1
  35. package/build/languageProcessing/languages/de/helpers/getClauses.js.map +1 -1
  36. package/build/languageProcessing/languages/de/helpers/getStemmer.js +1 -1
  37. package/build/languageProcessing/languages/de/helpers/getStemmer.js.map +1 -1
  38. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js +1 -1
  39. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js.map +1 -1
  40. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js +1 -1
  41. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js.map +1 -1
  42. package/build/languageProcessing/languages/de/values/Clause.js +1 -1
  43. package/build/languageProcessing/languages/de/values/Clause.js.map +1 -1
  44. package/build/languageProcessing/languages/el/Researcher.js +1 -1
  45. package/build/languageProcessing/languages/el/Researcher.js.map +1 -1
  46. package/build/languageProcessing/languages/el/helpers/getClauses.js +1 -1
  47. package/build/languageProcessing/languages/el/helpers/getClauses.js.map +1 -1
  48. package/build/languageProcessing/languages/el/helpers/getStemmer.js +1 -1
  49. package/build/languageProcessing/languages/el/helpers/getStemmer.js.map +1 -1
  50. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js +1 -1
  51. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js.map +1 -1
  52. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js +1 -1
  53. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js.map +1 -1
  54. package/build/languageProcessing/languages/el/values/Clause.js +1 -1
  55. package/build/languageProcessing/languages/el/values/Clause.js.map +1 -1
  56. package/build/languageProcessing/languages/en/Researcher.js +1 -1
  57. package/build/languageProcessing/languages/en/Researcher.js.map +1 -1
  58. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +1 -1
  59. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js.map +1 -1
  60. package/build/languageProcessing/languages/en/helpers/getClauses.js +1 -1
  61. package/build/languageProcessing/languages/en/helpers/getClauses.js.map +1 -1
  62. package/build/languageProcessing/languages/en/helpers/getStemmer.js +1 -1
  63. package/build/languageProcessing/languages/en/helpers/getStemmer.js.map +1 -1
  64. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js +1 -1
  65. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js.map +1 -1
  66. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +1 -1
  67. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js.map +1 -1
  68. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js +1 -1
  69. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js.map +1 -1
  70. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js +1 -1
  71. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js.map +1 -1
  72. package/build/languageProcessing/languages/en/values/Clause.js +1 -1
  73. package/build/languageProcessing/languages/en/values/Clause.js.map +1 -1
  74. package/build/languageProcessing/languages/es/Researcher.js +1 -1
  75. package/build/languageProcessing/languages/es/Researcher.js.map +1 -1
  76. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +1 -1
  77. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js.map +1 -1
  78. package/build/languageProcessing/languages/es/helpers/getClauses.js +1 -1
  79. package/build/languageProcessing/languages/es/helpers/getClauses.js.map +1 -1
  80. package/build/languageProcessing/languages/es/helpers/getStemmer.js +1 -1
  81. package/build/languageProcessing/languages/es/helpers/getStemmer.js.map +1 -1
  82. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +3 -3
  83. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js.map +1 -1
  84. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js +1 -1
  85. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js.map +1 -1
  86. package/build/languageProcessing/languages/es/helpers/internal/stem.js +1 -1
  87. package/build/languageProcessing/languages/es/helpers/internal/stem.js.map +1 -1
  88. package/build/languageProcessing/languages/es/values/Clause.js +1 -1
  89. package/build/languageProcessing/languages/es/values/Clause.js.map +1 -1
  90. package/build/languageProcessing/languages/fa/Researcher.js +1 -1
  91. package/build/languageProcessing/languages/fa/Researcher.js.map +1 -1
  92. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js +1 -1
  93. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js.map +1 -1
  94. package/build/languageProcessing/languages/fa/helpers/getStemmer.js +1 -1
  95. package/build/languageProcessing/languages/fa/helpers/getStemmer.js.map +1 -1
  96. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js +1 -1
  97. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js.map +1 -1
  98. package/build/languageProcessing/languages/fr/Researcher.js +1 -1
  99. package/build/languageProcessing/languages/fr/Researcher.js.map +1 -1
  100. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +1 -1
  101. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js.map +1 -1
  102. package/build/languageProcessing/languages/fr/helpers/getClauses.js +1 -1
  103. package/build/languageProcessing/languages/fr/helpers/getClauses.js.map +1 -1
  104. package/build/languageProcessing/languages/fr/helpers/getStemmer.js +1 -1
  105. package/build/languageProcessing/languages/fr/helpers/getStemmer.js.map +1 -1
  106. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js +1 -1
  107. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js.map +1 -1
  108. package/build/languageProcessing/languages/fr/helpers/internal/stem.js +1 -1
  109. package/build/languageProcessing/languages/fr/helpers/internal/stem.js.map +1 -1
  110. package/build/languageProcessing/languages/fr/values/Clause.js +1 -1
  111. package/build/languageProcessing/languages/fr/values/Clause.js.map +1 -1
  112. package/build/languageProcessing/languages/he/Researcher.js +1 -1
  113. package/build/languageProcessing/languages/he/Researcher.js.map +1 -1
  114. package/build/languageProcessing/languages/he/helpers/getStemmer.js +1 -1
  115. package/build/languageProcessing/languages/he/helpers/getStemmer.js.map +1 -1
  116. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js +1 -1
  117. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js.map +1 -1
  118. package/build/languageProcessing/languages/hu/Researcher.js +1 -1
  119. package/build/languageProcessing/languages/hu/Researcher.js.map +1 -1
  120. package/build/languageProcessing/languages/hu/helpers/getClauses.js +1 -1
  121. package/build/languageProcessing/languages/hu/helpers/getClauses.js.map +1 -1
  122. package/build/languageProcessing/languages/hu/helpers/getStemmer.js +1 -1
  123. package/build/languageProcessing/languages/hu/helpers/getStemmer.js.map +1 -1
  124. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js +1 -1
  125. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js.map +1 -1
  126. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js +1 -1
  127. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js.map +1 -1
  128. package/build/languageProcessing/languages/hu/values/Clause.js +1 -1
  129. package/build/languageProcessing/languages/hu/values/Clause.js.map +1 -1
  130. package/build/languageProcessing/languages/id/Researcher.js +1 -1
  131. package/build/languageProcessing/languages/id/Researcher.js.map +1 -1
  132. package/build/languageProcessing/languages/id/helpers/getStemmer.js +1 -1
  133. package/build/languageProcessing/languages/id/helpers/getStemmer.js.map +1 -1
  134. package/build/languageProcessing/languages/id/helpers/internal/stem.js +1 -1
  135. package/build/languageProcessing/languages/id/helpers/internal/stem.js.map +1 -1
  136. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js +1 -1
  137. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js.map +1 -1
  138. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js +1 -1
  139. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js.map +1 -1
  140. package/build/languageProcessing/languages/it/Researcher.js +1 -1
  141. package/build/languageProcessing/languages/it/Researcher.js.map +1 -1
  142. package/build/languageProcessing/languages/it/helpers/getClauses.js +1 -1
  143. package/build/languageProcessing/languages/it/helpers/getClauses.js.map +1 -1
  144. package/build/languageProcessing/languages/it/helpers/getStemmer.js +1 -1
  145. package/build/languageProcessing/languages/it/helpers/getStemmer.js.map +1 -1
  146. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js +1 -1
  147. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js.map +1 -1
  148. package/build/languageProcessing/languages/it/helpers/internal/stem.js +1 -1
  149. package/build/languageProcessing/languages/it/helpers/internal/stem.js.map +1 -1
  150. package/build/languageProcessing/languages/it/values/Clause.js +1 -1
  151. package/build/languageProcessing/languages/it/values/Clause.js.map +1 -1
  152. package/build/languageProcessing/languages/ja/Researcher.js +1 -1
  153. package/build/languageProcessing/languages/ja/Researcher.js.map +1 -1
  154. package/build/languageProcessing/languages/ja/helpers/countCharacters.js +1 -1
  155. package/build/languageProcessing/languages/ja/helpers/countCharacters.js.map +1 -1
  156. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js +1 -1
  157. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js.map +1 -1
  158. package/build/languageProcessing/languages/ja/helpers/getWords.js +1 -1
  159. package/build/languageProcessing/languages/ja/helpers/getWords.js.map +1 -1
  160. package/build/languageProcessing/languages/nb/Researcher.js +1 -1
  161. package/build/languageProcessing/languages/nb/Researcher.js.map +1 -1
  162. package/build/languageProcessing/languages/nb/helpers/getClauses.js +1 -1
  163. package/build/languageProcessing/languages/nb/helpers/getClauses.js.map +1 -1
  164. package/build/languageProcessing/languages/nb/helpers/getStemmer.js +1 -1
  165. package/build/languageProcessing/languages/nb/helpers/getStemmer.js.map +1 -1
  166. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js +1 -1
  167. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js.map +1 -1
  168. package/build/languageProcessing/languages/nb/values/Clause.js +1 -1
  169. package/build/languageProcessing/languages/nb/values/Clause.js.map +1 -1
  170. package/build/languageProcessing/languages/nl/Researcher.js +1 -1
  171. package/build/languageProcessing/languages/nl/Researcher.js.map +1 -1
  172. package/build/languageProcessing/languages/nl/helpers/getClauses.js +1 -1
  173. package/build/languageProcessing/languages/nl/helpers/getClauses.js.map +1 -1
  174. package/build/languageProcessing/languages/nl/helpers/getStemmer.js +1 -1
  175. package/build/languageProcessing/languages/nl/helpers/getStemmer.js.map +1 -1
  176. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +1 -1
  177. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js.map +1 -1
  178. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +1 -1
  179. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js.map +1 -1
  180. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js +1 -1
  181. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js.map +1 -1
  182. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js +1 -1
  183. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js.map +1 -1
  184. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +1 -1
  185. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js.map +1 -1
  186. package/build/languageProcessing/languages/nl/helpers/internal/stem.js +1 -1
  187. package/build/languageProcessing/languages/nl/helpers/internal/stem.js.map +1 -1
  188. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +1 -1
  189. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js.map +1 -1
  190. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +1 -1
  191. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js.map +1 -1
  192. package/build/languageProcessing/languages/nl/values/Clause.js +1 -1
  193. package/build/languageProcessing/languages/nl/values/Clause.js.map +1 -1
  194. package/build/languageProcessing/languages/pl/Researcher.js +1 -1
  195. package/build/languageProcessing/languages/pl/Researcher.js.map +1 -1
  196. package/build/languageProcessing/languages/pl/helpers/getClauses.js +1 -1
  197. package/build/languageProcessing/languages/pl/helpers/getClauses.js.map +1 -1
  198. package/build/languageProcessing/languages/pl/helpers/getStemmer.js +1 -1
  199. package/build/languageProcessing/languages/pl/helpers/getStemmer.js.map +1 -1
  200. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js +1 -1
  201. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js.map +1 -1
  202. package/build/languageProcessing/languages/pl/values/Clause.js +1 -1
  203. package/build/languageProcessing/languages/pl/values/Clause.js.map +1 -1
  204. package/build/languageProcessing/languages/pt/Researcher.js +1 -1
  205. package/build/languageProcessing/languages/pt/Researcher.js.map +1 -1
  206. package/build/languageProcessing/languages/pt/helpers/getClauses.js +1 -1
  207. package/build/languageProcessing/languages/pt/helpers/getClauses.js.map +1 -1
  208. package/build/languageProcessing/languages/pt/helpers/getStemmer.js +1 -1
  209. package/build/languageProcessing/languages/pt/helpers/getStemmer.js.map +1 -1
  210. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js +1 -1
  211. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js.map +1 -1
  212. package/build/languageProcessing/languages/pt/helpers/internal/stem.js +1 -1
  213. package/build/languageProcessing/languages/pt/helpers/internal/stem.js.map +1 -1
  214. package/build/languageProcessing/languages/pt/values/Clause.js +1 -1
  215. package/build/languageProcessing/languages/pt/values/Clause.js.map +1 -1
  216. package/build/languageProcessing/languages/ru/Researcher.js +1 -1
  217. package/build/languageProcessing/languages/ru/Researcher.js.map +1 -1
  218. package/build/languageProcessing/languages/ru/helpers/getStemmer.js +1 -1
  219. package/build/languageProcessing/languages/ru/helpers/getStemmer.js.map +1 -1
  220. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js +1 -1
  221. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js.map +1 -1
  222. package/build/languageProcessing/languages/sk/Researcher.js +1 -1
  223. package/build/languageProcessing/languages/sk/Researcher.js.map +1 -1
  224. package/build/languageProcessing/languages/sk/helpers/getClauses.js +1 -1
  225. package/build/languageProcessing/languages/sk/helpers/getClauses.js.map +1 -1
  226. package/build/languageProcessing/languages/sk/helpers/getStemmer.js +1 -1
  227. package/build/languageProcessing/languages/sk/helpers/getStemmer.js.map +1 -1
  228. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js +1 -1
  229. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js.map +1 -1
  230. package/build/languageProcessing/languages/sk/values/Clause.js +1 -1
  231. package/build/languageProcessing/languages/sk/values/Clause.js.map +1 -1
  232. package/build/languageProcessing/languages/sv/Researcher.js +1 -1
  233. package/build/languageProcessing/languages/sv/Researcher.js.map +1 -1
  234. package/build/languageProcessing/languages/sv/helpers/getStemmer.js +1 -1
  235. package/build/languageProcessing/languages/sv/helpers/getStemmer.js.map +1 -1
  236. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js +1 -1
  237. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js.map +1 -1
  238. package/build/languageProcessing/languages/tr/Researcher.js +1 -1
  239. package/build/languageProcessing/languages/tr/Researcher.js.map +1 -1
  240. package/build/languageProcessing/languages/tr/helpers/getStemmer.js +1 -1
  241. package/build/languageProcessing/languages/tr/helpers/getStemmer.js.map +1 -1
  242. package/build/languageProcessing/languages/tr/helpers/internal/stem.js +1 -1
  243. package/build/languageProcessing/languages/tr/helpers/internal/stem.js.map +1 -1
  244. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js +1 -1
  245. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js.map +1 -1
  246. package/build/parsedPaper/assess/assessments/Assessment.js +2 -14
  247. package/build/parsedPaper/assess/assessments/Assessment.js.map +1 -1
  248. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js.map +1 -1
  249. package/build/parsedPaper/build/tree/metadata/buildTree.js +1 -1
  250. package/build/parsedPaper/build/tree/metadata/buildTree.js.map +1 -1
  251. package/build/scoring/assessments/assessment.js +2 -6
  252. package/build/scoring/assessments/assessment.js.map +1 -1
  253. package/build/scoring/assessments/index.js +5 -5
  254. package/build/scoring/assessments/index.js.map +1 -1
  255. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js +1 -5
  256. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js.map +1 -1
  257. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js +1 -5
  258. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js.map +1 -1
  259. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js +1 -5
  260. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js.map +1 -1
  261. package/build/scoring/assessments/readability/TransitionWordsAssessment.js +1 -5
  262. package/build/scoring/assessments/readability/TransitionWordsAssessment.js.map +1 -1
  263. package/build/scoring/assessments/seo/ImageCountAssessment.js +1 -5
  264. package/build/scoring/assessments/seo/ImageCountAssessment.js.map +1 -1
  265. package/build/scoring/assessments/seo/InternalLinksAssessment.js +1 -5
  266. package/build/scoring/assessments/seo/InternalLinksAssessment.js.map +1 -1
  267. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js +1 -5
  268. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js.map +1 -1
  269. package/build/scoring/assessments/seo/KeyphraseAssessment.js +1 -5
  270. package/build/scoring/assessments/seo/KeyphraseAssessment.js.map +1 -1
  271. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js +1 -5
  272. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js.map +1 -1
  273. package/build/scoring/assessments/seo/KeywordDensityAssessment.js +2 -6
  274. package/build/scoring/assessments/seo/KeywordDensityAssessment.js.map +1 -1
  275. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +1 -5
  276. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js.map +1 -1
  277. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +1 -5
  278. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js.map +1 -1
  279. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js +1 -5
  280. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js.map +1 -1
  281. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js +3 -8
  282. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js.map +1 -1
  283. package/build/scoring/assessments/seo/OutboundLinksAssessment.js +1 -5
  284. package/build/scoring/assessments/seo/OutboundLinksAssessment.js.map +1 -1
  285. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js +3 -8
  286. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js.map +1 -1
  287. package/build/scoring/assessments/seo/SingleH1Assessment.js +1 -5
  288. package/build/scoring/assessments/seo/SingleH1Assessment.js.map +1 -1
  289. package/build/scoring/assessments/seo/SingleTitleAssessment.js +1 -5
  290. package/build/scoring/assessments/seo/SingleTitleAssessment.js.map +1 -1
  291. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +1 -5
  292. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js.map +1 -1
  293. package/build/scoring/assessments/seo/TextImagesAssessment.js +1 -5
  294. package/build/scoring/assessments/seo/TextImagesAssessment.js.map +1 -1
  295. package/build/scoring/assessments/seo/TextLengthAssessment.js +1 -5
  296. package/build/scoring/assessments/seo/TextLengthAssessment.js.map +1 -1
  297. package/build/scoring/assessments/seo/UrlKeywordAssessment.js +1 -5
  298. package/build/scoring/assessments/seo/UrlKeywordAssessment.js.map +1 -1
  299. package/build/scoring/assessments/seo/UrlLengthAssessment.js +1 -5
  300. package/build/scoring/assessments/seo/UrlLengthAssessment.js.map +1 -1
  301. package/build/scoring/assessors/assessor.js +7 -20
  302. package/build/scoring/assessors/assessor.js.map +1 -1
  303. package/build/scoring/assessors/avadaAssessor.js +5 -6
  304. package/build/scoring/assessors/avadaAssessor.js.map +1 -1
  305. package/build/scoring/assessors/contentAssessor.js +3 -3
  306. package/build/scoring/assessors/contentAssessor.js.map +1 -1
  307. package/build/scoring/assessors/seoAssessor.js +3 -3
  308. package/build/scoring/assessors/seoAssessor.js.map +1 -1
  309. package/build/scoring/helpers/assessments/recommendedKeywordCount.js.map +1 -1
  310. package/package.json +1 -9
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = stem;
7
- var _turkishStemmer = _interopRequireDefault(require("../../../../../vendor/turkishStemmer"));
7
+ var _turkishStemmer = _interopRequireDefault(require("../../../vendor/turkishStemmer"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  /**
10
10
  * Stems Turkish words.
@@ -1 +1 @@
1
- {"version":3,"file":"stem.js","names":["_turkishStemmer","_interopRequireDefault","require","e","__esModule","default","stem","word","morphologyData","toLowerCase","replace","stemmer","TurkishStemmer","setCurrent","getCurrent"],"sources":["../../../../../../src/languageProcessing/languages/tr/helpers/internal/stem.js"],"sourcesContent":["import TurkishStemmer from '@axyseo/vendor/turkishStemmer';\n\n/**\n * Stems Turkish words.\n *\n * @param {string} word The word to stem.\n * @param {Object} morphologyData The Turkish morphology data.\n *\n * @returns {string} The stemmed word.\n */\nexport default function stem(word, morphologyData) {\n word = word.toLowerCase();\n word = word.replace(\"'\", '');\n\n const stemmer = new TurkishStemmer(morphologyData);\n stemmer.setCurrent(word);\n stemmer.stem();\n\n return stemmer.getCurrent();\n}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2D,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASG,IAAIA,CAACC,IAAI,EAAEC,cAAc,EAAE;EACjDD,IAAI,GAAGA,IAAI,CAACE,WAAW,CAAC,CAAC;EACzBF,IAAI,GAAGA,IAAI,CAACG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;EAE5B,MAAMC,OAAO,GAAG,IAAIC,uBAAc,CAACJ,cAAc,CAAC;EAClDG,OAAO,CAACE,UAAU,CAACN,IAAI,CAAC;EACxBI,OAAO,CAACL,IAAI,CAAC,CAAC;EAEd,OAAOK,OAAO,CAACG,UAAU,CAAC,CAAC;AAC7B","ignoreList":[]}
1
+ {"version":3,"file":"stem.js","names":["_turkishStemmer","_interopRequireDefault","require","e","__esModule","default","stem","word","morphologyData","toLowerCase","replace","stemmer","TurkishStemmer","setCurrent","getCurrent"],"sources":["../../../../../../src/languageProcessing/languages/tr/helpers/internal/stem.js"],"sourcesContent":["import TurkishStemmer from '../../../vendor/turkishStemmer';\n\n/**\n * Stems Turkish words.\n *\n * @param {string} word The word to stem.\n * @param {Object} morphologyData The Turkish morphology data.\n *\n * @returns {string} The stemmed word.\n */\nexport default function stem(word, morphologyData) {\n word = word.toLowerCase();\n word = word.replace(\"'\", '');\n\n const stemmer = new TurkishStemmer(morphologyData);\n stemmer.setCurrent(word);\n stemmer.stem();\n\n return stemmer.getCurrent();\n}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA4D,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASG,IAAIA,CAACC,IAAI,EAAEC,cAAc,EAAE;EACjDD,IAAI,GAAGA,IAAI,CAACE,WAAW,CAAC,CAAC;EACzBF,IAAI,GAAGA,IAAI,CAACG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;EAE5B,MAAMC,OAAO,GAAG,IAAIC,uBAAc,CAACJ,cAAc,CAAC;EAClDG,OAAO,CAACE,UAAU,CAACN,IAAI,CAAC;EACxBI,OAAO,CAACL,IAAI,CAAC,CAAC;EAEd,OAAOK,OAAO,CAACG,UAAU,CAAC,CAAC;AAC7B","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = isPassiveSentence;
7
- var _index = require("../../../../index.js");
7
+ var _index = require("../../../index");
8
8
  var _passiveEndings = _interopRequireDefault(require("../config/internal/passiveEndings"));
9
9
  var _nonPassiveExceptions = require("../config/internal/nonPassiveExceptions");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -1 +1 @@
1
- {"version":3,"file":"isPassiveSentence.js","names":["_index","require","_passiveEndings","_interopRequireDefault","_nonPassiveExceptions","e","__esModule","default","getWords","languageProcessing","checkNonPassivesStemsList","matchedPassives","filter","passive","nonPassiveStems","some","stem","passiveEndings","ending","pattern","RegExp","test","isPassiveSentence","sentence","words","word","length","nonPassivesFullForms","includes","endsWith"],"sources":["../../../../../src/languageProcessing/languages/tr/helpers/isPassiveSentence.js"],"sourcesContent":["import {languageProcessing} from '@axyseo/index.js';\nconst {getWords} = languageProcessing;\n\nimport passiveEndings from '../config/internal/passiveEndings';\nimport {nonPassivesFullForms, nonPassiveStems} from '../config/internal/nonPassiveExceptions';\n\n/**\n * Filters out words that are passive exceptions from an array.\n *\n * @param {string[]} matchedPassives The words from the sentence that could be passives\n *\n * @returns {string[]} The array of words with the non-passives filtered out\n */\nconst checkNonPassivesStemsList = function(matchedPassives) {\n return matchedPassives.filter(passive =>\n nonPassiveStems.some(stem =>\n passiveEndings.some(function(ending) {\n const pattern = new RegExp('^' + stem + ending + '$');\n return !pattern.test(passive);\n })\n )\n );\n};\n\n/**\n * Checks the passed sentence to see if it contains passive verb forms and is not found in the non-passive full forms exception list.\n *\n * @param {string} sentence The sentence to match against.\n *\n * @returns {Boolean} Whether the sentence contains a Turkish verb passive voice.\n */\nexport default function isPassiveSentence(sentence) {\n const words = getWords(sentence);\n\n // We only check words that is longer than 5 letters\n let matchedPassives = words.filter(word => word.length > 5);\n\n // Filter out words that are passive exceptions from an array\n matchedPassives = matchedPassives.filter(word => !nonPassivesFullForms.includes(word));\n matchedPassives = checkNonPassivesStemsList(matchedPassives);\n\n return matchedPassives.some(word => passiveEndings.some(ending => word.endsWith(ending)));\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AAA8F,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAH9F,MAAM;EAACG;AAAQ,CAAC,GAAGC,yBAAkB;AAKrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,yBAAyB,GAAG,SAAAA,CAASC,eAAe,EAAE;EAC1D,OAAOA,eAAe,CAACC,MAAM,CAACC,OAAO,IACnCC,qCAAe,CAACC,IAAI,CAACC,IAAI,IACvBC,uBAAc,CAACF,IAAI,CAAC,UAASG,MAAM,EAAE;IACnC,MAAMC,OAAO,GAAG,IAAIC,MAAM,CAAC,GAAG,GAAGJ,IAAI,GAAGE,MAAM,GAAG,GAAG,CAAC;IACrD,OAAO,CAACC,OAAO,CAACE,IAAI,CAACR,OAAO,CAAC;EAC/B,CAAC,CACH,CACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASS,iBAAiBA,CAACC,QAAQ,EAAE;EAClD,MAAMC,KAAK,GAAGhB,QAAQ,CAACe,QAAQ,CAAC;;EAEhC;EACA,IAAIZ,eAAe,GAAGa,KAAK,CAACZ,MAAM,CAACa,IAAI,IAAIA,IAAI,CAACC,MAAM,GAAG,CAAC,CAAC;;EAE3D;EACAf,eAAe,GAAGA,eAAe,CAACC,MAAM,CAACa,IAAI,IAAI,CAACE,0CAAoB,CAACC,QAAQ,CAACH,IAAI,CAAC,CAAC;EACtFd,eAAe,GAAGD,yBAAyB,CAACC,eAAe,CAAC;EAE5D,OAAOA,eAAe,CAACI,IAAI,CAACU,IAAI,IAAIR,uBAAc,CAACF,IAAI,CAACG,MAAM,IAAIO,IAAI,CAACI,QAAQ,CAACX,MAAM,CAAC,CAAC,CAAC;AAC3F","ignoreList":[]}
1
+ {"version":3,"file":"isPassiveSentence.js","names":["_index","require","_passiveEndings","_interopRequireDefault","_nonPassiveExceptions","e","__esModule","default","getWords","languageProcessing","checkNonPassivesStemsList","matchedPassives","filter","passive","nonPassiveStems","some","stem","passiveEndings","ending","pattern","RegExp","test","isPassiveSentence","sentence","words","word","length","nonPassivesFullForms","includes","endsWith"],"sources":["../../../../../src/languageProcessing/languages/tr/helpers/isPassiveSentence.js"],"sourcesContent":["import {languageProcessing} from '../../../index';\nconst {getWords} = languageProcessing;\n\nimport passiveEndings from '../config/internal/passiveEndings';\nimport {nonPassivesFullForms, nonPassiveStems} from '../config/internal/nonPassiveExceptions';\n\n/**\n * Filters out words that are passive exceptions from an array.\n *\n * @param {string[]} matchedPassives The words from the sentence that could be passives\n *\n * @returns {string[]} The array of words with the non-passives filtered out\n */\nconst checkNonPassivesStemsList = function(matchedPassives) {\n return matchedPassives.filter(passive =>\n nonPassiveStems.some(stem =>\n passiveEndings.some(function(ending) {\n const pattern = new RegExp('^' + stem + ending + '$');\n return !pattern.test(passive);\n })\n )\n );\n};\n\n/**\n * Checks the passed sentence to see if it contains passive verb forms and is not found in the non-passive full forms exception list.\n *\n * @param {string} sentence The sentence to match against.\n *\n * @returns {Boolean} Whether the sentence contains a Turkish verb passive voice.\n */\nexport default function isPassiveSentence(sentence) {\n const words = getWords(sentence);\n\n // We only check words that is longer than 5 letters\n let matchedPassives = words.filter(word => word.length > 5);\n\n // Filter out words that are passive exceptions from an array\n matchedPassives = matchedPassives.filter(word => !nonPassivesFullForms.includes(word));\n matchedPassives = checkNonPassivesStemsList(matchedPassives);\n\n return matchedPassives.some(word => passiveEndings.some(ending => word.endsWith(ending)));\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AAA8F,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAH9F,MAAM;EAACG;AAAQ,CAAC,GAAGC,yBAAkB;AAKrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,yBAAyB,GAAG,SAAAA,CAASC,eAAe,EAAE;EAC1D,OAAOA,eAAe,CAACC,MAAM,CAACC,OAAO,IACnCC,qCAAe,CAACC,IAAI,CAACC,IAAI,IACvBC,uBAAc,CAACF,IAAI,CAAC,UAASG,MAAM,EAAE;IACnC,MAAMC,OAAO,GAAG,IAAIC,MAAM,CAAC,GAAG,GAAGJ,IAAI,GAAGE,MAAM,GAAG,GAAG,CAAC;IACrD,OAAO,CAACC,OAAO,CAACE,IAAI,CAACR,OAAO,CAAC;EAC/B,CAAC,CACH,CACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASS,iBAAiBA,CAACC,QAAQ,EAAE;EAClD,MAAMC,KAAK,GAAGhB,QAAQ,CAACe,QAAQ,CAAC;;EAEhC;EACA,IAAIZ,eAAe,GAAGa,KAAK,CAACZ,MAAM,CAACa,IAAI,IAAIA,IAAI,CAACC,MAAM,GAAG,CAAC,CAAC;;EAE3D;EACAf,eAAe,GAAGA,eAAe,CAACC,MAAM,CAACa,IAAI,IAAI,CAACE,0CAAoB,CAACC,QAAQ,CAACH,IAAI,CAAC,CAAC;EACtFd,eAAe,GAAGD,yBAAyB,CAACC,eAAe,CAAC;EAE5D,OAAOA,eAAe,CAACI,IAAI,CAACU,IAAI,IAAIR,uBAAc,CAACF,IAAI,CAACG,MAAM,IAAIO,IAAI,CAACI,QAAQ,CAACX,MAAM,CAAC,CAAC,CAAC;AAC3F","ignoreList":[]}
@@ -32,18 +32,6 @@ class Assessment {
32
32
  * @private
33
33
  */
34
34
  this._researcher = researcher;
35
- this._config = {
36
- id: '',
37
- docUrl: '',
38
- priority: '',
39
- fixPosition: '',
40
- title: '',
41
- content: {
42
- good: '',
43
- improve: '',
44
- bad: ''
45
- }
46
- };
47
35
  }
48
36
 
49
37
  /**
@@ -77,7 +65,7 @@ class Assessment {
77
65
  */
78
66
  async isApplicable(parsedPaper) {
79
67
  // eslint-disable-line no-unused-vars
80
- console.warn('`isApplicable` should be implemented by a child class of `Assessment`.');
68
+ console.warn("`isApplicable` should be implemented by a child class of `Assessment`.");
81
69
  }
82
70
 
83
71
  /**
@@ -91,7 +79,7 @@ class Assessment {
91
79
  */
92
80
  async apply(parsedPaper) {
93
81
  // eslint-disable-line no-unused-vars
94
- console.warn('`apply` should be implemented by a child class of `Assessment`.');
82
+ console.warn("`apply` should be implemented by a child class of `Assessment`.");
95
83
  }
96
84
  }
97
85
  var _default = exports.default = Assessment;
@@ -1 +1 @@
1
- {"version":3,"file":"Assessment.js","names":["Assessment","constructor","name","researcher","_researcher","_config","id","docUrl","priority","fixPosition","title","content","good","improve","bad","setResearcher","getResearcher","isApplicable","parsedPaper","console","warn","apply","_default","exports","default"],"sources":["../../../../src/parsedPaper/assess/assessments/Assessment.js"],"sourcesContent":["/**\n * An assessment that can be applied to a formatted text and its meta data.\n *\n * @memberOf module:parsedPaper/assess\n *\n * @abstract\n */\nclass Assessment {\n /**\n * Creates a new assessment.\n *\n * @param {string} name The name to give this assessment.\n * @param {module:parsedPaper/research.TreeResearcher} researcher The researcher to do researches with.\n *\n * @abstract\n */\n constructor(name, researcher) {\n /**\n * This assessment's name.\n * @type {string}\n */\n this.name = name;\n /**\n * The researcher to do researches with.\n * @type {module:parsedPaper/research.TreeResearcher}\n * @private\n */\n this._researcher = researcher;\n\n this._config = {\n id: '',\n docUrl: '',\n priority: '',\n fixPosition: '',\n title: '',\n content: {\n good: '',\n improve: '',\n bad: ''\n }\n };\n }\n\n /**\n * Sets a new researcher on this assessment.\n *\n * @param {module:parsedPaper/research.TreeResearcher} researcher The researcher to do researches with.\n *\n * @returns {void}\n */\n setResearcher(researcher) {\n this._researcher = researcher;\n }\n\n /**\n * Returns the researcher used by this assessment.\n *\n * @returns {module:parsedPaper/research.TreeResearcher} The researcher used by this assessment.\n */\n getResearcher() {\n return this._researcher;\n }\n\n /**\n * Checks whether this assessment is applicable to the given paper and tree combination.\n *\n * @param {ParsedPaper} parsedPaper The parsedPaper to check.\n *\n * @returns {Promise<boolean>} Whether this assessment is applicable to the given paper and tree combination (wrapped in a promise).\n *\n * @abstract\n */\n async isApplicable(parsedPaper) {\n // eslint-disable-line no-unused-vars\n console.warn('`isApplicable` should be implemented by a child class of `Assessment`.');\n }\n\n /**\n * Applies this assessment to the given combination of parsedPaper and tree.\n *\n * @param {ParsedPaper} parsedPaper The parsedPaper to check.\n *\n * @returns {Promise<AssessmentResult>} The result of this assessment (wrapped in a promise).\n *\n * @abstract\n */\n async apply(parsedPaper) {\n // eslint-disable-line no-unused-vars\n console.warn('`apply` should be implemented by a child class of `Assessment`.');\n }\n}\n\nexport default Assessment;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,UAAU,CAAC;EACf;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,WAAWA,CAACC,IAAI,EAAEC,UAAU,EAAE;IAC5B;AACJ;AACA;AACA;IACI,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB;AACJ;AACA;AACA;AACA;IACI,IAAI,CAACE,WAAW,GAAGD,UAAU;IAE7B,IAAI,CAACE,OAAO,GAAG;MACbC,EAAE,EAAE,EAAE;MACNC,MAAM,EAAE,EAAE;MACVC,QAAQ,EAAE,EAAE;MACZC,WAAW,EAAE,EAAE;MACfC,KAAK,EAAE,EAAE;MACTC,OAAO,EAAE;QACPC,IAAI,EAAE,EAAE;QACRC,OAAO,EAAE,EAAE;QACXC,GAAG,EAAE;MACP;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,aAAaA,CAACZ,UAAU,EAAE;IACxB,IAAI,CAACC,WAAW,GAAGD,UAAU;EAC/B;;EAEA;AACF;AACA;AACA;AACA;EACEa,aAAaA,CAAA,EAAG;IACd,OAAO,IAAI,CAACZ,WAAW;EACzB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMa,YAAYA,CAACC,WAAW,EAAE;IAC9B;IACAC,OAAO,CAACC,IAAI,CAAC,wEAAwE,CAAC;EACxF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,KAAKA,CAACH,WAAW,EAAE;IACvB;IACAC,OAAO,CAACC,IAAI,CAAC,iEAAiE,CAAC;EACjF;AACF;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcxB,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"Assessment.js","names":["Assessment","constructor","name","researcher","_researcher","setResearcher","getResearcher","isApplicable","parsedPaper","console","warn","apply","_default","exports","default"],"sources":["../../../../src/parsedPaper/assess/assessments/Assessment.js"],"sourcesContent":["/**\n * An assessment that can be applied to a formatted text and its meta data.\n *\n * @memberOf module:parsedPaper/assess\n *\n * @abstract\n */\nclass Assessment {\n\t/**\n\t * Creates a new assessment.\n\t *\n\t * @param {string} name The name to give this assessment.\n\t * @param {module:parsedPaper/research.TreeResearcher} researcher The researcher to do researches with.\n\t *\n\t * @abstract\n\t */\n\tconstructor( name, researcher ) {\n\t\t/**\n\t\t * This assessment's name.\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = name;\n\t\t/**\n\t\t * The researcher to do researches with.\n\t\t * @type {module:parsedPaper/research.TreeResearcher}\n\t\t * @private\n\t\t */\n\t\tthis._researcher = researcher;\n\t}\n\n\t/**\n\t * Sets a new researcher on this assessment.\n\t *\n\t * @param {module:parsedPaper/research.TreeResearcher} researcher The researcher to do researches with.\n\t *\n\t * @returns {void}\n\t */\n\tsetResearcher( researcher ) {\n\t\tthis._researcher = researcher;\n\t}\n\n\t/**\n\t * Returns the researcher used by this assessment.\n\t *\n\t * @returns {module:parsedPaper/research.TreeResearcher} The researcher used by this assessment.\n\t */\n\tgetResearcher() {\n\t\treturn this._researcher;\n\t}\n\n\t/**\n\t * Checks whether this assessment is applicable to the given paper and tree combination.\n\t *\n\t * @param {ParsedPaper} parsedPaper The parsedPaper to check.\n\t *\n\t * @returns {Promise<boolean>} Whether this assessment is applicable to the given paper and tree combination (wrapped in a promise).\n\t *\n\t * @abstract\n\t */\n\tasync isApplicable( parsedPaper ) { // eslint-disable-line no-unused-vars\n\t\tconsole.warn( \"`isApplicable` should be implemented by a child class of `Assessment`.\" );\n\t}\n\n\t/**\n\t * Applies this assessment to the given combination of parsedPaper and tree.\n\t *\n\t * @param {ParsedPaper} parsedPaper The parsedPaper to check.\n\t *\n\t * @returns {Promise<AssessmentResult>} The result of this assessment (wrapped in a promise).\n\t *\n\t * @abstract\n\t */\n\tasync apply( parsedPaper ) { // eslint-disable-line no-unused-vars\n\t\tconsole.warn( \"`apply` should be implemented by a child class of `Assessment`.\" );\n\t}\n}\n\n\nexport default Assessment;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,UAAU,CAAC;EAChB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EACCC,WAAWA,CAAEC,IAAI,EAAEC,UAAU,EAAG;IAC/B;AACF;AACA;AACA;IACE,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB;AACF;AACA;AACA;AACA;IACE,IAAI,CAACE,WAAW,GAAGD,UAAU;EAC9B;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACCE,aAAaA,CAAEF,UAAU,EAAG;IAC3B,IAAI,CAACC,WAAW,GAAGD,UAAU;EAC9B;;EAEA;AACD;AACA;AACA;AACA;EACCG,aAAaA,CAAA,EAAG;IACf,OAAO,IAAI,CAACF,WAAW;EACxB;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMG,YAAYA,CAAEC,WAAW,EAAG;IAAE;IACnCC,OAAO,CAACC,IAAI,CAAE,wEAAyE,CAAC;EACzF;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMC,KAAKA,CAAEH,WAAW,EAAG;IAAE;IAC5BC,OAAO,CAACC,IAAI,CAAE,iEAAkE,CAAC;EAClF;AACD;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGcd,UAAU","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SentenceTokenizer.js","names":["_lodash","require","_core","_interopRequireDefault","_quotes","_Sentence","e","__esModule","default","fullStop","sentenceDelimiters","fullStopRegex","RegExp","sentenceDelimiterRegex","sentenceRegex","blockStartRegex","blockEndRegex","whiteSpaceStartRegex","whiteSpaceEndRegex","SentenceTokenizer","isNumber","character","isNaN","parseInt","isQuotation","normalizeQuotes","isPunctuation","removeDuplicateWhitespace","text","replace","isCapitalLetter","toLocaleLowerCase","getNextTwoCharacters","nextTokens","next","isUndefined","src","isValidSentenceBeginning","sentenceBeginning","isSentenceStart","token","type","createTokenizer","tokens","tokenizer","core","push","addRule","tokenize","onText","end","console","error","tokenizer2","determineIndices","sentences","currentIndex","sentence","startIndex","setStartIndex","endIndex","length","setEndIndex","trimWhiteSpaceAtStart","whiteSpaceLength","match","setText","getText","slice","getStartIndex","trimWhiteSpaceAtEnd","getEndIndex","trimWhiteSpaces","getSentencesFromTokens","tokenArray","tokenSentences","currentSentence","Sentence","nextSentenceStart","forEach","i","hasNextSentence","nextCharacters","nextToken","secondToNextToken","appendText","exports"],"sources":["../../../../src/parsedPaper/build/linguisticParsing/SentenceTokenizer.js"],"sourcesContent":["import { isNaN, isUndefined } from \"lodash\";\n\nimport core from \"tokenizer2/core\";\nimport { normalize as normalizeQuotes } from \"@axyseo/languageProcessing/helpers/sanitize/quotes\";\n\nimport Sentence from \"./Sentence\";\n\n// All characters that indicate a sentence delimiter.\nconst fullStop = \".\";\n// The \\u2026 character is an ellipsis\nconst sentenceDelimiters = \"?!;\\u2026\";\n\nconst fullStopRegex = new RegExp( \"^[\" + fullStop + \"]$\" );\nconst sentenceDelimiterRegex = new RegExp( \"^[\" + sentenceDelimiters + \"]$\" );\nconst sentenceRegex = new RegExp( \"^[^\" + fullStop + sentenceDelimiters + \"\\\\(\\\\)\\\\[\\\\]]+$\" );\n\nconst blockStartRegex = /^\\s*[[({]\\s*$/;\nconst blockEndRegex = /^\\s*[\\])}]\\s*$/;\n\nconst whiteSpaceStartRegex = /^\\s*/;\nconst whiteSpaceEndRegex = /\\s*$/;\n\n/**\n * Class for tokenizing a (html) text into sentences.\n */\nexport default class SentenceTokenizer {\n\t/**\n\t * Returns whether or not a certain character is a number.\n\t *\n\t * @param {string} character The character to check.\n\t * @returns {boolean} Whether or not the character is a capital letter.\n\t */\n\tisNumber( character ) {\n\t\treturn ! isNaN( parseInt( character, 10 ) );\n\t}\n\n\t/**\n\t * Returns whether or not a given character is quotation mark.\n\t *\n\t * @param {string} character The character to check.\n\t *\n\t * @returns {boolean} Whether or not the given character is a quotation mark.\n\t */\n\tisQuotation( character ) {\n\t\tcharacter = normalizeQuotes( character );\n\n\t\treturn \"'\" === character ||\n\t\t\t\"\\\"\" === character;\n\t}\n\n\t/**\n\t * Returns whether or not a given character is a punctuation mark that can be at the beginning\n\t * of a sentence, like ¿ and ¡ used in Spanish.\n\t *\n\t * @param {string} character The character to check.\n\t *\n\t * @returns {boolean} Whether or not the given character is a punctuation mark.\n\t */\n\tisPunctuation( character ) {\n\t\treturn \"¿\" === character ||\n\t\t\t\"¡\" === character;\n\t}\n\n\t/**\n\t * Removes duplicate whitespace from a given text.\n\t *\n\t * @param {string} text The text with duplicate whitespace.\n\t * @returns {string} The text without duplicate whitespace.\n\t */\n\tremoveDuplicateWhitespace( text ) {\n\t\treturn text.replace( /\\s+/, \" \" );\n\t}\n\n\t/**\n\t * Returns whether or not a certain character is a capital letter.\n\t *\n\t * @param {string} character The character to check.\n\t *\n\t * @returns {boolean} Whether or not the character is a capital letter.\n\t */\n\tisCapitalLetter( character ) {\n\t\treturn character !== character.toLocaleLowerCase();\n\t}\n\n\t/**\n\t * Retrieves the next two characters from an array with the two next tokens.\n\t *\n\t * @param {Array} nextTokens The two next tokens. Might be undefined.\n\t *\n\t * @returns {string} The next two characters.\n\t */\n\tgetNextTwoCharacters( nextTokens ) {\n\t\tlet next = \"\";\n\n\t\tif ( ! isUndefined( nextTokens[ 0 ] ) ) {\n\t\t\tnext += nextTokens[ 0 ].src;\n\t\t}\n\n\t\tif ( ! isUndefined( nextTokens[ 1 ] ) ) {\n\t\t\tnext += nextTokens[ 1 ].src;\n\t\t}\n\n\t\tnext = this.removeDuplicateWhitespace( next );\n\n\t\treturn next;\n\t}\n\n\t/**\n\t * Checks if the sentenceBeginning beginning is a valid beginning.\n\t *\n\t * @param {string} sentenceBeginning The beginning of the sentence to validate.\n\t *\n\t * @returns {boolean} Returns true if it is a valid beginning, false if it is not.\n\t */\n\tisValidSentenceBeginning( sentenceBeginning ) {\n\t\treturn (\n\t\t\tthis.isCapitalLetter( sentenceBeginning ) ||\n\t\t\tthis.isNumber( sentenceBeginning ) ||\n\t\t\tthis.isQuotation( sentenceBeginning ) ||\n\t\t\tthis.isPunctuation( sentenceBeginning )\n\t\t);\n\t}\n\n\t/**\n\t * Checks if the token is a valid sentence ending.\n\t *\n\t * @param {Object} token The token to validate.\n\t *\n\t * @returns {boolean} Returns true if the token is valid ending, false if it is not.\n\t */\n\tisSentenceStart( token ) {\n\t\treturn ( ! isUndefined( token ) && (\n\t\t\t\"html-start\" === token.type ||\n\t\t\t\"html-end\" === token.type ||\n\t\t\t\"block-start\" === token.type\n\t\t) );\n\t}\n\n\t/**\n\t * Creates a tokenizer.\n\t *\n\t * @returns {Object} The tokenizer and the tokens.\n\t */\n\tcreateTokenizer() {\n\t\tconst tokens = [];\n\t\tconst tokenizer = core( function( token ) {\n\t\t\ttokens.push( token );\n\t\t} );\n\n\t\ttokenizer.addRule( fullStopRegex, \"full-stop\" );\n\t\ttokenizer.addRule( blockStartRegex, \"block-start\" );\n\t\ttokenizer.addRule( blockEndRegex, \"block-end\" );\n\t\ttokenizer.addRule( sentenceDelimiterRegex, \"sentence-delimiter\" );\n\t\ttokenizer.addRule( sentenceRegex, \"sentence\" );\n\n\t\treturn {\n\t\t\ttokenizer,\n\t\t\ttokens,\n\t\t};\n\t}\n\n\t/**\n\t * Tokenizes the given text using the given tokenizer.\n\t *\n\t * @param {Tokenizer} tokenizer The tokenizer to use.\n\t * @param {string} text The text to tokenize.\n\t *\n\t * @returns {void}\n\t */\n\ttokenize( tokenizer, text ) {\n\t\ttokenizer.onText( text );\n\n\t\ttry {\n\t\t\ttokenizer.end();\n\t\t} catch ( e ) {\n\t\t\tconsole.error( \"Tokenizer end error:\", e, e.tokenizer2 );\n\t\t}\n\t}\n\n\t/**\n\t * Determines the start and end indices of a set of sentences form a text.\n\t *\n\t * @param {Sentence[]} sentences A set of sentences for which to determine indices.\n\t *\n\t * @returns {void}\n\t */\n\tdetermineIndices( sentences ) {\n\t\tlet currentIndex = 0;\n\n\t\tfor ( const sentence of sentences ) {\n\t\t\tconst startIndex = currentIndex;\n\t\t\tsentence.setStartIndex( currentIndex );\n\t\t\tconst endIndex = startIndex + sentence.text.length - 1;\n\t\t\tsentence.setEndIndex( endIndex );\n\t\t\tcurrentIndex = endIndex + 1;\n\t\t}\n\t}\n\n\t/**\n\t * Trims the white space from the beginning of a sentence and adjusts the sentence start index accordingly.\n\t *\n\t * @param {Sentence} sentence The sentence for which to trim the white space at the start.\n\t *\n\t * @returns {void}\n\t */\n\ttrimWhiteSpaceAtStart( sentence ) {\n\t\tconst whiteSpaceLength = sentence.text.match( whiteSpaceStartRegex )[ 0 ].length;\n\t\tsentence.setText( sentence.getText().slice( whiteSpaceLength ) );\n\t\tsentence.setStartIndex( sentence.getStartIndex() + whiteSpaceLength );\n\t}\n\n\t/**\n\t * Trims the white space from the end of a sentence and adjusts the sentence end index accordingly.\n\t *\n\t * @param {Sentence} sentence The sentence for which to trim the white space at the end.\n\t *\n\t * @returns {void}\n\t */\n\ttrimWhiteSpaceAtEnd( sentence ) {\n\t\tconst whiteSpaceLength = sentence.text.match( whiteSpaceEndRegex )[ 0 ].length;\n\t\tsentence.setText( sentence.getText().slice( 0, sentence.getText().length - whiteSpaceLength ) );\n\t\tsentence.setEndIndex( sentence.getEndIndex() - whiteSpaceLength );\n\t}\n\n\t/**\n\t * Trims white space from the beginning and end of sentences and adjusts the indices\n\t * of the sentence beginnings and ends accordingly.\n\t *\n\t * @param {Sentence[]} sentences The sentences for which to trim the whitespace.\n\t *\n\t * @returns {void}\n\t */\n\ttrimWhiteSpaces( sentences ) {\n\t\tfor ( const sentence of sentences ) {\n\t\t\tthis.trimWhiteSpaceAtStart( sentence );\n\t\t\tthis.trimWhiteSpaceAtEnd( sentence );\n\t\t}\n\t}\n\n\t/**\n\t * Returns an array of sentence objects for a given array of tokens; assumes that the text has already been split into blocks.\n\t *\n\t * @param {Object[]} tokenArray The tokens from the sentence tokenizer.\n\t *\n\t * @returns {Sentence[]} An array of sentence objects.\n\t */\n\tgetSentencesFromTokens( tokenArray ) {\n\t\tconst tokenSentences = [];\n\t\tlet currentSentence = new Sentence( \"\", 0, 0 ),\n\t\t\tnextSentenceStart;\n\n\t\ttokenArray.forEach( ( token, i ) => {\n\t\t\tlet hasNextSentence, nextCharacters;\n\t\t\tconst nextToken = tokenArray[ i + 1 ];\n\t\t\tconst secondToNextToken = tokenArray[ i + 2 ];\n\n\t\t\tswitch ( token.type ) {\n\t\t\t\tcase \"sentence\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"sentence-delimiter\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\t\t\t\t\tif ( ! isUndefined( nextToken ) && \"block-end\" !== nextToken.type && \"sentence-delimiter\" !== nextToken.type ) {\n\t\t\t\t\t\ttokenSentences.push( currentSentence );\n\t\t\t\t\t\tcurrentSentence = new Sentence( \"\" );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"full-stop\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\n\t\t\t\t\tnextCharacters = this.getNextTwoCharacters( [ nextToken, secondToNextToken ] );\n\n\t\t\t\t\t// For a new sentence we need to check the next two characters.\n\t\t\t\t\thasNextSentence = nextCharacters.length >= 2;\n\t\t\t\t\tnextSentenceStart = hasNextSentence ? nextCharacters[ 1 ] : \"\";\n\t\t\t\t\t// If the next character is a number, never split. For example: IPv4-numbers.\n\t\t\t\t\tif ( hasNextSentence && this.isNumber( nextCharacters[ 0 ] ) ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t// Only split on sentence delimiters when the next sentence looks like the start of a sentence.\n\t\t\t\t\tif ( ( hasNextSentence && this.isValidSentenceBeginning( nextSentenceStart ) ) || this.isSentenceStart( nextToken ) ) {\n\t\t\t\t\t\ttokenSentences.push( currentSentence );\n\t\t\t\t\t\tcurrentSentence = new Sentence( \"\" );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"block-start\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"block-end\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\t\t\t\t\tnextCharacters = this.getNextTwoCharacters( [ nextToken, secondToNextToken ] );\n\n\t\t\t\t\t// For a new sentence we need to check the next two characters.\n\t\t\t\t\thasNextSentence = nextCharacters.length >= 2;\n\t\t\t\t\tnextSentenceStart = hasNextSentence ? nextCharacters[ 0 ] : \"\";\n\t\t\t\t\t// If the next character is a number, never split. For example: IPv4-numbers.\n\t\t\t\t\tif ( hasNextSentence && this.isNumber( nextCharacters[ 0 ] ) ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( hasNextSentence && this.isValidSentenceBeginning( nextSentenceStart ) ) || this.isSentenceStart( nextToken ) ) {\n\t\t\t\t\t\ttokenSentences.push( currentSentence );\n\t\t\t\t\t\tcurrentSentence = new Sentence( \"\" );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} );\n\n\t\tif ( currentSentence.getText() !== \"\" ) {\n\t\t\ttokenSentences.push( currentSentence );\n\t\t}\n\n\t\tthis.determineIndices( tokenSentences );\n\n\t\tthis.trimWhiteSpaces( tokenSentences );\n\n\t\treturn tokenSentences;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SentenceTokenizer.js","names":["_lodash","require","_core","_interopRequireDefault","_quotes","_Sentence","e","__esModule","default","fullStop","sentenceDelimiters","fullStopRegex","RegExp","sentenceDelimiterRegex","sentenceRegex","blockStartRegex","blockEndRegex","whiteSpaceStartRegex","whiteSpaceEndRegex","SentenceTokenizer","isNumber","character","isNaN","parseInt","isQuotation","normalizeQuotes","isPunctuation","removeDuplicateWhitespace","text","replace","isCapitalLetter","toLocaleLowerCase","getNextTwoCharacters","nextTokens","next","isUndefined","src","isValidSentenceBeginning","sentenceBeginning","isSentenceStart","token","type","createTokenizer","tokens","tokenizer","core","push","addRule","tokenize","onText","end","console","error","tokenizer2","determineIndices","sentences","currentIndex","sentence","startIndex","setStartIndex","endIndex","length","setEndIndex","trimWhiteSpaceAtStart","whiteSpaceLength","match","setText","getText","slice","getStartIndex","trimWhiteSpaceAtEnd","getEndIndex","trimWhiteSpaces","getSentencesFromTokens","tokenArray","tokenSentences","currentSentence","Sentence","nextSentenceStart","forEach","i","hasNextSentence","nextCharacters","nextToken","secondToNextToken","appendText","exports"],"sources":["../../../../src/parsedPaper/build/linguisticParsing/SentenceTokenizer.js"],"sourcesContent":["import { isNaN, isUndefined } from \"lodash\";\n\nimport core from \"tokenizer2/core\";\nimport { normalize as normalizeQuotes } from \"../../../languageProcessing/helpers/sanitize/quotes\";\n\nimport Sentence from \"./Sentence\";\n\n// All characters that indicate a sentence delimiter.\nconst fullStop = \".\";\n// The \\u2026 character is an ellipsis\nconst sentenceDelimiters = \"?!;\\u2026\";\n\nconst fullStopRegex = new RegExp( \"^[\" + fullStop + \"]$\" );\nconst sentenceDelimiterRegex = new RegExp( \"^[\" + sentenceDelimiters + \"]$\" );\nconst sentenceRegex = new RegExp( \"^[^\" + fullStop + sentenceDelimiters + \"\\\\(\\\\)\\\\[\\\\]]+$\" );\n\nconst blockStartRegex = /^\\s*[[({]\\s*$/;\nconst blockEndRegex = /^\\s*[\\])}]\\s*$/;\n\nconst whiteSpaceStartRegex = /^\\s*/;\nconst whiteSpaceEndRegex = /\\s*$/;\n\n/**\n * Class for tokenizing a (html) text into sentences.\n */\nexport default class SentenceTokenizer {\n\t/**\n\t * Returns whether or not a certain character is a number.\n\t *\n\t * @param {string} character The character to check.\n\t * @returns {boolean} Whether or not the character is a capital letter.\n\t */\n\tisNumber( character ) {\n\t\treturn ! isNaN( parseInt( character, 10 ) );\n\t}\n\n\t/**\n\t * Returns whether or not a given character is quotation mark.\n\t *\n\t * @param {string} character The character to check.\n\t *\n\t * @returns {boolean} Whether or not the given character is a quotation mark.\n\t */\n\tisQuotation( character ) {\n\t\tcharacter = normalizeQuotes( character );\n\n\t\treturn \"'\" === character ||\n\t\t\t\"\\\"\" === character;\n\t}\n\n\t/**\n\t * Returns whether or not a given character is a punctuation mark that can be at the beginning\n\t * of a sentence, like ¿ and ¡ used in Spanish.\n\t *\n\t * @param {string} character The character to check.\n\t *\n\t * @returns {boolean} Whether or not the given character is a punctuation mark.\n\t */\n\tisPunctuation( character ) {\n\t\treturn \"¿\" === character ||\n\t\t\t\"¡\" === character;\n\t}\n\n\t/**\n\t * Removes duplicate whitespace from a given text.\n\t *\n\t * @param {string} text The text with duplicate whitespace.\n\t * @returns {string} The text without duplicate whitespace.\n\t */\n\tremoveDuplicateWhitespace( text ) {\n\t\treturn text.replace( /\\s+/, \" \" );\n\t}\n\n\t/**\n\t * Returns whether or not a certain character is a capital letter.\n\t *\n\t * @param {string} character The character to check.\n\t *\n\t * @returns {boolean} Whether or not the character is a capital letter.\n\t */\n\tisCapitalLetter( character ) {\n\t\treturn character !== character.toLocaleLowerCase();\n\t}\n\n\t/**\n\t * Retrieves the next two characters from an array with the two next tokens.\n\t *\n\t * @param {Array} nextTokens The two next tokens. Might be undefined.\n\t *\n\t * @returns {string} The next two characters.\n\t */\n\tgetNextTwoCharacters( nextTokens ) {\n\t\tlet next = \"\";\n\n\t\tif ( ! isUndefined( nextTokens[ 0 ] ) ) {\n\t\t\tnext += nextTokens[ 0 ].src;\n\t\t}\n\n\t\tif ( ! isUndefined( nextTokens[ 1 ] ) ) {\n\t\t\tnext += nextTokens[ 1 ].src;\n\t\t}\n\n\t\tnext = this.removeDuplicateWhitespace( next );\n\n\t\treturn next;\n\t}\n\n\t/**\n\t * Checks if the sentenceBeginning beginning is a valid beginning.\n\t *\n\t * @param {string} sentenceBeginning The beginning of the sentence to validate.\n\t *\n\t * @returns {boolean} Returns true if it is a valid beginning, false if it is not.\n\t */\n\tisValidSentenceBeginning( sentenceBeginning ) {\n\t\treturn (\n\t\t\tthis.isCapitalLetter( sentenceBeginning ) ||\n\t\t\tthis.isNumber( sentenceBeginning ) ||\n\t\t\tthis.isQuotation( sentenceBeginning ) ||\n\t\t\tthis.isPunctuation( sentenceBeginning )\n\t\t);\n\t}\n\n\t/**\n\t * Checks if the token is a valid sentence ending.\n\t *\n\t * @param {Object} token The token to validate.\n\t *\n\t * @returns {boolean} Returns true if the token is valid ending, false if it is not.\n\t */\n\tisSentenceStart( token ) {\n\t\treturn ( ! isUndefined( token ) && (\n\t\t\t\"html-start\" === token.type ||\n\t\t\t\"html-end\" === token.type ||\n\t\t\t\"block-start\" === token.type\n\t\t) );\n\t}\n\n\t/**\n\t * Creates a tokenizer.\n\t *\n\t * @returns {Object} The tokenizer and the tokens.\n\t */\n\tcreateTokenizer() {\n\t\tconst tokens = [];\n\t\tconst tokenizer = core( function( token ) {\n\t\t\ttokens.push( token );\n\t\t} );\n\n\t\ttokenizer.addRule( fullStopRegex, \"full-stop\" );\n\t\ttokenizer.addRule( blockStartRegex, \"block-start\" );\n\t\ttokenizer.addRule( blockEndRegex, \"block-end\" );\n\t\ttokenizer.addRule( sentenceDelimiterRegex, \"sentence-delimiter\" );\n\t\ttokenizer.addRule( sentenceRegex, \"sentence\" );\n\n\t\treturn {\n\t\t\ttokenizer,\n\t\t\ttokens,\n\t\t};\n\t}\n\n\t/**\n\t * Tokenizes the given text using the given tokenizer.\n\t *\n\t * @param {Tokenizer} tokenizer The tokenizer to use.\n\t * @param {string} text The text to tokenize.\n\t *\n\t * @returns {void}\n\t */\n\ttokenize( tokenizer, text ) {\n\t\ttokenizer.onText( text );\n\n\t\ttry {\n\t\t\ttokenizer.end();\n\t\t} catch ( e ) {\n\t\t\tconsole.error( \"Tokenizer end error:\", e, e.tokenizer2 );\n\t\t}\n\t}\n\n\t/**\n\t * Determines the start and end indices of a set of sentences form a text.\n\t *\n\t * @param {Sentence[]} sentences A set of sentences for which to determine indices.\n\t *\n\t * @returns {void}\n\t */\n\tdetermineIndices( sentences ) {\n\t\tlet currentIndex = 0;\n\n\t\tfor ( const sentence of sentences ) {\n\t\t\tconst startIndex = currentIndex;\n\t\t\tsentence.setStartIndex( currentIndex );\n\t\t\tconst endIndex = startIndex + sentence.text.length - 1;\n\t\t\tsentence.setEndIndex( endIndex );\n\t\t\tcurrentIndex = endIndex + 1;\n\t\t}\n\t}\n\n\t/**\n\t * Trims the white space from the beginning of a sentence and adjusts the sentence start index accordingly.\n\t *\n\t * @param {Sentence} sentence The sentence for which to trim the white space at the start.\n\t *\n\t * @returns {void}\n\t */\n\ttrimWhiteSpaceAtStart( sentence ) {\n\t\tconst whiteSpaceLength = sentence.text.match( whiteSpaceStartRegex )[ 0 ].length;\n\t\tsentence.setText( sentence.getText().slice( whiteSpaceLength ) );\n\t\tsentence.setStartIndex( sentence.getStartIndex() + whiteSpaceLength );\n\t}\n\n\t/**\n\t * Trims the white space from the end of a sentence and adjusts the sentence end index accordingly.\n\t *\n\t * @param {Sentence} sentence The sentence for which to trim the white space at the end.\n\t *\n\t * @returns {void}\n\t */\n\ttrimWhiteSpaceAtEnd( sentence ) {\n\t\tconst whiteSpaceLength = sentence.text.match( whiteSpaceEndRegex )[ 0 ].length;\n\t\tsentence.setText( sentence.getText().slice( 0, sentence.getText().length - whiteSpaceLength ) );\n\t\tsentence.setEndIndex( sentence.getEndIndex() - whiteSpaceLength );\n\t}\n\n\t/**\n\t * Trims white space from the beginning and end of sentences and adjusts the indices\n\t * of the sentence beginnings and ends accordingly.\n\t *\n\t * @param {Sentence[]} sentences The sentences for which to trim the whitespace.\n\t *\n\t * @returns {void}\n\t */\n\ttrimWhiteSpaces( sentences ) {\n\t\tfor ( const sentence of sentences ) {\n\t\t\tthis.trimWhiteSpaceAtStart( sentence );\n\t\t\tthis.trimWhiteSpaceAtEnd( sentence );\n\t\t}\n\t}\n\n\t/**\n\t * Returns an array of sentence objects for a given array of tokens; assumes that the text has already been split into blocks.\n\t *\n\t * @param {Object[]} tokenArray The tokens from the sentence tokenizer.\n\t *\n\t * @returns {Sentence[]} An array of sentence objects.\n\t */\n\tgetSentencesFromTokens( tokenArray ) {\n\t\tconst tokenSentences = [];\n\t\tlet currentSentence = new Sentence( \"\", 0, 0 ),\n\t\t\tnextSentenceStart;\n\n\t\ttokenArray.forEach( ( token, i ) => {\n\t\t\tlet hasNextSentence, nextCharacters;\n\t\t\tconst nextToken = tokenArray[ i + 1 ];\n\t\t\tconst secondToNextToken = tokenArray[ i + 2 ];\n\n\t\t\tswitch ( token.type ) {\n\t\t\t\tcase \"sentence\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"sentence-delimiter\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\t\t\t\t\tif ( ! isUndefined( nextToken ) && \"block-end\" !== nextToken.type && \"sentence-delimiter\" !== nextToken.type ) {\n\t\t\t\t\t\ttokenSentences.push( currentSentence );\n\t\t\t\t\t\tcurrentSentence = new Sentence( \"\" );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"full-stop\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\n\t\t\t\t\tnextCharacters = this.getNextTwoCharacters( [ nextToken, secondToNextToken ] );\n\n\t\t\t\t\t// For a new sentence we need to check the next two characters.\n\t\t\t\t\thasNextSentence = nextCharacters.length >= 2;\n\t\t\t\t\tnextSentenceStart = hasNextSentence ? nextCharacters[ 1 ] : \"\";\n\t\t\t\t\t// If the next character is a number, never split. For example: IPv4-numbers.\n\t\t\t\t\tif ( hasNextSentence && this.isNumber( nextCharacters[ 0 ] ) ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t// Only split on sentence delimiters when the next sentence looks like the start of a sentence.\n\t\t\t\t\tif ( ( hasNextSentence && this.isValidSentenceBeginning( nextSentenceStart ) ) || this.isSentenceStart( nextToken ) ) {\n\t\t\t\t\t\ttokenSentences.push( currentSentence );\n\t\t\t\t\t\tcurrentSentence = new Sentence( \"\" );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"block-start\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"block-end\":\n\t\t\t\t\tcurrentSentence.appendText( token.src );\n\t\t\t\t\tnextCharacters = this.getNextTwoCharacters( [ nextToken, secondToNextToken ] );\n\n\t\t\t\t\t// For a new sentence we need to check the next two characters.\n\t\t\t\t\thasNextSentence = nextCharacters.length >= 2;\n\t\t\t\t\tnextSentenceStart = hasNextSentence ? nextCharacters[ 0 ] : \"\";\n\t\t\t\t\t// If the next character is a number, never split. For example: IPv4-numbers.\n\t\t\t\t\tif ( hasNextSentence && this.isNumber( nextCharacters[ 0 ] ) ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( hasNextSentence && this.isValidSentenceBeginning( nextSentenceStart ) ) || this.isSentenceStart( nextToken ) ) {\n\t\t\t\t\t\ttokenSentences.push( currentSentence );\n\t\t\t\t\t\tcurrentSentence = new Sentence( \"\" );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} );\n\n\t\tif ( currentSentence.getText() !== \"\" ) {\n\t\t\ttokenSentences.push( currentSentence );\n\t\t}\n\n\t\tthis.determineIndices( tokenSentences );\n\n\t\tthis.trimWhiteSpaces( tokenSentences );\n\n\t\treturn tokenSentences;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _parseSynonyms = _interopRequireDefault(require("../@axyseo/languageProcessing/helpers/sanitize/parseSynonyms"));
7
+ var _parseSynonyms = _interopRequireDefault(require("../../../../languageProcessing/helpers/sanitize/parseSynonyms"));
8
8
  var _nodes = require("../../../structure/tree/nodes");
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"buildTree.js","names":["_parseSynonyms","_interopRequireDefault","require","_nodes","e","__esModule","default","buildTree","paper","metadata","StructuredNode","addChild","MetadataText","getTitle","getDescription","MetadataMiscellaneous","getKeyword","parseSynonyms","getSynonyms","getSlug","getTitleWidth","getPermalink","getLocale","_default","exports"],"sources":["../../../../../src/parsedPaper/build/tree/metadata/buildTree.js"],"sourcesContent":["import parseSynonyms from \"../@axyseo/languageProcessing/helpers/sanitize/parseSynonyms\";\n\nimport { MetadataMiscellaneous, MetadataText, StructuredNode } from \"../../../structure/tree/nodes\";\n\n/**\n * Parses the given paper attributes to a tree.\n *\n * @param {Paper} paper The Paper to parse.\n *\n * @memberOf module:parsedPaper/builder\n *\n * @returns {module:parsedPaper/structure.Node} The build tree.\n */\nconst buildTree = function buildTree( paper ) {\n\tconst metadata = new StructuredNode( \"metadata\", null );\n\n\t// Add text types.\n\tmetadata.addChild( new MetadataText( \"title\", paper.getTitle() ) );\n\tmetadata.addChild( new MetadataText( \"description\", paper.getDescription() ) );\n\n\t// Add miscellaneous types.\n\tmetadata.addChild( new MetadataMiscellaneous( \"keyphrase\", paper.getKeyword() ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"synonyms\", parseSynonyms( paper.getSynonyms() ) ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"slug\", paper.getSlug() ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"titleWidth\", paper.getTitleWidth() ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"permalink\", paper.getPermalink() ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"locale\", paper.getLocale() ) );\n\n\treturn metadata;\n};\n\nexport default buildTree;\n"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAAoG,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,SAAS,GAAG,SAASA,SAASA,CAAEC,KAAK,EAAG;EAC7C,MAAMC,QAAQ,GAAG,IAAIC,qBAAc,CAAE,UAAU,EAAE,IAAK,CAAC;;EAEvD;EACAD,QAAQ,CAACE,QAAQ,CAAE,IAAIC,mBAAY,CAAE,OAAO,EAAEJ,KAAK,CAACK,QAAQ,CAAC,CAAE,CAAE,CAAC;EAClEJ,QAAQ,CAACE,QAAQ,CAAE,IAAIC,mBAAY,CAAE,aAAa,EAAEJ,KAAK,CAACM,cAAc,CAAC,CAAE,CAAE,CAAC;;EAE9E;EACAL,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,WAAW,EAAEP,KAAK,CAACQ,UAAU,CAAC,CAAE,CAAE,CAAC;EACjFP,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,UAAU,EAAE,IAAAE,sBAAa,EAAET,KAAK,CAACU,WAAW,CAAC,CAAE,CAAE,CAAE,CAAC;EAClGT,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,MAAM,EAAEP,KAAK,CAACW,OAAO,CAAC,CAAE,CAAE,CAAC;EACzEV,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,YAAY,EAAEP,KAAK,CAACY,aAAa,CAAC,CAAE,CAAE,CAAC;EACrFX,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,WAAW,EAAEP,KAAK,CAACa,YAAY,CAAC,CAAE,CAAE,CAAC;EACnFZ,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,QAAQ,EAAEP,KAAK,CAACc,SAAS,CAAC,CAAE,CAAE,CAAC;EAE7E,OAAOb,QAAQ;AAChB,CAAC;AAAC,IAAAc,QAAA,GAAAC,OAAA,CAAAlB,OAAA,GAEaC,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"buildTree.js","names":["_parseSynonyms","_interopRequireDefault","require","_nodes","e","__esModule","default","buildTree","paper","metadata","StructuredNode","addChild","MetadataText","getTitle","getDescription","MetadataMiscellaneous","getKeyword","parseSynonyms","getSynonyms","getSlug","getTitleWidth","getPermalink","getLocale","_default","exports"],"sources":["../../../../../src/parsedPaper/build/tree/metadata/buildTree.js"],"sourcesContent":["import parseSynonyms from \"../../../../languageProcessing/helpers/sanitize/parseSynonyms\";\n\nimport { MetadataMiscellaneous, MetadataText, StructuredNode } from \"../../../structure/tree/nodes\";\n\n/**\n * Parses the given paper attributes to a tree.\n *\n * @param {Paper} paper The Paper to parse.\n *\n * @memberOf module:parsedPaper/builder\n *\n * @returns {module:parsedPaper/structure.Node} The build tree.\n */\nconst buildTree = function buildTree( paper ) {\n\tconst metadata = new StructuredNode( \"metadata\", null );\n\n\t// Add text types.\n\tmetadata.addChild( new MetadataText( \"title\", paper.getTitle() ) );\n\tmetadata.addChild( new MetadataText( \"description\", paper.getDescription() ) );\n\n\t// Add miscellaneous types.\n\tmetadata.addChild( new MetadataMiscellaneous( \"keyphrase\", paper.getKeyword() ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"synonyms\", parseSynonyms( paper.getSynonyms() ) ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"slug\", paper.getSlug() ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"titleWidth\", paper.getTitleWidth() ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"permalink\", paper.getPermalink() ) );\n\tmetadata.addChild( new MetadataMiscellaneous( \"locale\", paper.getLocale() ) );\n\n\treturn metadata;\n};\n\nexport default buildTree;\n"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAAoG,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,SAAS,GAAG,SAASA,SAASA,CAAEC,KAAK,EAAG;EAC7C,MAAMC,QAAQ,GAAG,IAAIC,qBAAc,CAAE,UAAU,EAAE,IAAK,CAAC;;EAEvD;EACAD,QAAQ,CAACE,QAAQ,CAAE,IAAIC,mBAAY,CAAE,OAAO,EAAEJ,KAAK,CAACK,QAAQ,CAAC,CAAE,CAAE,CAAC;EAClEJ,QAAQ,CAACE,QAAQ,CAAE,IAAIC,mBAAY,CAAE,aAAa,EAAEJ,KAAK,CAACM,cAAc,CAAC,CAAE,CAAE,CAAC;;EAE9E;EACAL,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,WAAW,EAAEP,KAAK,CAACQ,UAAU,CAAC,CAAE,CAAE,CAAC;EACjFP,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,UAAU,EAAE,IAAAE,sBAAa,EAAET,KAAK,CAACU,WAAW,CAAC,CAAE,CAAE,CAAE,CAAC;EAClGT,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,MAAM,EAAEP,KAAK,CAACW,OAAO,CAAC,CAAE,CAAE,CAAC;EACzEV,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,YAAY,EAAEP,KAAK,CAACY,aAAa,CAAC,CAAE,CAAE,CAAC;EACrFX,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,WAAW,EAAEP,KAAK,CAACa,YAAY,CAAC,CAAE,CAAE,CAAC;EACnFZ,QAAQ,CAACE,QAAQ,CAAE,IAAII,4BAAqB,CAAE,QAAQ,EAAEP,KAAK,CAACc,SAAS,CAAC,CAAE,CAAE,CAAC;EAE7E,OAAOb,QAAQ;AAChB,CAAC;AAAC,IAAAc,QAAA,GAAAC,OAAA,CAAAlB,OAAA,GAEaC,SAAS","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _languageProcessing = require("../../languageProcessing");
8
8
  var _helpers = require("../../languageProcessing/helpers");
9
- var _analysis = require("../../const/analysis");
9
+ var _analysis = require("../../../const/analysis");
10
10
  /* eslint-disable no-unused-vars */
11
11
 
12
12
  /**
@@ -21,11 +21,7 @@ class Assessment {
21
21
  * @param i18n
22
22
  * @returns {AssessmentResult} The result of the assessment.
23
23
  */
24
- getResult({
25
- paper,
26
- researcher,
27
- i18n
28
- }) {
24
+ getResult(paper, researcher, i18n) {
29
25
  throw 'The method getResult is not implemented';
30
26
  }
31
27
 
@@ -1 +1 @@
1
- {"version":3,"file":"assessment.js","names":["_languageProcessing","require","_helpers","_analysis","Assessment","getResult","paper","researcher","i18n","isApplicable","hasEnoughContentForAssessment","contentNeededForAssessment","text","getText","removeHtmlBlocks","filterShortcodesFromHTML","_attributes","shortcodes","sanitizeString","length","getScore","priority","status","POINT","priorityRate","statusRate","_default","exports","default"],"sources":["../../../src/scoring/assessments/assessment.js"],"sourcesContent":["/* eslint-disable no-unused-vars */\nimport {sanitizeString} from '../../languageProcessing';\nimport {filterShortcodesFromHTML, removeHtmlBlocks} from '../../languageProcessing/helpers';\nimport {POINT, priorityRate, statusRate} from '../../const/analysis';\n\n/**\n * The base class for an Assessment.\n */\nclass Assessment {\n /**\n * Executes the assessment and return its result.\n *\n * @param {Paper} paper The paper to run this assessment on.\n * @param {Researcher} researcher The researcher used for the assessment.\n * @param i18n\n * @returns {AssessmentResult} The result of the assessment.\n */\n getResult({paper, researcher, i18n}) {\n throw 'The method getResult is not implemented';\n }\n\n /**\n * Checks whether the assessment is applicable.\n *\n * @param {Paper} paper The paper to run this assessment on.\n * @param {Researcher} researcher The researcher used for the assessment.\n *\n * @returns {boolean} Whether the assessment is applicable, defaults to `true`.\n */\n isApplicable(paper, researcher) {\n return true;\n }\n\n /**\n * Tests whether a `Paper` has enough content for assessments to be displayed.\n *\n * @param {Paper} paper The paper to run this assessment on.\n * @param {number} contentNeededForAssessment The minimum length in characters a text must have for assessments to be displayed.\n *\n * @returns {boolean} `true` if the text is of the required length, `false` otherwise.\n */\n hasEnoughContentForAssessment(paper, contentNeededForAssessment = 50) {\n let text = paper.getText();\n text = removeHtmlBlocks(text);\n text = filterShortcodesFromHTML(text, paper._attributes && paper._attributes.shortcodes);\n\n return sanitizeString(text).length >= contentNeededForAssessment;\n }\n\n /**\n *\n * @param priority\n * @param status\n * @returns {number}\n */\n getScore(priority, status) {\n return POINT * priorityRate[`${priority}`] * statusRate[`${status}`];\n }\n}\n\n/* eslint-enable no-unused-vars */\n\nexport default Assessment;\n"],"mappings":";;;;;;AACA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAHA;;AAKA;AACA;AACA;AACA,MAAMG,UAAU,CAAC;EACf;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,SAASA,CAAC;IAACC,KAAK;IAAEC,UAAU;IAAEC;EAAI,CAAC,EAAE;IACnC,MAAM,yCAAyC;EACjD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,YAAYA,CAACH,KAAK,EAAEC,UAAU,EAAE;IAC9B,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,6BAA6BA,CAACJ,KAAK,EAAEK,0BAA0B,GAAG,EAAE,EAAE;IACpE,IAAIC,IAAI,GAAGN,KAAK,CAACO,OAAO,CAAC,CAAC;IAC1BD,IAAI,GAAG,IAAAE,yBAAgB,EAACF,IAAI,CAAC;IAC7BA,IAAI,GAAG,IAAAG,iCAAwB,EAACH,IAAI,EAAEN,KAAK,CAACU,WAAW,IAAIV,KAAK,CAACU,WAAW,CAACC,UAAU,CAAC;IAExF,OAAO,IAAAC,kCAAc,EAACN,IAAI,CAAC,CAACO,MAAM,IAAIR,0BAA0B;EAClE;;EAEA;AACF;AACA;AACA;AACA;AACA;EACES,QAAQA,CAACC,QAAQ,EAAEC,MAAM,EAAE;IACzB,OAAOC,eAAK,GAAGC,sBAAY,CAAC,GAAGH,QAAQ,EAAE,CAAC,GAAGI,oBAAU,CAAC,GAAGH,MAAM,EAAE,CAAC;EACtE;AACF;;AAEA;AAAA,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEexB,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"assessment.js","names":["_languageProcessing","require","_helpers","_analysis","Assessment","getResult","paper","researcher","i18n","isApplicable","hasEnoughContentForAssessment","contentNeededForAssessment","text","getText","removeHtmlBlocks","filterShortcodesFromHTML","_attributes","shortcodes","sanitizeString","length","getScore","priority","status","POINT","priorityRate","statusRate","_default","exports","default"],"sources":["../../../src/scoring/assessments/assessment.js"],"sourcesContent":["/* eslint-disable no-unused-vars */\nimport {sanitizeString} from '../../languageProcessing';\nimport {filterShortcodesFromHTML, removeHtmlBlocks} from '../../languageProcessing/helpers';\nimport {POINT, priorityRate, statusRate} from '../../../const/analysis';\n\n/**\n * The base class for an Assessment.\n */\nclass Assessment {\n /**\n * Executes the assessment and return its result.\n *\n * @param {Paper} paper The paper to run this assessment on.\n * @param {Researcher} researcher The researcher used for the assessment.\n * @param i18n\n * @returns {AssessmentResult} The result of the assessment.\n */\n getResult(paper, researcher, i18n) {\n throw 'The method getResult is not implemented';\n }\n\n /**\n * Checks whether the assessment is applicable.\n *\n * @param {Paper} paper The paper to run this assessment on.\n * @param {Researcher} researcher The researcher used for the assessment.\n *\n * @returns {boolean} Whether the assessment is applicable, defaults to `true`.\n */\n isApplicable(paper, researcher) {\n return true;\n }\n\n /**\n * Tests whether a `Paper` has enough content for assessments to be displayed.\n *\n * @param {Paper} paper The paper to run this assessment on.\n * @param {number} contentNeededForAssessment The minimum length in characters a text must have for assessments to be displayed.\n *\n * @returns {boolean} `true` if the text is of the required length, `false` otherwise.\n */\n hasEnoughContentForAssessment(paper, contentNeededForAssessment = 50) {\n let text = paper.getText();\n text = removeHtmlBlocks(text);\n text = filterShortcodesFromHTML(text, paper._attributes && paper._attributes.shortcodes);\n\n return sanitizeString(text).length >= contentNeededForAssessment;\n }\n\n /**\n *\n * @param priority\n * @param status\n * @returns {number}\n */\n getScore(priority, status) {\n return POINT * priorityRate[`${priority}`] * statusRate[`${status}`];\n }\n}\n\n/* eslint-enable no-unused-vars */\n\nexport default Assessment;\n"],"mappings":";;;;;;AACA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAHA;;AAKA;AACA;AACA;AACA,MAAMG,UAAU,CAAC;EACf;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,SAASA,CAACC,KAAK,EAAEC,UAAU,EAAEC,IAAI,EAAE;IACjC,MAAM,yCAAyC;EACjD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,YAAYA,CAACH,KAAK,EAAEC,UAAU,EAAE;IAC9B,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,6BAA6BA,CAACJ,KAAK,EAAEK,0BAA0B,GAAG,EAAE,EAAE;IACpE,IAAIC,IAAI,GAAGN,KAAK,CAACO,OAAO,CAAC,CAAC;IAC1BD,IAAI,GAAG,IAAAE,yBAAgB,EAACF,IAAI,CAAC;IAC7BA,IAAI,GAAG,IAAAG,iCAAwB,EAACH,IAAI,EAAEN,KAAK,CAACU,WAAW,IAAIV,KAAK,CAACU,WAAW,CAACC,UAAU,CAAC;IAExF,OAAO,IAAAC,kCAAc,EAACN,IAAI,CAAC,CAACO,MAAM,IAAIR,0BAA0B;EAClE;;EAEA;AACF;AACA;AACA;AACA;AACA;EACES,QAAQA,CAACC,QAAQ,EAAEC,MAAM,EAAE;IACzB,OAAOC,eAAK,GAAGC,sBAAY,CAAC,GAAGH,QAAQ,EAAE,CAAC,GAAGI,oBAAU,CAAC,GAAGH,MAAM,EAAE,CAAC;EACtE;AACF;;AAEA;AAAA,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEexB,UAAU","ignoreList":[]}
@@ -22,11 +22,11 @@ var _TextLengthAssessment = _interopRequireDefault(require("./seo/TextLengthAsse
22
22
  var _UrlKeywordAssessment = _interopRequireDefault(require("./seo/UrlKeywordAssessment"));
23
23
  var _ImageCountAssessment = _interopRequireDefault(require("./seo/ImageCountAssessment"));
24
24
  var _KeyphraseAssessment = _interopRequireDefault(require("./seo/KeyphraseAssessment"));
25
- var _SingleTitleAssessment = _interopRequireDefault(require("./seo/SingleTitleAssessment"));
26
- var _UrlLengthAssessment = _interopRequireDefault(require("./seo/UrlLengthAssessment"));
27
- var _NumberInMetaTitleAssessment = _interopRequireDefault(require("./seo/NumberInMetaTitleAssessment"));
28
- var _TextImagesAssessment = _interopRequireDefault(require("./seo/TextImagesAssessment"));
29
- var _MetaTitleKeywordAssessment = _interopRequireDefault(require("./seo/MetaTitleKeywordAssessment"));
25
+ var _SingleTitleAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/SingleTitleAssessment"));
26
+ var _UrlLengthAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/UrlLengthAssessment"));
27
+ var _NumberInMetaTitleAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/NumberInMetaTitleAssessment"));
28
+ var _TextImagesAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/TextImagesAssessment"));
29
+ var _MetaTitleKeywordAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/MetaTitleKeywordAssessment"));
30
30
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
31
31
  // Readability assessments.
32
32
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_ParagraphTooLongAssessment","_interopRequireDefault","require","_SentenceBeginningsAssessment","_SentenceLengthInTextAssessment","_TransitionWordsAssessment","_InternalLinksAssessment","_IntroductionKeywordAssessment","_KeyphraseLengthAssessment","_KeywordDensityAssessment","_MetaDescriptionKeywordAssessment","_MetaDescriptionLengthAssessment","_OutboundLinksAssessment","_PageTitleWidthAssessment","_SingleH1Assessment","_SubHeadingsKeywordAssessment","_TextLengthAssessment","_UrlKeywordAssessment","_ImageCountAssessment","_KeyphraseAssessment","_SingleTitleAssessment","_UrlLengthAssessment","_NumberInMetaTitleAssessment","_TextImagesAssessment","_MetaTitleKeywordAssessment","e","__esModule","default","readability","exports","ParagraphTooLongAssessment","SentenceBeginningsAssessment","SentenceLengthInTextAssessment","TransitionWordsAssessment","seo","ImageCountAssessment","NumberInMetaTitleAssessment","InternalLinksAssessment","TextImagesAssessment","MetaTitleKeywordAssessment","IntroductionKeywordAssessment","SingleTitleAssessment","KeyphraseLengthAssessment","UrlLengthAssessment","KeyphraseDensityAssessment","MetaDescriptionKeywordAssessment","MetaDescriptionLengthAssessment","OutboundLinksAssessment","PageTitleWidthAssessment","SingleH1Assessment","SubheadingsKeywordAssessment","TextLengthAssessment","SlugKeywordAssessment","KeyphraseAssessment"],"sources":["../../../src/scoring/assessments/index.js"],"sourcesContent":["// Readability assessments.\nimport ParagraphTooLongAssessment from './readability/ParagraphTooLongAssessment';\nimport SentenceBeginningsAssessment from './readability/SentenceBeginningsAssessment';\nimport SentenceLengthInTextAssessment from './readability/SentenceLengthInTextAssessment';\nimport TransitionWordsAssessment from './readability/TransitionWordsAssessment';\n\n// SEO assessments.\nimport InternalLinksAssessment from './seo/InternalLinksAssessment';\nimport IntroductionKeywordAssessment from './seo/IntroductionKeywordAssessment';\nimport KeyphraseLengthAssessment from './seo/KeyphraseLengthAssessment';\nimport KeyphraseDensityAssessment from './seo/KeywordDensityAssessment';\nimport MetaDescriptionKeywordAssessment from './seo/MetaDescriptionKeywordAssessment';\nimport MetaDescriptionLengthAssessment from './seo/MetaDescriptionLengthAssessment';\nimport OutboundLinksAssessment from './seo/OutboundLinksAssessment';\nimport PageTitleWidthAssessment from './seo/PageTitleWidthAssessment';\nimport SingleH1Assessment from './seo/SingleH1Assessment';\nimport SubheadingsKeywordAssessment from './seo/SubHeadingsKeywordAssessment';\nimport TextLengthAssessment from './seo/TextLengthAssessment';\nimport SlugKeywordAssessment from './seo/UrlKeywordAssessment';\nimport ImageCountAssessment from './seo/ImageCountAssessment';\nimport KeyphraseAssessment from './seo/KeyphraseAssessment';\nimport SingleTitleAssessment from './seo/SingleTitleAssessment';\nimport UrlLengthAssessment from './seo/UrlLengthAssessment';\nimport NumberInMetaTitleAssessment from './seo/NumberInMetaTitleAssessment';\nimport TextImagesAssessment from './seo/TextImagesAssessment';\nimport MetaTitleKeywordAssessment from './seo/MetaTitleKeywordAssessment';\n\nconst readability = {\n ParagraphTooLongAssessment,\n SentenceBeginningsAssessment,\n SentenceLengthInTextAssessment,\n TransitionWordsAssessment\n};\n\n// We expose the deprecated assessments for backwards compatibility.\nconst seo = {\n ImageCountAssessment,\n NumberInMetaTitleAssessment,\n InternalLinksAssessment,\n TextImagesAssessment,\n MetaTitleKeywordAssessment,\n IntroductionKeywordAssessment,\n SingleTitleAssessment,\n KeyphraseLengthAssessment,\n UrlLengthAssessment,\n KeyphraseDensityAssessment,\n MetaDescriptionKeywordAssessment,\n MetaDescriptionLengthAssessment,\n OutboundLinksAssessment,\n PageTitleWidthAssessment,\n SingleH1Assessment,\n SubheadingsKeywordAssessment,\n TextLengthAssessment,\n SlugKeywordAssessment,\n KeyphraseAssessment\n};\n\nexport {readability, seo};\n"],"mappings":";;;;;;AACA,IAAAA,2BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,6BAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,+BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,0BAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAGA,IAAAI,wBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,8BAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,0BAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,yBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,iCAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,gCAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,wBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,yBAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,mBAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,6BAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,qBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,qBAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,qBAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,oBAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,sBAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,oBAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,4BAAA,GAAArB,sBAAA,CAAAC,OAAA;AACA,IAAAqB,qBAAA,GAAAtB,sBAAA,CAAAC,OAAA;AACA,IAAAsB,2BAAA,GAAAvB,sBAAA,CAAAC,OAAA;AAA0E,SAAAD,uBAAAwB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAzB1E;;AAMA;;AAqBA,MAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EAClBE,0BAA0B,EAA1BA,mCAA0B;EAC1BC,4BAA4B,EAA5BA,qCAA4B;EAC5BC,8BAA8B,EAA9BA,uCAA8B;EAC9BC,yBAAyB,EAAzBA;AACF,CAAC;;AAED;AACA,MAAMC,GAAG,GAAAL,OAAA,CAAAK,GAAA,GAAG;EACVC,oBAAoB,EAApBA,6BAAoB;EACpBC,2BAA2B,EAA3BA,oCAA2B;EAC3BC,uBAAuB,EAAvBA,gCAAuB;EACvBC,oBAAoB,EAApBA,6BAAoB;EACpBC,0BAA0B,EAA1BA,mCAA0B;EAC1BC,6BAA6B,EAA7BA,sCAA6B;EAC7BC,qBAAqB,EAArBA,8BAAqB;EACrBC,yBAAyB,EAAzBA,kCAAyB;EACzBC,mBAAmB,EAAnBA,4BAAmB;EACnBC,0BAA0B,EAA1BA,iCAA0B;EAC1BC,gCAAgC,EAAhCA,yCAAgC;EAChCC,+BAA+B,EAA/BA,wCAA+B;EAC/BC,uBAAuB,EAAvBA,gCAAuB;EACvBC,wBAAwB,EAAxBA,iCAAwB;EACxBC,kBAAkB,EAAlBA,2BAAkB;EAClBC,4BAA4B,EAA5BA,qCAA4B;EAC5BC,oBAAoB,EAApBA,6BAAoB;EACpBC,qBAAqB,EAArBA,6BAAqB;EACrBC,mBAAmB,EAAnBA;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_ParagraphTooLongAssessment","_interopRequireDefault","require","_SentenceBeginningsAssessment","_SentenceLengthInTextAssessment","_TransitionWordsAssessment","_InternalLinksAssessment","_IntroductionKeywordAssessment","_KeyphraseLengthAssessment","_KeywordDensityAssessment","_MetaDescriptionKeywordAssessment","_MetaDescriptionLengthAssessment","_OutboundLinksAssessment","_PageTitleWidthAssessment","_SingleH1Assessment","_SubHeadingsKeywordAssessment","_TextLengthAssessment","_UrlKeywordAssessment","_ImageCountAssessment","_KeyphraseAssessment","_SingleTitleAssessment","_UrlLengthAssessment","_NumberInMetaTitleAssessment","_TextImagesAssessment","_MetaTitleKeywordAssessment","e","__esModule","default","readability","exports","ParagraphTooLongAssessment","SentenceBeginningsAssessment","SentenceLengthInTextAssessment","TransitionWordsAssessment","seo","ImageCountAssessment","NumberInMetaTitleAssessment","InternalLinksAssessment","TextImagesAssessment","MetaTitleKeywordAssessment","IntroductionKeywordAssessment","SingleTitleAssessment","KeyphraseLengthAssessment","UrlLengthAssessment","KeyphraseDensityAssessment","MetaDescriptionKeywordAssessment","MetaDescriptionLengthAssessment","OutboundLinksAssessment","PageTitleWidthAssessment","SingleH1Assessment","SubheadingsKeywordAssessment","TextLengthAssessment","SlugKeywordAssessment","KeyphraseAssessment"],"sources":["../../../src/scoring/assessments/index.js"],"sourcesContent":["// Readability assessments.\nimport ParagraphTooLongAssessment from './readability/ParagraphTooLongAssessment';\nimport SentenceBeginningsAssessment from './readability/SentenceBeginningsAssessment';\nimport SentenceLengthInTextAssessment from './readability/SentenceLengthInTextAssessment';\nimport TransitionWordsAssessment from './readability/TransitionWordsAssessment';\n\n// SEO assessments.\nimport InternalLinksAssessment from './seo/InternalLinksAssessment';\nimport IntroductionKeywordAssessment from './seo/IntroductionKeywordAssessment';\nimport KeyphraseLengthAssessment from './seo/KeyphraseLengthAssessment';\nimport KeyphraseDensityAssessment from './seo/KeywordDensityAssessment';\nimport MetaDescriptionKeywordAssessment from './seo/MetaDescriptionKeywordAssessment';\nimport MetaDescriptionLengthAssessment from './seo/MetaDescriptionLengthAssessment';\nimport OutboundLinksAssessment from './seo/OutboundLinksAssessment';\nimport PageTitleWidthAssessment from './seo/PageTitleWidthAssessment';\nimport SingleH1Assessment from './seo/SingleH1Assessment';\nimport SubheadingsKeywordAssessment from './seo/SubHeadingsKeywordAssessment';\nimport TextLengthAssessment from './seo/TextLengthAssessment';\nimport SlugKeywordAssessment from './seo/UrlKeywordAssessment';\nimport ImageCountAssessment from './seo/ImageCountAssessment';\nimport KeyphraseAssessment from './seo/KeyphraseAssessment';\nimport SingleTitleAssessment from '../../../scoring/assessments/seo/SingleTitleAssessment';\nimport UrlLengthAssessment from '../../../scoring/assessments/seo/UrlLengthAssessment';\nimport NumberInMetaTitleAssessment from '../../../scoring/assessments/seo/NumberInMetaTitleAssessment';\nimport TextImagesAssessment from '../../../scoring/assessments/seo/TextImagesAssessment';\nimport MetaTitleKeywordAssessment from '../../../scoring/assessments/seo/MetaTitleKeywordAssessment';\n\nconst readability = {\n ParagraphTooLongAssessment,\n SentenceBeginningsAssessment,\n SentenceLengthInTextAssessment,\n TransitionWordsAssessment\n};\n\n// We expose the deprecated assessments for backwards compatibility.\nconst seo = {\n ImageCountAssessment,\n NumberInMetaTitleAssessment,\n InternalLinksAssessment,\n TextImagesAssessment,\n MetaTitleKeywordAssessment,\n IntroductionKeywordAssessment,\n SingleTitleAssessment,\n KeyphraseLengthAssessment,\n UrlLengthAssessment,\n KeyphraseDensityAssessment,\n MetaDescriptionKeywordAssessment,\n MetaDescriptionLengthAssessment,\n OutboundLinksAssessment,\n PageTitleWidthAssessment,\n SingleH1Assessment,\n SubheadingsKeywordAssessment,\n TextLengthAssessment,\n SlugKeywordAssessment,\n KeyphraseAssessment\n};\n\nexport {readability, seo};\n"],"mappings":";;;;;;AACA,IAAAA,2BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,6BAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,+BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,0BAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAGA,IAAAI,wBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,8BAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,0BAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,yBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,iCAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,gCAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,wBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,yBAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,mBAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,6BAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,qBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,qBAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,qBAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,oBAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,sBAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,oBAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,4BAAA,GAAArB,sBAAA,CAAAC,OAAA;AACA,IAAAqB,qBAAA,GAAAtB,sBAAA,CAAAC,OAAA;AACA,IAAAsB,2BAAA,GAAAvB,sBAAA,CAAAC,OAAA;AAAqG,SAAAD,uBAAAwB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAzBrG;;AAMA;;AAqBA,MAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EAClBE,0BAA0B,EAA1BA,mCAA0B;EAC1BC,4BAA4B,EAA5BA,qCAA4B;EAC5BC,8BAA8B,EAA9BA,uCAA8B;EAC9BC,yBAAyB,EAAzBA;AACF,CAAC;;AAED;AACA,MAAMC,GAAG,GAAAL,OAAA,CAAAK,GAAA,GAAG;EACVC,oBAAoB,EAApBA,6BAAoB;EACpBC,2BAA2B,EAA3BA,oCAA2B;EAC3BC,uBAAuB,EAAvBA,gCAAuB;EACvBC,oBAAoB,EAApBA,6BAAoB;EACpBC,0BAA0B,EAA1BA,mCAA0B;EAC1BC,6BAA6B,EAA7BA,sCAA6B;EAC7BC,qBAAqB,EAArBA,8BAAqB;EACrBC,yBAAyB,EAAzBA,kCAAyB;EACzBC,mBAAmB,EAAnBA,4BAAmB;EACnBC,0BAA0B,EAA1BA,iCAA0B;EAC1BC,gCAAgC,EAAhCA,yCAAgC;EAChCC,+BAA+B,EAA/BA,wCAA+B;EAC/BC,uBAAuB,EAAvBA,gCAAuB;EACvBC,wBAAwB,EAAxBA,iCAAwB;EACxBC,kBAAkB,EAAlBA,2BAAkB;EAClBC,4BAA4B,EAA5BA,qCAA4B;EAC5BC,oBAAoB,EAApBA,6BAAoB;EACpBC,qBAAqB,EAArBA,6BAAqB;EACrBC,mBAAmB,EAAnBA;AACF,CAAC","ignoreList":[]}
@@ -129,11 +129,7 @@ class ParagraphTooLongAssessment extends _assessment.default {
129
129
  * @param i18n
130
130
  * @returns {object} The assessment result.
131
131
  */
132
- getResult({
133
- paper,
134
- researcher,
135
- i18n
136
- }) {
132
+ getResult(paper, researcher, i18n) {
137
133
  let paragraphsLength = researcher.getResearch('getParagraphLength');
138
134
  paragraphsLength = this.sortParagraphs(paragraphsLength);
139
135
  const config = this.getConfig(researcher);
@@ -1 +1 @@
1
- {"version":3,"file":"ParagraphTooLongAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_inRange","_AssessmentResult","_assessment","e","__esModule","default","ParagraphTooLongAssessment","Assessment","constructor","config","defaultConfig","id","priority","docUrl","fixPosition","ctaType","parameters","recommendedLength","maximumRecommendedLength","title","content","bad","improve","good","identifier","_config","merge","getConfig","researcher","currentConfig","languageSpecificConfig","_isProduct","productPageParams","defaultPageParams","calculateResult","paragraphsLength","i18n","status","length","longestParagraphLength","countLength","inRange","score","getScore","body","createElement","Text","as","href","target","rel","sortParagraphs","paragraphs","sort","a","b","getResult","paper","getResearch","paragraphLengthResult","assessmentResult","AssessmentResult","setScore","setStatus","setBody","isApplicable","hasEnoughContentForAssessment","exports"],"sources":["../../../../src/scoring/assessments/readability/ParagraphTooLongAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\nimport {inRangeEndInclusive as inRange} from '../../helpers/assessments/inRange';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport Assessment from '../assessment';\n\n/**\n * Represents the assessment that will look if the text has too long paragraphs.\n */\nexport default class ParagraphTooLongAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {object} config The configuration to use.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'textParagraphTooLong',\n priority: 'high',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#paragraph-length',\n fixPosition: 'longParagraph',\n ctaType: 'fix',\n parameters: {\n recommendedLength: 150,\n maximumRecommendedLength: 150\n },\n title: 'Paragraph length',\n content: {\n bad: 'Paragraph too long. Keep paragraph length less than 150 words for readability.',\n improve: '',\n good: 'Paragraph is optimized, with less than 150 words.'\n }\n };\n\n this.identifier = 'textParagraphTooLong';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Check if there is language-specific config, and if so, overwrite the current config with it.\n *\n * @param {Researcher} researcher The researcher to use.\n *\n * @returns {Object} The config that should be used.\n */\n getConfig(researcher) {\n const currentConfig = this._config;\n const languageSpecificConfig = researcher.getConfig('paragraphLength');\n\n /*\n * If a language has a specific paragraph length config, check further if the assessment is run in product pages.\n * If it's run in product pages, override the default config parameters with the language specific config for product pages,\n * otherwise override it with the language specific config for default pages analysis.\n */\n if (languageSpecificConfig) {\n currentConfig.parameters = this._isProduct\n ? languageSpecificConfig.productPageParams\n : languageSpecificConfig.defaultPageParams;\n }\n\n return currentConfig;\n }\n\n /**\n *\n * @param paragraphsLength\n * @param tooLongParagraphs\n * @param config\n * @param i18n\n * @returns {{score: number, body: React.JSX.Element, status: string}}\n */\n calculateResult({paragraphsLength, config, i18n}) {\n let status = '';\n if (paragraphsLength.length === 0) {\n status = 'good';\n }\n\n const longestParagraphLength = paragraphsLength[0].countLength;\n\n if (longestParagraphLength <= config.parameters.recommendedLength) {\n status = 'good';\n }\n\n if (\n inRange(\n longestParagraphLength,\n config.parameters.recommendedLength,\n config.parameters.maximumRecommendedLength\n )\n ) {\n status = 'good';\n }\n\n if (longestParagraphLength > config.parameters.maximumRecommendedLength) {\n status = 'bad';\n }\n\n const score = this.getScore(this._config.priority, status);\n\n return {\n score,\n status,\n body: (\n <Text as={'span'}>\n {this._config.content[status]}{' '}\n {this._config.docUrl && (\n <a href={this._config.docUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more\n </a>\n )}\n </Text>\n )\n };\n }\n\n /**\n * Sort the paragraphs based on word count.\n *\n * @param {Array} paragraphs The array with paragraphs.\n *\n * @returns {Array} The array sorted on word counts.\n */\n sortParagraphs(paragraphs) {\n return paragraphs.sort(function(a, b) {\n return b.countLength - a.countLength;\n });\n }\n\n /**\n * Runs the getParagraphLength module, based on this returns an assessment result with score and text.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling research.\n * @param i18n\n * @returns {object} The assessment result.\n */\n getResult({paper, researcher, i18n}) {\n let paragraphsLength = researcher.getResearch('getParagraphLength');\n\n paragraphsLength = this.sortParagraphs(paragraphsLength);\n const config = this.getConfig(researcher);\n\n const paragraphLengthResult = this.calculateResult({\n paragraphsLength,\n config,\n i18n\n });\n const assessmentResult = new AssessmentResult({config: this._config});\n\n assessmentResult.setScore(paragraphLengthResult.score);\n assessmentResult.setStatus(paragraphLengthResult.status);\n assessmentResult.setBody(paragraphLengthResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Checks if the paragraphTooLong assessment is applicable to the paper.\n *\n * @param {Paper} paper The paper to check.\n *\n * @returns {boolean} Returns true if the assessment is applicable to the paper.\n */\n isApplicable(paper) {\n return this.hasEnoughContentForAssessment(paper);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,WAAA,GAAAJ,sBAAA,CAAAF,OAAA;AAAuC,SAAAE,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvC;AACA;AACA;AACe,MAAMG,0BAA0B,SAASC,mBAAU,CAAC;EACjE;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,WAAWA,CAACC,MAAM,GAAG,CAAC,CAAC,EAAE;IACvB,KAAK,CAAC,CAAC;IAEP,MAAMC,aAAa,GAAG;MACpBC,EAAE,EAAE,sBAAsB;MAC1BC,QAAQ,EAAE,MAAM;MAChBC,MAAM,EACJ,8FAA8F;MAChGC,WAAW,EAAE,eAAe;MAC5BC,OAAO,EAAE,KAAK;MACdC,UAAU,EAAE;QACVC,iBAAiB,EAAE,GAAG;QACtBC,wBAAwB,EAAE;MAC5B,CAAC;MACDC,KAAK,EAAE,kBAAkB;MACzBC,OAAO,EAAE;QACPC,GAAG,EAAE,gFAAgF;QACrFC,OAAO,EAAE,EAAE;QACXC,IAAI,EAAE;MACR;IACF,CAAC;IAED,IAAI,CAACC,UAAU,GAAG,sBAAsB;IACxC,IAAI,CAACC,OAAO,GAAG,IAAAC,aAAK,EAAChB,aAAa,EAAED,MAAM,CAAC;EAC7C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEkB,SAASA,CAACC,UAAU,EAAE;IACpB,MAAMC,aAAa,GAAG,IAAI,CAACJ,OAAO;IAClC,MAAMK,sBAAsB,GAAGF,UAAU,CAACD,SAAS,CAAC,iBAAiB,CAAC;;IAEtE;AACJ;AACA;AACA;AACA;IACI,IAAIG,sBAAsB,EAAE;MAC1BD,aAAa,CAACb,UAAU,GAAG,IAAI,CAACe,UAAU,GACtCD,sBAAsB,CAACE,iBAAiB,GACxCF,sBAAsB,CAACG,iBAAiB;IAC9C;IAEA,OAAOJ,aAAa;EACtB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEK,eAAeA,CAAC;IAACC,gBAAgB;IAAE1B,MAAM;IAAE2B;EAAI,CAAC,EAAE;IAChD,IAAIC,MAAM,GAAG,EAAE;IACf,IAAIF,gBAAgB,CAACG,MAAM,KAAK,CAAC,EAAE;MACjCD,MAAM,GAAG,MAAM;IACjB;IAEA,MAAME,sBAAsB,GAAGJ,gBAAgB,CAAC,CAAC,CAAC,CAACK,WAAW;IAE9D,IAAID,sBAAsB,IAAI9B,MAAM,CAACO,UAAU,CAACC,iBAAiB,EAAE;MACjEoB,MAAM,GAAG,MAAM;IACjB;IAEA,IACE,IAAAI,4BAAO,EACLF,sBAAsB,EACtB9B,MAAM,CAACO,UAAU,CAACC,iBAAiB,EACnCR,MAAM,CAACO,UAAU,CAACE,wBACpB,CAAC,EACD;MACAmB,MAAM,GAAG,MAAM;IACjB;IAEA,IAAIE,sBAAsB,GAAG9B,MAAM,CAACO,UAAU,CAACE,wBAAwB,EAAE;MACvEmB,MAAM,GAAG,KAAK;IAChB;IAEA,MAAMK,KAAK,GAAG,IAAI,CAACC,QAAQ,CAAC,IAAI,CAAClB,OAAO,CAACb,QAAQ,EAAEyB,MAAM,CAAC;IAE1D,OAAO;MACLK,KAAK;MACLL,MAAM;MACNO,IAAI,eACF/C,MAAA,CAAAQ,OAAA,CAAAwC,aAAA,CAAC9C,QAAA,CAAA+C,IAAI;QAACC,EAAE,EAAE;MAAO,GACd,IAAI,CAACtB,OAAO,CAACL,OAAO,CAACiB,MAAM,CAAC,EAAE,GAAG,EACjC,IAAI,CAACZ,OAAO,CAACZ,MAAM,iBAClBhB,MAAA,CAAAQ,OAAA,CAAAwC,aAAA;QAAGG,IAAI,EAAE,IAAI,CAACvB,OAAO,CAACZ,MAAO;QAACoC,MAAM,EAAC,QAAQ;QAACC,GAAG,EAAC;MAAY,GAAC,YAE5D,CAED;IAEV,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,cAAcA,CAACC,UAAU,EAAE;IACzB,OAAOA,UAAU,CAACC,IAAI,CAAC,UAASC,CAAC,EAAEC,CAAC,EAAE;MACpC,OAAOA,CAAC,CAACf,WAAW,GAAGc,CAAC,CAACd,WAAW;IACtC,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEgB,SAASA,CAAC;IAACC,KAAK;IAAE7B,UAAU;IAAEQ;EAAI,CAAC,EAAE;IACnC,IAAID,gBAAgB,GAAGP,UAAU,CAAC8B,WAAW,CAAC,oBAAoB,CAAC;IAEnEvB,gBAAgB,GAAG,IAAI,CAACgB,cAAc,CAAChB,gBAAgB,CAAC;IACxD,MAAM1B,MAAM,GAAG,IAAI,CAACkB,SAAS,CAACC,UAAU,CAAC;IAEzC,MAAM+B,qBAAqB,GAAG,IAAI,CAACzB,eAAe,CAAC;MACjDC,gBAAgB;MAChB1B,MAAM;MACN2B;IACF,CAAC,CAAC;IACF,MAAMwB,gBAAgB,GAAG,IAAIC,yBAAgB,CAAC;MAACpD,MAAM,EAAE,IAAI,CAACgB;IAAO,CAAC,CAAC;IAErEmC,gBAAgB,CAACE,QAAQ,CAACH,qBAAqB,CAACjB,KAAK,CAAC;IACtDkB,gBAAgB,CAACG,SAAS,CAACJ,qBAAqB,CAACtB,MAAM,CAAC;IACxDuB,gBAAgB,CAACI,OAAO,CAACL,qBAAqB,CAACf,IAAI,CAAC;IAEpD,OAAOgB,gBAAgB;EACzB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEK,YAAYA,CAACR,KAAK,EAAE;IAClB,OAAO,IAAI,CAACS,6BAA6B,CAACT,KAAK,CAAC;EAClD;AACF;AAACU,OAAA,CAAA9D,OAAA,GAAAC,0BAAA","ignoreList":[]}
1
+ {"version":3,"file":"ParagraphTooLongAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_inRange","_AssessmentResult","_assessment","e","__esModule","default","ParagraphTooLongAssessment","Assessment","constructor","config","defaultConfig","id","priority","docUrl","fixPosition","ctaType","parameters","recommendedLength","maximumRecommendedLength","title","content","bad","improve","good","identifier","_config","merge","getConfig","researcher","currentConfig","languageSpecificConfig","_isProduct","productPageParams","defaultPageParams","calculateResult","paragraphsLength","i18n","status","length","longestParagraphLength","countLength","inRange","score","getScore","body","createElement","Text","as","href","target","rel","sortParagraphs","paragraphs","sort","a","b","getResult","paper","getResearch","paragraphLengthResult","assessmentResult","AssessmentResult","setScore","setStatus","setBody","isApplicable","hasEnoughContentForAssessment","exports"],"sources":["../../../../src/scoring/assessments/readability/ParagraphTooLongAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\nimport {inRangeEndInclusive as inRange} from '../../helpers/assessments/inRange';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport Assessment from '../assessment';\n\n/**\n * Represents the assessment that will look if the text has too long paragraphs.\n */\nexport default class ParagraphTooLongAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {object} config The configuration to use.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'textParagraphTooLong',\n priority: 'high',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#paragraph-length',\n fixPosition: 'longParagraph',\n ctaType: 'fix',\n parameters: {\n recommendedLength: 150,\n maximumRecommendedLength: 150\n },\n title: 'Paragraph length',\n content: {\n bad: 'Paragraph too long. Keep paragraph length less than 150 words for readability.',\n improve: '',\n good: 'Paragraph is optimized, with less than 150 words.'\n }\n };\n\n this.identifier = 'textParagraphTooLong';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Check if there is language-specific config, and if so, overwrite the current config with it.\n *\n * @param {Researcher} researcher The researcher to use.\n *\n * @returns {Object} The config that should be used.\n */\n getConfig(researcher) {\n const currentConfig = this._config;\n const languageSpecificConfig = researcher.getConfig('paragraphLength');\n\n /*\n * If a language has a specific paragraph length config, check further if the assessment is run in product pages.\n * If it's run in product pages, override the default config parameters with the language specific config for product pages,\n * otherwise override it with the language specific config for default pages analysis.\n */\n if (languageSpecificConfig) {\n currentConfig.parameters = this._isProduct\n ? languageSpecificConfig.productPageParams\n : languageSpecificConfig.defaultPageParams;\n }\n\n return currentConfig;\n }\n\n /**\n *\n * @param paragraphsLength\n * @param tooLongParagraphs\n * @param config\n * @param i18n\n * @returns {{score: number, body: React.JSX.Element, status: string}}\n */\n calculateResult({paragraphsLength, config, i18n}) {\n let status = '';\n if (paragraphsLength.length === 0) {\n status = 'good';\n }\n\n const longestParagraphLength = paragraphsLength[0].countLength;\n\n if (longestParagraphLength <= config.parameters.recommendedLength) {\n status = 'good';\n }\n\n if (\n inRange(\n longestParagraphLength,\n config.parameters.recommendedLength,\n config.parameters.maximumRecommendedLength\n )\n ) {\n status = 'good';\n }\n\n if (longestParagraphLength > config.parameters.maximumRecommendedLength) {\n status = 'bad';\n }\n\n const score = this.getScore(this._config.priority, status);\n\n return {\n score,\n status,\n body: (\n <Text as={'span'}>\n {this._config.content[status]}{' '}\n {this._config.docUrl && (\n <a href={this._config.docUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more\n </a>\n )}\n </Text>\n )\n };\n }\n\n /**\n * Sort the paragraphs based on word count.\n *\n * @param {Array} paragraphs The array with paragraphs.\n *\n * @returns {Array} The array sorted on word counts.\n */\n sortParagraphs(paragraphs) {\n return paragraphs.sort(function(a, b) {\n return b.countLength - a.countLength;\n });\n }\n\n /**\n * Runs the getParagraphLength module, based on this returns an assessment result with score and text.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling research.\n * @param i18n\n * @returns {object} The assessment result.\n */\n getResult(paper, researcher, i18n) {\n let paragraphsLength = researcher.getResearch('getParagraphLength');\n\n paragraphsLength = this.sortParagraphs(paragraphsLength);\n const config = this.getConfig(researcher);\n\n const paragraphLengthResult = this.calculateResult({\n paragraphsLength,\n config,\n i18n\n });\n const assessmentResult = new AssessmentResult({config: this._config});\n\n assessmentResult.setScore(paragraphLengthResult.score);\n assessmentResult.setStatus(paragraphLengthResult.status);\n assessmentResult.setBody(paragraphLengthResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Checks if the paragraphTooLong assessment is applicable to the paper.\n *\n * @param {Paper} paper The paper to check.\n *\n * @returns {boolean} Returns true if the assessment is applicable to the paper.\n */\n isApplicable(paper) {\n return this.hasEnoughContentForAssessment(paper);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -102,11 +102,7 @@ class SentenceBeginningsAssessment extends _assessment.default {
102
102
  * @param i18n
103
103
  * @returns {AssessmentResult}
104
104
  */
105
- getResult({
106
- paper,
107
- researcher,
108
- i18n
109
- }) {
105
+ getResult(paper, researcher, i18n) {
110
106
  const sentenceBeginnings = researcher.getResearch('getSentenceBeginnings');
111
107
  const groupedSentenceBeginnings = this.groupSentenceBeginnings(sentenceBeginnings);
112
108
  const calculatedResult = this.calculateSentenceBeginningsResult(groupedSentenceBeginnings);
@@ -1 +1 @@
1
- {"version":3,"file":"SentenceBeginningsAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_AssessmentResult","_assessment","_polarisIcons","e","__esModule","default","maximumConsecutiveDuplicates","SentenceBeginningsAssessment","Assessment","constructor","config","defaultConfig","id","priority","ctaType","docUrl","fixPosition","icon","TextBlockIcon","title","content","improve","bad","good","identifier","_config","merge","groupSentenceBeginnings","sentenceBeginnings","tooOften","partition","word","count","length","total","sortedCounts","sortBy","lowestCount","calculateSentenceBeginningsResult","groupedSentenceBeginnings","status","score","getScore","body","createElement","Text","as","href","target","rel","getResult","paper","researcher","i18n","getResearch","calculatedResult","assessmentResult","AssessmentResult","setStatus","setBody","isApplicable","hasEnoughContentForAssessment","hasResearch","exports"],"sources":["../../../../src/scoring/assessments/readability/SentenceBeginningsAssessment.js"],"sourcesContent":["import {merge, partition, sortBy} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport Assessment from '../assessment';\nimport {TextBlockIcon} from '@shopify/polaris-icons';\n\nconst maximumConsecutiveDuplicates = 2;\n\n/**\n * Represents the assessment that checks whether there are three or more consecutive sentences beginning with the same word.\n */\nexport default class SentenceBeginningsAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {object} config The configuration to use.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'sentenceBeginnings',\n priority: 'medium',\n ctaType: 'fix',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#sentence-beginnings',\n fixPosition: 'description',\n icon: TextBlockIcon,\n title: 'Sentence beginnings',\n content: {\n improve: '',\n bad:\n 'Found sentences with repetitive beginnings. Change the wording for more engaging content.',\n good: 'No sentences with repetitive beginnings found.'\n }\n };\n\n this.identifier = 'sentenceBeginnings';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Counts and groups the number too often used sentence beginnings and determines the lowest count within that group.\n *\n * @param {array} sentenceBeginnings The array containing the objects containing the beginning words and counts.\n *\n * @returns {object} The object containing the total number of too often used beginnings and the lowest count within those.\n */\n groupSentenceBeginnings(sentenceBeginnings) {\n const tooOften = partition(sentenceBeginnings, function(word) {\n return word.count > maximumConsecutiveDuplicates;\n });\n\n if (tooOften[0].length === 0) {\n return {total: 0};\n }\n\n const sortedCounts = sortBy(tooOften[0], function(word) {\n return word.count;\n });\n\n return {total: tooOften[0].length, lowestCount: sortedCounts[0].count};\n }\n\n /**\n *\n * @param groupedSentenceBeginnings\n * @returns {{score: number, body: React.JSX.Element, status: string}}\n */\n calculateSentenceBeginningsResult(groupedSentenceBeginnings) {\n let status = '';\n if (groupedSentenceBeginnings.total > 0) {\n status = 'bad';\n } else {\n status = 'good';\n }\n\n const score = this.getScore(this._config.priority, status);\n\n return {\n score,\n status,\n body: (\n <Text as={'span'}>\n {this._config.content[status]}{' '}\n {this._config.docUrl && (\n <a href={this._config.docUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more\n </a>\n )}\n </Text>\n )\n };\n }\n\n /**\n *\n * @param paper\n * @param researcher\n * @param i18n\n * @returns {AssessmentResult}\n */\n getResult({paper, researcher, i18n}) {\n const sentenceBeginnings = researcher.getResearch('getSentenceBeginnings');\n const groupedSentenceBeginnings = this.groupSentenceBeginnings(sentenceBeginnings);\n const calculatedResult = this.calculateSentenceBeginningsResult(groupedSentenceBeginnings);\n const assessmentResult = new AssessmentResult({config: this._config});\n\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setBody(calculatedResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Checks if the sentence beginnings assessment is applicable to the paper.\n *\n * @param {Object} paper The paper to check.\n * @param {Researcher} researcher The researcher object.\n *\n * @returns {boolean} Returns true if the language is available and the paper is not empty.\n */\n isApplicable(paper, researcher) {\n return (\n this.hasEnoughContentForAssessment(paper) && researcher.hasResearch('getSentenceBeginnings')\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SentenceBeginningsAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_AssessmentResult","_assessment","_polarisIcons","e","__esModule","default","maximumConsecutiveDuplicates","SentenceBeginningsAssessment","Assessment","constructor","config","defaultConfig","id","priority","ctaType","docUrl","fixPosition","icon","TextBlockIcon","title","content","improve","bad","good","identifier","_config","merge","groupSentenceBeginnings","sentenceBeginnings","tooOften","partition","word","count","length","total","sortedCounts","sortBy","lowestCount","calculateSentenceBeginningsResult","groupedSentenceBeginnings","status","score","getScore","body","createElement","Text","as","href","target","rel","getResult","paper","researcher","i18n","getResearch","calculatedResult","assessmentResult","AssessmentResult","setStatus","setBody","isApplicable","hasEnoughContentForAssessment","hasResearch","exports"],"sources":["../../../../src/scoring/assessments/readability/SentenceBeginningsAssessment.js"],"sourcesContent":["import {merge, partition, sortBy} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport Assessment from '../assessment';\nimport {TextBlockIcon} from '@shopify/polaris-icons';\n\nconst maximumConsecutiveDuplicates = 2;\n\n/**\n * Represents the assessment that checks whether there are three or more consecutive sentences beginning with the same word.\n */\nexport default class SentenceBeginningsAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {object} config The configuration to use.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'sentenceBeginnings',\n priority: 'medium',\n ctaType: 'fix',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#sentence-beginnings',\n fixPosition: 'description',\n icon: TextBlockIcon,\n title: 'Sentence beginnings',\n content: {\n improve: '',\n bad:\n 'Found sentences with repetitive beginnings. Change the wording for more engaging content.',\n good: 'No sentences with repetitive beginnings found.'\n }\n };\n\n this.identifier = 'sentenceBeginnings';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Counts and groups the number too often used sentence beginnings and determines the lowest count within that group.\n *\n * @param {array} sentenceBeginnings The array containing the objects containing the beginning words and counts.\n *\n * @returns {object} The object containing the total number of too often used beginnings and the lowest count within those.\n */\n groupSentenceBeginnings(sentenceBeginnings) {\n const tooOften = partition(sentenceBeginnings, function(word) {\n return word.count > maximumConsecutiveDuplicates;\n });\n\n if (tooOften[0].length === 0) {\n return {total: 0};\n }\n\n const sortedCounts = sortBy(tooOften[0], function(word) {\n return word.count;\n });\n\n return {total: tooOften[0].length, lowestCount: sortedCounts[0].count};\n }\n\n /**\n *\n * @param groupedSentenceBeginnings\n * @returns {{score: number, body: React.JSX.Element, status: string}}\n */\n calculateSentenceBeginningsResult(groupedSentenceBeginnings) {\n let status = '';\n if (groupedSentenceBeginnings.total > 0) {\n status = 'bad';\n } else {\n status = 'good';\n }\n\n const score = this.getScore(this._config.priority, status);\n\n return {\n score,\n status,\n body: (\n <Text as={'span'}>\n {this._config.content[status]}{' '}\n {this._config.docUrl && (\n <a href={this._config.docUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more\n </a>\n )}\n </Text>\n )\n };\n }\n\n /**\n *\n * @param paper\n * @param researcher\n * @param i18n\n * @returns {AssessmentResult}\n */\n getResult(paper, researcher, i18n) {\n const sentenceBeginnings = researcher.getResearch('getSentenceBeginnings');\n const groupedSentenceBeginnings = this.groupSentenceBeginnings(sentenceBeginnings);\n const calculatedResult = this.calculateSentenceBeginningsResult(groupedSentenceBeginnings);\n const assessmentResult = new AssessmentResult({config: this._config});\n\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setBody(calculatedResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Checks if the sentence beginnings assessment is applicable to the paper.\n *\n * @param {Object} paper The paper to check.\n * @param {Researcher} researcher The researcher object.\n *\n * @returns {boolean} Returns true if the language is available and the paper is not empty.\n */\n isApplicable(paper, researcher) {\n return (\n this.hasEnoughContentForAssessment(paper) && researcher.hasResearch('getSentenceBeginnings')\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -58,11 +58,7 @@ class SentenceLengthInTextAssessment extends _assessment.default {
58
58
  * @param i18n
59
59
  * @returns {AssessmentResult} The Assessment result.
60
60
  */
61
- getResult({
62
- paper,
63
- researcher,
64
- i18n
65
- }) {
61
+ getResult(paper, researcher, i18n) {
66
62
  const sentences = researcher.getResearch('countSentencesFromText');
67
63
  if (researcher.getConfig('sentenceLength')) {
68
64
  this._config = this.getLanguageSpecificConfig(researcher);
@@ -1 +1 @@
1
- {"version":3,"file":"SentenceLengthInTextAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_assessment","_checkForTooLongSentences","_formatNumber","_inRange","_AssessmentResult","_polarisIcons","e","__esModule","default","SentenceLengthInTextAssessment","Assessment","constructor","config","isCornerstone","isProduct","defaultConfig","id","priority","docUrl","ctaType","fixPosition","icon","TextBlockIcon","recommendedLength","slightlyTooMany","farTooMany","title","content","improve","bad","good","_config","merge","identifier","getResult","paper","researcher","i18n","sentences","getResearch","getConfig","getLanguageSpecificConfig","percentage","calculatePercentage","result","calculateResult","assessmentResult","AssessmentResult","setScore","score","setStatus","status","setBody","body","isApplicable","hasEnoughContentForAssessment","currentConfig","languageSpecificConfig","hasOwnProperty","length","tooLongTotal","countTooLongSentences","formatNumber","getScore","createElement","Text","as","href","target","rel","getTooLongSentences","_default","exports"],"sources":["../../../../src/scoring/assessments/readability/SentenceLengthInTextAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\nimport Assessment from '../assessment';\nimport getTooLongSentences from '../../helpers/assessments/checkForTooLongSentences';\nimport formatNumber from '../../../helpers/formatNumber';\nimport {inRangeEndInclusive as inRange} from '../../helpers/assessments/inRange';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport {TextBlockIcon} from '@shopify/polaris-icons';\n\n/**\n * Represents the assessment that will calculate the length of sentences in the text.\n */\nclass SentenceLengthInTextAssessment extends Assessment {\n /**\n\t * Sets the identifier and the config.\n\t *\n\t * @param {object} config\t\t\tThe scoring configuration that should be used.\n\t * @param {boolean} isCornerstone\tWhether cornerstone configuration should be used.\n\t * @param {boolean} isProduct\t\tWhether product configuration should be used.\n\n\t * @returns {void}\n\t */\n constructor(config = {}, isCornerstone = false, isProduct = false) {\n super();\n\n const defaultConfig = {\n id: 'textSentenceLength',\n priority: 'high',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#sentence-length',\n ctaType: 'fix',\n fixPosition: 'sentenceLength',\n icon: TextBlockIcon,\n recommendedLength: 20,\n slightlyTooMany: 25,\n farTooMany: 30,\n title: 'Text Sentence Length',\n content: {\n improve: '',\n bad:\n 'Sentence too long. Keep sentence length less than 20 words to improve readability and flow.',\n good: 'Sentence length is optimized for readability, less than 20 words.'\n }\n };\n\n this._config = merge(defaultConfig, config);\n this.identifier = 'textSentenceLength';\n }\n\n /**\n * Scores the percentage of sentences including more than the recommended number of words.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling research.\n *\n * @param i18n\n * @returns {AssessmentResult} The Assessment result.\n */\n getResult({paper, researcher, i18n}) {\n const sentences = researcher.getResearch('countSentencesFromText');\n if (researcher.getConfig('sentenceLength')) {\n this._config = this.getLanguageSpecificConfig(researcher);\n }\n\n const percentage = this.calculatePercentage(sentences);\n const result = this.calculateResult(percentage, i18n);\n\n const assessmentResult = new AssessmentResult({config: this._config});\n\n assessmentResult.setScore(result.score);\n assessmentResult.setStatus(result.status);\n assessmentResult.setBody(result.body);\n\n return assessmentResult;\n }\n\n /**\n * Checks whether the paper has text.\n *\n * @param {Paper} paper The paper to use for the assessment.\n *\n * @returns {boolean} True when there is text.\n */\n isApplicable(paper) {\n return this.hasEnoughContentForAssessment(paper);\n }\n\n /**\n * Check if there is language-specific config, and if so, overwrite the current config with it.\n *\n * @param {Researcher} researcher The researcher to use.\n *\n * @returns {Object} The config that should be used.\n */\n getLanguageSpecificConfig(researcher) {\n const currentConfig = this._config;\n const languageSpecificConfig = researcher.getConfig('sentenceLength');\n\n if (languageSpecificConfig.hasOwnProperty('recommendedLength')) {\n currentConfig.recommendedLength = languageSpecificConfig.recommendedLength;\n }\n\n return currentConfig;\n }\n\n /**\n * Calculates the percentage of sentences that are too long.\n *\n * @param {Array} sentences The sentences to calculate the percentage for.\n * @returns {number} The calculates percentage of too long sentences.\n */\n calculatePercentage(sentences) {\n let percentage = 0;\n\n if (sentences.length !== 0) {\n const tooLongTotal = this.countTooLongSentences(sentences);\n\n percentage = formatNumber((tooLongTotal / sentences.length) * 100);\n }\n\n return percentage;\n }\n\n /**\n *\n * @param percentage\n * @param i18n\n * @returns {{score: number, body: React.JSX.Element, status: string}}\n */\n calculateResult(percentage, i18n) {\n let status = '';\n if (percentage <= this._config.recommendedLength) {\n status = 'good';\n }\n\n if (percentage > this._config.recommendedLength) {\n status = 'bad';\n }\n\n const score = this.getScore(this._config.priority, status);\n\n this._config.content = {\n improve: '',\n bad: `Sentence too long. Keep sentence length less than ${this._config.recommendedLength} words to improve readability and flow.`,\n good: `Sentence length is optimized for readability, less than ${this._config.recommendedLength} words.`\n };\n\n return {\n score,\n status,\n body: (\n <Text as={'span'}>\n {this._config.content[status]}{' '}\n {this._config.docUrl && (\n <a href={this._config.docUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more\n </a>\n )}\n </Text>\n )\n };\n }\n\n /**\n * Gets the sentences that are qualified as being too long.\n *\n * @param {array} sentences The sentences to filter through.\n * @returns {array} Array with all the sentences considered to be too long.\n */\n getTooLongSentences(sentences) {\n return getTooLongSentences(sentences, this._config.recommendedLength);\n }\n\n /**\n * Get the total amount of sentences that are qualified as being too long.\n *\n * @param {Array} sentences The sentences to filter through.\n * @returns {Number} The amount of sentences that are considered too long.\n */\n countTooLongSentences(sentences) {\n return this.getTooLongSentences(sentences).length;\n }\n}\n\nexport default SentenceLengthInTextAssessment;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SentenceLengthInTextAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_assessment","_checkForTooLongSentences","_formatNumber","_inRange","_AssessmentResult","_polarisIcons","e","__esModule","default","SentenceLengthInTextAssessment","Assessment","constructor","config","isCornerstone","isProduct","defaultConfig","id","priority","docUrl","ctaType","fixPosition","icon","TextBlockIcon","recommendedLength","slightlyTooMany","farTooMany","title","content","improve","bad","good","_config","merge","identifier","getResult","paper","researcher","i18n","sentences","getResearch","getConfig","getLanguageSpecificConfig","percentage","calculatePercentage","result","calculateResult","assessmentResult","AssessmentResult","setScore","score","setStatus","status","setBody","body","isApplicable","hasEnoughContentForAssessment","currentConfig","languageSpecificConfig","hasOwnProperty","length","tooLongTotal","countTooLongSentences","formatNumber","getScore","createElement","Text","as","href","target","rel","getTooLongSentences","_default","exports"],"sources":["../../../../src/scoring/assessments/readability/SentenceLengthInTextAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\nimport Assessment from '../assessment';\nimport getTooLongSentences from '../../helpers/assessments/checkForTooLongSentences';\nimport formatNumber from '../../../helpers/formatNumber';\nimport {inRangeEndInclusive as inRange} from '../../helpers/assessments/inRange';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport {TextBlockIcon} from '@shopify/polaris-icons';\n\n/**\n * Represents the assessment that will calculate the length of sentences in the text.\n */\nclass SentenceLengthInTextAssessment extends Assessment {\n /**\n\t * Sets the identifier and the config.\n\t *\n\t * @param {object} config\t\t\tThe scoring configuration that should be used.\n\t * @param {boolean} isCornerstone\tWhether cornerstone configuration should be used.\n\t * @param {boolean} isProduct\t\tWhether product configuration should be used.\n\n\t * @returns {void}\n\t */\n constructor(config = {}, isCornerstone = false, isProduct = false) {\n super();\n\n const defaultConfig = {\n id: 'textSentenceLength',\n priority: 'high',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#sentence-length',\n ctaType: 'fix',\n fixPosition: 'sentenceLength',\n icon: TextBlockIcon,\n recommendedLength: 20,\n slightlyTooMany: 25,\n farTooMany: 30,\n title: 'Text Sentence Length',\n content: {\n improve: '',\n bad:\n 'Sentence too long. Keep sentence length less than 20 words to improve readability and flow.',\n good: 'Sentence length is optimized for readability, less than 20 words.'\n }\n };\n\n this._config = merge(defaultConfig, config);\n this.identifier = 'textSentenceLength';\n }\n\n /**\n * Scores the percentage of sentences including more than the recommended number of words.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling research.\n *\n * @param i18n\n * @returns {AssessmentResult} The Assessment result.\n */\n getResult(paper, researcher, i18n) {\n const sentences = researcher.getResearch('countSentencesFromText');\n if (researcher.getConfig('sentenceLength')) {\n this._config = this.getLanguageSpecificConfig(researcher);\n }\n\n const percentage = this.calculatePercentage(sentences);\n const result = this.calculateResult(percentage, i18n);\n\n const assessmentResult = new AssessmentResult({config: this._config});\n\n assessmentResult.setScore(result.score);\n assessmentResult.setStatus(result.status);\n assessmentResult.setBody(result.body);\n\n return assessmentResult;\n }\n\n /**\n * Checks whether the paper has text.\n *\n * @param {Paper} paper The paper to use for the assessment.\n *\n * @returns {boolean} True when there is text.\n */\n isApplicable(paper) {\n return this.hasEnoughContentForAssessment(paper);\n }\n\n /**\n * Check if there is language-specific config, and if so, overwrite the current config with it.\n *\n * @param {Researcher} researcher The researcher to use.\n *\n * @returns {Object} The config that should be used.\n */\n getLanguageSpecificConfig(researcher) {\n const currentConfig = this._config;\n const languageSpecificConfig = researcher.getConfig('sentenceLength');\n\n if (languageSpecificConfig.hasOwnProperty('recommendedLength')) {\n currentConfig.recommendedLength = languageSpecificConfig.recommendedLength;\n }\n\n return currentConfig;\n }\n\n /**\n * Calculates the percentage of sentences that are too long.\n *\n * @param {Array} sentences The sentences to calculate the percentage for.\n * @returns {number} The calculates percentage of too long sentences.\n */\n calculatePercentage(sentences) {\n let percentage = 0;\n\n if (sentences.length !== 0) {\n const tooLongTotal = this.countTooLongSentences(sentences);\n\n percentage = formatNumber((tooLongTotal / sentences.length) * 100);\n }\n\n return percentage;\n }\n\n /**\n *\n * @param percentage\n * @param i18n\n * @returns {{score: number, body: React.JSX.Element, status: string}}\n */\n calculateResult(percentage, i18n) {\n let status = '';\n if (percentage <= this._config.recommendedLength) {\n status = 'good';\n }\n\n if (percentage > this._config.recommendedLength) {\n status = 'bad';\n }\n\n const score = this.getScore(this._config.priority, status);\n\n this._config.content = {\n improve: '',\n bad: `Sentence too long. Keep sentence length less than ${this._config.recommendedLength} words to improve readability and flow.`,\n good: `Sentence length is optimized for readability, less than ${this._config.recommendedLength} words.`\n };\n\n return {\n score,\n status,\n body: (\n <Text as={'span'}>\n {this._config.content[status]}{' '}\n {this._config.docUrl && (\n <a href={this._config.docUrl} target=\"_blank\" rel=\"noreferrer\">\n Learn more\n </a>\n )}\n </Text>\n )\n };\n }\n\n /**\n * Gets the sentences that are qualified as being too long.\n *\n * @param {array} sentences The sentences to filter through.\n * @returns {array} Array with all the sentences considered to be too long.\n */\n getTooLongSentences(sentences) {\n return getTooLongSentences(sentences, this._config.recommendedLength);\n }\n\n /**\n * Get the total amount of sentences that are qualified as being too long.\n *\n * @param {Array} sentences The sentences to filter through.\n * @returns {Number} The amount of sentences that are considered too long.\n */\n countTooLongSentences(sentences) {\n return this.getTooLongSentences(sentences).length;\n }\n}\n\nexport default SentenceLengthInTextAssessment;\n"],"mappings":"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","ignoreList":[]}
@@ -119,11 +119,7 @@ class TransitionWordsAssessment extends _assessment.default {
119
119
  * @param i18n
120
120
  * @returns {AssessmentResult}
121
121
  */
122
- getResult({
123
- paper,
124
- researcher,
125
- i18n
126
- }) {
122
+ getResult(paper, researcher, i18n) {
127
123
  const transitionWordSentences = researcher.getResearch('findTransitionWords');
128
124
  const transitionWordResult = this.calculateTransitionWordResult(transitionWordSentences, i18n);
129
125
  const assessmentResult = new _AssessmentResult.default({