axyseo 2.0.0-alpha.3 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1255) hide show
  1. package/build/config/diacritics.js +1 -7
  2. package/build/config/diacritics.js.map +1 -1
  3. package/build/config/getTransliterations.js +6 -14
  4. package/build/config/getTransliterations.js.map +1 -1
  5. package/build/config/transliterationsWPstyle.js +5 -12
  6. package/build/config/transliterationsWPstyle.js.map +1 -1
  7. package/build/config/wordBoundaries.js +1 -7
  8. package/build/config/wordBoundaries.js.map +1 -1
  9. package/build/config/wordBoundariesWithoutPunctuation.js +2 -8
  10. package/build/config/wordBoundariesWithoutPunctuation.js.map +1 -1
  11. package/build/const/analysis.js +32 -11
  12. package/build/const/analysis.js.map +1 -1
  13. package/build/errors/invalidType.js +1 -8
  14. package/build/errors/invalidType.js.map +1 -1
  15. package/build/errors/missingArgument.js +1 -8
  16. package/build/errors/missingArgument.js.map +1 -1
  17. package/build/helpers/createMeasurementElement.js +1 -8
  18. package/build/helpers/createMeasurementElement.js.map +1 -1
  19. package/build/helpers/domManipulation.js +3 -8
  20. package/build/helpers/domManipulation.js.map +1 -1
  21. package/build/helpers/errors.js +5 -10
  22. package/build/helpers/errors.js.map +1 -1
  23. package/build/helpers/factory.js +7 -13
  24. package/build/helpers/factory.js.map +1 -1
  25. package/build/helpers/formatNumber.js +1 -7
  26. package/build/helpers/formatNumber.js.map +1 -1
  27. package/build/helpers/formatString.js +4 -9
  28. package/build/helpers/formatString.js.map +1 -1
  29. package/build/helpers/getLanguagesWithWordComplexity.js +1 -7
  30. package/build/helpers/getLanguagesWithWordComplexity.js.map +1 -1
  31. package/build/helpers/getLanguagesWithWordFormSupport.js +1 -7
  32. package/build/helpers/getLanguagesWithWordFormSupport.js.map +1 -1
  33. package/build/helpers/getWordComplexityConfig.js +9 -15
  34. package/build/helpers/getWordComplexityConfig.js.map +1 -1
  35. package/build/helpers/getWordComplexityHelper.js +9 -15
  36. package/build/helpers/getWordComplexityHelper.js.map +1 -1
  37. package/build/helpers/htmlEntities.js +6 -11
  38. package/build/helpers/htmlEntities.js.map +1 -1
  39. package/build/helpers/includesAny.js +3 -8
  40. package/build/helpers/includesAny.js.map +1 -1
  41. package/build/helpers/index.js +30 -72
  42. package/build/helpers/index.js.map +1 -1
  43. package/build/helpers/shortlinker/Shortlinker.js +1 -8
  44. package/build/helpers/shortlinker/Shortlinker.js.map +1 -1
  45. package/build/helpers/shortlinker/index.js +1 -16
  46. package/build/helpers/shortlinker/index.js.map +1 -1
  47. package/build/helpers/shortlinker/singleton.js +5 -13
  48. package/build/helpers/shortlinker/singleton.js.map +1 -1
  49. package/build/helpers/types.js +2 -9
  50. package/build/helpers/types.js.map +1 -1
  51. package/build/index.js +25 -87
  52. package/build/index.js.map +1 -1
  53. package/build/languageProcessing/AbstractResearcher.js +88 -95
  54. package/build/languageProcessing/AbstractResearcher.js.map +1 -1
  55. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +3 -10
  56. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js.map +1 -1
  57. package/build/languageProcessing/helpers/html/getFieldsToMark.js +6 -11
  58. package/build/languageProcessing/helpers/html/getFieldsToMark.js.map +1 -1
  59. package/build/languageProcessing/helpers/html/getSubheadingTexts.js +3 -8
  60. package/build/languageProcessing/helpers/html/getSubheadingTexts.js.map +1 -1
  61. package/build/languageProcessing/helpers/html/getSubheadings.js +2 -12
  62. package/build/languageProcessing/helpers/html/getSubheadings.js.map +1 -1
  63. package/build/languageProcessing/helpers/html/html.js +9 -17
  64. package/build/languageProcessing/helpers/html/html.js.map +1 -1
  65. package/build/languageProcessing/helpers/html/htmlParser.js +3 -10
  66. package/build/languageProcessing/helpers/html/htmlParser.js.map +1 -1
  67. package/build/languageProcessing/helpers/html/matchParagraphs.js +7 -12
  68. package/build/languageProcessing/helpers/html/matchParagraphs.js.map +1 -1
  69. package/build/languageProcessing/helpers/html/normalizeHTML.js +4 -10
  70. package/build/languageProcessing/helpers/html/normalizeHTML.js.map +1 -1
  71. package/build/languageProcessing/helpers/image/getAltAttribute.js +3 -9
  72. package/build/languageProcessing/helpers/image/getAltAttribute.js.map +1 -1
  73. package/build/languageProcessing/helpers/image/getImagesInTree.js +1 -7
  74. package/build/languageProcessing/helpers/image/getImagesInTree.js.map +1 -1
  75. package/build/languageProcessing/helpers/image/imageInText.js +5 -12
  76. package/build/languageProcessing/helpers/image/imageInText.js.map +1 -1
  77. package/build/languageProcessing/helpers/index.js +5 -40
  78. package/build/languageProcessing/helpers/index.js.map +1 -1
  79. package/build/languageProcessing/helpers/language/getLanguage.js +1 -7
  80. package/build/languageProcessing/helpers/language/getLanguage.js.map +1 -1
  81. package/build/languageProcessing/helpers/link/checkNofollow.js +3 -10
  82. package/build/languageProcessing/helpers/link/checkNofollow.js.map +1 -1
  83. package/build/languageProcessing/helpers/link/getAnchorsFromText.js +1 -7
  84. package/build/languageProcessing/helpers/link/getAnchorsFromText.js.map +1 -1
  85. package/build/languageProcessing/helpers/link/getLinkType.js +7 -13
  86. package/build/languageProcessing/helpers/link/getLinkType.js.map +1 -1
  87. package/build/languageProcessing/helpers/match/findKeywordFormsInString.js +10 -17
  88. package/build/languageProcessing/helpers/match/findKeywordFormsInString.js.map +1 -1
  89. package/build/languageProcessing/helpers/match/isDoubleQuoted.js +4 -10
  90. package/build/languageProcessing/helpers/match/isDoubleQuoted.js.map +1 -1
  91. package/build/languageProcessing/helpers/match/matchTextWithArray.js +6 -12
  92. package/build/languageProcessing/helpers/match/matchTextWithArray.js.map +1 -1
  93. package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js +16 -22
  94. package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js.map +1 -1
  95. package/build/languageProcessing/helpers/match/matchTextWithWord.js +17 -23
  96. package/build/languageProcessing/helpers/match/matchTextWithWord.js.map +1 -1
  97. package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js +7 -15
  98. package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js.map +1 -1
  99. package/build/languageProcessing/helpers/match/processExactMatchRequest.js +3 -9
  100. package/build/languageProcessing/helpers/match/processExactMatchRequest.js.map +1 -1
  101. package/build/languageProcessing/helpers/morphology/baseStemmer.js +1 -7
  102. package/build/languageProcessing/helpers/morphology/baseStemmer.js.map +1 -1
  103. package/build/languageProcessing/helpers/morphology/buildFormRule.js +1 -7
  104. package/build/languageProcessing/helpers/morphology/buildFormRule.js.map +1 -1
  105. package/build/languageProcessing/helpers/morphology/buildTopicStems.js +13 -23
  106. package/build/languageProcessing/helpers/morphology/buildTopicStems.js.map +1 -1
  107. package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js +2 -9
  108. package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js.map +1 -1
  109. package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js +5 -13
  110. package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js.map +1 -1
  111. package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +1 -7
  112. package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js.map +1 -1
  113. package/build/languageProcessing/helpers/morphology/flattenSortLength.js +3 -8
  114. package/build/languageProcessing/helpers/morphology/flattenSortLength.js.map +1 -1
  115. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +12 -18
  116. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js.map +1 -1
  117. package/build/languageProcessing/helpers/morphology/regexHelpers.js +3 -11
  118. package/build/languageProcessing/helpers/morphology/regexHelpers.js.map +1 -1
  119. package/build/languageProcessing/helpers/morphology/stemHelpers.js +2 -9
  120. package/build/languageProcessing/helpers/morphology/stemHelpers.js.map +1 -1
  121. package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +1 -7
  122. package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js.map +1 -1
  123. package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +5 -11
  124. package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js.map +1 -1
  125. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +9 -15
  126. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js.map +1 -1
  127. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +9 -15
  128. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js.map +1 -1
  129. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +28 -34
  130. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js.map +1 -1
  131. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +1 -7
  132. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js.map +1 -1
  133. package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +3 -8
  134. package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js.map +1 -1
  135. package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +5 -11
  136. package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js.map +1 -1
  137. package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js +16 -28
  138. package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js.map +1 -1
  139. package/build/languageProcessing/helpers/regex/createRegexFromArray.js +10 -16
  140. package/build/languageProcessing/helpers/regex/createRegexFromArray.js.map +1 -1
  141. package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +4 -10
  142. package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js.map +1 -1
  143. package/build/languageProcessing/helpers/regex/createWordRegex.js +12 -18
  144. package/build/languageProcessing/helpers/regex/createWordRegex.js.map +1 -1
  145. package/build/languageProcessing/helpers/regex/matchStringWithRegex.js +1 -7
  146. package/build/languageProcessing/helpers/regex/matchStringWithRegex.js.map +1 -1
  147. package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +1 -7
  148. package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js.map +1 -1
  149. package/build/languageProcessing/helpers/sanitize/doubleQuotes.js +1 -7
  150. package/build/languageProcessing/helpers/sanitize/doubleQuotes.js.map +1 -1
  151. package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +3 -11
  152. package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js.map +1 -1
  153. package/build/languageProcessing/helpers/sanitize/mergeListItems.js +1 -7
  154. package/build/languageProcessing/helpers/sanitize/mergeListItems.js.map +1 -1
  155. package/build/languageProcessing/helpers/sanitize/parseSynonyms.js +5 -11
  156. package/build/languageProcessing/helpers/sanitize/parseSynonyms.js.map +1 -1
  157. package/build/languageProcessing/helpers/sanitize/quotes.js +4 -12
  158. package/build/languageProcessing/helpers/sanitize/quotes.js.map +1 -1
  159. package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js +1 -7
  160. package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js.map +1 -1
  161. package/build/languageProcessing/helpers/sanitize/removePunctuation.js +7 -13
  162. package/build/languageProcessing/helpers/sanitize/removePunctuation.js.map +1 -1
  163. package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +1 -7
  164. package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js.map +1 -1
  165. package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +1 -7
  166. package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js.map +1 -1
  167. package/build/languageProcessing/helpers/sanitize/removeURLs.js +1 -7
  168. package/build/languageProcessing/helpers/sanitize/removeURLs.js.map +1 -1
  169. package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +1 -7
  170. package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js.map +1 -1
  171. package/build/languageProcessing/helpers/sanitize/sanitizeString.js +5 -10
  172. package/build/languageProcessing/helpers/sanitize/sanitizeString.js.map +1 -1
  173. package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js +7 -16
  174. package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js.map +1 -1
  175. package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js +4 -10
  176. package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js.map +1 -1
  177. package/build/languageProcessing/helpers/sanitize/stripNumbers.js +4 -10
  178. package/build/languageProcessing/helpers/sanitize/stripNumbers.js.map +1 -1
  179. package/build/languageProcessing/helpers/sanitize/stripSpaces.js +1 -7
  180. package/build/languageProcessing/helpers/sanitize/stripSpaces.js.map +1 -1
  181. package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js +2 -10
  182. package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js.map +1 -1
  183. package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js +2 -11
  184. package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js.map +1 -1
  185. package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js +22 -29
  186. package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js.map +1 -1
  187. package/build/languageProcessing/helpers/sentence/countSentences.js +4 -10
  188. package/build/languageProcessing/helpers/sentence/countSentences.js.map +1 -1
  189. package/build/languageProcessing/helpers/sentence/getSentences.js +13 -20
  190. package/build/languageProcessing/helpers/sentence/getSentences.js.map +1 -1
  191. package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js +2 -9
  192. package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js.map +1 -1
  193. package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +4 -10
  194. package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js.map +1 -1
  195. package/build/languageProcessing/helpers/sentence/sentencesLength.js +7 -13
  196. package/build/languageProcessing/helpers/sentence/sentencesLength.js.map +1 -1
  197. package/build/languageProcessing/helpers/syllables/DeviationFragment.js +5 -11
  198. package/build/languageProcessing/helpers/syllables/DeviationFragment.js.map +1 -1
  199. package/build/languageProcessing/helpers/syllables/countSyllables.js +23 -30
  200. package/build/languageProcessing/helpers/syllables/countSyllables.js.map +1 -1
  201. package/build/languageProcessing/helpers/syllables/syllableCountIterator.js +7 -14
  202. package/build/languageProcessing/helpers/syllables/syllableCountIterator.js.map +1 -1
  203. package/build/languageProcessing/helpers/syllables/syllableCountStep.js +5 -12
  204. package/build/languageProcessing/helpers/syllables/syllableCountStep.js.map +1 -1
  205. package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js +1 -7
  206. package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js.map +1 -1
  207. package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js +4 -10
  208. package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js.map +1 -1
  209. package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js +12 -23
  210. package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js.map +1 -1
  211. package/build/languageProcessing/helpers/transliterate/transliterate.js +3 -9
  212. package/build/languageProcessing/helpers/transliterate/transliterate.js.map +1 -1
  213. package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js +3 -9
  214. package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js.map +1 -1
  215. package/build/languageProcessing/helpers/url/parseSlug.js +1 -7
  216. package/build/languageProcessing/helpers/url/parseSlug.js.map +1 -1
  217. package/build/languageProcessing/helpers/url/url.js +7 -13
  218. package/build/languageProcessing/helpers/url/url.js.map +1 -1
  219. package/build/languageProcessing/helpers/word/addWordboundary.js +1 -7
  220. package/build/languageProcessing/helpers/word/addWordboundary.js.map +1 -1
  221. package/build/languageProcessing/helpers/word/areWordsInSentence.js +4 -10
  222. package/build/languageProcessing/helpers/word/areWordsInSentence.js.map +1 -1
  223. package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js +1 -7
  224. package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js.map +1 -1
  225. package/build/languageProcessing/helpers/word/countWords.js +4 -10
  226. package/build/languageProcessing/helpers/word/countWords.js.map +1 -1
  227. package/build/languageProcessing/helpers/word/createPunctuationTokens.js +5 -10
  228. package/build/languageProcessing/helpers/word/createPunctuationTokens.js.map +1 -1
  229. package/build/languageProcessing/helpers/word/filterWordsFromArray.js +4 -9
  230. package/build/languageProcessing/helpers/word/filterWordsFromArray.js.map +1 -1
  231. package/build/languageProcessing/helpers/word/followsIndex.js +5 -10
  232. package/build/languageProcessing/helpers/word/followsIndex.js.map +1 -1
  233. package/build/languageProcessing/helpers/word/getAllWordsFromTree.js +7 -13
  234. package/build/languageProcessing/helpers/word/getAllWordsFromTree.js.map +1 -1
  235. package/build/languageProcessing/helpers/word/getWords.js +9 -19
  236. package/build/languageProcessing/helpers/word/getWords.js.map +1 -1
  237. package/build/languageProcessing/helpers/word/includesIndex.js +5 -10
  238. package/build/languageProcessing/helpers/word/includesIndex.js.map +1 -1
  239. package/build/languageProcessing/helpers/word/indices.js +14 -25
  240. package/build/languageProcessing/helpers/word/indices.js.map +1 -1
  241. package/build/languageProcessing/helpers/word/markWordsInSentences.js +23 -35
  242. package/build/languageProcessing/helpers/word/markWordsInSentences.js.map +1 -1
  243. package/build/languageProcessing/helpers/word/matchWordInSentence.js +8 -15
  244. package/build/languageProcessing/helpers/word/matchWordInSentence.js.map +1 -1
  245. package/build/languageProcessing/helpers/word/splitIntoTokens.js +3 -9
  246. package/build/languageProcessing/helpers/word/splitIntoTokens.js.map +1 -1
  247. package/build/languageProcessing/index.js +41 -282
  248. package/build/languageProcessing/index.js.map +1 -1
  249. package/build/languageProcessing/languages/_default/Researcher.js +5 -13
  250. package/build/languageProcessing/languages/_default/Researcher.js.map +1 -1
  251. package/build/languageProcessing/languages/_default/helpers/getStemmer.js +3 -9
  252. package/build/languageProcessing/languages/_default/helpers/getStemmer.js.map +1 -1
  253. package/build/languageProcessing/languages/ar/Researcher.js +19 -27
  254. package/build/languageProcessing/languages/ar/Researcher.js.map +1 -1
  255. package/build/languageProcessing/languages/ar/config/firstWordExceptions.js +1 -7
  256. package/build/languageProcessing/languages/ar/config/firstWordExceptions.js.map +1 -1
  257. package/build/languageProcessing/languages/ar/config/functionWords.js +7 -13
  258. package/build/languageProcessing/languages/ar/config/functionWords.js.map +1 -1
  259. package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +1 -7
  260. package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js.map +1 -1
  261. package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js +2 -8
  262. package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js.map +1 -1
  263. package/build/languageProcessing/languages/ar/config/transitionWords.js +4 -10
  264. package/build/languageProcessing/languages/ar/config/transitionWords.js.map +1 -1
  265. package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js +2 -7
  266. package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js.map +1 -1
  267. package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js +6 -11
  268. package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js.map +1 -1
  269. package/build/languageProcessing/languages/ar/helpers/getStemmer.js +8 -14
  270. package/build/languageProcessing/languages/ar/helpers/getStemmer.js.map +1 -1
  271. package/build/languageProcessing/languages/ar/helpers/internal/stem.js +1 -7
  272. package/build/languageProcessing/languages/ar/helpers/internal/stem.js.map +1 -1
  273. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js +5 -12
  274. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js.map +1 -1
  275. package/build/languageProcessing/languages/ca/Researcher.js +11 -19
  276. package/build/languageProcessing/languages/ca/Researcher.js.map +1 -1
  277. package/build/languageProcessing/languages/ca/config/sentenceLength.js +1 -7
  278. package/build/languageProcessing/languages/ca/config/sentenceLength.js.map +1 -1
  279. package/build/languageProcessing/languages/ca/config/transitionWords.js +4 -10
  280. package/build/languageProcessing/languages/ca/config/transitionWords.js.map +1 -1
  281. package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js +2 -7
  282. package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js.map +1 -1
  283. package/build/languageProcessing/languages/ca/helpers/getStemmer.js +3 -9
  284. package/build/languageProcessing/languages/ca/helpers/getStemmer.js.map +1 -1
  285. package/build/languageProcessing/languages/cs/Researcher.js +17 -25
  286. package/build/languageProcessing/languages/cs/Researcher.js.map +1 -1
  287. package/build/languageProcessing/languages/cs/config/firstWordExceptions.js +1 -7
  288. package/build/languageProcessing/languages/cs/config/firstWordExceptions.js.map +1 -1
  289. package/build/languageProcessing/languages/cs/config/functionWords.js +4 -10
  290. package/build/languageProcessing/languages/cs/config/functionWords.js.map +1 -1
  291. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +2 -8
  292. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  293. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +2 -8
  294. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js.map +1 -1
  295. package/build/languageProcessing/languages/cs/config/stopWords.js +1 -7
  296. package/build/languageProcessing/languages/cs/config/stopWords.js.map +1 -1
  297. package/build/languageProcessing/languages/cs/config/transitionWords.js +4 -10
  298. package/build/languageProcessing/languages/cs/config/transitionWords.js.map +1 -1
  299. package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js +2 -7
  300. package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js.map +1 -1
  301. package/build/languageProcessing/languages/cs/helpers/getClauses.js +9 -16
  302. package/build/languageProcessing/languages/cs/helpers/getClauses.js.map +1 -1
  303. package/build/languageProcessing/languages/cs/helpers/getStemmer.js +8 -14
  304. package/build/languageProcessing/languages/cs/helpers/getStemmer.js.map +1 -1
  305. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js +6 -12
  306. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js.map +1 -1
  307. package/build/languageProcessing/languages/cs/helpers/internal/stem.js +1 -7
  308. package/build/languageProcessing/languages/cs/helpers/internal/stem.js.map +1 -1
  309. package/build/languageProcessing/languages/cs/values/Clause.js +5 -12
  310. package/build/languageProcessing/languages/cs/values/Clause.js.map +1 -1
  311. package/build/languageProcessing/languages/de/Researcher.js +27 -35
  312. package/build/languageProcessing/languages/de/Researcher.js.map +1 -1
  313. package/build/languageProcessing/languages/de/config/firstWordExceptions.js +1 -7
  314. package/build/languageProcessing/languages/de/config/firstWordExceptions.js.map +1 -1
  315. package/build/languageProcessing/languages/de/config/functionWords.js +11 -19
  316. package/build/languageProcessing/languages/de/config/functionWords.js.map +1 -1
  317. package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +1 -7
  318. package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js.map +1 -1
  319. package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +4 -10
  320. package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  321. package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +1 -7
  322. package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js.map +1 -1
  323. package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +1 -7
  324. package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js.map +1 -1
  325. package/build/languageProcessing/languages/de/config/keyphraseLength.js +1 -7
  326. package/build/languageProcessing/languages/de/config/keyphraseLength.js.map +1 -1
  327. package/build/languageProcessing/languages/de/config/stopWords.js +1 -7
  328. package/build/languageProcessing/languages/de/config/stopWords.js.map +1 -1
  329. package/build/languageProcessing/languages/de/config/transitionWords.js +4 -10
  330. package/build/languageProcessing/languages/de/config/transitionWords.js.map +1 -1
  331. package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js +2 -7
  332. package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js.map +1 -1
  333. package/build/languageProcessing/languages/de/config/wordComplexity.js +1 -7
  334. package/build/languageProcessing/languages/de/config/wordComplexity.js.map +1 -1
  335. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +3 -9
  336. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js.map +1 -1
  337. package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +1 -7
  338. package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js.map +1 -1
  339. package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +3 -8
  340. package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js.map +1 -1
  341. package/build/languageProcessing/languages/de/helpers/getClauses.js +9 -16
  342. package/build/languageProcessing/languages/de/helpers/getClauses.js.map +1 -1
  343. package/build/languageProcessing/languages/de/helpers/getStemmer.js +8 -14
  344. package/build/languageProcessing/languages/de/helpers/getStemmer.js.map +1 -1
  345. package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +4 -11
  346. package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js.map +1 -1
  347. package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +4 -10
  348. package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js.map +1 -1
  349. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js +10 -16
  350. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js.map +1 -1
  351. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js +9 -16
  352. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js.map +1 -1
  353. package/build/languageProcessing/languages/de/helpers/internal/stem.js +1 -7
  354. package/build/languageProcessing/languages/de/helpers/internal/stem.js.map +1 -1
  355. package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +4 -10
  356. package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js.map +1 -1
  357. package/build/languageProcessing/languages/de/values/Clause.js +11 -18
  358. package/build/languageProcessing/languages/de/values/Clause.js.map +1 -1
  359. package/build/languageProcessing/languages/el/Researcher.js +18 -26
  360. package/build/languageProcessing/languages/el/Researcher.js.map +1 -1
  361. package/build/languageProcessing/languages/el/config/firstWordExceptions.js +1 -7
  362. package/build/languageProcessing/languages/el/config/firstWordExceptions.js.map +1 -1
  363. package/build/languageProcessing/languages/el/config/functionWords.js +4 -10
  364. package/build/languageProcessing/languages/el/config/functionWords.js.map +1 -1
  365. package/build/languageProcessing/languages/el/config/internal/auxiliaries.js +1 -7
  366. package/build/languageProcessing/languages/el/config/internal/auxiliaries.js.map +1 -1
  367. package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +1 -7
  368. package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js.map +1 -1
  369. package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +1 -7
  370. package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js.map +1 -1
  371. package/build/languageProcessing/languages/el/config/stopWords.js +1 -7
  372. package/build/languageProcessing/languages/el/config/stopWords.js.map +1 -1
  373. package/build/languageProcessing/languages/el/config/transitionWords.js +4 -10
  374. package/build/languageProcessing/languages/el/config/transitionWords.js.map +1 -1
  375. package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js +2 -7
  376. package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js.map +1 -1
  377. package/build/languageProcessing/languages/el/helpers/getClauses.js +9 -16
  378. package/build/languageProcessing/languages/el/helpers/getClauses.js.map +1 -1
  379. package/build/languageProcessing/languages/el/helpers/getStemmer.js +7 -14
  380. package/build/languageProcessing/languages/el/helpers/getStemmer.js.map +1 -1
  381. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js +3 -9
  382. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js.map +1 -1
  383. package/build/languageProcessing/languages/el/helpers/internal/stem.js +4 -13
  384. package/build/languageProcessing/languages/el/helpers/internal/stem.js.map +1 -1
  385. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js +7 -14
  386. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js.map +1 -1
  387. package/build/languageProcessing/languages/el/values/Clause.js +6 -12
  388. package/build/languageProcessing/languages/el/values/Clause.js.map +1 -1
  389. package/build/languageProcessing/languages/en/Researcher.js +21 -29
  390. package/build/languageProcessing/languages/en/Researcher.js.map +1 -1
  391. package/build/languageProcessing/languages/en/config/abbreviations.js +2 -8
  392. package/build/languageProcessing/languages/en/config/abbreviations.js.map +1 -1
  393. package/build/languageProcessing/languages/en/config/firstWordExceptions.js +1 -7
  394. package/build/languageProcessing/languages/en/config/firstWordExceptions.js.map +1 -1
  395. package/build/languageProcessing/languages/en/config/functionWords.js +11 -18
  396. package/build/languageProcessing/languages/en/config/functionWords.js.map +1 -1
  397. package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +6 -12
  398. package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  399. package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +1 -7
  400. package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js.map +1 -1
  401. package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +1 -7
  402. package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js.map +1 -1
  403. package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js +1 -7
  404. package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js.map +1 -1
  405. package/build/languageProcessing/languages/en/config/stopWords.js +1 -7
  406. package/build/languageProcessing/languages/en/config/stopWords.js.map +1 -1
  407. package/build/languageProcessing/languages/en/config/transitionWords.js +4 -10
  408. package/build/languageProcessing/languages/en/config/transitionWords.js.map +1 -1
  409. package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js +2 -7
  410. package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js.map +1 -1
  411. package/build/languageProcessing/languages/en/config/wordComplexity.js +1 -7
  412. package/build/languageProcessing/languages/en/config/wordComplexity.js.map +1 -1
  413. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +3 -9
  414. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js.map +1 -1
  415. package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +4 -10
  416. package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js.map +1 -1
  417. package/build/languageProcessing/languages/en/helpers/getClauses.js +15 -22
  418. package/build/languageProcessing/languages/en/helpers/getClauses.js.map +1 -1
  419. package/build/languageProcessing/languages/en/helpers/getStemmer.js +8 -14
  420. package/build/languageProcessing/languages/en/helpers/getStemmer.js.map +1 -1
  421. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js +21 -32
  422. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js.map +1 -1
  423. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +6 -13
  424. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js.map +1 -1
  425. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js +8 -14
  426. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js.map +1 -1
  427. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js +6 -16
  428. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js.map +1 -1
  429. package/build/languageProcessing/languages/en/values/Clause.js +10 -17
  430. package/build/languageProcessing/languages/en/values/Clause.js.map +1 -1
  431. package/build/languageProcessing/languages/es/Researcher.js +23 -31
  432. package/build/languageProcessing/languages/es/Researcher.js.map +1 -1
  433. package/build/languageProcessing/languages/es/config/firstWordExceptions.js +1 -7
  434. package/build/languageProcessing/languages/es/config/firstWordExceptions.js.map +1 -1
  435. package/build/languageProcessing/languages/es/config/functionWords.js +11 -17
  436. package/build/languageProcessing/languages/es/config/functionWords.js.map +1 -1
  437. package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +1 -7
  438. package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  439. package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +1 -7
  440. package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js.map +1 -1
  441. package/build/languageProcessing/languages/es/config/sentenceLength.js +1 -7
  442. package/build/languageProcessing/languages/es/config/sentenceLength.js.map +1 -1
  443. package/build/languageProcessing/languages/es/config/stopWords.js +1 -7
  444. package/build/languageProcessing/languages/es/config/stopWords.js.map +1 -1
  445. package/build/languageProcessing/languages/es/config/transitionWords.js +4 -10
  446. package/build/languageProcessing/languages/es/config/transitionWords.js.map +1 -1
  447. package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js +2 -7
  448. package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js.map +1 -1
  449. package/build/languageProcessing/languages/es/config/wordComplexity.js +1 -7
  450. package/build/languageProcessing/languages/es/config/wordComplexity.js.map +1 -1
  451. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +3 -9
  452. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js.map +1 -1
  453. package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +1 -7
  454. package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js.map +1 -1
  455. package/build/languageProcessing/languages/es/helpers/getClauses.js +10 -17
  456. package/build/languageProcessing/languages/es/helpers/getClauses.js.map +1 -1
  457. package/build/languageProcessing/languages/es/helpers/getStemmer.js +8 -14
  458. package/build/languageProcessing/languages/es/helpers/getStemmer.js.map +1 -1
  459. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +7 -13
  460. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js.map +1 -1
  461. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js +6 -12
  462. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js.map +1 -1
  463. package/build/languageProcessing/languages/es/helpers/internal/stem.js +5 -13
  464. package/build/languageProcessing/languages/es/helpers/internal/stem.js.map +1 -1
  465. package/build/languageProcessing/languages/es/values/Clause.js +7 -14
  466. package/build/languageProcessing/languages/es/values/Clause.js.map +1 -1
  467. package/build/languageProcessing/languages/fa/Researcher.js +19 -27
  468. package/build/languageProcessing/languages/fa/Researcher.js.map +1 -1
  469. package/build/languageProcessing/languages/fa/config/firstWordExceptions.js +1 -7
  470. package/build/languageProcessing/languages/fa/config/firstWordExceptions.js.map +1 -1
  471. package/build/languageProcessing/languages/fa/config/functionWords.js +4 -10
  472. package/build/languageProcessing/languages/fa/config/functionWords.js.map +1 -1
  473. package/build/languageProcessing/languages/fa/config/internal/participles.js +1 -7
  474. package/build/languageProcessing/languages/fa/config/internal/participles.js.map +1 -1
  475. package/build/languageProcessing/languages/fa/config/sentenceLength.js +1 -7
  476. package/build/languageProcessing/languages/fa/config/sentenceLength.js.map +1 -1
  477. package/build/languageProcessing/languages/fa/config/transitionWords.js +4 -10
  478. package/build/languageProcessing/languages/fa/config/transitionWords.js.map +1 -1
  479. package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js +2 -7
  480. package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js.map +1 -1
  481. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js +3 -9
  482. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js.map +1 -1
  483. package/build/languageProcessing/languages/fa/helpers/getStemmer.js +3 -9
  484. package/build/languageProcessing/languages/fa/helpers/getStemmer.js.map +1 -1
  485. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js +6 -12
  486. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js.map +1 -1
  487. package/build/languageProcessing/languages/fr/Researcher.js +21 -29
  488. package/build/languageProcessing/languages/fr/Researcher.js.map +1 -1
  489. package/build/languageProcessing/languages/fr/config/firstWordExceptions.js +1 -7
  490. package/build/languageProcessing/languages/fr/config/firstWordExceptions.js.map +1 -1
  491. package/build/languageProcessing/languages/fr/config/functionWords.js +11 -17
  492. package/build/languageProcessing/languages/fr/config/functionWords.js.map +1 -1
  493. package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +4 -9
  494. package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js.map +1 -1
  495. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +1 -7
  496. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  497. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +4 -9
  498. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js.map +1 -1
  499. package/build/languageProcessing/languages/fr/config/stopWords.js +1 -7
  500. package/build/languageProcessing/languages/fr/config/stopWords.js.map +1 -1
  501. package/build/languageProcessing/languages/fr/config/transitionWords.js +4 -10
  502. package/build/languageProcessing/languages/fr/config/transitionWords.js.map +1 -1
  503. package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js +2 -7
  504. package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js.map +1 -1
  505. package/build/languageProcessing/languages/fr/config/wordComplexity.js +1 -7
  506. package/build/languageProcessing/languages/fr/config/wordComplexity.js.map +1 -1
  507. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +3 -9
  508. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js.map +1 -1
  509. package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +3 -9
  510. package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js.map +1 -1
  511. package/build/languageProcessing/languages/fr/helpers/getClauses.js +10 -17
  512. package/build/languageProcessing/languages/fr/helpers/getClauses.js.map +1 -1
  513. package/build/languageProcessing/languages/fr/helpers/getStemmer.js +8 -14
  514. package/build/languageProcessing/languages/fr/helpers/getStemmer.js.map +1 -1
  515. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js +11 -16
  516. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js.map +1 -1
  517. package/build/languageProcessing/languages/fr/helpers/internal/stem.js +3 -10
  518. package/build/languageProcessing/languages/fr/helpers/internal/stem.js.map +1 -1
  519. package/build/languageProcessing/languages/fr/values/Clause.js +14 -20
  520. package/build/languageProcessing/languages/fr/values/Clause.js.map +1 -1
  521. package/build/languageProcessing/languages/he/Researcher.js +21 -29
  522. package/build/languageProcessing/languages/he/Researcher.js.map +1 -1
  523. package/build/languageProcessing/languages/he/config/firstWordExceptions.js +1 -7
  524. package/build/languageProcessing/languages/he/config/firstWordExceptions.js.map +1 -1
  525. package/build/languageProcessing/languages/he/config/functionWords.js +4 -11
  526. package/build/languageProcessing/languages/he/config/functionWords.js.map +1 -1
  527. package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js +1 -7
  528. package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js.map +1 -1
  529. package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js +1 -7
  530. package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js.map +1 -1
  531. package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js +1 -7
  532. package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js.map +1 -1
  533. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +1 -7
  534. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js.map +1 -1
  535. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +1 -7
  536. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js.map +1 -1
  537. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +1 -7
  538. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js.map +1 -1
  539. package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js +2 -8
  540. package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js.map +1 -1
  541. package/build/languageProcessing/languages/he/config/sentenceLength.js +1 -7
  542. package/build/languageProcessing/languages/he/config/sentenceLength.js.map +1 -1
  543. package/build/languageProcessing/languages/he/config/transitionWords.js +4 -10
  544. package/build/languageProcessing/languages/he/config/transitionWords.js.map +1 -1
  545. package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js +2 -7
  546. package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js.map +1 -1
  547. package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js +6 -11
  548. package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js.map +1 -1
  549. package/build/languageProcessing/languages/he/helpers/getStemmer.js +8 -14
  550. package/build/languageProcessing/languages/he/helpers/getStemmer.js.map +1 -1
  551. package/build/languageProcessing/languages/he/helpers/internal/stem.js +1 -7
  552. package/build/languageProcessing/languages/he/helpers/internal/stem.js.map +1 -1
  553. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js +10 -16
  554. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js.map +1 -1
  555. package/build/languageProcessing/languages/he/helpers/stem.js +1 -7
  556. package/build/languageProcessing/languages/he/helpers/stem.js.map +1 -1
  557. package/build/languageProcessing/languages/hu/Researcher.js +19 -27
  558. package/build/languageProcessing/languages/hu/Researcher.js.map +1 -1
  559. package/build/languageProcessing/languages/hu/config/firstWordExceptions.js +1 -7
  560. package/build/languageProcessing/languages/hu/config/firstWordExceptions.js.map +1 -1
  561. package/build/languageProcessing/languages/hu/config/functionWords.js +4 -10
  562. package/build/languageProcessing/languages/hu/config/functionWords.js.map +1 -1
  563. package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js +1 -7
  564. package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js.map +1 -1
  565. package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +3 -9
  566. package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js.map +1 -1
  567. package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +2 -7
  568. package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js.map +1 -1
  569. package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js +1 -7
  570. package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js.map +1 -1
  571. package/build/languageProcessing/languages/hu/config/internal/participles.js +2 -7
  572. package/build/languageProcessing/languages/hu/config/internal/participles.js.map +1 -1
  573. package/build/languageProcessing/languages/hu/config/stopWords.js +2 -7
  574. package/build/languageProcessing/languages/hu/config/stopWords.js.map +1 -1
  575. package/build/languageProcessing/languages/hu/config/transitionWords.js +4 -10
  576. package/build/languageProcessing/languages/hu/config/transitionWords.js.map +1 -1
  577. package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js +2 -7
  578. package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js.map +1 -1
  579. package/build/languageProcessing/languages/hu/helpers/getClauses.js +9 -16
  580. package/build/languageProcessing/languages/hu/helpers/getClauses.js.map +1 -1
  581. package/build/languageProcessing/languages/hu/helpers/getStemmer.js +8 -14
  582. package/build/languageProcessing/languages/hu/helpers/getStemmer.js.map +1 -1
  583. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js +6 -12
  584. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js.map +1 -1
  585. package/build/languageProcessing/languages/hu/helpers/internal/stem.js +1 -7
  586. package/build/languageProcessing/languages/hu/helpers/internal/stem.js.map +1 -1
  587. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js +9 -15
  588. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js.map +1 -1
  589. package/build/languageProcessing/languages/hu/values/Clause.js +8 -14
  590. package/build/languageProcessing/languages/hu/values/Clause.js.map +1 -1
  591. package/build/languageProcessing/languages/id/Researcher.js +17 -25
  592. package/build/languageProcessing/languages/id/Researcher.js.map +1 -1
  593. package/build/languageProcessing/languages/id/config/firstWordExceptions.js +1 -7
  594. package/build/languageProcessing/languages/id/config/firstWordExceptions.js.map +1 -1
  595. package/build/languageProcessing/languages/id/config/functionWords.js +8 -16
  596. package/build/languageProcessing/languages/id/config/functionWords.js.map +1 -1
  597. package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +1 -7
  598. package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js.map +1 -1
  599. package/build/languageProcessing/languages/id/config/transitionWords.js +4 -10
  600. package/build/languageProcessing/languages/id/config/transitionWords.js.map +1 -1
  601. package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js +2 -7
  602. package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js.map +1 -1
  603. package/build/languageProcessing/languages/id/helpers/getStemmer.js +8 -14
  604. package/build/languageProcessing/languages/id/helpers/getStemmer.js.map +1 -1
  605. package/build/languageProcessing/languages/id/helpers/internal/stem.js +29 -34
  606. package/build/languageProcessing/languages/id/helpers/internal/stem.js.map +1 -1
  607. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js +5 -13
  608. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js.map +1 -1
  609. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js +5 -12
  610. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js.map +1 -1
  611. package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +3 -9
  612. package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js.map +1 -1
  613. package/build/languageProcessing/languages/it/Researcher.js +23 -31
  614. package/build/languageProcessing/languages/it/Researcher.js.map +1 -1
  615. package/build/languageProcessing/languages/it/config/firstWordExceptions.js +1 -7
  616. package/build/languageProcessing/languages/it/config/firstWordExceptions.js.map +1 -1
  617. package/build/languageProcessing/languages/it/config/functionWords.js +11 -17
  618. package/build/languageProcessing/languages/it/config/functionWords.js.map +1 -1
  619. package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +1 -7
  620. package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  621. package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +1 -7
  622. package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js.map +1 -1
  623. package/build/languageProcessing/languages/it/config/sentenceLength.js +1 -7
  624. package/build/languageProcessing/languages/it/config/sentenceLength.js.map +1 -1
  625. package/build/languageProcessing/languages/it/config/stopWords.js +1 -7
  626. package/build/languageProcessing/languages/it/config/stopWords.js.map +1 -1
  627. package/build/languageProcessing/languages/it/config/transitionWords.js +4 -10
  628. package/build/languageProcessing/languages/it/config/transitionWords.js.map +1 -1
  629. package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js +1 -7
  630. package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js.map +1 -1
  631. package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +3 -9
  632. package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js.map +1 -1
  633. package/build/languageProcessing/languages/it/helpers/getClauses.js +10 -17
  634. package/build/languageProcessing/languages/it/helpers/getClauses.js.map +1 -1
  635. package/build/languageProcessing/languages/it/helpers/getStemmer.js +8 -14
  636. package/build/languageProcessing/languages/it/helpers/getStemmer.js.map +1 -1
  637. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js +6 -12
  638. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js.map +1 -1
  639. package/build/languageProcessing/languages/it/helpers/internal/stem.js +3 -9
  640. package/build/languageProcessing/languages/it/helpers/internal/stem.js.map +1 -1
  641. package/build/languageProcessing/languages/it/values/Clause.js +7 -14
  642. package/build/languageProcessing/languages/it/values/Clause.js.map +1 -1
  643. package/build/languageProcessing/languages/ja/Researcher.js +51 -59
  644. package/build/languageProcessing/languages/ja/Researcher.js.map +1 -1
  645. package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +1 -7
  646. package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js.map +1 -1
  647. package/build/languageProcessing/languages/ja/config/firstWordExceptions.js +1 -7
  648. package/build/languageProcessing/languages/ja/config/firstWordExceptions.js.map +1 -1
  649. package/build/languageProcessing/languages/ja/config/functionWords.js +1 -7
  650. package/build/languageProcessing/languages/ja/config/functionWords.js.map +1 -1
  651. package/build/languageProcessing/languages/ja/config/keyphraseLength.js +1 -7
  652. package/build/languageProcessing/languages/ja/config/keyphraseLength.js.map +1 -1
  653. package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js +1 -7
  654. package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js.map +1 -1
  655. package/build/languageProcessing/languages/ja/config/paragraphLength.js +1 -7
  656. package/build/languageProcessing/languages/ja/config/paragraphLength.js.map +1 -1
  657. package/build/languageProcessing/languages/ja/config/sentenceLength.js +1 -7
  658. package/build/languageProcessing/languages/ja/config/sentenceLength.js.map +1 -1
  659. package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js +1 -7
  660. package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js.map +1 -1
  661. package/build/languageProcessing/languages/ja/config/textLength.js +1 -7
  662. package/build/languageProcessing/languages/ja/config/textLength.js.map +1 -1
  663. package/build/languageProcessing/languages/ja/config/topicLength.js +1 -7
  664. package/build/languageProcessing/languages/ja/config/topicLength.js.map +1 -1
  665. package/build/languageProcessing/languages/ja/config/transitionWords.js +2 -7
  666. package/build/languageProcessing/languages/ja/config/transitionWords.js.map +1 -1
  667. package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +16 -22
  668. package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js.map +1 -1
  669. package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +5 -11
  670. package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js.map +1 -1
  671. package/build/languageProcessing/languages/ja/customResearches/getWordForms.js +11 -17
  672. package/build/languageProcessing/languages/ja/customResearches/getWordForms.js.map +1 -1
  673. package/build/languageProcessing/languages/ja/customResearches/textLength.js +3 -9
  674. package/build/languageProcessing/languages/ja/customResearches/textLength.js.map +1 -1
  675. package/build/languageProcessing/languages/ja/helpers/countCharacters.js +6 -12
  676. package/build/languageProcessing/languages/ja/helpers/countCharacters.js.map +1 -1
  677. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js +8 -14
  678. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js.map +1 -1
  679. package/build/languageProcessing/languages/ja/helpers/getContentWords.js +5 -11
  680. package/build/languageProcessing/languages/ja/helpers/getContentWords.js.map +1 -1
  681. package/build/languageProcessing/languages/ja/helpers/getWords.js +8 -15
  682. package/build/languageProcessing/languages/ja/helpers/getWords.js.map +1 -1
  683. package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +6 -13
  684. package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js.map +1 -1
  685. package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js +4 -9
  686. package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js.map +1 -1
  687. package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js +3 -9
  688. package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js.map +1 -1
  689. package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js +7 -13
  690. package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js.map +1 -1
  691. package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js +3 -9
  692. package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js.map +1 -1
  693. package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +4 -10
  694. package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js.map +1 -1
  695. package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +5 -11
  696. package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js.map +1 -1
  697. package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +1 -7
  698. package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js.map +1 -1
  699. package/build/languageProcessing/languages/nb/Researcher.js +17 -25
  700. package/build/languageProcessing/languages/nb/Researcher.js.map +1 -1
  701. package/build/languageProcessing/languages/nb/config/firstWordExceptions.js +1 -7
  702. package/build/languageProcessing/languages/nb/config/firstWordExceptions.js.map +1 -1
  703. package/build/languageProcessing/languages/nb/config/functionWords.js +5 -11
  704. package/build/languageProcessing/languages/nb/config/functionWords.js.map +1 -1
  705. package/build/languageProcessing/languages/nb/config/internal/participles.js +2 -7
  706. package/build/languageProcessing/languages/nb/config/internal/participles.js.map +1 -1
  707. package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +1 -7
  708. package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  709. package/build/languageProcessing/languages/nb/config/stopWords.js +1 -7
  710. package/build/languageProcessing/languages/nb/config/stopWords.js.map +1 -1
  711. package/build/languageProcessing/languages/nb/config/transitionWords.js +4 -10
  712. package/build/languageProcessing/languages/nb/config/transitionWords.js.map +1 -1
  713. package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js +2 -7
  714. package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js.map +1 -1
  715. package/build/languageProcessing/languages/nb/helpers/getClauses.js +11 -18
  716. package/build/languageProcessing/languages/nb/helpers/getClauses.js.map +1 -1
  717. package/build/languageProcessing/languages/nb/helpers/getStemmer.js +8 -14
  718. package/build/languageProcessing/languages/nb/helpers/getStemmer.js.map +1 -1
  719. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js +8 -14
  720. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js.map +1 -1
  721. package/build/languageProcessing/languages/nb/helpers/internal/stem.js +1 -7
  722. package/build/languageProcessing/languages/nb/helpers/internal/stem.js.map +1 -1
  723. package/build/languageProcessing/languages/nb/values/Clause.js +8 -14
  724. package/build/languageProcessing/languages/nb/values/Clause.js.map +1 -1
  725. package/build/languageProcessing/languages/nl/Researcher.js +23 -31
  726. package/build/languageProcessing/languages/nl/Researcher.js.map +1 -1
  727. package/build/languageProcessing/languages/nl/config/firstWordExceptions.js +1 -7
  728. package/build/languageProcessing/languages/nl/config/firstWordExceptions.js.map +1 -1
  729. package/build/languageProcessing/languages/nl/config/functionWords.js +10 -16
  730. package/build/languageProcessing/languages/nl/config/functionWords.js.map +1 -1
  731. package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js +1 -7
  732. package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js.map +1 -1
  733. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +1 -7
  734. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  735. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +1 -7
  736. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js.map +1 -1
  737. package/build/languageProcessing/languages/nl/config/keyphraseLength.js +1 -7
  738. package/build/languageProcessing/languages/nl/config/keyphraseLength.js.map +1 -1
  739. package/build/languageProcessing/languages/nl/config/stopWords.js +1 -7
  740. package/build/languageProcessing/languages/nl/config/stopWords.js.map +1 -1
  741. package/build/languageProcessing/languages/nl/config/transitionWords.js +4 -10
  742. package/build/languageProcessing/languages/nl/config/transitionWords.js.map +1 -1
  743. package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js +1 -7
  744. package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js.map +1 -1
  745. package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +3 -9
  746. package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js.map +1 -1
  747. package/build/languageProcessing/languages/nl/helpers/getClauses.js +9 -16
  748. package/build/languageProcessing/languages/nl/helpers/getClauses.js.map +1 -1
  749. package/build/languageProcessing/languages/nl/helpers/getStemmer.js +8 -14
  750. package/build/languageProcessing/languages/nl/helpers/getStemmer.js.map +1 -1
  751. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +7 -13
  752. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js.map +1 -1
  753. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +8 -14
  754. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js.map +1 -1
  755. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +10 -15
  756. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js.map +1 -1
  757. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js +10 -16
  758. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js.map +1 -1
  759. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js +7 -13
  760. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js.map +1 -1
  761. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +7 -12
  762. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js.map +1 -1
  763. package/build/languageProcessing/languages/nl/helpers/internal/stem.js +17 -23
  764. package/build/languageProcessing/languages/nl/helpers/internal/stem.js.map +1 -1
  765. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +4 -11
  766. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js.map +1 -1
  767. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +8 -14
  768. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js.map +1 -1
  769. package/build/languageProcessing/languages/nl/values/Clause.js +10 -16
  770. package/build/languageProcessing/languages/nl/values/Clause.js.map +1 -1
  771. package/build/languageProcessing/languages/pl/Researcher.js +19 -27
  772. package/build/languageProcessing/languages/pl/Researcher.js.map +1 -1
  773. package/build/languageProcessing/languages/pl/config/firstWordExceptions.js +1 -7
  774. package/build/languageProcessing/languages/pl/config/firstWordExceptions.js.map +1 -1
  775. package/build/languageProcessing/languages/pl/config/functionWords.js +9 -16
  776. package/build/languageProcessing/languages/pl/config/functionWords.js.map +1 -1
  777. package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js +1 -7
  778. package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js.map +1 -1
  779. package/build/languageProcessing/languages/pl/config/internal/participles.js +1 -7
  780. package/build/languageProcessing/languages/pl/config/internal/participles.js.map +1 -1
  781. package/build/languageProcessing/languages/pl/config/sentenceLength.js +1 -7
  782. package/build/languageProcessing/languages/pl/config/sentenceLength.js.map +1 -1
  783. package/build/languageProcessing/languages/pl/config/stopWords.js +1 -7
  784. package/build/languageProcessing/languages/pl/config/stopWords.js.map +1 -1
  785. package/build/languageProcessing/languages/pl/config/transitionWords.js +4 -10
  786. package/build/languageProcessing/languages/pl/config/transitionWords.js.map +1 -1
  787. package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js +2 -7
  788. package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js.map +1 -1
  789. package/build/languageProcessing/languages/pl/helpers/getClauses.js +9 -16
  790. package/build/languageProcessing/languages/pl/helpers/getClauses.js.map +1 -1
  791. package/build/languageProcessing/languages/pl/helpers/getStemmer.js +8 -14
  792. package/build/languageProcessing/languages/pl/helpers/getStemmer.js.map +1 -1
  793. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js +7 -13
  794. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js.map +1 -1
  795. package/build/languageProcessing/languages/pl/helpers/internal/stem.js +1 -7
  796. package/build/languageProcessing/languages/pl/helpers/internal/stem.js.map +1 -1
  797. package/build/languageProcessing/languages/pl/values/Clause.js +8 -14
  798. package/build/languageProcessing/languages/pl/values/Clause.js.map +1 -1
  799. package/build/languageProcessing/languages/pt/Researcher.js +23 -31
  800. package/build/languageProcessing/languages/pt/Researcher.js.map +1 -1
  801. package/build/languageProcessing/languages/pt/config/firstWordExceptions.js +1 -7
  802. package/build/languageProcessing/languages/pt/config/firstWordExceptions.js.map +1 -1
  803. package/build/languageProcessing/languages/pt/config/functionWords.js +10 -16
  804. package/build/languageProcessing/languages/pt/config/functionWords.js.map +1 -1
  805. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +1 -7
  806. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  807. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +1 -7
  808. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js.map +1 -1
  809. package/build/languageProcessing/languages/pt/config/sentenceLength.js +1 -7
  810. package/build/languageProcessing/languages/pt/config/sentenceLength.js.map +1 -1
  811. package/build/languageProcessing/languages/pt/config/stopWords.js +1 -7
  812. package/build/languageProcessing/languages/pt/config/stopWords.js.map +1 -1
  813. package/build/languageProcessing/languages/pt/config/transitionWords.js +4 -10
  814. package/build/languageProcessing/languages/pt/config/transitionWords.js.map +1 -1
  815. package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js +1 -7
  816. package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js.map +1 -1
  817. package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +3 -9
  818. package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js.map +1 -1
  819. package/build/languageProcessing/languages/pt/helpers/getClauses.js +10 -17
  820. package/build/languageProcessing/languages/pt/helpers/getClauses.js.map +1 -1
  821. package/build/languageProcessing/languages/pt/helpers/getStemmer.js +8 -14
  822. package/build/languageProcessing/languages/pt/helpers/getStemmer.js.map +1 -1
  823. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js +6 -12
  824. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js.map +1 -1
  825. package/build/languageProcessing/languages/pt/helpers/internal/stem.js +3 -9
  826. package/build/languageProcessing/languages/pt/helpers/internal/stem.js.map +1 -1
  827. package/build/languageProcessing/languages/pt/values/Clause.js +7 -14
  828. package/build/languageProcessing/languages/pt/values/Clause.js.map +1 -1
  829. package/build/languageProcessing/languages/ru/Researcher.js +23 -31
  830. package/build/languageProcessing/languages/ru/Researcher.js.map +1 -1
  831. package/build/languageProcessing/languages/ru/config/firstWordExceptions.js +1 -7
  832. package/build/languageProcessing/languages/ru/config/firstWordExceptions.js.map +1 -1
  833. package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +1 -7
  834. package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js.map +1 -1
  835. package/build/languageProcessing/languages/ru/config/functionWords.js +8 -14
  836. package/build/languageProcessing/languages/ru/config/functionWords.js.map +1 -1
  837. package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +2 -8
  838. package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js.map +1 -1
  839. package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +1 -7
  840. package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js.map +1 -1
  841. package/build/languageProcessing/languages/ru/config/sentenceLength.js +1 -7
  842. package/build/languageProcessing/languages/ru/config/sentenceLength.js.map +1 -1
  843. package/build/languageProcessing/languages/ru/config/transitionWords.js +4 -10
  844. package/build/languageProcessing/languages/ru/config/transitionWords.js.map +1 -1
  845. package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js +2 -7
  846. package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js.map +1 -1
  847. package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +3 -9
  848. package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js.map +1 -1
  849. package/build/languageProcessing/languages/ru/helpers/getStemmer.js +8 -14
  850. package/build/languageProcessing/languages/ru/helpers/getStemmer.js.map +1 -1
  851. package/build/languageProcessing/languages/ru/helpers/internal/stem.js +1 -7
  852. package/build/languageProcessing/languages/ru/helpers/internal/stem.js.map +1 -1
  853. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js +6 -12
  854. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js.map +1 -1
  855. package/build/languageProcessing/languages/sk/Researcher.js +17 -25
  856. package/build/languageProcessing/languages/sk/Researcher.js.map +1 -1
  857. package/build/languageProcessing/languages/sk/config/firstWordExceptions.js +1 -7
  858. package/build/languageProcessing/languages/sk/config/firstWordExceptions.js.map +1 -1
  859. package/build/languageProcessing/languages/sk/config/functionWords.js +5 -11
  860. package/build/languageProcessing/languages/sk/config/functionWords.js.map +1 -1
  861. package/build/languageProcessing/languages/sk/config/internal/nonPassives.js +1 -7
  862. package/build/languageProcessing/languages/sk/config/internal/nonPassives.js.map +1 -1
  863. package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +2 -8
  864. package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  865. package/build/languageProcessing/languages/sk/config/stopWords.js +1 -7
  866. package/build/languageProcessing/languages/sk/config/stopWords.js.map +1 -1
  867. package/build/languageProcessing/languages/sk/config/transitionWords.js +4 -10
  868. package/build/languageProcessing/languages/sk/config/transitionWords.js.map +1 -1
  869. package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js +2 -7
  870. package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js.map +1 -1
  871. package/build/languageProcessing/languages/sk/helpers/getClauses.js +9 -16
  872. package/build/languageProcessing/languages/sk/helpers/getClauses.js.map +1 -1
  873. package/build/languageProcessing/languages/sk/helpers/getStemmer.js +8 -14
  874. package/build/languageProcessing/languages/sk/helpers/getStemmer.js.map +1 -1
  875. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js +3 -9
  876. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js.map +1 -1
  877. package/build/languageProcessing/languages/sk/helpers/internal/stem.js +1 -7
  878. package/build/languageProcessing/languages/sk/helpers/internal/stem.js.map +1 -1
  879. package/build/languageProcessing/languages/sk/values/Clause.js +8 -14
  880. package/build/languageProcessing/languages/sk/values/Clause.js.map +1 -1
  881. package/build/languageProcessing/languages/sv/Researcher.js +17 -25
  882. package/build/languageProcessing/languages/sv/Researcher.js.map +1 -1
  883. package/build/languageProcessing/languages/sv/config/firstWordExceptions.js +1 -7
  884. package/build/languageProcessing/languages/sv/config/firstWordExceptions.js.map +1 -1
  885. package/build/languageProcessing/languages/sv/config/functionWords.js +7 -13
  886. package/build/languageProcessing/languages/sv/config/functionWords.js.map +1 -1
  887. package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js +2 -7
  888. package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js.map +1 -1
  889. package/build/languageProcessing/languages/sv/config/keyphraseLength.js +1 -7
  890. package/build/languageProcessing/languages/sv/config/keyphraseLength.js.map +1 -1
  891. package/build/languageProcessing/languages/sv/config/transitionWords.js +4 -10
  892. package/build/languageProcessing/languages/sv/config/transitionWords.js.map +1 -1
  893. package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js +2 -7
  894. package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js.map +1 -1
  895. package/build/languageProcessing/languages/sv/helpers/getStemmer.js +8 -14
  896. package/build/languageProcessing/languages/sv/helpers/getStemmer.js.map +1 -1
  897. package/build/languageProcessing/languages/sv/helpers/internal/stem.js +1 -7
  898. package/build/languageProcessing/languages/sv/helpers/internal/stem.js.map +1 -1
  899. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js +6 -12
  900. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js.map +1 -1
  901. package/build/languageProcessing/languages/tr/Researcher.js +17 -25
  902. package/build/languageProcessing/languages/tr/Researcher.js.map +1 -1
  903. package/build/languageProcessing/languages/tr/config/firstWordExceptions.js +1 -7
  904. package/build/languageProcessing/languages/tr/config/firstWordExceptions.js.map +1 -1
  905. package/build/languageProcessing/languages/tr/config/functionWords.js +4 -10
  906. package/build/languageProcessing/languages/tr/config/functionWords.js.map +1 -1
  907. package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +3 -8
  908. package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js.map +1 -1
  909. package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js +1 -7
  910. package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js.map +1 -1
  911. package/build/languageProcessing/languages/tr/config/sentenceLength.js +1 -7
  912. package/build/languageProcessing/languages/tr/config/sentenceLength.js.map +1 -1
  913. package/build/languageProcessing/languages/tr/config/transitionWords.js +4 -10
  914. package/build/languageProcessing/languages/tr/config/transitionWords.js.map +1 -1
  915. package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js +2 -7
  916. package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js.map +1 -1
  917. package/build/languageProcessing/languages/tr/helpers/getStemmer.js +8 -14
  918. package/build/languageProcessing/languages/tr/helpers/getStemmer.js.map +1 -1
  919. package/build/languageProcessing/languages/tr/helpers/internal/stem.js +3 -9
  920. package/build/languageProcessing/languages/tr/helpers/internal/stem.js.map +1 -1
  921. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js +9 -15
  922. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js.map +1 -1
  923. package/build/languageProcessing/researches/altTagCount.js +10 -16
  924. package/build/languageProcessing/researches/altTagCount.js.map +1 -1
  925. package/build/languageProcessing/researches/checkRelatedKeywords.js +72 -0
  926. package/build/languageProcessing/researches/checkRelatedKeywords.js.map +1 -0
  927. package/build/languageProcessing/researches/countSentencesFromText.js +9 -15
  928. package/build/languageProcessing/researches/countSentencesFromText.js.map +1 -1
  929. package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js +19 -26
  930. package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js.map +1 -1
  931. package/build/languageProcessing/researches/findKeywordInFirstParagraph.js +17 -23
  932. package/build/languageProcessing/researches/findKeywordInFirstParagraph.js.map +1 -1
  933. package/build/languageProcessing/researches/findTransitionWords.js +16 -23
  934. package/build/languageProcessing/researches/findTransitionWords.js.map +1 -1
  935. package/build/languageProcessing/researches/functionWordsInKeyphrase.js +10 -16
  936. package/build/languageProcessing/researches/functionWordsInKeyphrase.js.map +1 -1
  937. package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js +21 -28
  938. package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js.map +1 -1
  939. package/build/languageProcessing/researches/getFleschReadingScore.js +18 -25
  940. package/build/languageProcessing/researches/getFleschReadingScore.js.map +1 -1
  941. package/build/languageProcessing/researches/getKeywordDensity.js +7 -14
  942. package/build/languageProcessing/researches/getKeywordDensity.js.map +1 -1
  943. package/build/languageProcessing/researches/getLinkStatistics.js +7 -13
  944. package/build/languageProcessing/researches/getLinkStatistics.js.map +1 -1
  945. package/build/languageProcessing/researches/getLinks.js +7 -13
  946. package/build/languageProcessing/researches/getLinks.js.map +1 -1
  947. package/build/languageProcessing/researches/getLongCenterAlignedTexts.js +1 -7
  948. package/build/languageProcessing/researches/getLongCenterAlignedTexts.js.map +1 -1
  949. package/build/languageProcessing/researches/getParagraphLength.js +15 -21
  950. package/build/languageProcessing/researches/getParagraphLength.js.map +1 -1
  951. package/build/languageProcessing/researches/getParagraphs.js +4 -9
  952. package/build/languageProcessing/researches/getParagraphs.js.map +1 -1
  953. package/build/languageProcessing/researches/getPassiveVoiceResult.js +21 -30
  954. package/build/languageProcessing/researches/getPassiveVoiceResult.js.map +1 -1
  955. package/build/languageProcessing/researches/getProminentWordsForInsights.js +12 -18
  956. package/build/languageProcessing/researches/getProminentWordsForInsights.js.map +1 -1
  957. package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js +20 -26
  958. package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js.map +1 -1
  959. package/build/languageProcessing/researches/getSentenceBeginnings.js +30 -36
  960. package/build/languageProcessing/researches/getSentenceBeginnings.js.map +1 -1
  961. package/build/languageProcessing/researches/getSubheadingTextLengths.js +12 -18
  962. package/build/languageProcessing/researches/getSubheadingTextLengths.js.map +1 -1
  963. package/build/languageProcessing/researches/getWordForms.js +13 -19
  964. package/build/languageProcessing/researches/getWordForms.js.map +1 -1
  965. package/build/languageProcessing/researches/h1s.js +1 -7
  966. package/build/languageProcessing/researches/h1s.js.map +1 -1
  967. package/build/languageProcessing/researches/imageCount.js +4 -10
  968. package/build/languageProcessing/researches/imageCount.js.map +1 -1
  969. package/build/languageProcessing/researches/index.js +4 -27
  970. package/build/languageProcessing/researches/index.js.map +1 -1
  971. package/build/languageProcessing/researches/keyphraseDistribution.js +22 -32
  972. package/build/languageProcessing/researches/keyphraseDistribution.js.map +1 -1
  973. package/build/languageProcessing/researches/keyphraseLength.js +1 -7
  974. package/build/languageProcessing/researches/keyphraseLength.js.map +1 -1
  975. package/build/languageProcessing/researches/keywordCount.js +30 -39
  976. package/build/languageProcessing/researches/keywordCount.js.map +1 -1
  977. package/build/languageProcessing/researches/keywordCountInUrl.js +8 -16
  978. package/build/languageProcessing/researches/keywordCountInUrl.js.map +1 -1
  979. package/build/languageProcessing/researches/matchKeywordInSubheadings.js +15 -20
  980. package/build/languageProcessing/researches/matchKeywordInSubheadings.js.map +1 -1
  981. package/build/languageProcessing/researches/metaDescriptionKeyword.js +6 -12
  982. package/build/languageProcessing/researches/metaDescriptionKeyword.js.map +1 -1
  983. package/build/languageProcessing/researches/metaDescriptionLength.js +3 -9
  984. package/build/languageProcessing/researches/metaDescriptionLength.js.map +1 -1
  985. package/build/languageProcessing/researches/pageTitleWidth.js +1 -7
  986. package/build/languageProcessing/researches/pageTitleWidth.js.map +1 -1
  987. package/build/languageProcessing/researches/readingTime.js +7 -13
  988. package/build/languageProcessing/researches/readingTime.js.map +1 -1
  989. package/build/languageProcessing/researches/sentences.js +7 -13
  990. package/build/languageProcessing/researches/sentences.js.map +1 -1
  991. package/build/languageProcessing/researches/videoCount.js +1 -7
  992. package/build/languageProcessing/researches/videoCount.js.map +1 -1
  993. package/build/languageProcessing/researches/wordComplexity.js +15 -21
  994. package/build/languageProcessing/researches/wordComplexity.js.map +1 -1
  995. package/build/languageProcessing/researches/wordCountInText.js +10 -15
  996. package/build/languageProcessing/researches/wordCountInText.js.map +1 -1
  997. package/build/languageProcessing/values/Clause.js +1 -7
  998. package/build/languageProcessing/values/Clause.js.map +1 -1
  999. package/build/languageProcessing/values/ProminentWord.js +1 -7
  1000. package/build/languageProcessing/values/ProminentWord.js.map +1 -1
  1001. package/build/languageProcessing/values/Sentence.js +1 -7
  1002. package/build/languageProcessing/values/Sentence.js.map +1 -1
  1003. package/build/languageProcessing/values/index.js +4 -27
  1004. package/build/languageProcessing/values/index.js.map +1 -1
  1005. package/build/markers/addMark.js +1 -7
  1006. package/build/markers/addMark.js.map +1 -1
  1007. package/build/markers/addMarkSingleWord.js +7 -12
  1008. package/build/markers/addMarkSingleWord.js.map +1 -1
  1009. package/build/markers/index.js +3 -20
  1010. package/build/markers/index.js.map +1 -1
  1011. package/build/markers/removeDuplicateMarks.js +3 -8
  1012. package/build/markers/removeDuplicateMarks.js.map +1 -1
  1013. package/build/markers/removeMarks.js +1 -7
  1014. package/build/markers/removeMarks.js.map +1 -1
  1015. package/build/parse/build/build.js +17 -25
  1016. package/build/parse/build/build.js.map +1 -1
  1017. package/build/parse/build/index.js +7 -12
  1018. package/build/parse/build/index.js.map +1 -1
  1019. package/build/parse/build/private/adapt.js +15 -21
  1020. package/build/parse/build/private/adapt.js.map +1 -1
  1021. package/build/parse/build/private/adaptAttributes.js +3 -9
  1022. package/build/parse/build/private/adaptAttributes.js.map +1 -1
  1023. package/build/parse/build/private/alwaysFilterElements.js +9 -14
  1024. package/build/parse/build/private/alwaysFilterElements.js.map +1 -1
  1025. package/build/parse/build/private/combineIntoImplicitParagraphs.js +12 -18
  1026. package/build/parse/build/private/combineIntoImplicitParagraphs.js.map +1 -1
  1027. package/build/parse/build/private/filterBeforeTokenizing.js +5 -10
  1028. package/build/parse/build/private/filterBeforeTokenizing.js.map +1 -1
  1029. package/build/parse/build/private/filterHelpers.js +3 -11
  1030. package/build/parse/build/private/filterHelpers.js.map +1 -1
  1031. package/build/parse/build/private/filterTree.js +3 -8
  1032. package/build/parse/build/private/filterTree.js.map +1 -1
  1033. package/build/parse/build/private/getTextElementPositions.js +5 -10
  1034. package/build/parse/build/private/getTextElementPositions.js.map +1 -1
  1035. package/build/parse/build/private/helpers/parseClassAttribute.js +1 -7
  1036. package/build/parse/build/private/helpers/parseClassAttribute.js.map +1 -1
  1037. package/build/parse/build/private/isPhrasingContent.js +1 -7
  1038. package/build/parse/build/private/isPhrasingContent.js.map +1 -1
  1039. package/build/parse/build/private/parseBlocks.js +4 -11
  1040. package/build/parse/build/private/parseBlocks.js.map +1 -1
  1041. package/build/parse/build/private/tokenize.js +8 -14
  1042. package/build/parse/build/private/tokenize.js.map +1 -1
  1043. package/build/parse/language/LanguageProcessor.js +8 -15
  1044. package/build/parse/language/LanguageProcessor.js.map +1 -1
  1045. package/build/parse/structure/Heading.js +3 -9
  1046. package/build/parse/structure/Heading.js.map +1 -1
  1047. package/build/parse/structure/Node.js +8 -14
  1048. package/build/parse/structure/Node.js.map +1 -1
  1049. package/build/parse/structure/Paragraph.js +3 -9
  1050. package/build/parse/structure/Paragraph.js.map +1 -1
  1051. package/build/parse/structure/Sentence.js +1 -7
  1052. package/build/parse/structure/Sentence.js.map +1 -1
  1053. package/build/parse/structure/SourceCodeLocation.js +1 -7
  1054. package/build/parse/structure/SourceCodeLocation.js.map +1 -1
  1055. package/build/parse/structure/Text.js +3 -10
  1056. package/build/parse/structure/Text.js.map +1 -1
  1057. package/build/parse/structure/Token.js +3 -8
  1058. package/build/parse/structure/Token.js.map +1 -1
  1059. package/build/parse/structure/index.js +10 -33
  1060. package/build/parse/structure/index.js.map +1 -1
  1061. package/build/parse/traverse/findAllInTree.js +1 -7
  1062. package/build/parse/traverse/findAllInTree.js.map +1 -1
  1063. package/build/parse/traverse/index.js +8 -19
  1064. package/build/parse/traverse/index.js.map +1 -1
  1065. package/build/parse/traverse/innerText.js +3 -8
  1066. package/build/parse/traverse/innerText.js.map +1 -1
  1067. package/build/parsedPaper/ParsedPaper.js +1 -8
  1068. package/build/parsedPaper/ParsedPaper.js.map +1 -1
  1069. package/build/parsedPaper/assess/TreeAssessor.js +6 -12
  1070. package/build/parsedPaper/assess/TreeAssessor.js.map +1 -1
  1071. package/build/parsedPaper/assess/assessmentListFactories.js +1 -11
  1072. package/build/parsedPaper/assess/assessmentListFactories.js.map +1 -1
  1073. package/build/parsedPaper/assess/assessments/Assessment.js +15 -9
  1074. package/build/parsedPaper/assess/assessments/Assessment.js.map +1 -1
  1075. package/build/parsedPaper/assess/assessments/index.js +6 -13
  1076. package/build/parsedPaper/assess/assessments/index.js.map +1 -1
  1077. package/build/parsedPaper/assess/assessorFactories.js +16 -24
  1078. package/build/parsedPaper/assess/assessorFactories.js.map +1 -1
  1079. package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js +1 -9
  1080. package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js.map +1 -1
  1081. package/build/parsedPaper/assess/cornerstone/index.js +2 -10
  1082. package/build/parsedPaper/assess/cornerstone/index.js.map +1 -1
  1083. package/build/parsedPaper/assess/index.js +13 -29
  1084. package/build/parsedPaper/assess/index.js.map +1 -1
  1085. package/build/parsedPaper/build/PaperParser.js +5 -11
  1086. package/build/parsedPaper/build/PaperParser.js.map +1 -1
  1087. package/build/parsedPaper/build/linguisticParsing/Sentence.js +1 -7
  1088. package/build/parsedPaper/build/linguisticParsing/Sentence.js.map +1 -1
  1089. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +16 -23
  1090. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js.map +1 -1
  1091. package/build/parsedPaper/build/linguisticParsing/parseText.js +3 -9
  1092. package/build/parsedPaper/build/linguisticParsing/parseText.js.map +1 -1
  1093. package/build/parsedPaper/build/tree/TreeBuilder.js +3 -9
  1094. package/build/parsedPaper/build/tree/TreeBuilder.js.map +1 -1
  1095. package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js +5 -10
  1096. package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js.map +1 -1
  1097. package/build/parsedPaper/build/tree/cleanup/getElementContent.js +1 -7
  1098. package/build/parsedPaper/build/tree/cleanup/getElementContent.js.map +1 -1
  1099. package/build/parsedPaper/build/tree/cleanup/postParsing.js +5 -11
  1100. package/build/parsedPaper/build/tree/cleanup/postParsing.js.map +1 -1
  1101. package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js +21 -27
  1102. package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js.map +1 -1
  1103. package/build/parsedPaper/build/tree/html/buildTree.js +7 -13
  1104. package/build/parsedPaper/build/tree/html/buildTree.js.map +1 -1
  1105. package/build/parsedPaper/build/tree/html/htmlConstants.js +4 -9
  1106. package/build/parsedPaper/build/tree/html/htmlConstants.js.map +1 -1
  1107. package/build/parsedPaper/build/tree/index.js +3 -8
  1108. package/build/parsedPaper/build/tree/index.js.map +1 -1
  1109. package/build/parsedPaper/build/tree/metadata/buildTree.js +12 -18
  1110. package/build/parsedPaper/build/tree/metadata/buildTree.js.map +1 -1
  1111. package/build/parsedPaper/research/TreeResearcher.js +4 -9
  1112. package/build/parsedPaper/research/TreeResearcher.js.map +1 -1
  1113. package/build/parsedPaper/research/index.js +10 -12
  1114. package/build/parsedPaper/research/index.js.map +1 -1
  1115. package/build/parsedPaper/research/researches/Headings.js +5 -11
  1116. package/build/parsedPaper/research/researches/Headings.js.map +1 -1
  1117. package/build/parsedPaper/research/researches/LinkStatistics.js +6 -12
  1118. package/build/parsedPaper/research/researches/LinkStatistics.js.map +1 -1
  1119. package/build/parsedPaper/research/researches/Research.js +5 -10
  1120. package/build/parsedPaper/research/researches/Research.js.map +1 -1
  1121. package/build/parsedPaper/research/researches/index.js +1 -13
  1122. package/build/parsedPaper/research/researches/index.js.map +1 -1
  1123. package/build/parsedPaper/structure/tree/FormattingElement.js +3 -9
  1124. package/build/parsedPaper/structure/tree/FormattingElement.js.map +1 -1
  1125. package/build/parsedPaper/structure/tree/SourceCodeLocation.js +1 -7
  1126. package/build/parsedPaper/structure/tree/SourceCodeLocation.js.map +1 -1
  1127. package/build/parsedPaper/structure/tree/TextContainer.js +5 -10
  1128. package/build/parsedPaper/structure/tree/TextContainer.js.map +1 -1
  1129. package/build/parsedPaper/structure/tree/index.js +9 -74
  1130. package/build/parsedPaper/structure/tree/index.js.map +1 -1
  1131. package/build/parsedPaper/structure/tree/nodes/Heading.js +3 -9
  1132. package/build/parsedPaper/structure/tree/nodes/Heading.js.map +1 -1
  1133. package/build/parsedPaper/structure/tree/nodes/LeafNode.js +5 -12
  1134. package/build/parsedPaper/structure/tree/nodes/LeafNode.js.map +1 -1
  1135. package/build/parsedPaper/structure/tree/nodes/List.js +5 -11
  1136. package/build/parsedPaper/structure/tree/nodes/List.js.map +1 -1
  1137. package/build/parsedPaper/structure/tree/nodes/ListItem.js +3 -10
  1138. package/build/parsedPaper/structure/tree/nodes/ListItem.js.map +1 -1
  1139. package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +3 -9
  1140. package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js.map +1 -1
  1141. package/build/parsedPaper/structure/tree/nodes/MetadataText.js +3 -9
  1142. package/build/parsedPaper/structure/tree/nodes/MetadataText.js.map +1 -1
  1143. package/build/parsedPaper/structure/tree/nodes/Node.js +6 -12
  1144. package/build/parsedPaper/structure/tree/nodes/Node.js.map +1 -1
  1145. package/build/parsedPaper/structure/tree/nodes/Paragraph.js +3 -9
  1146. package/build/parsedPaper/structure/tree/nodes/Paragraph.js.map +1 -1
  1147. package/build/parsedPaper/structure/tree/nodes/StructuredNode.js +3 -10
  1148. package/build/parsedPaper/structure/tree/nodes/StructuredNode.js.map +1 -1
  1149. package/build/parsedPaper/structure/tree/nodes/index.js +10 -69
  1150. package/build/parsedPaper/structure/tree/nodes/index.js.map +1 -1
  1151. package/build/scoring/assessments/assessment.js +17 -15
  1152. package/build/scoring/assessments/assessment.js.map +1 -1
  1153. package/build/scoring/assessments/index.js +53 -56
  1154. package/build/scoring/assessments/index.js.map +1 -1
  1155. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js +30 -47
  1156. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js.map +1 -1
  1157. package/build/scoring/assessments/readability/RelatedKeywordsAssessment.js +98 -0
  1158. package/build/scoring/assessments/readability/RelatedKeywordsAssessment.js.map +1 -0
  1159. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js +22 -35
  1160. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js.map +1 -1
  1161. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js +24 -39
  1162. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js.map +1 -1
  1163. package/build/scoring/assessments/readability/TransitionWordsAssessment.js +29 -47
  1164. package/build/scoring/assessments/readability/TransitionWordsAssessment.js.map +1 -1
  1165. package/build/scoring/assessments/seo/FAQsAssessment.js +174 -0
  1166. package/build/scoring/assessments/seo/FAQsAssessment.js.map +1 -0
  1167. package/build/scoring/assessments/seo/ImageCountAssessment.js +17 -33
  1168. package/build/scoring/assessments/seo/ImageCountAssessment.js.map +1 -1
  1169. package/build/scoring/assessments/seo/InternalLinksAssessment.js +21 -35
  1170. package/build/scoring/assessments/seo/InternalLinksAssessment.js.map +1 -1
  1171. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js +20 -34
  1172. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js.map +1 -1
  1173. package/build/scoring/assessments/seo/KeyphraseAssessment.js +18 -32
  1174. package/build/scoring/assessments/seo/KeyphraseAssessment.js.map +1 -1
  1175. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js +21 -34
  1176. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js.map +1 -1
  1177. package/build/scoring/assessments/seo/KeywordDensityAssessment.js +26 -40
  1178. package/build/scoring/assessments/seo/KeywordDensityAssessment.js.map +1 -1
  1179. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +23 -42
  1180. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js.map +1 -1
  1181. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +19 -34
  1182. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js.map +1 -1
  1183. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js +25 -41
  1184. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js.map +1 -1
  1185. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js +16 -30
  1186. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js.map +1 -1
  1187. package/build/scoring/assessments/seo/OutboundLinksAssessment.js +21 -40
  1188. package/build/scoring/assessments/seo/OutboundLinksAssessment.js.map +1 -1
  1189. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js +17 -31
  1190. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js.map +1 -1
  1191. package/build/scoring/assessments/seo/SchemaAssessment.js +95 -0
  1192. package/build/scoring/assessments/seo/SchemaAssessment.js.map +1 -0
  1193. package/build/scoring/assessments/seo/SingleH1Assessment.js +20 -33
  1194. package/build/scoring/assessments/seo/SingleH1Assessment.js.map +1 -1
  1195. package/build/scoring/assessments/seo/SingleTitleAssessment.js +20 -33
  1196. package/build/scoring/assessments/seo/SingleTitleAssessment.js.map +1 -1
  1197. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +18 -35
  1198. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js.map +1 -1
  1199. package/build/scoring/assessments/seo/TextImagesAssessment.js +20 -36
  1200. package/build/scoring/assessments/seo/TextImagesAssessment.js.map +1 -1
  1201. package/build/scoring/assessments/seo/TextLengthAssessment.js +21 -37
  1202. package/build/scoring/assessments/seo/TextLengthAssessment.js.map +1 -1
  1203. package/build/scoring/assessments/seo/UrlKeywordAssessment.js +20 -36
  1204. package/build/scoring/assessments/seo/UrlKeywordAssessment.js.map +1 -1
  1205. package/build/scoring/assessments/seo/UrlLengthAssessment.js +19 -33
  1206. package/build/scoring/assessments/seo/UrlLengthAssessment.js.map +1 -1
  1207. package/build/scoring/assessors/assessor.js +53 -33
  1208. package/build/scoring/assessors/assessor.js.map +1 -1
  1209. package/build/scoring/assessors/avadaAssessor.js +37 -17
  1210. package/build/scoring/assessors/avadaAssessor.js.map +1 -1
  1211. package/build/scoring/assessors/contentAssessor.js +16 -22
  1212. package/build/scoring/assessors/contentAssessor.js.map +1 -1
  1213. package/build/scoring/assessors/index.js +4 -34
  1214. package/build/scoring/assessors/index.js.map +1 -1
  1215. package/build/scoring/assessors/seoAssessor.js +27 -32
  1216. package/build/scoring/assessors/seoAssessor.js.map +1 -1
  1217. package/build/scoring/helpers/assessments/checkForTooLongSentences.js +3 -8
  1218. package/build/scoring/helpers/assessments/checkForTooLongSentences.js.map +1 -1
  1219. package/build/scoring/helpers/assessments/inRange.js +2 -10
  1220. package/build/scoring/helpers/assessments/inRange.js.map +1 -1
  1221. package/build/scoring/helpers/assessments/keyphraseLengthFactor.js +1 -7
  1222. package/build/scoring/helpers/assessments/keyphraseLengthFactor.js.map +1 -1
  1223. package/build/scoring/helpers/assessments/recommendedKeywordCount.js +5 -11
  1224. package/build/scoring/helpers/assessments/recommendedKeywordCount.js.map +1 -1
  1225. package/build/scoring/helpers/index.js +27 -18
  1226. package/build/scoring/helpers/index.js.map +1 -1
  1227. package/build/scoring/interpreters/index.js +2 -13
  1228. package/build/scoring/interpreters/index.js.map +1 -1
  1229. package/build/scoring/interpreters/scoreToRating.js +1 -7
  1230. package/build/scoring/interpreters/scoreToRating.js.map +1 -1
  1231. package/build/scoring/renderers/AssessorPresenter.js +12 -18
  1232. package/build/scoring/renderers/AssessorPresenter.js.map +1 -1
  1233. package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js +8 -14
  1234. package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js.map +1 -1
  1235. package/build/scoring/scoreAggregators/SEOScoreAggregator.js +3 -9
  1236. package/build/scoring/scoreAggregators/SEOScoreAggregator.js.map +1 -1
  1237. package/build/scoring/scoreAggregators/ScoreAggregator.js +1 -7
  1238. package/build/scoring/scoreAggregators/ScoreAggregator.js.map +1 -1
  1239. package/build/scoring/scoreAggregators/index.js +3 -27
  1240. package/build/scoring/scoreAggregators/index.js.map +1 -1
  1241. package/build/values/AssessmentResult.js +31 -57
  1242. package/build/values/AssessmentResult.js.map +1 -1
  1243. package/build/values/Mark.js +9 -15
  1244. package/build/values/Mark.js.map +1 -1
  1245. package/build/values/Paper.js +115 -16
  1246. package/build/values/Paper.js.map +1 -1
  1247. package/build/values/index.js +4 -27
  1248. package/build/values/index.js.map +1 -1
  1249. package/build/vendor/turkishStemmer.js +1 -7
  1250. package/build/vendor/turkishStemmer.js.map +1 -1
  1251. package/package.json +11 -1
  1252. package/build/bundledPlugins/index.js +0 -14
  1253. package/build/bundledPlugins/index.js.map +0 -1
  1254. package/build/bundledPlugins/previouslyUsedKeywords.js +0 -171
  1255. package/build/bundledPlugins/previouslyUsedKeywords.js.map +0 -1
@@ -1,16 +1,10 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = altTagCount;
7
- var _getAltAttribute = _interopRequireDefault(require("../helpers/image/getAltAttribute"));
8
- var _findKeywordFormsInString = require("../helpers/match/findKeywordFormsInString");
9
- var _lodash = require("lodash");
10
- var _getImagesInTree = _interopRequireDefault(require("../helpers/image/getImagesInTree"));
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
1
  /** @module researches/imageAltTags */
13
2
 
3
+ import imageAltAttribute from "../helpers/image/getAltAttribute";
4
+ import { findTopicFormsInString } from "../helpers/match/findKeywordFormsInString";
5
+ import { isEmpty } from "lodash";
6
+ import getImagesInTree from "../helpers/image/getImagesInTree";
7
+
14
8
  /**
15
9
  * Matches the alt-tags in the images found in the text.
16
10
  * Returns an object with the totals and different alt-tags.
@@ -30,7 +24,7 @@ const matchAltProperties = function (imageNodes, topicForms, locale, matchWordCu
30
24
  withAltNonKeyword: 0
31
25
  };
32
26
  imageNodes.forEach(imageNode => {
33
- const alttag = (0, _getAltAttribute.default)(imageNode);
27
+ const alttag = imageAltAttribute(imageNode);
34
28
 
35
29
  // If no alt-tag is set
36
30
  if (alttag === "") {
@@ -39,13 +33,13 @@ const matchAltProperties = function (imageNodes, topicForms, locale, matchWordCu
39
33
  }
40
34
 
41
35
  // If no keyword is set, but the alt-tag is
42
- if ((0, _lodash.isEmpty)(topicForms.keyphraseForms)) {
36
+ if (isEmpty(topicForms.keyphraseForms)) {
43
37
  altProperties.withAlt++;
44
38
  return;
45
39
  }
46
40
 
47
41
  // If the keyword is matched in the alt tag
48
- const keywordMatchedInAltTag = (0, _findKeywordFormsInString.findTopicFormsInString)(topicForms, alttag, true, locale, matchWordCustomHelper);
42
+ const keywordMatchedInAltTag = findTopicFormsInString(topicForms, alttag, true, locale, matchWordCustomHelper);
49
43
  if (keywordMatchedInAltTag.percentWordMatches >= 50) {
50
44
  altProperties.withAltKeyword++;
51
45
  return;
@@ -63,8 +57,8 @@ const matchAltProperties = function (imageNodes, topicForms, locale, matchWordCu
63
57
  *
64
58
  * @returns {object} Object containing all types of found images
65
59
  */
66
- function altTagCount(paper, researcher) {
67
- const images = (0, _getImagesInTree.default)(paper);
60
+ export default function altTagCount(paper, researcher) {
61
+ const images = getImagesInTree(paper);
68
62
  const topicForms = researcher.getResearch("morphology");
69
63
  const matchWordCustomHelper = researcher.getHelper("matchWordCustomHelper");
70
64
  return matchAltProperties(images, topicForms, paper.getLocale(), matchWordCustomHelper);
@@ -1 +1 @@
1
- {"version":3,"file":"altTagCount.js","names":["_getAltAttribute","_interopRequireDefault","require","_findKeywordFormsInString","_lodash","_getImagesInTree","e","__esModule","default","matchAltProperties","imageNodes","topicForms","locale","matchWordCustomHelper","altProperties","noAlt","withAlt","withAltKeyword","withAltNonKeyword","forEach","imageNode","alttag","imageAltAttribute","isEmpty","keyphraseForms","keywordMatchedInAltTag","findTopicFormsInString","percentWordMatches","altTagCount","paper","researcher","images","getImagesInTree","getResearch","getHelper","getLocale"],"sources":["../../../src/languageProcessing/researches/altTagCount.js"],"sourcesContent":["/** @module researches/imageAltTags */\n\nimport imageAltAttribute from \"../helpers/image/getAltAttribute\";\nimport { findTopicFormsInString } from \"../helpers/match/findKeywordFormsInString\";\nimport { isEmpty } from \"lodash\";\nimport getImagesInTree from \"../helpers/image/getImagesInTree\";\n\n/**\n * Matches the alt-tags in the images found in the text.\n * Returns an object with the totals and different alt-tags.\n *\n * @param {Array} imageNodes \t\tArray with all the image nodes in the text\n * @param {Object} topicForms \tThe object with the keyphrase and the synonyms forms from the paper.\n * @param {string} locale \tThe locale used for transliteration.\n * @param {function} matchWordCustomHelper \tA language-specific helper function to match word in text.\n *\n * @returns {object} altProperties Object with all alt-tags that were found.\n */\nconst matchAltProperties = function( imageNodes, topicForms, locale, matchWordCustomHelper ) {\n\tconst altProperties = {\n\t\tnoAlt: 0,\n\t\twithAlt: 0,\n\t\twithAltKeyword: 0,\n\t\twithAltNonKeyword: 0,\n\t};\n\n\timageNodes.forEach( imageNode => {\n\t\tconst alttag = imageAltAttribute( imageNode );\n\n\t\t// If no alt-tag is set\n\t\tif ( alttag === \"\" ) {\n\t\t\taltProperties.noAlt++;\n\t\t\treturn;\n\t\t}\n\n\t\t// If no keyword is set, but the alt-tag is\n\t\tif ( isEmpty( topicForms.keyphraseForms ) ) {\n\t\t\taltProperties.withAlt++;\n\t\t\treturn;\n\t\t}\n\n\t\t// If the keyword is matched in the alt tag\n\t\tconst keywordMatchedInAltTag = findTopicFormsInString( topicForms, alttag, true, locale, matchWordCustomHelper );\n\t\tif ( keywordMatchedInAltTag.percentWordMatches >= 50 ) {\n\t\t\taltProperties.withAltKeyword++;\n\t\t\treturn;\n\t\t}\n\n\t\taltProperties.withAltNonKeyword++;\n\t} );\n\n\treturn altProperties;\n};\n\n/**\n * Checks the text for images, checks the type of each image and alt attributes for containing keywords\n *\n * @param {Paper} paper The paper to check for images.\n * @param {Researcher} researcher The researcher to use for analysis.\n *\n * @returns {object} Object containing all types of found images\n */\nexport default function altTagCount( paper, researcher ) {\n\tconst images = getImagesInTree( paper );\n\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\tconst matchWordCustomHelper = researcher.getHelper( \"matchWordCustomHelper\" );\n\n\treturn matchAltProperties( images, topicForms, paper.getLocale(), matchWordCustomHelper );\n}\n"],"mappings":";;;;;;AAEA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAA+D,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAL/D;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,kBAAkB,GAAG,SAAAA,CAAUC,UAAU,EAAEC,UAAU,EAAEC,MAAM,EAAEC,qBAAqB,EAAG;EAC5F,MAAMC,aAAa,GAAG;IACrBC,KAAK,EAAE,CAAC;IACRC,OAAO,EAAE,CAAC;IACVC,cAAc,EAAE,CAAC;IACjBC,iBAAiB,EAAE;EACpB,CAAC;EAEDR,UAAU,CAACS,OAAO,CAAEC,SAAS,IAAI;IAChC,MAAMC,MAAM,GAAG,IAAAC,wBAAiB,EAAEF,SAAU,CAAC;;IAE7C;IACA,IAAKC,MAAM,KAAK,EAAE,EAAG;MACpBP,aAAa,CAACC,KAAK,EAAE;MACrB;IACD;;IAEA;IACA,IAAK,IAAAQ,eAAO,EAAEZ,UAAU,CAACa,cAAe,CAAC,EAAG;MAC3CV,aAAa,CAACE,OAAO,EAAE;MACvB;IACD;;IAEA;IACA,MAAMS,sBAAsB,GAAG,IAAAC,gDAAsB,EAAEf,UAAU,EAAEU,MAAM,EAAE,IAAI,EAAET,MAAM,EAAEC,qBAAsB,CAAC;IAChH,IAAKY,sBAAsB,CAACE,kBAAkB,IAAI,EAAE,EAAG;MACtDb,aAAa,CAACG,cAAc,EAAE;MAC9B;IACD;IAEAH,aAAa,CAACI,iBAAiB,EAAE;EAClC,CAAE,CAAC;EAEH,OAAOJ,aAAa;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASc,WAAWA,CAAEC,KAAK,EAAEC,UAAU,EAAG;EACxD,MAAMC,MAAM,GAAG,IAAAC,wBAAe,EAAEH,KAAM,CAAC;EAEvC,MAAMlB,UAAU,GAAGmB,UAAU,CAACG,WAAW,CAAE,YAAa,CAAC;EACzD,MAAMpB,qBAAqB,GAAGiB,UAAU,CAACI,SAAS,CAAE,uBAAwB,CAAC;EAE7E,OAAOzB,kBAAkB,CAAEsB,MAAM,EAAEpB,UAAU,EAAEkB,KAAK,CAACM,SAAS,CAAC,CAAC,EAAEtB,qBAAsB,CAAC;AAC1F","ignoreList":[]}
1
+ {"version":3,"file":"altTagCount.js","names":["imageAltAttribute","findTopicFormsInString","isEmpty","getImagesInTree","matchAltProperties","imageNodes","topicForms","locale","matchWordCustomHelper","altProperties","noAlt","withAlt","withAltKeyword","withAltNonKeyword","forEach","imageNode","alttag","keyphraseForms","keywordMatchedInAltTag","percentWordMatches","altTagCount","paper","researcher","images","getResearch","getHelper","getLocale"],"sources":["../../../src/languageProcessing/researches/altTagCount.js"],"sourcesContent":["/** @module researches/imageAltTags */\n\nimport imageAltAttribute from \"../helpers/image/getAltAttribute\";\nimport { findTopicFormsInString } from \"../helpers/match/findKeywordFormsInString\";\nimport { isEmpty } from \"lodash\";\nimport getImagesInTree from \"../helpers/image/getImagesInTree\";\n\n/**\n * Matches the alt-tags in the images found in the text.\n * Returns an object with the totals and different alt-tags.\n *\n * @param {Array} imageNodes \t\tArray with all the image nodes in the text\n * @param {Object} topicForms \tThe object with the keyphrase and the synonyms forms from the paper.\n * @param {string} locale \tThe locale used for transliteration.\n * @param {function} matchWordCustomHelper \tA language-specific helper function to match word in text.\n *\n * @returns {object} altProperties Object with all alt-tags that were found.\n */\nconst matchAltProperties = function( imageNodes, topicForms, locale, matchWordCustomHelper ) {\n\tconst altProperties = {\n\t\tnoAlt: 0,\n\t\twithAlt: 0,\n\t\twithAltKeyword: 0,\n\t\twithAltNonKeyword: 0,\n\t};\n\n\timageNodes.forEach( imageNode => {\n\t\tconst alttag = imageAltAttribute( imageNode );\n\n\t\t// If no alt-tag is set\n\t\tif ( alttag === \"\" ) {\n\t\t\taltProperties.noAlt++;\n\t\t\treturn;\n\t\t}\n\n\t\t// If no keyword is set, but the alt-tag is\n\t\tif ( isEmpty( topicForms.keyphraseForms ) ) {\n\t\t\taltProperties.withAlt++;\n\t\t\treturn;\n\t\t}\n\n\t\t// If the keyword is matched in the alt tag\n\t\tconst keywordMatchedInAltTag = findTopicFormsInString( topicForms, alttag, true, locale, matchWordCustomHelper );\n\t\tif ( keywordMatchedInAltTag.percentWordMatches >= 50 ) {\n\t\t\taltProperties.withAltKeyword++;\n\t\t\treturn;\n\t\t}\n\n\t\taltProperties.withAltNonKeyword++;\n\t} );\n\n\treturn altProperties;\n};\n\n/**\n * Checks the text for images, checks the type of each image and alt attributes for containing keywords\n *\n * @param {Paper} paper The paper to check for images.\n * @param {Researcher} researcher The researcher to use for analysis.\n *\n * @returns {object} Object containing all types of found images\n */\nexport default function altTagCount( paper, researcher ) {\n\tconst images = getImagesInTree( paper );\n\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\tconst matchWordCustomHelper = researcher.getHelper( \"matchWordCustomHelper\" );\n\n\treturn matchAltProperties( images, topicForms, paper.getLocale(), matchWordCustomHelper );\n}\n"],"mappings":"AAAA;;AAEA,OAAOA,iBAAiB;AACxB,SAASC,sBAAsB;AAC/B,SAASC,OAAO,QAAQ,QAAQ;AAChC,OAAOC,eAAe;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,SAAAA,CAAUC,UAAU,EAAEC,UAAU,EAAEC,MAAM,EAAEC,qBAAqB,EAAG;EAC5F,MAAMC,aAAa,GAAG;IACrBC,KAAK,EAAE,CAAC;IACRC,OAAO,EAAE,CAAC;IACVC,cAAc,EAAE,CAAC;IACjBC,iBAAiB,EAAE;EACpB,CAAC;EAEDR,UAAU,CAACS,OAAO,CAAEC,SAAS,IAAI;IAChC,MAAMC,MAAM,GAAGhB,iBAAiB,CAAEe,SAAU,CAAC;;IAE7C;IACA,IAAKC,MAAM,KAAK,EAAE,EAAG;MACpBP,aAAa,CAACC,KAAK,EAAE;MACrB;IACD;;IAEA;IACA,IAAKR,OAAO,CAAEI,UAAU,CAACW,cAAe,CAAC,EAAG;MAC3CR,aAAa,CAACE,OAAO,EAAE;MACvB;IACD;;IAEA;IACA,MAAMO,sBAAsB,GAAGjB,sBAAsB,CAAEK,UAAU,EAAEU,MAAM,EAAE,IAAI,EAAET,MAAM,EAAEC,qBAAsB,CAAC;IAChH,IAAKU,sBAAsB,CAACC,kBAAkB,IAAI,EAAE,EAAG;MACtDV,aAAa,CAACG,cAAc,EAAE;MAC9B;IACD;IAEAH,aAAa,CAACI,iBAAiB,EAAE;EAClC,CAAE,CAAC;EAEH,OAAOJ,aAAa;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASW,WAAWA,CAAEC,KAAK,EAAEC,UAAU,EAAG;EACxD,MAAMC,MAAM,GAAGpB,eAAe,CAAEkB,KAAM,CAAC;EAEvC,MAAMf,UAAU,GAAGgB,UAAU,CAACE,WAAW,CAAE,YAAa,CAAC;EACzD,MAAMhB,qBAAqB,GAAGc,UAAU,CAACG,SAAS,CAAE,uBAAwB,CAAC;EAE7E,OAAOrB,kBAAkB,CAAEmB,MAAM,EAAEjB,UAAU,EAAEe,KAAK,CAACK,SAAS,CAAC,CAAC,EAAElB,qBAAsB,CAAC;AAC1F","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Checks how many sentences from a text contain at least one transition word or two-part transition word
3
+ * that are defined in the transition words config and two part transition words config.
4
+ *
5
+ * @param {Paper} paper The Paper object to get text from.
6
+ * @param {Researcher} researcher The researcher.
7
+ *
8
+ * @returns {object} An object with the total number of sentences in the text
9
+ * and the total number of sentences containing one or more transition words.
10
+ */
11
+ export default function (paper, researcher) {
12
+ const data = paper.getData();
13
+ const related_keywords = transformRelatedKeyword(data?.related_keywords || []);
14
+ const string = getTextFullPage(data);
15
+ return countWordsInRelatedKeywords({
16
+ related_keywords,
17
+ string
18
+ });
19
+ }
20
+ export const transformRelatedKeyword = keywords => keywords.map(keyword => typeof keyword === 'string' ? {
21
+ text: keyword
22
+ } : keyword) || [];
23
+
24
+ /**
25
+ *
26
+ * @param data
27
+ * @returns {string}
28
+ */
29
+ const getTextFullPage = data => {
30
+ const faqString = data.faqs.status ? data.faqs.questions.map(i => i.question + ' ' + i.answer).join(' ') : '';
31
+ const html = data.body_html || data.descriptionHtml;
32
+ const bodyString = html?.length > 0 ? html.replace(/<\/?[^>]+(>|$)/g, ' ') : '';
33
+ return [faqString, data.title, bodyString, data?.metafields_avadaSEO_after_content, data.metafields_global_title_tag, data.metafields_global_description_tag].join(' ').toLowerCase();
34
+ };
35
+
36
+ /**
37
+ *
38
+ * @param related_keywords
39
+ * @param string
40
+ * @returns {{totalWordUsed: number, words: {}, isWordUsedExceeding: boolean}}
41
+ */
42
+ const countWordsInRelatedKeywords = ({
43
+ related_keywords,
44
+ string
45
+ }) => {
46
+ const total = string.split(/\s+/).filter(word => word.length > 0).length;
47
+ const words = {};
48
+ let totalWordUsed = 0;
49
+ let isWordUsedExceeding = false;
50
+ related_keywords.forEach(({
51
+ text
52
+ }) => {
53
+ const keyword = text.toLocaleLowerCase();
54
+ const regex = new RegExp(`(?:^|\\W)${keyword}(?:\\W|$)`, 'gu');
55
+ const length = (string.match(regex) || []).length;
56
+ const percentage = parseFloat((length / total * 100).toFixed(1));
57
+ if (!isWordUsedExceeding) {
58
+ isWordUsedExceeding = percentage > 1;
59
+ }
60
+ totalWordUsed += length;
61
+ words[text] = {
62
+ length,
63
+ percentage
64
+ };
65
+ });
66
+ return {
67
+ totalWordUsed,
68
+ words,
69
+ isWordUsedExceeding
70
+ };
71
+ };
72
+ //# sourceMappingURL=checkRelatedKeywords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkRelatedKeywords.js","names":["paper","researcher","data","getData","related_keywords","transformRelatedKeyword","string","getTextFullPage","countWordsInRelatedKeywords","keywords","map","keyword","text","faqString","faqs","status","questions","i","question","answer","join","html","body_html","descriptionHtml","bodyString","length","replace","title","metafields_avadaSEO_after_content","metafields_global_title_tag","metafields_global_description_tag","toLowerCase","total","split","filter","word","words","totalWordUsed","isWordUsedExceeding","forEach","toLocaleLowerCase","regex","RegExp","match","percentage","parseFloat","toFixed"],"sources":["../../../src/languageProcessing/researches/checkRelatedKeywords.js"],"sourcesContent":["/**\n * Checks how many sentences from a text contain at least one transition word or two-part transition word\n * that are defined in the transition words config and two part transition words config.\n *\n * @param {Paper} paper The Paper object to get text from.\n * @param {Researcher} researcher The researcher.\n *\n * @returns {object} An object with the total number of sentences in the text\n * and the total number of sentences containing one or more transition words.\n */\nexport default function(paper, researcher) {\n const data = paper.getData();\n const related_keywords = transformRelatedKeyword(data?.related_keywords || []);\n const string = getTextFullPage(data);\n return countWordsInRelatedKeywords({related_keywords, string});\n}\n\nexport const transformRelatedKeyword = keywords =>\n keywords.map(keyword => (typeof keyword === 'string' ? {text: keyword} : keyword)) || [];\n\n/**\n *\n * @param data\n * @returns {string}\n */\nconst getTextFullPage = data => {\n const faqString = data.faqs.status\n ? data.faqs.questions.map(i => i.question + ' ' + i.answer).join(' ')\n : '';\n const html = data.body_html || data.descriptionHtml;\n const bodyString = html?.length > 0 ? html.replace(/<\\/?[^>]+(>|$)/g, ' ') : '';\n return [\n faqString,\n data.title,\n bodyString,\n data?.metafields_avadaSEO_after_content,\n data.metafields_global_title_tag,\n data.metafields_global_description_tag\n ]\n .join(' ')\n .toLowerCase();\n};\n\n/**\n *\n * @param related_keywords\n * @param string\n * @returns {{totalWordUsed: number, words: {}, isWordUsedExceeding: boolean}}\n */\nconst countWordsInRelatedKeywords = ({related_keywords, string}) => {\n const total = string.split(/\\s+/).filter(word => word.length > 0).length;\n const words = {};\n let totalWordUsed = 0;\n let isWordUsedExceeding = false;\n\n related_keywords.forEach(({text}) => {\n const keyword = text.toLocaleLowerCase();\n\n const regex = new RegExp(`(?:^|\\\\W)${keyword}(?:\\\\W|$)`, 'gu');\n const length = (string.match(regex) || []).length;\n\n const percentage = parseFloat(((length / total) * 100).toFixed(1));\n if (!isWordUsedExceeding) {\n isWordUsedExceeding = percentage > 1;\n }\n totalWordUsed += length;\n words[text] = {length, percentage};\n });\n\n return {totalWordUsed, words, isWordUsedExceeding};\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,26 +1,20 @@
1
- "use strict";
1
+ import getSentences from "../helpers/sentence/getSentences";
2
+ import sentencesLength from "../helpers/sentence/sentencesLength.js";
3
+ import removeHtmlBlocks from "../helpers/html/htmlParser";
4
+ import { filterShortcodesFromHTML } from "../helpers";
2
5
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- var _getSentences = _interopRequireDefault(require("../helpers/sentence/getSentences"));
8
- var _sentencesLength = _interopRequireDefault(require("../helpers/sentence/sentencesLength.js"));
9
- var _htmlParser = _interopRequireDefault(require("../helpers/html/htmlParser"));
10
- var _helpers = require("../helpers");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
6
  /**
13
7
  * Count sentences in the text.
14
8
  * @param {Paper} paper The Paper object to get text from.
15
9
  * @param {Researcher} researcher The researcher to use for analysis.
16
10
  * @returns {Array} The sentences from the text.
17
11
  */
18
- function _default(paper, researcher) {
12
+ export default function (paper, researcher) {
19
13
  const memoizedTokenizer = researcher.getHelper("memoizedTokenizer");
20
14
  let text = paper.getText();
21
- text = (0, _htmlParser.default)(text);
22
- text = (0, _helpers.filterShortcodesFromHTML)(text, paper._attributes && paper._attributes.shortcodes);
23
- const sentences = (0, _getSentences.default)(text, memoizedTokenizer);
24
- return (0, _sentencesLength.default)(sentences, researcher);
15
+ text = removeHtmlBlocks(text);
16
+ text = filterShortcodesFromHTML(text, paper._attributes && paper._attributes.shortcodes);
17
+ const sentences = getSentences(text, memoizedTokenizer);
18
+ return sentencesLength(sentences, researcher);
25
19
  }
26
20
  //# sourceMappingURL=countSentencesFromText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"countSentencesFromText.js","names":["_getSentences","_interopRequireDefault","require","_sentencesLength","_htmlParser","_helpers","e","__esModule","default","_default","paper","researcher","memoizedTokenizer","getHelper","text","getText","removeHtmlBlocks","filterShortcodesFromHTML","_attributes","shortcodes","sentences","getSentences","sentencesLength"],"sources":["../../../src/languageProcessing/researches/countSentencesFromText.js"],"sourcesContent":["import getSentences from \"../helpers/sentence/getSentences\";\nimport sentencesLength from \"../helpers/sentence/sentencesLength.js\";\nimport removeHtmlBlocks from \"../helpers/html/htmlParser\";\nimport { filterShortcodesFromHTML } from \"../helpers\";\n\n/**\n * Count sentences in the text.\n * @param {Paper} paper The Paper object to get text from.\n * @param {Researcher} \tresearcher \tThe researcher to use for analysis.\n * @returns {Array} The sentences from the text.\n */\nexport default function( paper, researcher ) {\n\tconst memoizedTokenizer = researcher.getHelper( \"memoizedTokenizer\" );\n\tlet text = paper.getText();\n\ttext = removeHtmlBlocks( text );\n\ttext = filterShortcodesFromHTML( text, paper._attributes && paper._attributes.shortcodes );\n\tconst sentences = getSentences( text, memoizedTokenizer );\n\treturn sentencesLength( sentences, researcher );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAAsD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD;AACA;AACA;AACA;AACA;AACA;AACe,SAAAG,SAAUC,KAAK,EAAEC,UAAU,EAAG;EAC5C,MAAMC,iBAAiB,GAAGD,UAAU,CAACE,SAAS,CAAE,mBAAoB,CAAC;EACrE,IAAIC,IAAI,GAAGJ,KAAK,CAACK,OAAO,CAAC,CAAC;EAC1BD,IAAI,GAAG,IAAAE,mBAAgB,EAAEF,IAAK,CAAC;EAC/BA,IAAI,GAAG,IAAAG,iCAAwB,EAAEH,IAAI,EAAEJ,KAAK,CAACQ,WAAW,IAAIR,KAAK,CAACQ,WAAW,CAACC,UAAW,CAAC;EAC1F,MAAMC,SAAS,GAAG,IAAAC,qBAAY,EAAEP,IAAI,EAAEF,iBAAkB,CAAC;EACzD,OAAO,IAAAU,wBAAe,EAAEF,SAAS,EAAET,UAAW,CAAC;AAChD","ignoreList":[]}
1
+ {"version":3,"file":"countSentencesFromText.js","names":["getSentences","sentencesLength","removeHtmlBlocks","filterShortcodesFromHTML","paper","researcher","memoizedTokenizer","getHelper","text","getText","_attributes","shortcodes","sentences"],"sources":["../../../src/languageProcessing/researches/countSentencesFromText.js"],"sourcesContent":["import getSentences from \"../helpers/sentence/getSentences\";\nimport sentencesLength from \"../helpers/sentence/sentencesLength.js\";\nimport removeHtmlBlocks from \"../helpers/html/htmlParser\";\nimport { filterShortcodesFromHTML } from \"../helpers\";\n\n/**\n * Count sentences in the text.\n * @param {Paper} paper The Paper object to get text from.\n * @param {Researcher} \tresearcher \tThe researcher to use for analysis.\n * @returns {Array} The sentences from the text.\n */\nexport default function( paper, researcher ) {\n\tconst memoizedTokenizer = researcher.getHelper( \"memoizedTokenizer\" );\n\tlet text = paper.getText();\n\ttext = removeHtmlBlocks( text );\n\ttext = filterShortcodesFromHTML( text, paper._attributes && paper._attributes.shortcodes );\n\tconst sentences = getSentences( text, memoizedTokenizer );\n\treturn sentencesLength( sentences, researcher );\n}\n"],"mappings":"AAAA,OAAOA,YAAY;AACnB,OAAOC,eAAe;AACtB,OAAOC,gBAAgB;AACvB,SAASC,wBAAwB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAUC,KAAK,EAAEC,UAAU,EAAG;EAC5C,MAAMC,iBAAiB,GAAGD,UAAU,CAACE,SAAS,CAAE,mBAAoB,CAAC;EACrE,IAAIC,IAAI,GAAGJ,KAAK,CAACK,OAAO,CAAC,CAAC;EAC1BD,IAAI,GAAGN,gBAAgB,CAAEM,IAAK,CAAC;EAC/BA,IAAI,GAAGL,wBAAwB,CAAEK,IAAI,EAAEJ,KAAK,CAACM,WAAW,IAAIN,KAAK,CAACM,WAAW,CAACC,UAAW,CAAC;EAC1F,MAAMC,SAAS,GAAGZ,YAAY,CAAEQ,IAAI,EAAEF,iBAAkB,CAAC;EACzD,OAAOL,eAAe,CAAEW,SAAS,EAAEP,UAAW,CAAC;AAChD","ignoreList":[]}
@@ -1,17 +1,10 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _lodash = require("lodash");
8
- var _matchTextWithWord = _interopRequireDefault(require("../helpers/match/matchTextWithWord.js"));
9
- var _findKeywordFormsInString = require("../helpers/match/findKeywordFormsInString.js");
10
- var _stemPrefixedFunctionWords = require("../helpers/morphology/stemPrefixedFunctionWords.js");
11
- var _processExactMatchRequest = _interopRequireDefault(require("../helpers/match/processExactMatchRequest"));
12
- var _getWords = _interopRequireDefault(require("../helpers/word/getWords"));
13
- var _wordBoundariesWithoutPunctuation = require("../../config/wordBoundariesWithoutPunctuation");
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
1
+ import { escapeRegExp, filter, includes, isEmpty, uniq } from "lodash";
2
+ import wordMatch from "../helpers/match/matchTextWithWord.js";
3
+ import { findTopicFormsInString } from "../helpers/match/findKeywordFormsInString.js";
4
+ import { stemPrefixedFunctionWords } from "../helpers/morphology/stemPrefixedFunctionWords.js";
5
+ import processExactMatchRequest from "../helpers/match/processExactMatchRequest";
6
+ import getWords from "../helpers/word/getWords";
7
+ import { WORD_BOUNDARY_WITH_HYPHEN } from "../../config/wordBoundariesWithoutPunctuation";
15
8
  let functionWords = [];
16
9
 
17
10
  /**
@@ -35,13 +28,13 @@ const stripFunctionWordsFromStart = function (str) {
35
28
  * As a downside, single function words containing hyphens (e.g. 'vis-à-vis') won't be filtered out, but we are solving this
36
29
  * by adding each word from such function words as separate entries in the function words lists.
37
30
  */
38
- let titleWords = (0, _getWords.default)(str.toLocaleLowerCase(), _wordBoundariesWithoutPunctuation.WORD_BOUNDARY_WITH_HYPHEN);
31
+ let titleWords = getWords(str.toLocaleLowerCase(), WORD_BOUNDARY_WITH_HYPHEN);
39
32
 
40
33
  // Strip all function words from the start of the string.
41
- titleWords = (0, _lodash.filter)(titleWords, function (word) {
42
- return !(0, _lodash.includes)(functionWords, word.trim().toLocaleLowerCase());
34
+ titleWords = filter(titleWords, function (word) {
35
+ return !includes(functionWords, word.trim().toLocaleLowerCase());
43
36
  });
44
- return (0, _lodash.isEmpty)(titleWords);
37
+ return isEmpty(titleWords);
45
38
  };
46
39
 
47
40
  /**
@@ -108,7 +101,7 @@ function findExactMatch(matchesObject, keyphrase, result, prefixedFunctionWordsR
108
101
  matchesObject.matches.forEach(match => {
109
102
  const {
110
103
  prefix: prefixedFunctionWord
111
- } = (0, _stemPrefixedFunctionWords.stemPrefixedFunctionWords)(match, prefixedFunctionWordsRegex);
104
+ } = stemPrefixedFunctionWords(match, prefixedFunctionWordsRegex);
112
105
  matchedPrefixedFunctionWords.push(prefixedFunctionWord);
113
106
  });
114
107
 
@@ -117,7 +110,7 @@ function findExactMatch(matchesObject, keyphrase, result, prefixedFunctionWordsR
117
110
  let keyphraseVariations = [];
118
111
 
119
112
  // Add an empty string to the array to account for the case where the word is not prefixed, remove duplicates.
120
- matchedPrefixedFunctionWords = (0, _lodash.uniq)(matchedPrefixedFunctionWords.concat([""]));
113
+ matchedPrefixedFunctionWords = uniq(matchedPrefixedFunctionWords.concat([""]));
121
114
  /*
122
115
  Create an array of arrays, where each array contains each word of the keyphrase with function word prefixes attached.
123
116
  For example, when the split keyphrase is [ "قطط", "وسيمة" ] and the matchedPrefixedFunctionWords is [ "ال", "وال", "" ],
@@ -137,7 +130,7 @@ function findExactMatch(matchesObject, keyphrase, result, prefixedFunctionWordsR
137
130
  keyphraseVariations = keyphraseVariations.map(variation => Array.isArray(variation) ? variation.join(" ") : variation);
138
131
  keyphraseVariations.forEach(variation => {
139
132
  // Check if the exact match of the keyphrase combination is found in the SEO title.
140
- const foundMatch = (0, _matchTextWithWord.default)(title, variation, locale, false);
133
+ const foundMatch = wordMatch(title, variation, locale, false);
141
134
  if (foundMatch.count > 0) {
142
135
  result.exactMatchFound = true;
143
136
  // Adjust the position of the matched keyphrase if it's preceded by non-prefixed function words.
@@ -181,7 +174,7 @@ function checkIfAllWordsAreFound(paper, researcher, keyword, result, prefixedFun
181
174
 
182
175
  // Use only keyphrase (not the synonyms) to match topic words in the SEO title.
183
176
  const useSynonyms = false;
184
- const separateWordsMatched = (0, _findKeywordFormsInString.findTopicFormsInString)(topicForms, title, useSynonyms, locale, false);
177
+ const separateWordsMatched = findTopicFormsInString(topicForms, title, useSynonyms, locale, false);
185
178
  if (separateWordsMatched.percentWordMatches === 100) {
186
179
  /*
187
180
  If all words are found and the position of the found words is 0, we further check if the exact match is found
@@ -224,7 +217,7 @@ function checkIfAllWordsAreFound(paper, researcher, keyword, result, prefixedFun
224
217
  */
225
218
  const findKeyphraseInSEOTitle = function (paper, researcher) {
226
219
  functionWords = researcher.getConfig("functionWords");
227
- let keyword = (0, _lodash.escapeRegExp)(paper.getKeyword());
220
+ let keyword = escapeRegExp(paper.getKeyword());
228
221
  const title = paper.getTitle();
229
222
  const locale = paper.getLocale();
230
223
  let result = {
@@ -235,7 +228,7 @@ const findKeyphraseInSEOTitle = function (paper, researcher) {
235
228
  };
236
229
 
237
230
  // Check if the keyphrase is enclosed in double quotation marks to ensure that only exact matches are processed.
238
- const exactMatchRequest = (0, _processExactMatchRequest.default)(keyword);
231
+ const exactMatchRequest = processExactMatchRequest(keyword);
239
232
  if (exactMatchRequest.exactMatchRequested) {
240
233
  keyword = exactMatchRequest.keyphrase;
241
234
  result.exactMatchKeyphrase = true;
@@ -243,7 +236,7 @@ const findKeyphraseInSEOTitle = function (paper, researcher) {
243
236
 
244
237
  // Check if the exact match of the keyphrase is found in the SEO title.
245
238
  const prefixedFunctionWordsRegex = researcher.getConfig("prefixedFunctionWordsRegex");
246
- const keywordMatched = (0, _matchTextWithWord.default)(title, keyword, locale, false);
239
+ const keywordMatched = wordMatch(title, keyword, locale, false);
247
240
  if (keywordMatched.count > 0 && !prefixedFunctionWordsRegex) {
248
241
  result.exactMatchFound = true;
249
242
  result.allWordsFound = true;
@@ -253,5 +246,5 @@ const findKeyphraseInSEOTitle = function (paper, researcher) {
253
246
  result = checkIfAllWordsAreFound(paper, researcher, keyword, result, prefixedFunctionWordsRegex);
254
247
  return result;
255
248
  };
256
- var _default = exports.default = findKeyphraseInSEOTitle;
249
+ export default findKeyphraseInSEOTitle;
257
250
  //# sourceMappingURL=findKeyphraseInSEOTitle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findKeyphraseInSEOTitle.js","names":["_lodash","require","_matchTextWithWord","_interopRequireDefault","_findKeywordFormsInString","_stemPrefixedFunctionWords","_processExactMatchRequest","_getWords","_wordBoundariesWithoutPunctuation","e","__esModule","default","functionWords","stripFunctionWordsFromStart","str","toLocaleLowerCase","titleWords","getWords","WORD_BOUNDARY_WITH_HYPHEN","filter","word","includes","trim","isEmpty","adjustPosition","title","position","length","titleBeforeKeyword","substring","cartesian","arrays","reduce","a","b","flatMap","d","map","flat","findExactMatch","matchesObject","keyphrase","result","prefixedFunctionWordsRegex","locale","matchedPrefixedFunctionWords","matches","forEach","match","prefix","prefixedFunctionWord","stemPrefixedFunctionWords","push","splitKeyphrase","split","keyphraseVariations","uniq","concat","variation","Array","isArray","join","foundMatch","wordMatch","count","exactMatchFound","checkIfAllWordsAreFound","paper","researcher","keyword","getTitle","getLocale","topicForms","getResearch","useSynonyms","separateWordsMatched","findTopicFormsInString","percentWordMatches","allWordsFound","findKeyphraseInSEOTitle","getConfig","escapeRegExp","getKeyword","exactMatchKeyphrase","exactMatchRequest","processExactMatchRequest","exactMatchRequested","keywordMatched","_default","exports"],"sources":["../../../src/languageProcessing/researches/findKeyphraseInSEOTitle.js"],"sourcesContent":["import { escapeRegExp, filter, includes, isEmpty, uniq } from \"lodash\";\n\nimport wordMatch from \"../helpers/match/matchTextWithWord.js\";\nimport { findTopicFormsInString } from \"../helpers/match/findKeywordFormsInString.js\";\nimport { stemPrefixedFunctionWords } from \"../helpers/morphology/stemPrefixedFunctionWords.js\";\n\nimport processExactMatchRequest from \"../helpers/match/processExactMatchRequest\";\nimport getWords from \"../helpers/word/getWords\";\nimport { WORD_BOUNDARY_WITH_HYPHEN } from \"../../config/wordBoundariesWithoutPunctuation\";\n\nlet functionWords = [];\n\n/**\n * Strips all function words from the start of the given string.\n *\n * @param {string} str The string from which to strip the function words.\n *\n * @returns {boolean} Whether the string consists of function words only.\n */\nconst stripFunctionWordsFromStart = function( str ) {\n\tstr = str.toLocaleLowerCase();\n\n\t/*\n \t * We use a word boundary regex that includes whitespaces, en-dashes, and hyphens for all languages.\n \t * This means that when we filter out function words from the beginning of the title, we also filter out words\n \t * separated by hyphens (e.g. 'three-piece'), as well as function words attached to a content word with a hyphen\n \t * (e.g. 'after' in 'after-school).\n \t * In Indonesian we normally don't want to treat hyphens as word boundaries, but in this case it makes sense because\n \t * an Indonesian title can also contain function words seperated by hyphens at the beginning of the title (e.g. 'dua'\n \t * and 'lima' in 'dua-lima ribuan').\n \t * As a downside, single function words containing hyphens (e.g. 'vis-à-vis') won't be filtered out, but we are solving this\n \t * by adding each word from such function words as separate entries in the function words lists.\n \t */\n\tlet titleWords = getWords( str.toLocaleLowerCase(), WORD_BOUNDARY_WITH_HYPHEN );\n\n\t// Strip all function words from the start of the string.\n\ttitleWords = filter( titleWords, function( word ) {\n\t\treturn ( ! includes( functionWords, word.trim().toLocaleLowerCase() ) );\n\t} );\n\n\treturn isEmpty( titleWords );\n};\n\n/**\n * Checks the position of the keyphrase in the SEO title.\n *\n * @param {string} title \t\tThe SEO title of the paper.\n * @param {number} position \tThe position of the keyphrase in the SEO title.\n *\n * @returns {number} Potentially adjusted position of the keyphrase in the SEO title.\n */\nconst adjustPosition = function( title, position ) {\n\t// Don't do anything if position is already 0.\n\tif ( position === 0 ) {\n\t\treturn position;\n\t}\n\n\t// Don't do anything if no function words exist for this language.\n\tif ( functionWords.length === 0 ) {\n\t\treturn position;\n\t}\n\n\t// Strip all function words from the beginning of the SEO title.\n\tconst titleBeforeKeyword = title.substring( 0, position );\n\tif ( stripFunctionWordsFromStart( titleBeforeKeyword ) ) {\n\t\t/*\n\t\t * Return position 0 if there are no words left in the SEO title before the keyword after filtering\n\t\t * the function words (such that \"keyword\" in \"the keyword\" is still counted as position 0).\n \t\t */\n\t\treturn 0;\n\t}\n\n\treturn position;\n};\n\n/**\n * Creates a cartesian product of the given arrays.\n * This function is taken from: https://stackoverflow.com/questions/12303989/cartesian-product-of-multiple-arrays-in-javascript\n *\n * @param {array} arrays The arrays to create the cartesian product of.\n *\n * @returns {array} The cartesian product of the given arrays.\n */\nfunction cartesian( ...arrays ) {\n\treturn arrays.reduce( ( a, b ) => a.flatMap( d => b.map( e => [ d, e ].flat() ) ) );\n}\n\n/**\n * Finds the exact match of the keyphrase in the SEO title for languages that have prefixed function words.\n *\n * @param {object} matchesObject The object that contains an array of matched words of the keyphrase in SEO title and the position of the match.\n * @param {string} keyphrase The keyphrase to find in the SEO title.\n * @param {object} result The result object to store the results in.\n * @param {RegExp} prefixedFunctionWordsRegex The function to stem the prefixed function words.\n * @param {string} title The SEO title of the paper.\n * @param {string} locale The locale of the paper.\n *\n * @returns {object} The new result object containing the results of the analysis.\n */\nfunction findExactMatch( matchesObject, keyphrase, result, prefixedFunctionWordsRegex, title, locale ) {\n\tlet matchedPrefixedFunctionWords = [];\n\t/*\n\tFor each matched word of the keyphrase, get the prefixed function word.\n\tFor example, for the matches array [ \"القطط\" ,\"والوسيمة\" ], the `matchedPrefixedFunctionWords` array will be [ \"ال\", \"وال\" ].\n\t */\n\tmatchesObject.matches.forEach( match => {\n\t\tconst { prefix: prefixedFunctionWord } = stemPrefixedFunctionWords( match, prefixedFunctionWordsRegex );\n\t\tmatchedPrefixedFunctionWords.push( prefixedFunctionWord );\n\t} );\n\n\t// Split the keyphrase into words. For example, the keyphrase \"قطط وسيمة\" will be split into [ قطط\", \"وسيمة\" ].\n\tconst splitKeyphrase = keyphrase.split( \" \" );\n\tlet keyphraseVariations = [];\n\n\t// Add an empty string to the array to account for the case where the word is not prefixed, remove duplicates.\n\tmatchedPrefixedFunctionWords = uniq( matchedPrefixedFunctionWords.concat( [ \"\" ] ) );\n\t/*\n\t Create an array of arrays, where each array contains each word of the keyphrase with function word prefixes attached.\n\t For example, when the split keyphrase is [ \"قطط\", \"وسيمة\" ] and the matchedPrefixedFunctionWords is [ \"ال\", \"وال\", \"\" ],\n\t the array would be: [ [ \"والقطط\",\"القطط\", \"قطط\" ], [ \"والوسيمة\" ,\"الوسيمة\", \"وسيمة\" ] ].\n\t */\n\tconst arrays = [];\n\tsplitKeyphrase.forEach( word => {\n\t\tarrays.push( matchedPrefixedFunctionWords.map( prefixedFunctionWord => prefixedFunctionWord + word ) );\n\t} );\n\t/*\n\tCreate the cartesian product of the created arrays: to create all possible combinations of the previously created arrays.\n\tFor example, the cartesian product of [ [ \"والقطط\",\"القطط\", \"قطط\" ], [ \"والوسيمة\" ,\"الوسيمة\", \"وسيمة\" ] ] will be:\n\t...[ [ \"والقطط\", \"والوسيمة\" ], [ \"والقطط\", \"الوسيمة\" ], [ \"والقطط\", \"وسيمة\" ], [ \"القطط\", \"والوسيمة\" ]]\n\t */\n\tkeyphraseVariations = cartesian( ...arrays );\n\t// Turn the keyphrase combination array into strings. For example, [ \"والقطط\", \"والوسيمة\" ] will be turned into \"والقطط والوسيمة\".\n\tkeyphraseVariations = keyphraseVariations.map( variation => Array.isArray( variation ) ? variation.join( \" \" ) : variation );\n\tkeyphraseVariations.forEach( variation => {\n\t\t// Check if the exact match of the keyphrase combination is found in the SEO title.\n\t\tconst foundMatch = wordMatch( title, variation, locale, false );\n\t\tif ( foundMatch.count > 0 ) {\n\t\t\tresult.exactMatchFound = true;\n\t\t\t// Adjust the position of the matched keyphrase if it's preceded by non-prefixed function words.\n\t\t\tresult.position = adjustPosition( title, foundMatch.position );\n\t\t}\n\t} );\n\t/*\n\tThis check if to account for the case where an exact match of the keyphrase is not found in the SEO title,\n\tbut it's found in the position is 0.\n\t */\n\tif ( matchesObject.position === 0 ) {\n\t\tresult.position = 0;\n\t}\n\treturn result;\n}\n\n/**\n * An object containing the results of the keyphrase in SEO title research.\n *\n * @typedef {Object} \tKeyphraseInSEOTitleResult\n * @property {boolean}\texactMatchFound\tWhether the exact match of the keyphrase was found in the SEO title.\n * @property {boolean}\tallWordsFound\tWhether all content words from the keyphrase were found in the SEO title.\n * @property {number}\tposition The position of the keyphrase in the SEO title.\n * @property {boolean}\texactMatchKeyphrase Whether the exact match was requested.\n */\n\n/**\n * Checks if all content words from the keyphrase are found in the SEO title.\n *\n * @param {Paper} paper The Paper object that contains analysis data.\n * @param {Researcher} researcher The language researcher.\n * @param {string} keyword The keyword to find in the SEO title.\n * @param {object} result The result object to store the results in.\n * @param {RegExp} prefixedFunctionWordsRegex The researcher to use for analysis.\n * @returns {object} The new result object containing the results of the analysis.\n */\nfunction checkIfAllWordsAreFound( paper, researcher, keyword, result, prefixedFunctionWordsRegex ) {\n\tconst title = paper.getTitle();\n\tconst locale = paper.getLocale();\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\n\t// Use only keyphrase (not the synonyms) to match topic words in the SEO title.\n\tconst useSynonyms = false;\n\n\tconst separateWordsMatched = findTopicFormsInString( topicForms, title, useSynonyms, locale, false );\n\n\tif ( separateWordsMatched.percentWordMatches === 100 ) {\n\t\t/*\n\t\tIf all words are found and the position of the found words is 0, we further check if the exact match is found\n\t\tfor languages with a helper to stem prefixed function words, e.g. definite article.\n\t\tOur support for this type of language is currently only for Arabic and Hebrew.\n\t\tFor example, in Arabic, the word \"المنزل\" (the house) is written as \"ال\" (the) + \"منزل\" (house).\n\t\tAnd in Hebrew, the word \"הבית\" (the house) is written as \"ה\" (the) + \"בית\" (house).\n\t\tIn the above case, when the keyphrase is \"منزل\", and the SEO title starts with \"المنزل\" in Arabic,\n\t\tor when the keyphrase is \"בית\" and the SEO title is \"הבית\", we want to consider this as an exact match\n\t\tand the position is 0 if it's found in the beginning of the SEO title.\n\t\tThis treatment is to align with the way we match the keyphrase in SEO title for other languages.\n\t\tFor example, in English, the keyphrase \"house\" is considered to be found in the SEO title \"the house\" at position 0.\n\t\t */\n\t\tif ( prefixedFunctionWordsRegex ) {\n\t\t\tconst {\n\t\t\t\texactMatchFound,\n\t\t\t\tposition,\n\t\t\t} = findExactMatch( separateWordsMatched, keyword, result, prefixedFunctionWordsRegex, title, locale );\n\t\t\tresult = {\n\t\t\t\t...result,\n\t\t\t\texactMatchFound: exactMatchFound,\n\t\t\t\tposition: position,\n\t\t\t};\n\t\t}\n\t\tresult.allWordsFound = true;\n\t}\n\treturn result;\n}\n\n/**\n * Counts the occurrences of the keyword in the SEO title. Returns the result that contains information on\n * (1) whether the exact match of the keyphrase was used in the SEO title,\n * (2) whether all (content) words from the keyphrase were found in the SEO title,\n * (3) at which position the exact match was found in the SEO title.\n *\n * @param {Object} paper \t\t\tThe paper containing SEO title and keyword.\n * @param {Researcher} researcher \tThe researcher to use for analysis.\n *\n * @returns {KeyphraseInSEOTitleResult} An object containing the information on whether the keyphrase was matched in the SEO title and how.\n */\nconst findKeyphraseInSEOTitle = function( paper, researcher ) {\n\tfunctionWords = researcher.getConfig( \"functionWords\" );\n\n\tlet keyword = escapeRegExp( paper.getKeyword() );\n\tconst title = paper.getTitle();\n\tconst locale = paper.getLocale();\n\n\tlet result = { exactMatchFound: false, allWordsFound: false, position: -1, exactMatchKeyphrase: false };\n\n\t// Check if the keyphrase is enclosed in double quotation marks to ensure that only exact matches are processed.\n\tconst exactMatchRequest = processExactMatchRequest( keyword );\n\n\tif ( exactMatchRequest.exactMatchRequested ) {\n\t\tkeyword = exactMatchRequest.keyphrase;\n\t\tresult.exactMatchKeyphrase = true;\n\t}\n\n\t// Check if the exact match of the keyphrase is found in the SEO title.\n\tconst prefixedFunctionWordsRegex = researcher.getConfig( \"prefixedFunctionWordsRegex\" );\n\tconst keywordMatched = wordMatch( title, keyword, locale, false );\n\n\tif ( keywordMatched.count > 0 && ! prefixedFunctionWordsRegex ) {\n\t\tresult.exactMatchFound = true;\n\t\tresult.allWordsFound = true;\n\t\tresult.position = adjustPosition( title, keywordMatched.position );\n\n\t\treturn result;\n\t}\n\n\tresult = checkIfAllWordsAreFound( paper, researcher, keyword, result, prefixedFunctionWordsRegex );\n\n\treturn result;\n};\n\nexport default findKeyphraseInSEOTitle;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"findKeyphraseInSEOTitle.js","names":["escapeRegExp","filter","includes","isEmpty","uniq","wordMatch","findTopicFormsInString","stemPrefixedFunctionWords","processExactMatchRequest","getWords","WORD_BOUNDARY_WITH_HYPHEN","functionWords","stripFunctionWordsFromStart","str","toLocaleLowerCase","titleWords","word","trim","adjustPosition","title","position","length","titleBeforeKeyword","substring","cartesian","arrays","reduce","a","b","flatMap","d","map","e","flat","findExactMatch","matchesObject","keyphrase","result","prefixedFunctionWordsRegex","locale","matchedPrefixedFunctionWords","matches","forEach","match","prefix","prefixedFunctionWord","push","splitKeyphrase","split","keyphraseVariations","concat","variation","Array","isArray","join","foundMatch","count","exactMatchFound","checkIfAllWordsAreFound","paper","researcher","keyword","getTitle","getLocale","topicForms","getResearch","useSynonyms","separateWordsMatched","percentWordMatches","allWordsFound","findKeyphraseInSEOTitle","getConfig","getKeyword","exactMatchKeyphrase","exactMatchRequest","exactMatchRequested","keywordMatched"],"sources":["../../../src/languageProcessing/researches/findKeyphraseInSEOTitle.js"],"sourcesContent":["import { escapeRegExp, filter, includes, isEmpty, uniq } from \"lodash\";\n\nimport wordMatch from \"../helpers/match/matchTextWithWord.js\";\nimport { findTopicFormsInString } from \"../helpers/match/findKeywordFormsInString.js\";\nimport { stemPrefixedFunctionWords } from \"../helpers/morphology/stemPrefixedFunctionWords.js\";\n\nimport processExactMatchRequest from \"../helpers/match/processExactMatchRequest\";\nimport getWords from \"../helpers/word/getWords\";\nimport { WORD_BOUNDARY_WITH_HYPHEN } from \"../../config/wordBoundariesWithoutPunctuation\";\n\nlet functionWords = [];\n\n/**\n * Strips all function words from the start of the given string.\n *\n * @param {string} str The string from which to strip the function words.\n *\n * @returns {boolean} Whether the string consists of function words only.\n */\nconst stripFunctionWordsFromStart = function( str ) {\n\tstr = str.toLocaleLowerCase();\n\n\t/*\n \t * We use a word boundary regex that includes whitespaces, en-dashes, and hyphens for all languages.\n \t * This means that when we filter out function words from the beginning of the title, we also filter out words\n \t * separated by hyphens (e.g. 'three-piece'), as well as function words attached to a content word with a hyphen\n \t * (e.g. 'after' in 'after-school).\n \t * In Indonesian we normally don't want to treat hyphens as word boundaries, but in this case it makes sense because\n \t * an Indonesian title can also contain function words seperated by hyphens at the beginning of the title (e.g. 'dua'\n \t * and 'lima' in 'dua-lima ribuan').\n \t * As a downside, single function words containing hyphens (e.g. 'vis-à-vis') won't be filtered out, but we are solving this\n \t * by adding each word from such function words as separate entries in the function words lists.\n \t */\n\tlet titleWords = getWords( str.toLocaleLowerCase(), WORD_BOUNDARY_WITH_HYPHEN );\n\n\t// Strip all function words from the start of the string.\n\ttitleWords = filter( titleWords, function( word ) {\n\t\treturn ( ! includes( functionWords, word.trim().toLocaleLowerCase() ) );\n\t} );\n\n\treturn isEmpty( titleWords );\n};\n\n/**\n * Checks the position of the keyphrase in the SEO title.\n *\n * @param {string} title \t\tThe SEO title of the paper.\n * @param {number} position \tThe position of the keyphrase in the SEO title.\n *\n * @returns {number} Potentially adjusted position of the keyphrase in the SEO title.\n */\nconst adjustPosition = function( title, position ) {\n\t// Don't do anything if position is already 0.\n\tif ( position === 0 ) {\n\t\treturn position;\n\t}\n\n\t// Don't do anything if no function words exist for this language.\n\tif ( functionWords.length === 0 ) {\n\t\treturn position;\n\t}\n\n\t// Strip all function words from the beginning of the SEO title.\n\tconst titleBeforeKeyword = title.substring( 0, position );\n\tif ( stripFunctionWordsFromStart( titleBeforeKeyword ) ) {\n\t\t/*\n\t\t * Return position 0 if there are no words left in the SEO title before the keyword after filtering\n\t\t * the function words (such that \"keyword\" in \"the keyword\" is still counted as position 0).\n \t\t */\n\t\treturn 0;\n\t}\n\n\treturn position;\n};\n\n/**\n * Creates a cartesian product of the given arrays.\n * This function is taken from: https://stackoverflow.com/questions/12303989/cartesian-product-of-multiple-arrays-in-javascript\n *\n * @param {array} arrays The arrays to create the cartesian product of.\n *\n * @returns {array} The cartesian product of the given arrays.\n */\nfunction cartesian( ...arrays ) {\n\treturn arrays.reduce( ( a, b ) => a.flatMap( d => b.map( e => [ d, e ].flat() ) ) );\n}\n\n/**\n * Finds the exact match of the keyphrase in the SEO title for languages that have prefixed function words.\n *\n * @param {object} matchesObject The object that contains an array of matched words of the keyphrase in SEO title and the position of the match.\n * @param {string} keyphrase The keyphrase to find in the SEO title.\n * @param {object} result The result object to store the results in.\n * @param {RegExp} prefixedFunctionWordsRegex The function to stem the prefixed function words.\n * @param {string} title The SEO title of the paper.\n * @param {string} locale The locale of the paper.\n *\n * @returns {object} The new result object containing the results of the analysis.\n */\nfunction findExactMatch( matchesObject, keyphrase, result, prefixedFunctionWordsRegex, title, locale ) {\n\tlet matchedPrefixedFunctionWords = [];\n\t/*\n\tFor each matched word of the keyphrase, get the prefixed function word.\n\tFor example, for the matches array [ \"القطط\" ,\"والوسيمة\" ], the `matchedPrefixedFunctionWords` array will be [ \"ال\", \"وال\" ].\n\t */\n\tmatchesObject.matches.forEach( match => {\n\t\tconst { prefix: prefixedFunctionWord } = stemPrefixedFunctionWords( match, prefixedFunctionWordsRegex );\n\t\tmatchedPrefixedFunctionWords.push( prefixedFunctionWord );\n\t} );\n\n\t// Split the keyphrase into words. For example, the keyphrase \"قطط وسيمة\" will be split into [ قطط\", \"وسيمة\" ].\n\tconst splitKeyphrase = keyphrase.split( \" \" );\n\tlet keyphraseVariations = [];\n\n\t// Add an empty string to the array to account for the case where the word is not prefixed, remove duplicates.\n\tmatchedPrefixedFunctionWords = uniq( matchedPrefixedFunctionWords.concat( [ \"\" ] ) );\n\t/*\n\t Create an array of arrays, where each array contains each word of the keyphrase with function word prefixes attached.\n\t For example, when the split keyphrase is [ \"قطط\", \"وسيمة\" ] and the matchedPrefixedFunctionWords is [ \"ال\", \"وال\", \"\" ],\n\t the array would be: [ [ \"والقطط\",\"القطط\", \"قطط\" ], [ \"والوسيمة\" ,\"الوسيمة\", \"وسيمة\" ] ].\n\t */\n\tconst arrays = [];\n\tsplitKeyphrase.forEach( word => {\n\t\tarrays.push( matchedPrefixedFunctionWords.map( prefixedFunctionWord => prefixedFunctionWord + word ) );\n\t} );\n\t/*\n\tCreate the cartesian product of the created arrays: to create all possible combinations of the previously created arrays.\n\tFor example, the cartesian product of [ [ \"والقطط\",\"القطط\", \"قطط\" ], [ \"والوسيمة\" ,\"الوسيمة\", \"وسيمة\" ] ] will be:\n\t...[ [ \"والقطط\", \"والوسيمة\" ], [ \"والقطط\", \"الوسيمة\" ], [ \"والقطط\", \"وسيمة\" ], [ \"القطط\", \"والوسيمة\" ]]\n\t */\n\tkeyphraseVariations = cartesian( ...arrays );\n\t// Turn the keyphrase combination array into strings. For example, [ \"والقطط\", \"والوسيمة\" ] will be turned into \"والقطط والوسيمة\".\n\tkeyphraseVariations = keyphraseVariations.map( variation => Array.isArray( variation ) ? variation.join( \" \" ) : variation );\n\tkeyphraseVariations.forEach( variation => {\n\t\t// Check if the exact match of the keyphrase combination is found in the SEO title.\n\t\tconst foundMatch = wordMatch( title, variation, locale, false );\n\t\tif ( foundMatch.count > 0 ) {\n\t\t\tresult.exactMatchFound = true;\n\t\t\t// Adjust the position of the matched keyphrase if it's preceded by non-prefixed function words.\n\t\t\tresult.position = adjustPosition( title, foundMatch.position );\n\t\t}\n\t} );\n\t/*\n\tThis check if to account for the case where an exact match of the keyphrase is not found in the SEO title,\n\tbut it's found in the position is 0.\n\t */\n\tif ( matchesObject.position === 0 ) {\n\t\tresult.position = 0;\n\t}\n\treturn result;\n}\n\n/**\n * An object containing the results of the keyphrase in SEO title research.\n *\n * @typedef {Object} \tKeyphraseInSEOTitleResult\n * @property {boolean}\texactMatchFound\tWhether the exact match of the keyphrase was found in the SEO title.\n * @property {boolean}\tallWordsFound\tWhether all content words from the keyphrase were found in the SEO title.\n * @property {number}\tposition The position of the keyphrase in the SEO title.\n * @property {boolean}\texactMatchKeyphrase Whether the exact match was requested.\n */\n\n/**\n * Checks if all content words from the keyphrase are found in the SEO title.\n *\n * @param {Paper} paper The Paper object that contains analysis data.\n * @param {Researcher} researcher The language researcher.\n * @param {string} keyword The keyword to find in the SEO title.\n * @param {object} result The result object to store the results in.\n * @param {RegExp} prefixedFunctionWordsRegex The researcher to use for analysis.\n * @returns {object} The new result object containing the results of the analysis.\n */\nfunction checkIfAllWordsAreFound( paper, researcher, keyword, result, prefixedFunctionWordsRegex ) {\n\tconst title = paper.getTitle();\n\tconst locale = paper.getLocale();\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\n\t// Use only keyphrase (not the synonyms) to match topic words in the SEO title.\n\tconst useSynonyms = false;\n\n\tconst separateWordsMatched = findTopicFormsInString( topicForms, title, useSynonyms, locale, false );\n\n\tif ( separateWordsMatched.percentWordMatches === 100 ) {\n\t\t/*\n\t\tIf all words are found and the position of the found words is 0, we further check if the exact match is found\n\t\tfor languages with a helper to stem prefixed function words, e.g. definite article.\n\t\tOur support for this type of language is currently only for Arabic and Hebrew.\n\t\tFor example, in Arabic, the word \"المنزل\" (the house) is written as \"ال\" (the) + \"منزل\" (house).\n\t\tAnd in Hebrew, the word \"הבית\" (the house) is written as \"ה\" (the) + \"בית\" (house).\n\t\tIn the above case, when the keyphrase is \"منزل\", and the SEO title starts with \"المنزل\" in Arabic,\n\t\tor when the keyphrase is \"בית\" and the SEO title is \"הבית\", we want to consider this as an exact match\n\t\tand the position is 0 if it's found in the beginning of the SEO title.\n\t\tThis treatment is to align with the way we match the keyphrase in SEO title for other languages.\n\t\tFor example, in English, the keyphrase \"house\" is considered to be found in the SEO title \"the house\" at position 0.\n\t\t */\n\t\tif ( prefixedFunctionWordsRegex ) {\n\t\t\tconst {\n\t\t\t\texactMatchFound,\n\t\t\t\tposition,\n\t\t\t} = findExactMatch( separateWordsMatched, keyword, result, prefixedFunctionWordsRegex, title, locale );\n\t\t\tresult = {\n\t\t\t\t...result,\n\t\t\t\texactMatchFound: exactMatchFound,\n\t\t\t\tposition: position,\n\t\t\t};\n\t\t}\n\t\tresult.allWordsFound = true;\n\t}\n\treturn result;\n}\n\n/**\n * Counts the occurrences of the keyword in the SEO title. Returns the result that contains information on\n * (1) whether the exact match of the keyphrase was used in the SEO title,\n * (2) whether all (content) words from the keyphrase were found in the SEO title,\n * (3) at which position the exact match was found in the SEO title.\n *\n * @param {Object} paper \t\t\tThe paper containing SEO title and keyword.\n * @param {Researcher} researcher \tThe researcher to use for analysis.\n *\n * @returns {KeyphraseInSEOTitleResult} An object containing the information on whether the keyphrase was matched in the SEO title and how.\n */\nconst findKeyphraseInSEOTitle = function( paper, researcher ) {\n\tfunctionWords = researcher.getConfig( \"functionWords\" );\n\n\tlet keyword = escapeRegExp( paper.getKeyword() );\n\tconst title = paper.getTitle();\n\tconst locale = paper.getLocale();\n\n\tlet result = { exactMatchFound: false, allWordsFound: false, position: -1, exactMatchKeyphrase: false };\n\n\t// Check if the keyphrase is enclosed in double quotation marks to ensure that only exact matches are processed.\n\tconst exactMatchRequest = processExactMatchRequest( keyword );\n\n\tif ( exactMatchRequest.exactMatchRequested ) {\n\t\tkeyword = exactMatchRequest.keyphrase;\n\t\tresult.exactMatchKeyphrase = true;\n\t}\n\n\t// Check if the exact match of the keyphrase is found in the SEO title.\n\tconst prefixedFunctionWordsRegex = researcher.getConfig( \"prefixedFunctionWordsRegex\" );\n\tconst keywordMatched = wordMatch( title, keyword, locale, false );\n\n\tif ( keywordMatched.count > 0 && ! prefixedFunctionWordsRegex ) {\n\t\tresult.exactMatchFound = true;\n\t\tresult.allWordsFound = true;\n\t\tresult.position = adjustPosition( title, keywordMatched.position );\n\n\t\treturn result;\n\t}\n\n\tresult = checkIfAllWordsAreFound( paper, researcher, keyword, result, prefixedFunctionWordsRegex );\n\n\treturn result;\n};\n\nexport default findKeyphraseInSEOTitle;\n"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,8 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- var _lodash = require("lodash");
8
- var _findKeywordFormsInString = require("../helpers/match/findKeywordFormsInString.js");
9
- var _getSentencesFromTree = require("../helpers/sentence/getSentencesFromTree");
10
- var _helpers = require("../helpers");
11
1
  /** @module analyses/findKeywordInFirstParagraph */
2
+ import { inRange, isEmpty } from 'lodash';
3
+ import { findTopicFormsInString } from "../helpers/match/findKeywordFormsInString.js";
4
+ import { getParentNode } from "../helpers/sentence/getSentencesFromTree";
5
+ import { createShortcodeTagsRegex } from "../helpers";
12
6
 
13
7
  /**
14
8
  * Checks if the introductory paragraph contains keyphrase or synonyms.
@@ -29,46 +23,46 @@ var _helpers = require("../helpers");
29
23
  * @returns {Object} Whether the keyphrase words were found in one sentence, whether the keyphrase words were found in
30
24
  * the paragraph, whether a keyphrase or a synonym phrase was matched.
31
25
  */
32
- function _default(paper, researcher) {
33
- let paragraphs = researcher.getResearch("getParagraphs");
26
+ export default function (paper, researcher) {
27
+ let paragraphs = researcher.getResearch('getParagraphs');
34
28
  // Filter captions from non-Classic editors.
35
29
  paragraphs = paragraphs.filter(paragraph => {
36
- const parentNode = (0, _getSentencesFromTree.getParentNode)(paper, paragraph);
37
- return !(paragraph.isImplicit && parentNode && parentNode.name === "figcaption");
30
+ const parentNode = getParentNode(paper, paragraph);
31
+ return !(paragraph.isImplicit && parentNode && parentNode.name === 'figcaption');
38
32
  });
39
33
  // Filter captions from Classic editor and from classic block inside Block editor.
40
34
  paragraphs = paragraphs.filter(paragraph => {
41
- return !(paragraph.childNodes && paragraph.childNodes[0] && (0, _helpers.createShortcodeTagsRegex)(["caption"]).test(paragraph.childNodes[0].value));
35
+ return !(paragraph.childNodes && paragraph.childNodes[0] && createShortcodeTagsRegex(['caption']).test(paragraph.childNodes[0].value));
42
36
  });
43
37
  const firstParagraph = paragraphs[0];
44
- const topicForms = researcher.getResearch("morphology");
45
- const matchWordCustomHelper = researcher.getHelper("matchWordCustomHelper");
38
+ const topicForms = researcher.getResearch('morphology');
39
+ const matchWordCustomHelper = researcher.getHelper('matchWordCustomHelper');
46
40
  const locale = paper.getLocale();
47
41
  const startOffset = firstParagraph && firstParagraph.sourceCodeLocation.startOffset;
48
42
  const mappedBlocks = paper._attributes.wpBlocks;
49
- const filteredIntroductionBlock = mappedBlocks && mappedBlocks.filter(block => (0, _lodash.inRange)(startOffset, block.startOffset, block.endOffset))[0];
43
+ const filteredIntroductionBlock = mappedBlocks && mappedBlocks.filter(block => inRange(startOffset, block.startOffset, block.endOffset))[0];
50
44
  const result = {
51
45
  foundInOneSentence: false,
52
46
  foundInParagraph: false,
53
- keyphraseOrSynonym: "",
47
+ keyphraseOrSynonym: '',
54
48
  introduction: firstParagraph,
55
49
  parentBlock: filteredIntroductionBlock || null
56
50
  };
57
- if ((0, _lodash.isEmpty)(firstParagraph)) {
51
+ if (isEmpty(firstParagraph)) {
58
52
  return result;
59
53
  }
60
54
  const sentences = firstParagraph.sentences.map(sentence => sentence.text);
61
55
  // Use both keyphrase and synonyms to match topic words in the first paragraph.
62
56
  const useSynonyms = true;
63
- if (!(0, _lodash.isEmpty)(sentences)) {
64
- const firstResultSentence = sentences.map(sentence => (0, _findKeywordFormsInString.findTopicFormsInString)(topicForms, sentence, useSynonyms, locale, matchWordCustomHelper)).find(resultSentence => resultSentence.percentWordMatches === 100);
57
+ if (!isEmpty(sentences)) {
58
+ const firstResultSentence = sentences.map(sentence => findTopicFormsInString(topicForms, sentence, useSynonyms, locale, matchWordCustomHelper)).find(resultSentence => resultSentence.percentWordMatches === 100);
65
59
  if (firstResultSentence) {
66
60
  result.foundInOneSentence = true;
67
61
  result.foundInParagraph = true;
68
62
  result.keyphraseOrSynonym = firstResultSentence.keyphraseOrSynonym;
69
63
  return result;
70
64
  }
71
- const resultParagraph = (0, _findKeywordFormsInString.findTopicFormsInString)(topicForms, firstParagraph.innerText(), useSynonyms, locale, matchWordCustomHelper);
65
+ const resultParagraph = findTopicFormsInString(topicForms, firstParagraph.innerText(), useSynonyms, locale, matchWordCustomHelper);
72
66
  if (resultParagraph.percentWordMatches === 100) {
73
67
  result.foundInParagraph = true;
74
68
  result.keyphraseOrSynonym = resultParagraph.keyphraseOrSynonym;
@@ -1 +1 @@
1
- {"version":3,"file":"findKeywordInFirstParagraph.js","names":["_lodash","require","_findKeywordFormsInString","_getSentencesFromTree","_helpers","_default","paper","researcher","paragraphs","getResearch","filter","paragraph","parentNode","getParentNode","isImplicit","name","childNodes","createShortcodeTagsRegex","test","value","firstParagraph","topicForms","matchWordCustomHelper","getHelper","locale","getLocale","startOffset","sourceCodeLocation","mappedBlocks","_attributes","wpBlocks","filteredIntroductionBlock","block","inRange","endOffset","result","foundInOneSentence","foundInParagraph","keyphraseOrSynonym","introduction","parentBlock","isEmpty","sentences","map","sentence","text","useSynonyms","firstResultSentence","findTopicFormsInString","find","resultSentence","percentWordMatches","resultParagraph","innerText"],"sources":["../../../src/languageProcessing/researches/findKeywordInFirstParagraph.js"],"sourcesContent":["/** @module analyses/findKeywordInFirstParagraph */\nimport { inRange, isEmpty } from \"lodash\";\n\nimport { findTopicFormsInString } from \"../helpers/match/findKeywordFormsInString.js\";\nimport { getParentNode } from \"../helpers/sentence/getSentencesFromTree\";\nimport { createShortcodeTagsRegex } from \"../helpers\";\n\n\n/**\n * Checks if the introductory paragraph contains keyphrase or synonyms.\n * First splits the first paragraph by sentences. Finds the first paragraph which contains sentences e.g., not an image).\n * (1) Tries to find all (content) words from the keyphrase or a synonym phrase within one sentence.\n * If found all words within one sentence, returns an object with foundInOneSentence = true and keyphraseOrSynonym = \"keyphrase\"\n * or \"synonym\".\n * If it did not find all words within one sentence, goes ahead with matching the keyphrase with the entire first paragraph.\n * (2) Tries to find all (content) words from the keyphrase or a synonym phrase within the paragraph.\n * If found all words within the paragraph, returns an object with foundInOneSentence = false, foundInParagraph = true,\n * and keyphraseOrSynonym = \"keyphrase\" or \"synonym\".\n * If found not all words within the paragraph of nothing at all, returns an object with foundInOneSentence = false,\n * foundInParagraph = false, and keyphraseOrSynonym = \"\".\n *\n * @param {Paper} paper The text to check for paragraphs.\n * @param {Researcher} researcher The researcher to use for analysis.\n *\n * @returns {Object} Whether the keyphrase words were found in one sentence, whether the keyphrase words were found in\n * the paragraph, whether a keyphrase or a synonym phrase was matched.\n */\nexport default function( paper, researcher ) {\n\tlet paragraphs = researcher.getResearch( \"getParagraphs\" );\n\t// Filter captions from non-Classic editors.\n\tparagraphs = paragraphs.filter( paragraph => {\n\t\tconst parentNode = getParentNode( paper, paragraph );\n\t\treturn ! ( paragraph.isImplicit && parentNode && parentNode.name === \"figcaption\" );\n\t} );\n\t// Filter captions from Classic editor and from classic block inside Block editor.\n\tparagraphs = paragraphs.filter( paragraph => {\n\t\treturn ! ( paragraph.childNodes && paragraph.childNodes[ 0 ] &&\n\t\t\tcreateShortcodeTagsRegex( [ \"caption\" ] ).test( paragraph.childNodes[ 0 ].value ) );\n\t} );\n\t const firstParagraph = paragraphs[ 0 ];\n\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\tconst matchWordCustomHelper = researcher.getHelper( \"matchWordCustomHelper\" );\n\tconst locale = paper.getLocale();\n\tconst startOffset = firstParagraph && firstParagraph.sourceCodeLocation.startOffset;\n\n\tconst mappedBlocks = paper._attributes.wpBlocks;\n\tconst filteredIntroductionBlock = mappedBlocks && mappedBlocks.filter( block => inRange( startOffset, block.startOffset, block.endOffset ) )[ 0 ];\n\tconst result = {\n\t\tfoundInOneSentence: false,\n\t\tfoundInParagraph: false,\n\t\tkeyphraseOrSynonym: \"\",\n\t\tintroduction: firstParagraph,\n\t\tparentBlock: filteredIntroductionBlock || null,\n\t};\n\n\tif ( isEmpty( firstParagraph ) ) {\n\t\treturn result;\n\t}\n\n\tconst sentences = firstParagraph.sentences.map( sentence => sentence.text );\n\t// Use both keyphrase and synonyms to match topic words in the first paragraph.\n\tconst useSynonyms = true;\n\n\tif ( ! isEmpty( sentences ) ) {\n\t\tconst firstResultSentence = sentences\n\t\t\t.map( sentence => findTopicFormsInString( topicForms, sentence, useSynonyms, locale, matchWordCustomHelper ) )\n\t\t\t.find( resultSentence => resultSentence.percentWordMatches === 100 );\n\n\t\tif ( firstResultSentence ) {\n\t\t\tresult.foundInOneSentence = true;\n\t\t\tresult.foundInParagraph = true;\n\t\t\tresult.keyphraseOrSynonym = firstResultSentence.keyphraseOrSynonym;\n\t\t\treturn result;\n\t\t}\n\n\t\tconst resultParagraph = findTopicFormsInString( topicForms, firstParagraph.innerText(), useSynonyms, locale, matchWordCustomHelper );\n\t\tif ( resultParagraph.percentWordMatches === 100 ) {\n\t\t\tresult.foundInParagraph = true;\n\t\t\tresult.keyphraseOrSynonym = resultParagraph.keyphraseOrSynonym;\n\t\t\treturn result;\n\t\t}\n\t}\n\n\treturn result;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"findKeywordInFirstParagraph.js","names":["inRange","isEmpty","findTopicFormsInString","getParentNode","createShortcodeTagsRegex","paper","researcher","paragraphs","getResearch","filter","paragraph","parentNode","isImplicit","name","childNodes","test","value","firstParagraph","topicForms","matchWordCustomHelper","getHelper","locale","getLocale","startOffset","sourceCodeLocation","mappedBlocks","_attributes","wpBlocks","filteredIntroductionBlock","block","endOffset","result","foundInOneSentence","foundInParagraph","keyphraseOrSynonym","introduction","parentBlock","sentences","map","sentence","text","useSynonyms","firstResultSentence","find","resultSentence","percentWordMatches","resultParagraph","innerText"],"sources":["../../../src/languageProcessing/researches/findKeywordInFirstParagraph.js"],"sourcesContent":["/** @module analyses/findKeywordInFirstParagraph */\nimport {inRange, isEmpty} from 'lodash';\n\nimport {findTopicFormsInString} from '../helpers/match/findKeywordFormsInString.js';\nimport {getParentNode} from '../helpers/sentence/getSentencesFromTree';\nimport {createShortcodeTagsRegex} from '../helpers';\n\n/**\n * Checks if the introductory paragraph contains keyphrase or synonyms.\n * First splits the first paragraph by sentences. Finds the first paragraph which contains sentences e.g., not an image).\n * (1) Tries to find all (content) words from the keyphrase or a synonym phrase within one sentence.\n * If found all words within one sentence, returns an object with foundInOneSentence = true and keyphraseOrSynonym = \"keyphrase\"\n * or \"synonym\".\n * If it did not find all words within one sentence, goes ahead with matching the keyphrase with the entire first paragraph.\n * (2) Tries to find all (content) words from the keyphrase or a synonym phrase within the paragraph.\n * If found all words within the paragraph, returns an object with foundInOneSentence = false, foundInParagraph = true,\n * and keyphraseOrSynonym = \"keyphrase\" or \"synonym\".\n * If found not all words within the paragraph of nothing at all, returns an object with foundInOneSentence = false,\n * foundInParagraph = false, and keyphraseOrSynonym = \"\".\n *\n * @param {Paper} paper The text to check for paragraphs.\n * @param {Researcher} researcher The researcher to use for analysis.\n *\n * @returns {Object} Whether the keyphrase words were found in one sentence, whether the keyphrase words were found in\n * the paragraph, whether a keyphrase or a synonym phrase was matched.\n */\nexport default function(paper, researcher) {\n let paragraphs = researcher.getResearch('getParagraphs');\n // Filter captions from non-Classic editors.\n paragraphs = paragraphs.filter(paragraph => {\n const parentNode = getParentNode(paper, paragraph);\n return !(paragraph.isImplicit && parentNode && parentNode.name === 'figcaption');\n });\n // Filter captions from Classic editor and from classic block inside Block editor.\n paragraphs = paragraphs.filter(paragraph => {\n return !(\n paragraph.childNodes &&\n paragraph.childNodes[0] &&\n createShortcodeTagsRegex(['caption']).test(paragraph.childNodes[0].value)\n );\n });\n const firstParagraph = paragraphs[0];\n\n const topicForms = researcher.getResearch('morphology');\n const matchWordCustomHelper = researcher.getHelper('matchWordCustomHelper');\n const locale = paper.getLocale();\n const startOffset = firstParagraph && firstParagraph.sourceCodeLocation.startOffset;\n\n const mappedBlocks = paper._attributes.wpBlocks;\n const filteredIntroductionBlock =\n mappedBlocks &&\n mappedBlocks.filter(block => inRange(startOffset, block.startOffset, block.endOffset))[0];\n const result = {\n foundInOneSentence: false,\n foundInParagraph: false,\n keyphraseOrSynonym: '',\n introduction: firstParagraph,\n parentBlock: filteredIntroductionBlock || null\n };\n\n if (isEmpty(firstParagraph)) {\n return result;\n }\n\n const sentences = firstParagraph.sentences.map(sentence => sentence.text);\n // Use both keyphrase and synonyms to match topic words in the first paragraph.\n const useSynonyms = true;\n\n if (!isEmpty(sentences)) {\n const firstResultSentence = sentences\n .map(sentence =>\n findTopicFormsInString(topicForms, sentence, useSynonyms, locale, matchWordCustomHelper)\n )\n .find(resultSentence => resultSentence.percentWordMatches === 100);\n\n if (firstResultSentence) {\n result.foundInOneSentence = true;\n result.foundInParagraph = true;\n result.keyphraseOrSynonym = firstResultSentence.keyphraseOrSynonym;\n return result;\n }\n\n const resultParagraph = findTopicFormsInString(\n topicForms,\n firstParagraph.innerText(),\n useSynonyms,\n locale,\n matchWordCustomHelper\n );\n if (resultParagraph.percentWordMatches === 100) {\n result.foundInParagraph = true;\n result.keyphraseOrSynonym = resultParagraph.keyphraseOrSynonym;\n return result;\n }\n }\n\n return result;\n}\n"],"mappings":"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","ignoreList":[]}