axyseo 2.0.0-alpha.0.0.9 → 2.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +1 -1
  2. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js.map +1 -1
  3. package/build/languageProcessing/helpers/morphology/buildTopicStems.js +1 -1
  4. package/build/languageProcessing/helpers/morphology/buildTopicStems.js.map +1 -1
  5. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +1 -1
  6. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js.map +1 -1
  7. package/build/languageProcessing/languages/_default/Researcher.js +1 -1
  8. package/build/languageProcessing/languages/_default/Researcher.js.map +1 -1
  9. package/build/languageProcessing/languages/_default/helpers/getStemmer.js +1 -1
  10. package/build/languageProcessing/languages/_default/helpers/getStemmer.js.map +1 -1
  11. package/build/languageProcessing/languages/ar/Researcher.js +1 -1
  12. package/build/languageProcessing/languages/ar/Researcher.js.map +1 -1
  13. package/build/languageProcessing/languages/ar/helpers/getStemmer.js +1 -1
  14. package/build/languageProcessing/languages/ar/helpers/getStemmer.js.map +1 -1
  15. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js +1 -1
  16. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js.map +1 -1
  17. package/build/languageProcessing/languages/ca/Researcher.js +1 -1
  18. package/build/languageProcessing/languages/ca/Researcher.js.map +1 -1
  19. package/build/languageProcessing/languages/ca/helpers/getStemmer.js +1 -1
  20. package/build/languageProcessing/languages/ca/helpers/getStemmer.js.map +1 -1
  21. package/build/languageProcessing/languages/cs/Researcher.js +1 -1
  22. package/build/languageProcessing/languages/cs/Researcher.js.map +1 -1
  23. package/build/languageProcessing/languages/cs/helpers/getClauses.js +1 -1
  24. package/build/languageProcessing/languages/cs/helpers/getClauses.js.map +1 -1
  25. package/build/languageProcessing/languages/cs/helpers/getStemmer.js +1 -1
  26. package/build/languageProcessing/languages/cs/helpers/getStemmer.js.map +1 -1
  27. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js +1 -1
  28. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js.map +1 -1
  29. package/build/languageProcessing/languages/cs/values/Clause.js +1 -1
  30. package/build/languageProcessing/languages/cs/values/Clause.js.map +1 -1
  31. package/build/languageProcessing/languages/de/Researcher.js +1 -1
  32. package/build/languageProcessing/languages/de/Researcher.js.map +1 -1
  33. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +1 -1
  34. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js.map +1 -1
  35. package/build/languageProcessing/languages/de/helpers/getClauses.js +1 -1
  36. package/build/languageProcessing/languages/de/helpers/getClauses.js.map +1 -1
  37. package/build/languageProcessing/languages/de/helpers/getStemmer.js +1 -1
  38. package/build/languageProcessing/languages/de/helpers/getStemmer.js.map +1 -1
  39. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js +1 -1
  40. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js.map +1 -1
  41. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js +1 -1
  42. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js.map +1 -1
  43. package/build/languageProcessing/languages/de/values/Clause.js +1 -1
  44. package/build/languageProcessing/languages/de/values/Clause.js.map +1 -1
  45. package/build/languageProcessing/languages/el/Researcher.js +1 -1
  46. package/build/languageProcessing/languages/el/Researcher.js.map +1 -1
  47. package/build/languageProcessing/languages/el/helpers/getClauses.js +1 -1
  48. package/build/languageProcessing/languages/el/helpers/getClauses.js.map +1 -1
  49. package/build/languageProcessing/languages/el/helpers/getStemmer.js +1 -1
  50. package/build/languageProcessing/languages/el/helpers/getStemmer.js.map +1 -1
  51. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js +1 -1
  52. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js.map +1 -1
  53. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js +1 -1
  54. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js.map +1 -1
  55. package/build/languageProcessing/languages/el/values/Clause.js +1 -1
  56. package/build/languageProcessing/languages/el/values/Clause.js.map +1 -1
  57. package/build/languageProcessing/languages/en/Researcher.js +1 -1
  58. package/build/languageProcessing/languages/en/Researcher.js.map +1 -1
  59. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +1 -1
  60. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js.map +1 -1
  61. package/build/languageProcessing/languages/en/helpers/getClauses.js +1 -1
  62. package/build/languageProcessing/languages/en/helpers/getClauses.js.map +1 -1
  63. package/build/languageProcessing/languages/en/helpers/getStemmer.js +1 -1
  64. package/build/languageProcessing/languages/en/helpers/getStemmer.js.map +1 -1
  65. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js +1 -1
  66. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js.map +1 -1
  67. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +1 -1
  68. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js.map +1 -1
  69. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js +1 -1
  70. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js.map +1 -1
  71. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js +1 -1
  72. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js.map +1 -1
  73. package/build/languageProcessing/languages/en/values/Clause.js +1 -1
  74. package/build/languageProcessing/languages/en/values/Clause.js.map +1 -1
  75. package/build/languageProcessing/languages/es/Researcher.js +1 -1
  76. package/build/languageProcessing/languages/es/Researcher.js.map +1 -1
  77. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +1 -1
  78. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js.map +1 -1
  79. package/build/languageProcessing/languages/es/helpers/getClauses.js +1 -1
  80. package/build/languageProcessing/languages/es/helpers/getClauses.js.map +1 -1
  81. package/build/languageProcessing/languages/es/helpers/getStemmer.js +1 -1
  82. package/build/languageProcessing/languages/es/helpers/getStemmer.js.map +1 -1
  83. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +3 -3
  84. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js.map +1 -1
  85. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js +1 -1
  86. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js.map +1 -1
  87. package/build/languageProcessing/languages/es/helpers/internal/stem.js +1 -1
  88. package/build/languageProcessing/languages/es/helpers/internal/stem.js.map +1 -1
  89. package/build/languageProcessing/languages/es/values/Clause.js +1 -1
  90. package/build/languageProcessing/languages/es/values/Clause.js.map +1 -1
  91. package/build/languageProcessing/languages/fa/Researcher.js +1 -1
  92. package/build/languageProcessing/languages/fa/Researcher.js.map +1 -1
  93. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js +1 -1
  94. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js.map +1 -1
  95. package/build/languageProcessing/languages/fa/helpers/getStemmer.js +1 -1
  96. package/build/languageProcessing/languages/fa/helpers/getStemmer.js.map +1 -1
  97. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js +1 -1
  98. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js.map +1 -1
  99. package/build/languageProcessing/languages/fr/Researcher.js +1 -1
  100. package/build/languageProcessing/languages/fr/Researcher.js.map +1 -1
  101. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +1 -1
  102. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js.map +1 -1
  103. package/build/languageProcessing/languages/fr/helpers/getClauses.js +1 -1
  104. package/build/languageProcessing/languages/fr/helpers/getClauses.js.map +1 -1
  105. package/build/languageProcessing/languages/fr/helpers/getStemmer.js +1 -1
  106. package/build/languageProcessing/languages/fr/helpers/getStemmer.js.map +1 -1
  107. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js +1 -1
  108. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js.map +1 -1
  109. package/build/languageProcessing/languages/fr/helpers/internal/stem.js +1 -1
  110. package/build/languageProcessing/languages/fr/helpers/internal/stem.js.map +1 -1
  111. package/build/languageProcessing/languages/fr/values/Clause.js +1 -1
  112. package/build/languageProcessing/languages/fr/values/Clause.js.map +1 -1
  113. package/build/languageProcessing/languages/he/Researcher.js +1 -1
  114. package/build/languageProcessing/languages/he/Researcher.js.map +1 -1
  115. package/build/languageProcessing/languages/he/helpers/getStemmer.js +1 -1
  116. package/build/languageProcessing/languages/he/helpers/getStemmer.js.map +1 -1
  117. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js +1 -1
  118. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js.map +1 -1
  119. package/build/languageProcessing/languages/hu/Researcher.js +1 -1
  120. package/build/languageProcessing/languages/hu/Researcher.js.map +1 -1
  121. package/build/languageProcessing/languages/hu/helpers/getClauses.js +1 -1
  122. package/build/languageProcessing/languages/hu/helpers/getClauses.js.map +1 -1
  123. package/build/languageProcessing/languages/hu/helpers/getStemmer.js +1 -1
  124. package/build/languageProcessing/languages/hu/helpers/getStemmer.js.map +1 -1
  125. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js +1 -1
  126. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js.map +1 -1
  127. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js +1 -1
  128. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js.map +1 -1
  129. package/build/languageProcessing/languages/hu/values/Clause.js +1 -1
  130. package/build/languageProcessing/languages/hu/values/Clause.js.map +1 -1
  131. package/build/languageProcessing/languages/id/Researcher.js +1 -1
  132. package/build/languageProcessing/languages/id/Researcher.js.map +1 -1
  133. package/build/languageProcessing/languages/id/helpers/getStemmer.js +1 -1
  134. package/build/languageProcessing/languages/id/helpers/getStemmer.js.map +1 -1
  135. package/build/languageProcessing/languages/id/helpers/internal/stem.js +1 -1
  136. package/build/languageProcessing/languages/id/helpers/internal/stem.js.map +1 -1
  137. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js +1 -1
  138. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js.map +1 -1
  139. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js +1 -1
  140. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js.map +1 -1
  141. package/build/languageProcessing/languages/it/Researcher.js +1 -1
  142. package/build/languageProcessing/languages/it/Researcher.js.map +1 -1
  143. package/build/languageProcessing/languages/it/helpers/getClauses.js +1 -1
  144. package/build/languageProcessing/languages/it/helpers/getClauses.js.map +1 -1
  145. package/build/languageProcessing/languages/it/helpers/getStemmer.js +1 -1
  146. package/build/languageProcessing/languages/it/helpers/getStemmer.js.map +1 -1
  147. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js +1 -1
  148. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js.map +1 -1
  149. package/build/languageProcessing/languages/it/helpers/internal/stem.js +1 -1
  150. package/build/languageProcessing/languages/it/helpers/internal/stem.js.map +1 -1
  151. package/build/languageProcessing/languages/it/values/Clause.js +1 -1
  152. package/build/languageProcessing/languages/it/values/Clause.js.map +1 -1
  153. package/build/languageProcessing/languages/ja/Researcher.js +1 -1
  154. package/build/languageProcessing/languages/ja/Researcher.js.map +1 -1
  155. package/build/languageProcessing/languages/ja/helpers/countCharacters.js +1 -1
  156. package/build/languageProcessing/languages/ja/helpers/countCharacters.js.map +1 -1
  157. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js +1 -1
  158. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js.map +1 -1
  159. package/build/languageProcessing/languages/ja/helpers/getWords.js +1 -1
  160. package/build/languageProcessing/languages/ja/helpers/getWords.js.map +1 -1
  161. package/build/languageProcessing/languages/nb/Researcher.js +1 -1
  162. package/build/languageProcessing/languages/nb/Researcher.js.map +1 -1
  163. package/build/languageProcessing/languages/nb/helpers/getClauses.js +1 -1
  164. package/build/languageProcessing/languages/nb/helpers/getClauses.js.map +1 -1
  165. package/build/languageProcessing/languages/nb/helpers/getStemmer.js +1 -1
  166. package/build/languageProcessing/languages/nb/helpers/getStemmer.js.map +1 -1
  167. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js +1 -1
  168. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js.map +1 -1
  169. package/build/languageProcessing/languages/nb/values/Clause.js +1 -1
  170. package/build/languageProcessing/languages/nb/values/Clause.js.map +1 -1
  171. package/build/languageProcessing/languages/nl/Researcher.js +1 -1
  172. package/build/languageProcessing/languages/nl/Researcher.js.map +1 -1
  173. package/build/languageProcessing/languages/nl/helpers/getClauses.js +1 -1
  174. package/build/languageProcessing/languages/nl/helpers/getClauses.js.map +1 -1
  175. package/build/languageProcessing/languages/nl/helpers/getStemmer.js +1 -1
  176. package/build/languageProcessing/languages/nl/helpers/getStemmer.js.map +1 -1
  177. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +1 -1
  178. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js.map +1 -1
  179. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +1 -1
  180. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js.map +1 -1
  181. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js +1 -1
  182. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js.map +1 -1
  183. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js +1 -1
  184. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js.map +1 -1
  185. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +1 -1
  186. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js.map +1 -1
  187. package/build/languageProcessing/languages/nl/helpers/internal/stem.js +1 -1
  188. package/build/languageProcessing/languages/nl/helpers/internal/stem.js.map +1 -1
  189. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +1 -1
  190. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js.map +1 -1
  191. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +1 -1
  192. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js.map +1 -1
  193. package/build/languageProcessing/languages/nl/values/Clause.js +1 -1
  194. package/build/languageProcessing/languages/nl/values/Clause.js.map +1 -1
  195. package/build/languageProcessing/languages/pl/Researcher.js +1 -1
  196. package/build/languageProcessing/languages/pl/Researcher.js.map +1 -1
  197. package/build/languageProcessing/languages/pl/helpers/getClauses.js +1 -1
  198. package/build/languageProcessing/languages/pl/helpers/getClauses.js.map +1 -1
  199. package/build/languageProcessing/languages/pl/helpers/getStemmer.js +1 -1
  200. package/build/languageProcessing/languages/pl/helpers/getStemmer.js.map +1 -1
  201. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js +1 -1
  202. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js.map +1 -1
  203. package/build/languageProcessing/languages/pl/values/Clause.js +1 -1
  204. package/build/languageProcessing/languages/pl/values/Clause.js.map +1 -1
  205. package/build/languageProcessing/languages/pt/Researcher.js +1 -1
  206. package/build/languageProcessing/languages/pt/Researcher.js.map +1 -1
  207. package/build/languageProcessing/languages/pt/helpers/getClauses.js +1 -1
  208. package/build/languageProcessing/languages/pt/helpers/getClauses.js.map +1 -1
  209. package/build/languageProcessing/languages/pt/helpers/getStemmer.js +1 -1
  210. package/build/languageProcessing/languages/pt/helpers/getStemmer.js.map +1 -1
  211. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js +1 -1
  212. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js.map +1 -1
  213. package/build/languageProcessing/languages/pt/helpers/internal/stem.js +1 -1
  214. package/build/languageProcessing/languages/pt/helpers/internal/stem.js.map +1 -1
  215. package/build/languageProcessing/languages/pt/values/Clause.js +1 -1
  216. package/build/languageProcessing/languages/pt/values/Clause.js.map +1 -1
  217. package/build/languageProcessing/languages/ru/Researcher.js +1 -1
  218. package/build/languageProcessing/languages/ru/Researcher.js.map +1 -1
  219. package/build/languageProcessing/languages/ru/helpers/getStemmer.js +1 -1
  220. package/build/languageProcessing/languages/ru/helpers/getStemmer.js.map +1 -1
  221. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js +1 -1
  222. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js.map +1 -1
  223. package/build/languageProcessing/languages/sk/Researcher.js +1 -1
  224. package/build/languageProcessing/languages/sk/Researcher.js.map +1 -1
  225. package/build/languageProcessing/languages/sk/helpers/getClauses.js +1 -1
  226. package/build/languageProcessing/languages/sk/helpers/getClauses.js.map +1 -1
  227. package/build/languageProcessing/languages/sk/helpers/getStemmer.js +1 -1
  228. package/build/languageProcessing/languages/sk/helpers/getStemmer.js.map +1 -1
  229. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js +1 -1
  230. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js.map +1 -1
  231. package/build/languageProcessing/languages/sk/values/Clause.js +1 -1
  232. package/build/languageProcessing/languages/sk/values/Clause.js.map +1 -1
  233. package/build/languageProcessing/languages/sv/Researcher.js +1 -1
  234. package/build/languageProcessing/languages/sv/Researcher.js.map +1 -1
  235. package/build/languageProcessing/languages/sv/helpers/getStemmer.js +1 -1
  236. package/build/languageProcessing/languages/sv/helpers/getStemmer.js.map +1 -1
  237. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js +1 -1
  238. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js.map +1 -1
  239. package/build/languageProcessing/languages/tr/Researcher.js +1 -1
  240. package/build/languageProcessing/languages/tr/Researcher.js.map +1 -1
  241. package/build/languageProcessing/languages/tr/helpers/getStemmer.js +1 -1
  242. package/build/languageProcessing/languages/tr/helpers/getStemmer.js.map +1 -1
  243. package/build/languageProcessing/languages/tr/helpers/internal/stem.js +1 -1
  244. package/build/languageProcessing/languages/tr/helpers/internal/stem.js.map +1 -1
  245. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js +1 -1
  246. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js.map +1 -1
  247. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +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 +1 -1
  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/TransitionWordsAssessment.js +3 -3
  256. package/build/scoring/assessments/readability/TransitionWordsAssessment.js.map +1 -1
  257. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +1 -1
  258. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js.map +1 -1
  259. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js +1 -1
  260. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js.map +1 -1
  261. package/build/scoring/assessors/avadaAssessor.js +2 -2
  262. package/build/scoring/assessors/avadaAssessor.js.map +1 -1
  263. package/build/scoring/assessors/seoAssessor.js +6 -6
  264. package/build/scoring/assessors/seoAssessor.js.map +1 -1
  265. package/build/scoring/helpers/assessments/recommendedKeywordCount.js +1 -1
  266. package/build/scoring/helpers/assessments/recommendedKeywordCount.js.map +1 -1
  267. package/build/scoring/helpers/index.js +1 -1
  268. package/build/scoring/helpers/index.js.map +1 -1
  269. package/package.json +2 -3
@@ -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("@axyseo/index");
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';\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":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _lodash = require("lodash");
8
8
  var _core = _interopRequireDefault(require("tokenizer2/core"));
9
- var _quotes = require("@axyseo/languageProcessing/helpers/sanitize/quotes");
9
+ var _quotes = require("../../../languageProcessing/helpers/sanitize/quotes");
10
10
  var _Sentence = _interopRequireDefault(require("./Sentence"));
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  // All characters that indicate a sentence delimiter.
@@ -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
  /**
@@ -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,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":[]}
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":[]}
@@ -11,9 +11,9 @@ var _formatNumber = _interopRequireDefault(require("../../../helpers/formatNumbe
11
11
  var _inRange = require("../../helpers/assessments/inRange");
12
12
  var _AssessmentResult = _interopRequireDefault(require("../../../values/AssessmentResult"));
13
13
  var _assessment = _interopRequireDefault(require("../assessment"));
14
- var _htmlParser = _interopRequireDefault(require("@axyseo/languageProcessing/helpers/html/htmlParser"));
15
- var _getWords = _interopRequireDefault(require("@axyseo/languageProcessing/helpers/word/getWords"));
16
- var _helpers = require("@axyseo/languageProcessing/helpers");
14
+ var _htmlParser = _interopRequireDefault(require("../../../languageProcessing/helpers/html/htmlParser"));
15
+ var _getWords = _interopRequireDefault(require("../../../languageProcessing/helpers/word/getWords"));
16
+ var _helpers = require("../../../languageProcessing/helpers");
17
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
18
  /**
19
19
  * Represents the assessment that checks whether there are enough transition words in the text.
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionWordsAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_formatNumber","_inRange","_AssessmentResult","_assessment","_htmlParser","_getWords","_helpers","e","__esModule","default","TransitionWordsAssessment","Assessment","constructor","config","defaultConfig","id","fixPosition","ctaType","docUrl","priority","applicableIfTextLongerThan","title","content","good","bad","improve","identifier","_config","merge","calculateTransitionWordPercentage","sentences","transitionWordSentences","totalSentences","formatNumber","calculateScoreFromPercentage","percentage","inRange","calculateTransitionWordResult","i18n","score","status","customScore","getScore","body","createElement","Text","as","href","target","rel","getResult","paper","researcher","getResearch","transitionWordResult","assessmentResult","AssessmentResult","setScore","setStatus","setBody","isApplicable","customCountLength","getHelper","customApplicabilityConfig","getConfig","transitionWords","text","getText","removeHtmlBlocks","filterShortcodesFromHTML","_attributes","shortcodes","textLength","getWords","length","hasResearch","exports"],"sources":["../../../../src/scoring/assessments/readability/TransitionWordsAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\n\nimport formatNumber from '../../../helpers/formatNumber';\nimport {inRangeStartInclusive as inRange} from '../../helpers/assessments/inRange';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport Assessment from '../assessment';\nimport removeHtmlBlocks from '@axyseo/languageProcessing/helpers/html/htmlParser';\nimport getWords from '@axyseo/languageProcessing/helpers/word/getWords';\nimport {filterShortcodesFromHTML} from '@axyseo/languageProcessing/helpers';\n\n/**\n * Represents the assessment that checks whether there are enough transition words in the text.\n */\nexport default class TransitionWordsAssessment 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: 'textTransitionWords',\n fixPosition: 'longestParagraph',\n ctaType: 'fix',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#use-of-transition-words',\n priority: 'low',\n applicableIfTextLongerThan: 200,\n title: 'Use of transition words',\n content: {\n good: 'Transition words are used effectively.',\n bad:\n 'Lack of transition words. Improve readability and flow by adding words like \"however,\" \"also,\" etc.',\n improve: ''\n }\n };\n\n this.identifier = 'textTransitionWords';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Calculates the actual percentage of transition words in the sentences.\n *\n * @param {object} sentences The object containing the total number of sentences and the number of sentences containing\n * a transition word.\n *\n * @returns {number} The percentage of sentences containing a transition word.\n */\n calculateTransitionWordPercentage(sentences) {\n if (sentences.transitionWordSentences === 0 || sentences.totalSentences === 0) {\n return 0;\n }\n\n return formatNumber((sentences.transitionWordSentences / sentences.totalSentences) * 100);\n }\n\n /**\n * Calculates the score for the assessment based on the percentage of sentences containing transition words.\n *\n * @param {number} percentage The percentage of sentences containing transition words.\n *\n * @returns {number} The score.\n */\n calculateScoreFromPercentage(percentage) {\n if (percentage < 20) {\n // Red indicator.\n return 3;\n }\n\n if (inRange(percentage, 20, 30)) {\n // Orange indicator.\n return 6;\n }\n\n // Green indicator.\n return 9;\n }\n\n /**\n *\n * @param transitionWordSentences\n * @param i18n\n * @returns {{score: number, body: React.JSX.Element, status: string}}\n */\n calculateTransitionWordResult(transitionWordSentences, i18n) {\n const percentage = this.calculateTransitionWordPercentage(transitionWordSentences);\n const score = this.calculateScoreFromPercentage(percentage);\n\n let status = 'good';\n if (score < 7 && percentage === 0) {\n status = 'bad';\n }\n\n if (score < 7) {\n status = 'bad';\n }\n const customScore = this.getScore(this._config.priority, status);\n\n return {\n score: customScore,\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 transitionWordSentences = researcher.getResearch('findTransitionWords');\n const transitionWordResult = this.calculateTransitionWordResult(transitionWordSentences, i18n);\n const assessmentResult = new AssessmentResult({config: this._config});\n\n assessmentResult.setScore(transitionWordResult.score);\n assessmentResult.setStatus(transitionWordResult.status);\n assessmentResult.setBody(transitionWordResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Checks if the transition words assessment is applicable to the paper. Language-specific length requirements and methods of counting text length\n * may apply (e.g. for Japanese, the text should be counted in characters instead of words, which also makes the minimum required length higher).\n *\n * @param {Paper} paper The paper to check.\n * @param {Researcher} researcher The researcher object.\n *\n * @returns {boolean} Returns true if the language is available, the paper is not empty and the text is longer than the minimum required length.\n */\n isApplicable(paper, researcher) {\n const customCountLength = researcher.getHelper('customCountLength');\n const customApplicabilityConfig = researcher.getConfig('assessmentApplicability')\n .transitionWords;\n if (customApplicabilityConfig) {\n this._config.applicableIfTextLongerThan = customApplicabilityConfig;\n }\n let text = paper.getText();\n text = removeHtmlBlocks(text);\n text = filterShortcodesFromHTML(text, paper._attributes && paper._attributes.shortcodes);\n const textLength = customCountLength ? customCountLength(text) : getWords(text).length;\n\n // Do not use hasEnoughContent in this assessment as it is mostly redundant with `textLength >= this._config.applicableIfTextLongerThan`\n return (\n textLength >= this._config.applicableIfTextLongerThan &&\n researcher.hasResearch('findTransitionWords')\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TransitionWordsAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_formatNumber","_inRange","_AssessmentResult","_assessment","_htmlParser","_getWords","_helpers","e","__esModule","default","TransitionWordsAssessment","Assessment","constructor","config","defaultConfig","id","fixPosition","ctaType","docUrl","priority","applicableIfTextLongerThan","title","content","good","bad","improve","identifier","_config","merge","calculateTransitionWordPercentage","sentences","transitionWordSentences","totalSentences","formatNumber","calculateScoreFromPercentage","percentage","inRange","calculateTransitionWordResult","i18n","score","status","customScore","getScore","body","createElement","Text","as","href","target","rel","getResult","paper","researcher","getResearch","transitionWordResult","assessmentResult","AssessmentResult","setScore","setStatus","setBody","isApplicable","customCountLength","getHelper","customApplicabilityConfig","getConfig","transitionWords","text","getText","removeHtmlBlocks","filterShortcodesFromHTML","_attributes","shortcodes","textLength","getWords","length","hasResearch","exports"],"sources":["../../../../src/scoring/assessments/readability/TransitionWordsAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\n\nimport formatNumber from '../../../helpers/formatNumber';\nimport {inRangeStartInclusive as inRange} from '../../helpers/assessments/inRange';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport Assessment from '../assessment';\nimport removeHtmlBlocks from '../../../languageProcessing/helpers/html/htmlParser';\nimport getWords from '../../../languageProcessing/helpers/word/getWords';\nimport {filterShortcodesFromHTML} from '../../../languageProcessing/helpers';\n\n/**\n * Represents the assessment that checks whether there are enough transition words in the text.\n */\nexport default class TransitionWordsAssessment 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: 'textTransitionWords',\n fixPosition: 'longestParagraph',\n ctaType: 'fix',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#use-of-transition-words',\n priority: 'low',\n applicableIfTextLongerThan: 200,\n title: 'Use of transition words',\n content: {\n good: 'Transition words are used effectively.',\n bad:\n 'Lack of transition words. Improve readability and flow by adding words like \"however,\" \"also,\" etc.',\n improve: ''\n }\n };\n\n this.identifier = 'textTransitionWords';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Calculates the actual percentage of transition words in the sentences.\n *\n * @param {object} sentences The object containing the total number of sentences and the number of sentences containing\n * a transition word.\n *\n * @returns {number} The percentage of sentences containing a transition word.\n */\n calculateTransitionWordPercentage(sentences) {\n if (sentences.transitionWordSentences === 0 || sentences.totalSentences === 0) {\n return 0;\n }\n\n return formatNumber((sentences.transitionWordSentences / sentences.totalSentences) * 100);\n }\n\n /**\n * Calculates the score for the assessment based on the percentage of sentences containing transition words.\n *\n * @param {number} percentage The percentage of sentences containing transition words.\n *\n * @returns {number} The score.\n */\n calculateScoreFromPercentage(percentage) {\n if (percentage < 20) {\n // Red indicator.\n return 3;\n }\n\n if (inRange(percentage, 20, 30)) {\n // Orange indicator.\n return 6;\n }\n\n // Green indicator.\n return 9;\n }\n\n /**\n *\n * @param transitionWordSentences\n * @param i18n\n * @returns {{score: number, body: React.JSX.Element, status: string}}\n */\n calculateTransitionWordResult(transitionWordSentences, i18n) {\n const percentage = this.calculateTransitionWordPercentage(transitionWordSentences);\n const score = this.calculateScoreFromPercentage(percentage);\n\n let status = 'good';\n if (score < 7 && percentage === 0) {\n status = 'bad';\n }\n\n if (score < 7) {\n status = 'bad';\n }\n const customScore = this.getScore(this._config.priority, status);\n\n return {\n score: customScore,\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 transitionWordSentences = researcher.getResearch('findTransitionWords');\n const transitionWordResult = this.calculateTransitionWordResult(transitionWordSentences, i18n);\n const assessmentResult = new AssessmentResult({config: this._config});\n\n assessmentResult.setScore(transitionWordResult.score);\n assessmentResult.setStatus(transitionWordResult.status);\n assessmentResult.setBody(transitionWordResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Checks if the transition words assessment is applicable to the paper. Language-specific length requirements and methods of counting text length\n * may apply (e.g. for Japanese, the text should be counted in characters instead of words, which also makes the minimum required length higher).\n *\n * @param {Paper} paper The paper to check.\n * @param {Researcher} researcher The researcher object.\n *\n * @returns {boolean} Returns true if the language is available, the paper is not empty and the text is longer than the minimum required length.\n */\n isApplicable(paper, researcher) {\n const customCountLength = researcher.getHelper('customCountLength');\n const customApplicabilityConfig = researcher.getConfig('assessmentApplicability')\n .transitionWords;\n if (customApplicabilityConfig) {\n this._config.applicableIfTextLongerThan = customApplicabilityConfig;\n }\n let text = paper.getText();\n text = removeHtmlBlocks(text);\n text = filterShortcodesFromHTML(text, paper._attributes && paper._attributes.shortcodes);\n const textLength = customCountLength ? customCountLength(text) : getWords(text).length;\n\n // Do not use hasEnoughContent in this assessment as it is mostly redundant with `textLength >= this._config.applicableIfTextLongerThan`\n return (\n textLength >= this._config.applicableIfTextLongerThan &&\n researcher.hasResearch('findTransitionWords')\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,7 @@ var _assessment = _interopRequireDefault(require("../assessment"));
11
11
  var _AssessmentResult = _interopRequireDefault(require("../../../values/AssessmentResult"));
12
12
  var _polarisIcons = require("@shopify/polaris-icons");
13
13
  var _helpers = require("../../../helpers");
14
- var _matchTextWithWord = _interopRequireDefault(require("@axyseo/languageProcessing/helpers/match/matchTextWithWord"));
14
+ var _matchTextWithWord = _interopRequireDefault(require("../../../languageProcessing/helpers/match/matchTextWithWord"));
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  /**
17
17
  * Assessment for checking the keyword matches in the meta description.
@@ -1 +1 @@
1
- {"version":3,"file":"MetaDescriptionKeywordAssessment.js","names":["_react","_interopRequireDefault","require","_polaris","_lodash","_assessment","_AssessmentResult","_polarisIcons","_helpers","_matchTextWithWord","e","__esModule","default","MetaDescriptionKeywordAssessment","Assessment","constructor","config","defaultConfig","id","priority","fixPosition","ctaType","docUrl","icon","KeyIcon","title","content","bad","good","improve","identifier","_config","merge","getResult","paper","researcher","i18n","assessmentResult","AssessmentResult","calculatedResult","calculateResult","setScore","score","setStatus","status","setBody","body","keyword","getKeyword","description","getDescription","count","matchTextWithWord","getLocale","isNumber","getScore","createElement","Text","as","href","target","rel","isApplicable","hasKeyword","hasDescription","_default","exports"],"sources":["../../../../src/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js"],"sourcesContent":["import React from 'react';\nimport {Text} from '@shopify/polaris';\n\nimport {isNumber, merge} from 'lodash';\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport {KeyIcon} from '@shopify/polaris-icons';\nimport {isIncludes} from '../../../helpers';\nimport matchTextWithWord from '@axyseo/languageProcessing/helpers/match/matchTextWithWord';\n\n/**\n * Assessment for checking the keyword matches in the meta description.\n */\nclass MetaDescriptionKeywordAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {Object} [config] The configuration to use.\n * @param {number} [config.parameters.recommendedMinimum] The recommended minimum of keyword occurrences in the meta description.\n * @param {number} [config.scores.good] The score to return if there are enough keyword occurrences in the meta description.\n * @param {number} [config.scores.bad] The score to return if there aren't enough keyword occurrences in the meta description.\n * @param {string} [config.url] The URL to the relevant article on Yoast.com.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'metaDescriptionKeyword',\n priority: 'high',\n fixPosition: 'meta description',\n ctaType: 'fix',\n docUrl: 'https://help.seoon.io/seo/seo-checklist',\n icon: KeyIcon,\n title: 'Meta description keyword',\n content: {\n bad: 'No keywords found in meta description. Add at least one to improve keyword rank.',\n good: 'Keywords are included meta description.',\n improve: ''\n }\n };\n\n this.identifier = 'metaDescriptionKeyword';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the metaDescriptionKeyword researcher and based on this, returns an assessment result with score.\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 assessmentResult = new AssessmentResult({config: this._config});\n const calculatedResult = this.calculateResult(paper, i18n);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setBody(calculatedResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Returns the result object based on the number of keyword matches in the meta description.\n *\n * @returns {Object} Result object with score and text.\n */\n calculateResult(paper, i18n) {\n const keyword = paper.getKeyword();\n const description = paper.getDescription();\n const {count} = matchTextWithWord(description, keyword, paper.getLocale(), null);\n\n let status = '';\n if (isNumber(count) && count > 0) {\n status = 'good';\n } else {\n status = 'bad';\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 * Checks whether the paper has a keyword and a meta description.\n *\n * @param {Paper} paper The paper to use for the assessment.\n *\n * @returns {boolean} True if the paper has a keyword and a meta description.\n */\n isApplicable(paper) {\n return paper.hasKeyword() && paper.hasDescription();\n }\n}\n\nexport default MetaDescriptionKeywordAssessment;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MetaDescriptionKeywordAssessment.js","names":["_react","_interopRequireDefault","require","_polaris","_lodash","_assessment","_AssessmentResult","_polarisIcons","_helpers","_matchTextWithWord","e","__esModule","default","MetaDescriptionKeywordAssessment","Assessment","constructor","config","defaultConfig","id","priority","fixPosition","ctaType","docUrl","icon","KeyIcon","title","content","bad","good","improve","identifier","_config","merge","getResult","paper","researcher","i18n","assessmentResult","AssessmentResult","calculatedResult","calculateResult","setScore","score","setStatus","status","setBody","body","keyword","getKeyword","description","getDescription","count","matchTextWithWord","getLocale","isNumber","getScore","createElement","Text","as","href","target","rel","isApplicable","hasKeyword","hasDescription","_default","exports"],"sources":["../../../../src/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js"],"sourcesContent":["import React from 'react';\nimport {Text} from '@shopify/polaris';\n\nimport {isNumber, merge} from 'lodash';\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport {KeyIcon} from '@shopify/polaris-icons';\nimport {isIncludes} from '../../../helpers';\nimport matchTextWithWord from '../../../languageProcessing/helpers/match/matchTextWithWord';\n\n/**\n * Assessment for checking the keyword matches in the meta description.\n */\nclass MetaDescriptionKeywordAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {Object} [config] The configuration to use.\n * @param {number} [config.parameters.recommendedMinimum] The recommended minimum of keyword occurrences in the meta description.\n * @param {number} [config.scores.good] The score to return if there are enough keyword occurrences in the meta description.\n * @param {number} [config.scores.bad] The score to return if there aren't enough keyword occurrences in the meta description.\n * @param {string} [config.url] The URL to the relevant article on Yoast.com.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'metaDescriptionKeyword',\n priority: 'high',\n fixPosition: 'meta description',\n ctaType: 'fix',\n docUrl: 'https://help.seoon.io/seo/seo-checklist',\n icon: KeyIcon,\n title: 'Meta description keyword',\n content: {\n bad: 'No keywords found in meta description. Add at least one to improve keyword rank.',\n good: 'Keywords are included meta description.',\n improve: ''\n }\n };\n\n this.identifier = 'metaDescriptionKeyword';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the metaDescriptionKeyword researcher and based on this, returns an assessment result with score.\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 assessmentResult = new AssessmentResult({config: this._config});\n const calculatedResult = this.calculateResult(paper, i18n);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setBody(calculatedResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Returns the result object based on the number of keyword matches in the meta description.\n *\n * @returns {Object} Result object with score and text.\n */\n calculateResult(paper, i18n) {\n const keyword = paper.getKeyword();\n const description = paper.getDescription();\n const {count} = matchTextWithWord(description, keyword, paper.getLocale(), null);\n\n let status = '';\n if (isNumber(count) && count > 0) {\n status = 'good';\n } else {\n status = 'bad';\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 * Checks whether the paper has a keyword and a meta description.\n *\n * @param {Paper} paper The paper to use for the assessment.\n *\n * @returns {boolean} True if the paper has a keyword and a meta description.\n */\n isApplicable(paper) {\n return paper.hasKeyword() && paper.hasDescription();\n }\n}\n\nexport default MetaDescriptionKeywordAssessment;\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ var _polaris = require("@shopify/polaris");
9
9
  var _lodash = require("lodash");
10
10
  var _assessment = _interopRequireDefault(require("../assessment"));
11
11
  var _AssessmentResult = _interopRequireDefault(require("../../../values/AssessmentResult"));
12
- var _matchTextWithWord = _interopRequireDefault(require("@axyseo/languageProcessing/helpers/match/matchTextWithWord"));
12
+ var _matchTextWithWord = _interopRequireDefault(require("../../../languageProcessing/helpers/match/matchTextWithWord"));
13
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
14
  /**
15
15
  * Assessment for checking the keyword matches in the meta title.
@@ -1 +1 @@
1
- {"version":3,"file":"MetaTitleKeywordAssessment.js","names":["_react","_interopRequireDefault","require","_polaris","_lodash","_assessment","_AssessmentResult","_matchTextWithWord","e","__esModule","default","MetaTitleKeywordAssessment","Assessment","constructor","config","defaultConfig","id","docUrl","fixPosition","ctaType","priority","title","content","bad","good","improve","identifier","_config","merge","getResult","paper","researcher","i18n","assessmentResult","AssessmentResult","calculatedResult","calculateResult","setScore","score","setStatus","status","setBody","body","keyword","getKeyword","getTitle","count","matchTextWithWord","getLocale","isNumber","getScore","createElement","Text","as","href","target","rel","isApplicable","hasKeyword","exports"],"sources":["../../../../src/scoring/assessments/seo/MetaTitleKeywordAssessment.js"],"sourcesContent":["import React from 'react';\nimport {Text} from '@shopify/polaris';\n\nimport {isNumber, merge} from 'lodash';\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport matchTextWithWord from '@axyseo/languageProcessing/helpers/match/matchTextWithWord';\n\n/**\n * Assessment for checking the keyword matches in the meta title.\n */\nexport default class MetaTitleKeywordAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {Object} [config] The configuration to use.\n * @param {number} [config.parameters.recommendedMinimum] The recommended minimum of keyword occurrences in the meta description.\n * @param {number} [config.scores.good] The score to return if there are enough keyword occurrences in the meta description.\n * @param {number} [config.scores.bad] The score to return if there aren't enough keyword occurrences in the meta description.\n * @param {string} [config.url] The URL to the relevant article on Yoast.com.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'titleKeyword',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#keyword-in-title',\n fixPosition: 'meta title',\n ctaType: 'fix',\n priority: 'high',\n title: 'Keyword in meta title',\n content: {\n bad:\n 'No keywords found in meta title. Add one to improve keyword rank and click through rate.',\n good: 'Keyword is included in meta title.',\n improve: ''\n }\n };\n\n this.identifier = 'titleKeyword';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the metaDescriptionKeyword researcher and based on this, returns an assessment result with score.\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 assessmentResult = new AssessmentResult({config: this._config});\n const calculatedResult = this.calculateResult(paper, i18n);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setBody(calculatedResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Returns the result object based on the number of keyword matches in the meta description.\n *\n * @returns {Object} Result object with score and text.\n */\n calculateResult(paper, i18n) {\n const keyword = paper.getKeyword();\n const title = paper.getTitle();\n const {count} = matchTextWithWord(title, keyword, paper.getLocale(), null);\n\n let status = '';\n if (isNumber(count) && count > 0) {\n status = 'good';\n } else {\n status = 'bad';\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 * Checks whether the paper has a keyword and a meta description.\n *\n * @param {Paper} paper The paper to use for the assessment.\n *\n * @returns {boolean} True if the paper has a keyword and a meta description.\n */\n isApplicable(paper) {\n return paper.hasKeyword();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MetaTitleKeywordAssessment.js","names":["_react","_interopRequireDefault","require","_polaris","_lodash","_assessment","_AssessmentResult","_matchTextWithWord","e","__esModule","default","MetaTitleKeywordAssessment","Assessment","constructor","config","defaultConfig","id","docUrl","fixPosition","ctaType","priority","title","content","bad","good","improve","identifier","_config","merge","getResult","paper","researcher","i18n","assessmentResult","AssessmentResult","calculatedResult","calculateResult","setScore","score","setStatus","status","setBody","body","keyword","getKeyword","getTitle","count","matchTextWithWord","getLocale","isNumber","getScore","createElement","Text","as","href","target","rel","isApplicable","hasKeyword","exports"],"sources":["../../../../src/scoring/assessments/seo/MetaTitleKeywordAssessment.js"],"sourcesContent":["import React from 'react';\nimport {Text} from '@shopify/polaris';\n\nimport {isNumber, merge} from 'lodash';\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\nimport matchTextWithWord from '../../../languageProcessing/helpers/match/matchTextWithWord';\n\n/**\n * Assessment for checking the keyword matches in the meta title.\n */\nexport default class MetaTitleKeywordAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {Object} [config] The configuration to use.\n * @param {number} [config.parameters.recommendedMinimum] The recommended minimum of keyword occurrences in the meta description.\n * @param {number} [config.scores.good] The score to return if there are enough keyword occurrences in the meta description.\n * @param {number} [config.scores.bad] The score to return if there aren't enough keyword occurrences in the meta description.\n * @param {string} [config.url] The URL to the relevant article on Yoast.com.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'titleKeyword',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#keyword-in-title',\n fixPosition: 'meta title',\n ctaType: 'fix',\n priority: 'high',\n title: 'Keyword in meta title',\n content: {\n bad:\n 'No keywords found in meta title. Add one to improve keyword rank and click through rate.',\n good: 'Keyword is included in meta title.',\n improve: ''\n }\n };\n\n this.identifier = 'titleKeyword';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the metaDescriptionKeyword researcher and based on this, returns an assessment result with score.\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 assessmentResult = new AssessmentResult({config: this._config});\n const calculatedResult = this.calculateResult(paper, i18n);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setBody(calculatedResult.body);\n\n return assessmentResult;\n }\n\n /**\n * Returns the result object based on the number of keyword matches in the meta description.\n *\n * @returns {Object} Result object with score and text.\n */\n calculateResult(paper, i18n) {\n const keyword = paper.getKeyword();\n const title = paper.getTitle();\n const {count} = matchTextWithWord(title, keyword, paper.getLocale(), null);\n\n let status = '';\n if (isNumber(count) && count > 0) {\n status = 'good';\n } else {\n status = 'bad';\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 * Checks whether the paper has a keyword and a meta description.\n *\n * @param {Paper} paper The paper to use for the assessment.\n *\n * @returns {boolean} True if the paper has a keyword and a meta description.\n */\n isApplicable(paper) {\n return paper.hasKeyword();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _index = require("../../../src/scoring/assessors/index");
8
- var _helpers = require("../helpers");
7
+ var _index = require("../../../scoring/assessors/index");
8
+ var _helpers = require("../../../scoring/helpers");
9
9
  /**
10
10
  * The AvadaAssessor class is used for the general SEO analysis.
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"avadaAssessor.js","names":["_index","require","_helpers","AvadaAssessor","constructor","researcher","options","seoAssessor","SEOAssessor","contentAssessor","ContentAssessor","assess","paper","i18n","assessments","results","map","assessment","config","body","status","score","title","getResult","groupBy","getScore","groupAssessmentsByCategory","groupAssessmentsByStatus","point","forEach","maxPoint","getMaxPoint","Math","round","exports","default"],"sources":["../../../src/scoring/assessors/avadaAssessor.js"],"sourcesContent":["import {ContentAssessor, SEOAssessor} from '../../../src/scoring/assessors/index';\nimport {\n getMaxPoint,\n groupAssessmentsByCategory,\n groupAssessmentsByStatus\n} from '../helpers';\n\n/**\n * The AvadaAssessor class is used for the general SEO analysis.\n */\nexport default class AvadaAssessor {\n /**\n * Creates a new AvadaAssessor instance.\n * @param {Researcher} researcher The researcher to use.\n * @param {Object} [options] The assessor options.\n */\n constructor(researcher, options) {\n const seoAssessor = new SEOAssessor(researcher, options);\n const contentAssessor = new ContentAssessor(researcher, options);\n this.seoAssessor = seoAssessor;\n this.contentAssessor = contentAssessor;\n this.researcher = researcher;\n }\n\n assess(paper, i18n) {\n this.seoAssessor.assess(paper, i18n);\n this.contentAssessor.assess(paper, i18n);\n\n let assessments = [...this.seoAssessor.results, ...this.contentAssessor.results];\n assessments = assessments.map(assessment => ({\n ...assessment.config,\n body: assessment.body,\n status: assessment.status,\n score: assessment.score,\n title: assessment.title || assessment.config.title\n }));\n this.assessments = assessments;\n }\n\n getResult(groupBy = 'category', getScore = true) {\n let assessments = [];\n switch (groupBy) {\n case 'category':\n assessments = groupAssessmentsByCategory(this.assessments);\n break;\n case 'status':\n assessments = groupAssessmentsByStatus(this.assessments);\n break;\n }\n\n return {\n assessments,\n ...(getScore ? {score: this.getScore()} : {})\n };\n }\n\n getScore() {\n let point = 0;\n\n this.assessments.forEach(assessment => {\n point += assessment.score;\n });\n\n const maxPoint = getMaxPoint(this.assessments);\n return Math.round((point * 100) / maxPoint);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAMA;AACA;AACA;AACe,MAAME,aAAa,CAAC;EACjC;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,UAAU,EAAEC,OAAO,EAAE;IAC/B,MAAMC,WAAW,GAAG,IAAIC,kBAAW,CAACH,UAAU,EAAEC,OAAO,CAAC;IACxD,MAAMG,eAAe,GAAG,IAAIC,sBAAe,CAACL,UAAU,EAAEC,OAAO,CAAC;IAChE,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACE,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACJ,UAAU,GAAGA,UAAU;EAC9B;EAEAM,MAAMA,CAACC,KAAK,EAAEC,IAAI,EAAE;IAClB,IAAI,CAACN,WAAW,CAACI,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC;IACpC,IAAI,CAACJ,eAAe,CAACE,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC;IAExC,IAAIC,WAAW,GAAG,CAAC,GAAG,IAAI,CAACP,WAAW,CAACQ,OAAO,EAAE,GAAG,IAAI,CAACN,eAAe,CAACM,OAAO,CAAC;IAChFD,WAAW,GAAGA,WAAW,CAACE,GAAG,CAACC,UAAU,KAAK;MAC3C,GAAGA,UAAU,CAACC,MAAM;MACpBC,IAAI,EAAEF,UAAU,CAACE,IAAI;MACrBC,MAAM,EAAEH,UAAU,CAACG,MAAM;MACzBC,KAAK,EAAEJ,UAAU,CAACI,KAAK;MACvBC,KAAK,EAAEL,UAAU,CAACK,KAAK,IAAIL,UAAU,CAACC,MAAM,CAACI;IAC/C,CAAC,CAAC,CAAC;IACH,IAAI,CAACR,WAAW,GAAGA,WAAW;EAChC;EAEAS,SAASA,CAACC,OAAO,GAAG,UAAU,EAAEC,QAAQ,GAAG,IAAI,EAAE;IAC/C,IAAIX,WAAW,GAAG,EAAE;IACpB,QAAQU,OAAO;MACb,KAAK,UAAU;QACbV,WAAW,GAAG,IAAAY,mCAA0B,EAAC,IAAI,CAACZ,WAAW,CAAC;QAC1D;MACF,KAAK,QAAQ;QACXA,WAAW,GAAG,IAAAa,iCAAwB,EAAC,IAAI,CAACb,WAAW,CAAC;QACxD;IACJ;IAEA,OAAO;MACLA,WAAW;MACX,IAAIW,QAAQ,GAAG;QAACJ,KAAK,EAAE,IAAI,CAACI,QAAQ,CAAC;MAAC,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;EACH;EAEAA,QAAQA,CAAA,EAAG;IACT,IAAIG,KAAK,GAAG,CAAC;IAEb,IAAI,CAACd,WAAW,CAACe,OAAO,CAACZ,UAAU,IAAI;MACrCW,KAAK,IAAIX,UAAU,CAACI,KAAK;IAC3B,CAAC,CAAC;IAEF,MAAMS,QAAQ,GAAG,IAAAC,oBAAW,EAAC,IAAI,CAACjB,WAAW,CAAC;IAC9C,OAAOkB,IAAI,CAACC,KAAK,CAAEL,KAAK,GAAG,GAAG,GAAIE,QAAQ,CAAC;EAC7C;AACF;AAACI,OAAA,CAAAC,OAAA,GAAAhC,aAAA","ignoreList":[]}
1
+ {"version":3,"file":"avadaAssessor.js","names":["_index","require","_helpers","AvadaAssessor","constructor","researcher","options","seoAssessor","SEOAssessor","contentAssessor","ContentAssessor","assess","paper","i18n","assessments","results","map","assessment","config","body","status","score","title","getResult","groupBy","getScore","groupAssessmentsByCategory","groupAssessmentsByStatus","point","forEach","maxPoint","getMaxPoint","Math","round","exports","default"],"sources":["../../../src/scoring/assessors/avadaAssessor.js"],"sourcesContent":["import {ContentAssessor, SEOAssessor} from '../../../scoring/assessors/index';\nimport {\n getMaxPoint,\n groupAssessmentsByCategory,\n groupAssessmentsByStatus\n} from '../../../scoring/helpers';\n\n/**\n * The AvadaAssessor class is used for the general SEO analysis.\n */\nexport default class AvadaAssessor {\n /**\n * Creates a new AvadaAssessor instance.\n * @param {Researcher} researcher The researcher to use.\n * @param {Object} [options] The assessor options.\n */\n constructor(researcher, options) {\n const seoAssessor = new SEOAssessor(researcher, options);\n const contentAssessor = new ContentAssessor(researcher, options);\n this.seoAssessor = seoAssessor;\n this.contentAssessor = contentAssessor;\n this.researcher = researcher;\n }\n\n assess(paper, i18n) {\n this.seoAssessor.assess(paper, i18n);\n this.contentAssessor.assess(paper, i18n);\n\n let assessments = [...this.seoAssessor.results, ...this.contentAssessor.results];\n assessments = assessments.map(assessment => ({\n ...assessment.config,\n body: assessment.body,\n status: assessment.status,\n score: assessment.score,\n title: assessment.title || assessment.config.title\n }));\n this.assessments = assessments;\n }\n\n getResult(groupBy = 'category', getScore = true) {\n let assessments = [];\n switch (groupBy) {\n case 'category':\n assessments = groupAssessmentsByCategory(this.assessments);\n break;\n case 'status':\n assessments = groupAssessmentsByStatus(this.assessments);\n break;\n }\n\n return {\n assessments,\n ...(getScore ? {score: this.getScore()} : {})\n };\n }\n\n getScore() {\n let point = 0;\n\n this.assessments.forEach(assessment => {\n point += assessment.score;\n });\n\n const maxPoint = getMaxPoint(this.assessments);\n return Math.round((point * 100) / maxPoint);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAMA;AACA;AACA;AACe,MAAME,aAAa,CAAC;EACjC;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,UAAU,EAAEC,OAAO,EAAE;IAC/B,MAAMC,WAAW,GAAG,IAAIC,kBAAW,CAACH,UAAU,EAAEC,OAAO,CAAC;IACxD,MAAMG,eAAe,GAAG,IAAIC,sBAAe,CAACL,UAAU,EAAEC,OAAO,CAAC;IAChE,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACE,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACJ,UAAU,GAAGA,UAAU;EAC9B;EAEAM,MAAMA,CAACC,KAAK,EAAEC,IAAI,EAAE;IAClB,IAAI,CAACN,WAAW,CAACI,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC;IACpC,IAAI,CAACJ,eAAe,CAACE,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC;IAExC,IAAIC,WAAW,GAAG,CAAC,GAAG,IAAI,CAACP,WAAW,CAACQ,OAAO,EAAE,GAAG,IAAI,CAACN,eAAe,CAACM,OAAO,CAAC;IAChFD,WAAW,GAAGA,WAAW,CAACE,GAAG,CAACC,UAAU,KAAK;MAC3C,GAAGA,UAAU,CAACC,MAAM;MACpBC,IAAI,EAAEF,UAAU,CAACE,IAAI;MACrBC,MAAM,EAAEH,UAAU,CAACG,MAAM;MACzBC,KAAK,EAAEJ,UAAU,CAACI,KAAK;MACvBC,KAAK,EAAEL,UAAU,CAACK,KAAK,IAAIL,UAAU,CAACC,MAAM,CAACI;IAC/C,CAAC,CAAC,CAAC;IACH,IAAI,CAACR,WAAW,GAAGA,WAAW;EAChC;EAEAS,SAASA,CAACC,OAAO,GAAG,UAAU,EAAEC,QAAQ,GAAG,IAAI,EAAE;IAC/C,IAAIX,WAAW,GAAG,EAAE;IACpB,QAAQU,OAAO;MACb,KAAK,UAAU;QACbV,WAAW,GAAG,IAAAY,mCAA0B,EAAC,IAAI,CAACZ,WAAW,CAAC;QAC1D;MACF,KAAK,QAAQ;QACXA,WAAW,GAAG,IAAAa,iCAAwB,EAAC,IAAI,CAACb,WAAW,CAAC;QACxD;IACJ;IAEA,OAAO;MACLA,WAAW;MACX,IAAIW,QAAQ,GAAG;QAACJ,KAAK,EAAE,IAAI,CAACI,QAAQ,CAAC;MAAC,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;EACH;EAEAA,QAAQA,CAAA,EAAG;IACT,IAAIG,KAAK,GAAG,CAAC;IAEb,IAAI,CAACd,WAAW,CAACe,OAAO,CAACZ,UAAU,IAAI;MACrCW,KAAK,IAAIX,UAAU,CAACI,KAAK;IAC3B,CAAC,CAAC;IAEF,MAAMS,QAAQ,GAAG,IAAAC,oBAAW,EAAC,IAAI,CAACjB,WAAW,CAAC;IAC9C,OAAOkB,IAAI,CAACC,KAAK,CAAEL,KAAK,GAAG,GAAG,GAAIE,QAAQ,CAAC;EAC7C;AACF;AAACI,OAAA,CAAAC,OAAA,GAAAhC,aAAA","ignoreList":[]}
@@ -18,12 +18,12 @@ var _ImageCountAssessment = _interopRequireDefault(require("../assessments/seo/I
18
18
  var _TextLengthAssessment = _interopRequireDefault(require("../assessments/seo/TextLengthAssessment"));
19
19
  var _PageTitleWidthAssessment = _interopRequireDefault(require("../assessments/seo/PageTitleWidthAssessment"));
20
20
  var _SingleH1Assessment = _interopRequireDefault(require("../assessments/seo/SingleH1Assessment"));
21
- var _KeyphraseAssessment = _interopRequireDefault(require("../assessments/seo/KeyphraseAssessment"));
22
- var _SingleTitleAssessment = _interopRequireDefault(require("../assessments/seo/SingleTitleAssessment"));
23
- var _UrlLengthAssessment = _interopRequireDefault(require("../assessments/seo/UrlLengthAssessment"));
24
- var _NumberInMetaTitleAssessment = _interopRequireDefault(require("../assessments/seo/NumberInMetaTitleAssessment"));
25
- var _TextImagesAssessment = _interopRequireDefault(require("../assessments/seo/TextImagesAssessment"));
26
- var _MetaTitleKeywordAssessment = _interopRequireDefault(require("../assessments/seo/MetaTitleKeywordAssessment"));
21
+ var _KeyphraseAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/KeyphraseAssessment"));
22
+ var _SingleTitleAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/SingleTitleAssessment"));
23
+ var _UrlLengthAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/UrlLengthAssessment"));
24
+ var _NumberInMetaTitleAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/NumberInMetaTitleAssessment"));
25
+ var _TextImagesAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/TextImagesAssessment"));
26
+ var _MetaTitleKeywordAssessment = _interopRequireDefault(require("../../../scoring/assessments/seo/MetaTitleKeywordAssessment"));
27
27
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
28
28
  /**
29
29
  * The SEOAssessor class is used for the general SEO analysis.
@@ -1 +1 @@
1
- {"version":3,"file":"seoAssessor.js","names":["_assessor","_interopRequireDefault","require","_IntroductionKeywordAssessment","_KeyphraseLengthAssessment","_MetaDescriptionKeywordAssessment","_MetaDescriptionLengthAssessment","_SubHeadingsKeywordAssessment","_OutboundLinksAssessment","_KeywordDensityAssessment","_InternalLinksAssessment","_UrlKeywordAssessment","_ImageCountAssessment","_TextLengthAssessment","_PageTitleWidthAssessment","_SingleH1Assessment","_KeyphraseAssessment","_SingleTitleAssessment","_UrlLengthAssessment","_NumberInMetaTitleAssessment","_TextImagesAssessment","_MetaTitleKeywordAssessment","e","__esModule","default","SEOAssessor","Assessor","constructor","researcher","options","type","_assessments","MetaTitleKeywordAssessment","TextImagesAssessment","NumberInMetaTitleAssessment","IntroductionKeywordAssessment","KeyphraseLengthAssessment","MetaDescriptionKeywordAssessment","MetaDescriptionLength","SubheadingsKeyword","OutboundLinks","KeyphraseDensityAssessment","ImageCount","UrlLengthAssessment","TextLength","SingleTitleAssessment","KeyphraseAssessment","InternalLinksAssessment","TitleWidth","SlugKeywordAssessment","SingleH1Assessment","exports"],"sources":["../../../src/scoring/assessors/seoAssessor.js"],"sourcesContent":["import Assessor from './assessor';\nimport IntroductionKeywordAssessment from '../assessments/seo/IntroductionKeywordAssessment';\nimport KeyphraseLengthAssessment from '../assessments/seo/KeyphraseLengthAssessment';\nimport MetaDescriptionKeywordAssessment from '../assessments/seo/MetaDescriptionKeywordAssessment';\nimport MetaDescriptionLength from '../assessments/seo/MetaDescriptionLengthAssessment';\nimport SubheadingsKeyword from '../assessments/seo/SubHeadingsKeywordAssessment';\nimport OutboundLinks from '../assessments/seo/OutboundLinksAssessment';\nimport KeyphraseDensityAssessment from '../assessments/seo/KeywordDensityAssessment';\nimport InternalLinksAssessment from '../assessments/seo/InternalLinksAssessment';\nimport SlugKeywordAssessment from '../assessments/seo/UrlKeywordAssessment';\nimport ImageCount from '../assessments/seo/ImageCountAssessment';\nimport TextLength from '../assessments/seo/TextLengthAssessment';\nimport TitleWidth from '../assessments/seo/PageTitleWidthAssessment';\nimport SingleH1Assessment from '../assessments/seo/SingleH1Assessment';\nimport KeyphraseAssessment from '../assessments/seo/KeyphraseAssessment';\nimport SingleTitleAssessment from '../assessments/seo/SingleTitleAssessment';\nimport UrlLengthAssessment from '../assessments/seo/UrlLengthAssessment';\nimport NumberInMetaTitleAssessment from '../assessments/seo/NumberInMetaTitleAssessment';\nimport TextImagesAssessment from '../assessments/seo/TextImagesAssessment';\nimport MetaTitleKeywordAssessment from '../assessments/seo/MetaTitleKeywordAssessment';\n\n/**\n * The SEOAssessor class is used for the general SEO analysis.\n */\nexport default class SEOAssessor extends Assessor {\n /**\n * Creates a new SEOAssessor instance.\n * @param {Researcher}\tresearcher\tThe researcher to use.\n * @param {Object}\t\t[options]\tThe assessor options.\n */\n constructor(researcher, options) {\n super(researcher, options);\n this.type = 'SEOAssessor';\n\n this._assessments = [\n new MetaTitleKeywordAssessment(),\n new TextImagesAssessment(),\n new NumberInMetaTitleAssessment(),\n new IntroductionKeywordAssessment(),\n new KeyphraseLengthAssessment(),\n new MetaDescriptionKeywordAssessment(),\n new MetaDescriptionLength(),\n new SubheadingsKeyword(),\n new OutboundLinks(),\n new KeyphraseDensityAssessment(),\n new ImageCount(),\n new UrlLengthAssessment(),\n new TextLength(),\n new SingleTitleAssessment(),\n new KeyphraseAssessment(),\n new InternalLinksAssessment(),\n new TitleWidth(),\n new SlugKeywordAssessment(),\n new SingleH1Assessment()\n ];\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,8BAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,0BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,iCAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,gCAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,6BAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,wBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,yBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,wBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,qBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,qBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,qBAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,yBAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,mBAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,oBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,sBAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,oBAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,4BAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,qBAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,2BAAA,GAAApB,sBAAA,CAAAC,OAAA;AAAuF,SAAAD,uBAAAqB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvF;AACA;AACA;AACe,MAAMG,WAAW,SAASC,iBAAQ,CAAC;EAChD;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,UAAU,EAAEC,OAAO,EAAE;IAC/B,KAAK,CAACD,UAAU,EAAEC,OAAO,CAAC;IAC1B,IAAI,CAACC,IAAI,GAAG,aAAa;IAEzB,IAAI,CAACC,YAAY,GAAG,CAClB,IAAIC,mCAA0B,CAAC,CAAC,EAChC,IAAIC,6BAAoB,CAAC,CAAC,EAC1B,IAAIC,oCAA2B,CAAC,CAAC,EACjC,IAAIC,sCAA6B,CAAC,CAAC,EACnC,IAAIC,kCAAyB,CAAC,CAAC,EAC/B,IAAIC,yCAAgC,CAAC,CAAC,EACtC,IAAIC,wCAAqB,CAAC,CAAC,EAC3B,IAAIC,qCAAkB,CAAC,CAAC,EACxB,IAAIC,gCAAa,CAAC,CAAC,EACnB,IAAIC,iCAA0B,CAAC,CAAC,EAChC,IAAIC,6BAAU,CAAC,CAAC,EAChB,IAAIC,4BAAmB,CAAC,CAAC,EACzB,IAAIC,6BAAU,CAAC,CAAC,EAChB,IAAIC,8BAAqB,CAAC,CAAC,EAC3B,IAAIC,4BAAmB,CAAC,CAAC,EACzB,IAAIC,gCAAuB,CAAC,CAAC,EAC7B,IAAIC,iCAAU,CAAC,CAAC,EAChB,IAAIC,6BAAqB,CAAC,CAAC,EAC3B,IAAIC,2BAAkB,CAAC,CAAC,CACzB;EACH;AACF;AAACC,OAAA,CAAA3B,OAAA,GAAAC,WAAA","ignoreList":[]}
1
+ {"version":3,"file":"seoAssessor.js","names":["_assessor","_interopRequireDefault","require","_IntroductionKeywordAssessment","_KeyphraseLengthAssessment","_MetaDescriptionKeywordAssessment","_MetaDescriptionLengthAssessment","_SubHeadingsKeywordAssessment","_OutboundLinksAssessment","_KeywordDensityAssessment","_InternalLinksAssessment","_UrlKeywordAssessment","_ImageCountAssessment","_TextLengthAssessment","_PageTitleWidthAssessment","_SingleH1Assessment","_KeyphraseAssessment","_SingleTitleAssessment","_UrlLengthAssessment","_NumberInMetaTitleAssessment","_TextImagesAssessment","_MetaTitleKeywordAssessment","e","__esModule","default","SEOAssessor","Assessor","constructor","researcher","options","type","_assessments","MetaTitleKeywordAssessment","TextImagesAssessment","NumberInMetaTitleAssessment","IntroductionKeywordAssessment","KeyphraseLengthAssessment","MetaDescriptionKeywordAssessment","MetaDescriptionLength","SubheadingsKeyword","OutboundLinks","KeyphraseDensityAssessment","ImageCount","UrlLengthAssessment","TextLength","SingleTitleAssessment","KeyphraseAssessment","InternalLinksAssessment","TitleWidth","SlugKeywordAssessment","SingleH1Assessment","exports"],"sources":["../../../src/scoring/assessors/seoAssessor.js"],"sourcesContent":["import Assessor from './assessor';\nimport IntroductionKeywordAssessment from '../assessments/seo/IntroductionKeywordAssessment';\nimport KeyphraseLengthAssessment from '../assessments/seo/KeyphraseLengthAssessment';\nimport MetaDescriptionKeywordAssessment from '../assessments/seo/MetaDescriptionKeywordAssessment';\nimport MetaDescriptionLength from '../assessments/seo/MetaDescriptionLengthAssessment';\nimport SubheadingsKeyword from '../assessments/seo/SubHeadingsKeywordAssessment';\nimport OutboundLinks from '../assessments/seo/OutboundLinksAssessment';\nimport KeyphraseDensityAssessment from '../assessments/seo/KeywordDensityAssessment';\nimport InternalLinksAssessment from '../assessments/seo/InternalLinksAssessment';\nimport SlugKeywordAssessment from '../assessments/seo/UrlKeywordAssessment';\nimport ImageCount from '../assessments/seo/ImageCountAssessment';\nimport TextLength from '../assessments/seo/TextLengthAssessment';\nimport TitleWidth from '../assessments/seo/PageTitleWidthAssessment';\nimport SingleH1Assessment from '../assessments/seo/SingleH1Assessment';\nimport KeyphraseAssessment from '../../../scoring/assessments/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\n/**\n * The SEOAssessor class is used for the general SEO analysis.\n */\nexport default class SEOAssessor extends Assessor {\n /**\n * Creates a new SEOAssessor instance.\n * @param {Researcher}\tresearcher\tThe researcher to use.\n * @param {Object}\t\t[options]\tThe assessor options.\n */\n constructor(researcher, options) {\n super(researcher, options);\n this.type = 'SEOAssessor';\n\n this._assessments = [\n new MetaTitleKeywordAssessment(),\n new TextImagesAssessment(),\n new NumberInMetaTitleAssessment(),\n new IntroductionKeywordAssessment(),\n new KeyphraseLengthAssessment(),\n new MetaDescriptionKeywordAssessment(),\n new MetaDescriptionLength(),\n new SubheadingsKeyword(),\n new OutboundLinks(),\n new KeyphraseDensityAssessment(),\n new ImageCount(),\n new UrlLengthAssessment(),\n new TextLength(),\n new SingleTitleAssessment(),\n new KeyphraseAssessment(),\n new InternalLinksAssessment(),\n new TitleWidth(),\n new SlugKeywordAssessment(),\n new SingleH1Assessment()\n ];\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,8BAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,0BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,iCAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,gCAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,6BAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,wBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,yBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,wBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,qBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,qBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,qBAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,yBAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,mBAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,oBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,sBAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,oBAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,4BAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,qBAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,2BAAA,GAAApB,sBAAA,CAAAC,OAAA;AAAqG,SAAAD,uBAAAqB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErG;AACA;AACA;AACe,MAAMG,WAAW,SAASC,iBAAQ,CAAC;EAChD;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,UAAU,EAAEC,OAAO,EAAE;IAC/B,KAAK,CAACD,UAAU,EAAEC,OAAO,CAAC;IAC1B,IAAI,CAACC,IAAI,GAAG,aAAa;IAEzB,IAAI,CAACC,YAAY,GAAG,CAClB,IAAIC,mCAA0B,CAAC,CAAC,EAChC,IAAIC,6BAAoB,CAAC,CAAC,EAC1B,IAAIC,oCAA2B,CAAC,CAAC,EACjC,IAAIC,sCAA6B,CAAC,CAAC,EACnC,IAAIC,kCAAyB,CAAC,CAAC,EAC/B,IAAIC,yCAAgC,CAAC,CAAC,EACtC,IAAIC,wCAAqB,CAAC,CAAC,EAC3B,IAAIC,qCAAkB,CAAC,CAAC,EACxB,IAAIC,gCAAa,CAAC,CAAC,EACnB,IAAIC,iCAA0B,CAAC,CAAC,EAChC,IAAIC,6BAAU,CAAC,CAAC,EAChB,IAAIC,4BAAmB,CAAC,CAAC,EACzB,IAAIC,6BAAU,CAAC,CAAC,EAChB,IAAIC,8BAAqB,CAAC,CAAC,EAC3B,IAAIC,4BAAmB,CAAC,CAAC,EACzB,IAAIC,gCAAuB,CAAC,CAAC,EAC7B,IAAIC,iCAAU,CAAC,CAAC,EAChB,IAAIC,6BAAqB,CAAC,CAAC,EAC3B,IAAIC,2BAAkB,CAAC,CAAC,CACzB;EACH;AACF;AAACC,OAAA,CAAA3B,OAAA,GAAAC,WAAA","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = _default;
7
- var _getAllWordsFromTree = _interopRequireDefault(require("@axyseo/languageProcessing/helpers/word/getAllWordsFromTree"));
7
+ var _getAllWordsFromTree = _interopRequireDefault(require("../../../languageProcessing/helpers/word/getAllWordsFromTree"));
8
8
  var _keyphraseLengthFactor = _interopRequireDefault(require("./keyphraseLengthFactor.js"));
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"recommendedKeywordCount.js","names":["_getAllWordsFromTree","_interopRequireDefault","require","_keyphraseLengthFactor","e","__esModule","default","_default","paper","keyphraseLength","recommendedKeyphraseDensity","maxOrMin","customGetWords","wordCount","getText","length","getAllWordsFromTree","lengthKeyphraseFactor","keyphraseLengthFactor","recommendedKeyphraseCount","Math","ceil","floor"],"sources":["../../../../src/scoring/helpers/assessments/recommendedKeywordCount.js"],"sourcesContent":["import getAllWordsFromTree from \"@axyseo/languageProcessing/helpers/word/getAllWordsFromTree\";\nimport keyphraseLengthFactor from \"./keyphraseLengthFactor.js\";\n\n/**\n * Calculates a recommended keyphrase count for a paper's text. The formula to calculate this number is based on the\n * keyphrase density formula.\n *\n * @param {Paper}\tpaper\t\t\t\t\t\tThe paper to analyze.\n * @param {number}\tkeyphraseLength\t\t\t\tThe length of the focus keyphrase in words.\n * @param {number}\trecommendedKeyphraseDensity\tThe recommended keyphrase density (either maximum or minimum).\n * @param {string}\tmaxOrMin\t\t\t\t\tWhether it's a maximum or minimum recommended keyphrase density.\n * @param {function} customGetWords\t\t\t\tA helper to get words from the text for languages that don't use the default approach.\n *\n * @returns {number} The recommended keyphrase count.\n */\nexport default function( paper, keyphraseLength, recommendedKeyphraseDensity, maxOrMin, customGetWords ) {\n\tconst wordCount = customGetWords ? customGetWords( paper.getText() ).length : getAllWordsFromTree( paper ).length;\n\n\tif ( wordCount === 0 ) {\n\t\treturn 0;\n\t}\n\n\tconst lengthKeyphraseFactor = keyphraseLengthFactor( keyphraseLength );\n\tconst recommendedKeyphraseCount = ( recommendedKeyphraseDensity * wordCount ) / ( 100 * lengthKeyphraseFactor );\n\n\t/*\n\t * The recommended keyphrase count should always be at least 2,\n\t * regardless of the keyphrase density, the word count, or the keyphrase length.\n\t */\n\tif ( recommendedKeyphraseCount < 2 ) {\n\t\treturn 2;\n\t}\n\n\tswitch ( maxOrMin ) {\n\t\tcase \"min\":\n\t\t\t// Round up for the recommended minimum count.\n\t\t\treturn Math.ceil( recommendedKeyphraseCount );\n\t\tdefault:\n\t\tcase \"max\":\n\t\t\t// Round down for the recommended maximum count.\n\t\t\treturn Math.floor( recommendedKeyphraseCount );\n\t}\n}\n"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA+D,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAAG,SAAUC,KAAK,EAAEC,eAAe,EAAEC,2BAA2B,EAAEC,QAAQ,EAAEC,cAAc,EAAG;EACxG,MAAMC,SAAS,GAAGD,cAAc,GAAGA,cAAc,CAAEJ,KAAK,CAACM,OAAO,CAAC,CAAE,CAAC,CAACC,MAAM,GAAG,IAAAC,4BAAmB,EAAER,KAAM,CAAC,CAACO,MAAM;EAEjH,IAAKF,SAAS,KAAK,CAAC,EAAG;IACtB,OAAO,CAAC;EACT;EAEA,MAAMI,qBAAqB,GAAG,IAAAC,8BAAqB,EAAET,eAAgB,CAAC;EACtE,MAAMU,yBAAyB,GAAKT,2BAA2B,GAAGG,SAAS,IAAO,GAAG,GAAGI,qBAAqB,CAAE;;EAE/G;AACD;AACA;AACA;EACC,IAAKE,yBAAyB,GAAG,CAAC,EAAG;IACpC,OAAO,CAAC;EACT;EAEA,QAASR,QAAQ;IAChB,KAAK,KAAK;MACT;MACA,OAAOS,IAAI,CAACC,IAAI,CAAEF,yBAA0B,CAAC;IAC9C;IACA,KAAK,KAAK;MACT;MACA,OAAOC,IAAI,CAACE,KAAK,CAAEH,yBAA0B,CAAC;EAChD;AACD","ignoreList":[]}
1
+ {"version":3,"file":"recommendedKeywordCount.js","names":["_getAllWordsFromTree","_interopRequireDefault","require","_keyphraseLengthFactor","e","__esModule","default","_default","paper","keyphraseLength","recommendedKeyphraseDensity","maxOrMin","customGetWords","wordCount","getText","length","getAllWordsFromTree","lengthKeyphraseFactor","keyphraseLengthFactor","recommendedKeyphraseCount","Math","ceil","floor"],"sources":["../../../../src/scoring/helpers/assessments/recommendedKeywordCount.js"],"sourcesContent":["import getAllWordsFromTree from \"../../../languageProcessing/helpers/word/getAllWordsFromTree\";\nimport keyphraseLengthFactor from \"./keyphraseLengthFactor.js\";\n\n/**\n * Calculates a recommended keyphrase count for a paper's text. The formula to calculate this number is based on the\n * keyphrase density formula.\n *\n * @param {Paper}\tpaper\t\t\t\t\t\tThe paper to analyze.\n * @param {number}\tkeyphraseLength\t\t\t\tThe length of the focus keyphrase in words.\n * @param {number}\trecommendedKeyphraseDensity\tThe recommended keyphrase density (either maximum or minimum).\n * @param {string}\tmaxOrMin\t\t\t\t\tWhether it's a maximum or minimum recommended keyphrase density.\n * @param {function} customGetWords\t\t\t\tA helper to get words from the text for languages that don't use the default approach.\n *\n * @returns {number} The recommended keyphrase count.\n */\nexport default function( paper, keyphraseLength, recommendedKeyphraseDensity, maxOrMin, customGetWords ) {\n\tconst wordCount = customGetWords ? customGetWords( paper.getText() ).length : getAllWordsFromTree( paper ).length;\n\n\tif ( wordCount === 0 ) {\n\t\treturn 0;\n\t}\n\n\tconst lengthKeyphraseFactor = keyphraseLengthFactor( keyphraseLength );\n\tconst recommendedKeyphraseCount = ( recommendedKeyphraseDensity * wordCount ) / ( 100 * lengthKeyphraseFactor );\n\n\t/*\n\t * The recommended keyphrase count should always be at least 2,\n\t * regardless of the keyphrase density, the word count, or the keyphrase length.\n\t */\n\tif ( recommendedKeyphraseCount < 2 ) {\n\t\treturn 2;\n\t}\n\n\tswitch ( maxOrMin ) {\n\t\tcase \"min\":\n\t\t\t// Round up for the recommended minimum count.\n\t\t\treturn Math.ceil( recommendedKeyphraseCount );\n\t\tdefault:\n\t\tcase \"max\":\n\t\t\t// Round down for the recommended maximum count.\n\t\t\treturn Math.floor( recommendedKeyphraseCount );\n\t}\n}\n"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA+D,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAAG,SAAUC,KAAK,EAAEC,eAAe,EAAEC,2BAA2B,EAAEC,QAAQ,EAAEC,cAAc,EAAG;EACxG,MAAMC,SAAS,GAAGD,cAAc,GAAGA,cAAc,CAAEJ,KAAK,CAACM,OAAO,CAAC,CAAE,CAAC,CAACC,MAAM,GAAG,IAAAC,4BAAmB,EAAER,KAAM,CAAC,CAACO,MAAM;EAEjH,IAAKF,SAAS,KAAK,CAAC,EAAG;IACtB,OAAO,CAAC;EACT;EAEA,MAAMI,qBAAqB,GAAG,IAAAC,8BAAqB,EAAET,eAAgB,CAAC;EACtE,MAAMU,yBAAyB,GAAKT,2BAA2B,GAAGG,SAAS,IAAO,GAAG,GAAGI,qBAAqB,CAAE;;EAE/G;AACD;AACA;AACA;EACC,IAAKE,yBAAyB,GAAG,CAAC,EAAG;IACpC,OAAO,CAAC;EACT;EAEA,QAASR,QAAQ;IAChB,KAAK,KAAK;MACT;MACA,OAAOS,IAAI,CAACC,IAAI,CAAEF,yBAA0B,CAAC;IAC9C;IACA,KAAK,KAAK;MACT;MACA,OAAOC,IAAI,CAACE,KAAK,CAAEH,yBAA0B,CAAC;EAChD;AACD","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getMaxPoint = void 0;
7
7
  exports.groupAssessmentsByCategory = groupAssessmentsByCategory;
8
8
  exports.groupAssessmentsByStatus = groupAssessmentsByStatus;
9
- var _analysis = require("../../const/analysis");
9
+ var _analysis = require("../../../const/analysis");
10
10
  /**
11
11
  * Helper function to prepare the results by category.
12
12
  * @param {Array} originalResult - The original result array of assessments.