axyseo 2.0.0-alpha.0.0.4 → 2.0.0-alpha.0.0.6

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 (637) hide show
  1. package/package.json +5 -2
  2. package/.browserslistrc +0 -1
  3. package/.gitattributes +0 -1
  4. package/babel.config.js +0 -3
  5. package/eslint.config.mjs +0 -119
  6. package/src/bundledPlugins/index.js +0 -5
  7. package/src/bundledPlugins/previouslyUsedKeywords.js +0 -192
  8. package/src/config/diacritics.js +0 -106
  9. package/src/config/getTransliterations.js +0 -1447
  10. package/src/config/transliterationsWPstyle.js +0 -774
  11. package/src/config/wordBoundaries.js +0 -23
  12. package/src/config/wordBoundariesWithoutPunctuation.js +0 -9
  13. package/src/const/analysis.js +0 -41
  14. package/src/errors/invalidType.js +0 -14
  15. package/src/errors/missingArgument.js +0 -14
  16. package/src/helpers/createMeasurementElement.js +0 -40
  17. package/src/helpers/domManipulation.js +0 -65
  18. package/src/helpers/errors.js +0 -26
  19. package/src/helpers/factory.js +0 -219
  20. package/src/helpers/formatNumber.js +0 -12
  21. package/src/helpers/formatString.js +0 -33
  22. package/src/helpers/getLanguagesWithWordComplexity.js +0 -8
  23. package/src/helpers/getLanguagesWithWordFormSupport.js +0 -11
  24. package/src/helpers/getWordComplexityConfig.js +0 -20
  25. package/src/helpers/getWordComplexityHelper.js +0 -20
  26. package/src/helpers/htmlEntities.js +0 -41
  27. package/src/helpers/includesAny.js +0 -19
  28. package/src/helpers/index.js +0 -127
  29. package/src/helpers/shortlinker/Shortlinker.js +0 -75
  30. package/src/helpers/shortlinker/index.js +0 -1
  31. package/src/helpers/shortlinker/singleton.js +0 -68
  32. package/src/helpers/types.js +0 -34
  33. package/src/index.js +0 -60
  34. package/src/languageProcessing/AbstractResearcher.js +0 -366
  35. package/src/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +0 -125
  36. package/src/languageProcessing/helpers/html/getFieldsToMark.js +0 -29
  37. package/src/languageProcessing/helpers/html/getSubheadingTexts.js +0 -47
  38. package/src/languageProcessing/helpers/html/getSubheadings.js +0 -95
  39. package/src/languageProcessing/helpers/html/html.js +0 -176
  40. package/src/languageProcessing/helpers/html/htmlParser.js +0 -145
  41. package/src/languageProcessing/helpers/html/matchParagraphs.js +0 -62
  42. package/src/languageProcessing/helpers/html/normalizeHTML.js +0 -16
  43. package/src/languageProcessing/helpers/image/getAltAttribute.js +0 -20
  44. package/src/languageProcessing/helpers/image/getImagesInTree.js +0 -16
  45. package/src/languageProcessing/helpers/image/imageInText.js +0 -19
  46. package/src/languageProcessing/helpers/index.js +0 -12
  47. package/src/languageProcessing/helpers/language/getLanguage.js +0 -9
  48. package/src/languageProcessing/helpers/link/checkNofollow.js +0 -38
  49. package/src/languageProcessing/helpers/link/getAnchorsFromText.js +0 -32
  50. package/src/languageProcessing/helpers/link/getLinkType.js +0 -32
  51. package/src/languageProcessing/helpers/match/findKeywordFormsInString.js +0 -101
  52. package/src/languageProcessing/helpers/match/isDoubleQuoted.js +0 -13
  53. package/src/languageProcessing/helpers/match/matchTextWithArray.js +0 -36
  54. package/src/languageProcessing/helpers/match/matchTextWithTransliteration.js +0 -58
  55. package/src/languageProcessing/helpers/match/matchTextWithWord.js +0 -45
  56. package/src/languageProcessing/helpers/match/matchWordFormsWithSentence.js +0 -164
  57. package/src/languageProcessing/helpers/match/processExactMatchRequest.js +0 -20
  58. package/src/languageProcessing/helpers/morphology/baseStemmer.js +0 -11
  59. package/src/languageProcessing/helpers/morphology/buildFormRule.js +0 -19
  60. package/src/languageProcessing/helpers/morphology/buildTopicStems.js +0 -169
  61. package/src/languageProcessing/helpers/morphology/createRulesFromArrays.js +0 -45
  62. package/src/languageProcessing/helpers/morphology/exceptionListHelpers.js +0 -65
  63. package/src/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +0 -24
  64. package/src/languageProcessing/helpers/morphology/flattenSortLength.js +0 -14
  65. package/src/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +0 -39
  66. package/src/languageProcessing/helpers/morphology/regexHelpers.js +0 -44
  67. package/src/languageProcessing/helpers/morphology/stemHelpers.js +0 -38
  68. package/src/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +0 -31
  69. package/src/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +0 -36
  70. package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +0 -113
  71. package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +0 -45
  72. package/src/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +0 -231
  73. package/src/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +0 -20
  74. package/src/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +0 -23
  75. package/src/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +0 -40
  76. package/src/languageProcessing/helpers/prominentWords/determineProminentWords.js +0 -238
  77. package/src/languageProcessing/helpers/regex/createRegexFromArray.js +0 -35
  78. package/src/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +0 -34
  79. package/src/languageProcessing/helpers/regex/createWordRegex.js +0 -30
  80. package/src/languageProcessing/helpers/regex/matchStringWithRegex.js +0 -19
  81. package/src/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +0 -14
  82. package/src/languageProcessing/helpers/sanitize/doubleQuotes.js +0 -12
  83. package/src/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +0 -131
  84. package/src/languageProcessing/helpers/sanitize/mergeListItems.js +0 -24
  85. package/src/languageProcessing/helpers/sanitize/parseSynonyms.js +0 -20
  86. package/src/languageProcessing/helpers/sanitize/quotes.js +0 -46
  87. package/src/languageProcessing/helpers/sanitize/removeEmailAddresses.js +0 -12
  88. package/src/languageProcessing/helpers/sanitize/removePunctuation.js +0 -64
  89. package/src/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +0 -18
  90. package/src/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +0 -13
  91. package/src/languageProcessing/helpers/sanitize/removeURLs.js +0 -13
  92. package/src/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +0 -11
  93. package/src/languageProcessing/helpers/sanitize/sanitizeString.js +0 -18
  94. package/src/languageProcessing/helpers/sanitize/stripHTMLTags.js +0 -57
  95. package/src/languageProcessing/helpers/sanitize/stripNonTextTags.js +0 -15
  96. package/src/languageProcessing/helpers/sanitize/stripNumbers.js +0 -21
  97. package/src/languageProcessing/helpers/sanitize/stripSpaces.js +0 -23
  98. package/src/languageProcessing/helpers/sanitize/stripWordBoundaries.js +0 -65
  99. package/src/languageProcessing/helpers/sanitize/unifyWhitespace.js +0 -61
  100. package/src/languageProcessing/helpers/sentence/SentenceTokenizer.js +0 -640
  101. package/src/languageProcessing/helpers/sentence/countSentences.js +0 -20
  102. package/src/languageProcessing/helpers/sentence/getSentences.js +0 -65
  103. package/src/languageProcessing/helpers/sentence/getSentencesFromTree.js +0 -55
  104. package/src/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +0 -28
  105. package/src/languageProcessing/helpers/sentence/sentencesLength.js +0 -31
  106. package/src/languageProcessing/helpers/syllables/DeviationFragment.js +0 -112
  107. package/src/languageProcessing/helpers/syllables/countSyllables.js +0 -182
  108. package/src/languageProcessing/helpers/syllables/syllableCountIterator.js +0 -56
  109. package/src/languageProcessing/helpers/syllables/syllableCountStep.js +0 -68
  110. package/src/languageProcessing/helpers/transform/transformWordsWithHyphens.js +0 -17
  111. package/src/languageProcessing/helpers/transliterate/replaceDiacritics.js +0 -22
  112. package/src/languageProcessing/helpers/transliterate/specialCharacterMappings.js +0 -214
  113. package/src/languageProcessing/helpers/transliterate/transliterate.js +0 -20
  114. package/src/languageProcessing/helpers/transliterate/transliterateWPstyle.js +0 -21
  115. package/src/languageProcessing/helpers/url/parseSlug.js +0 -10
  116. package/src/languageProcessing/helpers/url/url.js +0 -172
  117. package/src/languageProcessing/helpers/word/addWordboundary.js +0 -37
  118. package/src/languageProcessing/helpers/word/areWordsInSentence.js +0 -16
  119. package/src/languageProcessing/helpers/word/countMetaDescriptionLength.js +0 -18
  120. package/src/languageProcessing/helpers/word/countWords.js +0 -14
  121. package/src/languageProcessing/helpers/word/createPunctuationTokens.js +0 -42
  122. package/src/languageProcessing/helpers/word/filterWordsFromArray.js +0 -15
  123. package/src/languageProcessing/helpers/word/followsIndex.js +0 -25
  124. package/src/languageProcessing/helpers/word/getAllWordsFromTree.js +0 -23
  125. package/src/languageProcessing/helpers/word/getWords.js +0 -43
  126. package/src/languageProcessing/helpers/word/includesIndex.js +0 -30
  127. package/src/languageProcessing/helpers/word/indices.js +0 -146
  128. package/src/languageProcessing/helpers/word/markWordsInSentences.js +0 -173
  129. package/src/languageProcessing/helpers/word/matchWordInSentence.js +0 -61
  130. package/src/languageProcessing/helpers/word/splitIntoTokens.js +0 -46
  131. package/src/languageProcessing/index.js +0 -91
  132. package/src/languageProcessing/languages/_default/Researcher.js +0 -34
  133. package/src/languageProcessing/languages/_default/helpers/getStemmer.js +0 -11
  134. package/src/languageProcessing/languages/ar/Researcher.js +0 -46
  135. package/src/languageProcessing/languages/ar/config/firstWordExceptions.js +0 -14
  136. package/src/languageProcessing/languages/ar/config/functionWords.js +0 -329
  137. package/src/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +0 -570
  138. package/src/languageProcessing/languages/ar/config/prefixedFunctionWords.js +0 -5
  139. package/src/languageProcessing/languages/ar/config/transitionWords.js +0 -19
  140. package/src/languageProcessing/languages/ar/config/twoPartTransitionWords.js +0 -7
  141. package/src/languageProcessing/languages/ar/helpers/createBasicWordForms.js +0 -32
  142. package/src/languageProcessing/languages/ar/helpers/getStemmer.js +0 -22
  143. package/src/languageProcessing/languages/ar/helpers/internal/stem.js +0 -632
  144. package/src/languageProcessing/languages/ar/helpers/isPassiveSentence.js +0 -33
  145. package/src/languageProcessing/languages/ca/Researcher.js +0 -43
  146. package/src/languageProcessing/languages/ca/config/sentenceLength.js +0 -3
  147. package/src/languageProcessing/languages/ca/config/transitionWords.js +0 -31
  148. package/src/languageProcessing/languages/ca/config/twoPartTransitionWords.js +0 -7
  149. package/src/languageProcessing/languages/ca/helpers/getStemmer.js +0 -11
  150. package/src/languageProcessing/languages/cs/Researcher.js +0 -44
  151. package/src/languageProcessing/languages/cs/config/firstWordExceptions.js +0 -15
  152. package/src/languageProcessing/languages/cs/config/functionWords.js +0 -121
  153. package/src/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +0 -38
  154. package/src/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +0 -54
  155. package/src/languageProcessing/languages/cs/config/stopWords.js +0 -42
  156. package/src/languageProcessing/languages/cs/config/transitionWords.js +0 -26
  157. package/src/languageProcessing/languages/cs/config/twoPartTransitionWords.js +0 -8
  158. package/src/languageProcessing/languages/cs/helpers/getClauses.js +0 -26
  159. package/src/languageProcessing/languages/cs/helpers/getStemmer.js +0 -22
  160. package/src/languageProcessing/languages/cs/helpers/internal/getParticiples.js +0 -16
  161. package/src/languageProcessing/languages/cs/helpers/internal/stem.js +0 -499
  162. package/src/languageProcessing/languages/cs/values/Clause.js +0 -34
  163. package/src/languageProcessing/languages/de/Researcher.js +0 -52
  164. package/src/languageProcessing/languages/de/config/firstWordExceptions.js +0 -17
  165. package/src/languageProcessing/languages/de/config/functionWords.js +0 -303
  166. package/src/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +0 -2231
  167. package/src/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +0 -96
  168. package/src/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +0 -368
  169. package/src/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +0 -72
  170. package/src/languageProcessing/languages/de/config/keyphraseLength.js +0 -11
  171. package/src/languageProcessing/languages/de/config/stopWords.js +0 -67
  172. package/src/languageProcessing/languages/de/config/syllables.json +0 -460
  173. package/src/languageProcessing/languages/de/config/transitionWords.js +0 -31
  174. package/src/languageProcessing/languages/de/config/twoPartTransitionWords.js +0 -12
  175. package/src/languageProcessing/languages/de/config/wordComplexity.js +0 -4
  176. package/src/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +0 -18
  177. package/src/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +0 -40
  178. package/src/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +0 -15
  179. package/src/languageProcessing/languages/de/helpers/getClauses.js +0 -25
  180. package/src/languageProcessing/languages/de/helpers/getStemmer.js +0 -22
  181. package/src/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +0 -31
  182. package/src/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +0 -128
  183. package/src/languageProcessing/languages/de/helpers/internal/determineStem.js +0 -128
  184. package/src/languageProcessing/languages/de/helpers/internal/getParticiples.js +0 -40
  185. package/src/languageProcessing/languages/de/helpers/internal/stem.js +0 -215
  186. package/src/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +0 -28
  187. package/src/languageProcessing/languages/de/values/Clause.js +0 -85
  188. package/src/languageProcessing/languages/el/Researcher.js +0 -46
  189. package/src/languageProcessing/languages/el/config/firstWordExceptions.js +0 -47
  190. package/src/languageProcessing/languages/el/config/functionWords.js +0 -116
  191. package/src/languageProcessing/languages/el/config/internal/auxiliaries.js +0 -19
  192. package/src/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +0 -87
  193. package/src/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +0 -138
  194. package/src/languageProcessing/languages/el/config/stopWords.js +0 -854
  195. package/src/languageProcessing/languages/el/config/transitionWords.js +0 -26
  196. package/src/languageProcessing/languages/el/config/twoPartTransitionWords.js +0 -10
  197. package/src/languageProcessing/languages/el/helpers/getClauses.js +0 -25
  198. package/src/languageProcessing/languages/el/helpers/getStemmer.js +0 -21
  199. package/src/languageProcessing/languages/el/helpers/internal/getParticiples.js +0 -20
  200. package/src/languageProcessing/languages/el/helpers/internal/stem.js +0 -368
  201. package/src/languageProcessing/languages/el/helpers/isPassiveSentence.js +0 -38
  202. package/src/languageProcessing/languages/el/values/Clause.js +0 -37
  203. package/src/languageProcessing/languages/en/Researcher.js +0 -46
  204. package/src/languageProcessing/languages/en/config/abbreviations.js +0 -55
  205. package/src/languageProcessing/languages/en/config/firstWordExceptions.js +0 -14
  206. package/src/languageProcessing/languages/en/config/functionWords.js +0 -186
  207. package/src/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +0 -44
  208. package/src/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +0 -354
  209. package/src/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +0 -3047
  210. package/src/languageProcessing/languages/en/config/regularParticiplesRegex.js +0 -5
  211. package/src/languageProcessing/languages/en/config/stopWords.js +0 -52
  212. package/src/languageProcessing/languages/en/config/syllables.json +0 -86
  213. package/src/languageProcessing/languages/en/config/transitionWords.js +0 -48
  214. package/src/languageProcessing/languages/en/config/twoPartTransitionWords.js +0 -7
  215. package/src/languageProcessing/languages/en/config/wordComplexity.js +0 -5
  216. package/src/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +0 -18
  217. package/src/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +0 -43
  218. package/src/languageProcessing/languages/en/helpers/getClauses.js +0 -49
  219. package/src/languageProcessing/languages/en/helpers/getStemmer.js +0 -22
  220. package/src/languageProcessing/languages/en/helpers/internal/determineStem.js +0 -178
  221. package/src/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +0 -162
  222. package/src/languageProcessing/languages/en/helpers/internal/getParticiples.js +0 -25
  223. package/src/languageProcessing/languages/en/helpers/internal/getVerbStem.js +0 -237
  224. package/src/languageProcessing/languages/en/values/Clause.js +0 -68
  225. package/src/languageProcessing/languages/es/Researcher.js +0 -48
  226. package/src/languageProcessing/languages/es/config/firstWordExceptions.js +0 -16
  227. package/src/languageProcessing/languages/es/config/functionWords.js +0 -321
  228. package/src/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +0 -60
  229. package/src/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +0 -7327
  230. package/src/languageProcessing/languages/es/config/sentenceLength.js +0 -3
  231. package/src/languageProcessing/languages/es/config/stopWords.js +0 -33
  232. package/src/languageProcessing/languages/es/config/syllables.json +0 -176
  233. package/src/languageProcessing/languages/es/config/transitionWords.js +0 -40
  234. package/src/languageProcessing/languages/es/config/twoPartTransitionWords.js +0 -10
  235. package/src/languageProcessing/languages/es/config/wordComplexity.js +0 -4
  236. package/src/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +0 -18
  237. package/src/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +0 -56
  238. package/src/languageProcessing/languages/es/helpers/getClauses.js +0 -29
  239. package/src/languageProcessing/languages/es/helpers/getStemmer.js +0 -22
  240. package/src/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +0 -41
  241. package/src/languageProcessing/languages/es/helpers/internal/getParticiples.js +0 -35
  242. package/src/languageProcessing/languages/es/helpers/internal/stem.js +0 -793
  243. package/src/languageProcessing/languages/es/values/Clause.js +0 -47
  244. package/src/languageProcessing/languages/fa/Researcher.js +0 -47
  245. package/src/languageProcessing/languages/fa/config/firstWordExceptions.js +0 -12
  246. package/src/languageProcessing/languages/fa/config/functionWords.js +0 -122
  247. package/src/languageProcessing/languages/fa/config/internal/participles.js +0 -1429
  248. package/src/languageProcessing/languages/fa/config/sentenceLength.js +0 -3
  249. package/src/languageProcessing/languages/fa/config/transitionWords.js +0 -20
  250. package/src/languageProcessing/languages/fa/config/twoPartTransitionWords.js +0 -9
  251. package/src/languageProcessing/languages/fa/helpers/createBasicWordForms.js +0 -97
  252. package/src/languageProcessing/languages/fa/helpers/getStemmer.js +0 -13
  253. package/src/languageProcessing/languages/fa/helpers/isPassiveSentence.js +0 -14
  254. package/src/languageProcessing/languages/fr/Researcher.js +0 -46
  255. package/src/languageProcessing/languages/fr/config/firstWordExceptions.js +0 -16
  256. package/src/languageProcessing/languages/fr/config/functionWords.js +0 -281
  257. package/src/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +0 -1510
  258. package/src/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +0 -108
  259. package/src/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +0 -565
  260. package/src/languageProcessing/languages/fr/config/stopWords.js +0 -119
  261. package/src/languageProcessing/languages/fr/config/syllables.json +0 -1426
  262. package/src/languageProcessing/languages/fr/config/transitionWords.js +0 -59
  263. package/src/languageProcessing/languages/fr/config/twoPartTransitionWords.js +0 -15
  264. package/src/languageProcessing/languages/fr/config/wordComplexity.js +0 -4
  265. package/src/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +0 -18
  266. package/src/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +0 -67
  267. package/src/languageProcessing/languages/fr/helpers/getClauses.js +0 -34
  268. package/src/languageProcessing/languages/fr/helpers/getStemmer.js +0 -22
  269. package/src/languageProcessing/languages/fr/helpers/internal/getParticiples.js +0 -72
  270. package/src/languageProcessing/languages/fr/helpers/internal/stem.js +0 -633
  271. package/src/languageProcessing/languages/fr/values/Clause.js +0 -96
  272. package/src/languageProcessing/languages/he/Researcher.js +0 -50
  273. package/src/languageProcessing/languages/he/config/firstWordExceptions.js +0 -13
  274. package/src/languageProcessing/languages/he/config/functionWords.js +0 -564
  275. package/src/languageProcessing/languages/he/config/internal/regularRootsHufal.js +0 -186
  276. package/src/languageProcessing/languages/he/config/internal/regularRootsNifal.js +0 -195
  277. package/src/languageProcessing/languages/he/config/internal/regularRootsPual.js +0 -168
  278. package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +0 -188
  279. package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +0 -197
  280. package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +0 -170
  281. package/src/languageProcessing/languages/he/config/prefixedFunctionWords.js +0 -2
  282. package/src/languageProcessing/languages/he/config/sentenceLength.js +0 -3
  283. package/src/languageProcessing/languages/he/config/transitionWords.js +0 -28
  284. package/src/languageProcessing/languages/he/config/twoPartTransitionWords.js +0 -8
  285. package/src/languageProcessing/languages/he/helpers/createBasicWordForms.js +0 -33
  286. package/src/languageProcessing/languages/he/helpers/getStemmer.js +0 -22
  287. package/src/languageProcessing/languages/he/helpers/internal/stem.js +0 -52
  288. package/src/languageProcessing/languages/he/helpers/isPassiveSentence.js +0 -96
  289. package/src/languageProcessing/languages/he/helpers/stem.js +0 -52
  290. package/src/languageProcessing/languages/hu/Researcher.js +0 -48
  291. package/src/languageProcessing/languages/hu/config/firstWordExceptions.js +0 -31
  292. package/src/languageProcessing/languages/hu/config/functionWords.js +0 -284
  293. package/src/languageProcessing/languages/hu/config/internal/auxiliaries.js +0 -97
  294. package/src/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +0 -125
  295. package/src/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +0 -265
  296. package/src/languageProcessing/languages/hu/config/internal/odikVerbs.js +0 -273
  297. package/src/languageProcessing/languages/hu/config/internal/participles.js +0 -412
  298. package/src/languageProcessing/languages/hu/config/stopWords.js +0 -213
  299. package/src/languageProcessing/languages/hu/config/transitionWords.js +0 -42
  300. package/src/languageProcessing/languages/hu/config/twoPartTransitionWords.js +0 -34
  301. package/src/languageProcessing/languages/hu/helpers/getClauses.js +0 -25
  302. package/src/languageProcessing/languages/hu/helpers/getStemmer.js +0 -22
  303. package/src/languageProcessing/languages/hu/helpers/internal/getParticiples.js +0 -21
  304. package/src/languageProcessing/languages/hu/helpers/internal/stem.js +0 -389
  305. package/src/languageProcessing/languages/hu/helpers/isPassiveSentence.js +0 -54
  306. package/src/languageProcessing/languages/hu/values/Clause.js +0 -41
  307. package/src/languageProcessing/languages/id/Researcher.js +0 -46
  308. package/src/languageProcessing/languages/id/config/firstWordExceptions.js +0 -13
  309. package/src/languageProcessing/languages/id/config/functionWords.js +0 -202
  310. package/src/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +0 -215
  311. package/src/languageProcessing/languages/id/config/transitionWords.js +0 -62
  312. package/src/languageProcessing/languages/id/config/twoPartTransitionWords.js +0 -13
  313. package/src/languageProcessing/languages/id/helpers/getStemmer.js +0 -22
  314. package/src/languageProcessing/languages/id/helpers/internal/stem.js +0 -462
  315. package/src/languageProcessing/languages/id/helpers/internal/stemHelpers.js +0 -78
  316. package/src/languageProcessing/languages/id/helpers/isPassiveSentence.js +0 -39
  317. package/src/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +0 -47
  318. package/src/languageProcessing/languages/it/Researcher.js +0 -48
  319. package/src/languageProcessing/languages/it/config/firstWordExceptions.js +0 -17
  320. package/src/languageProcessing/languages/it/config/functionWords.js +0 -277
  321. package/src/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +0 -98
  322. package/src/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +0 -7197
  323. package/src/languageProcessing/languages/it/config/sentenceLength.js +0 -3
  324. package/src/languageProcessing/languages/it/config/stopWords.js +0 -57
  325. package/src/languageProcessing/languages/it/config/syllables.json +0 -573
  326. package/src/languageProcessing/languages/it/config/transitionWords.js +0 -104
  327. package/src/languageProcessing/languages/it/config/twoPartTransitionWords.js +0 -9
  328. package/src/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +0 -15
  329. package/src/languageProcessing/languages/it/helpers/getClauses.js +0 -32
  330. package/src/languageProcessing/languages/it/helpers/getStemmer.js +0 -22
  331. package/src/languageProcessing/languages/it/helpers/internal/getParticiples.js +0 -34
  332. package/src/languageProcessing/languages/it/helpers/internal/stem.js +0 -436
  333. package/src/languageProcessing/languages/it/values/Clause.js +0 -47
  334. package/src/languageProcessing/languages/ja/Researcher.js +0 -86
  335. package/src/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +0 -4
  336. package/src/languageProcessing/languages/ja/config/firstWordExceptions.js +0 -8
  337. package/src/languageProcessing/languages/ja/config/functionWords.js +0 -563
  338. package/src/languageProcessing/languages/ja/config/keyphraseLength.js +0 -16
  339. package/src/languageProcessing/languages/ja/config/metaDescriptionLength.js +0 -4
  340. package/src/languageProcessing/languages/ja/config/paragraphLength.js +0 -10
  341. package/src/languageProcessing/languages/ja/config/sentenceLength.js +0 -4
  342. package/src/languageProcessing/languages/ja/config/subheadingsTooLong.js +0 -18
  343. package/src/languageProcessing/languages/ja/config/textLength.js +0 -47
  344. package/src/languageProcessing/languages/ja/config/topicLength.js +0 -5
  345. package/src/languageProcessing/languages/ja/config/transitionWords.js +0 -354
  346. package/src/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +0 -98
  347. package/src/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +0 -19
  348. package/src/languageProcessing/languages/ja/customResearches/getWordForms.js +0 -50
  349. package/src/languageProcessing/languages/ja/customResearches/textLength.js +0 -24
  350. package/src/languageProcessing/languages/ja/helpers/countCharacters.js +0 -19
  351. package/src/languageProcessing/languages/ja/helpers/customGetStemmer.js +0 -21
  352. package/src/languageProcessing/languages/ja/helpers/getContentWords.js +0 -21
  353. package/src/languageProcessing/languages/ja/helpers/getWords.js +0 -31
  354. package/src/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +0 -102
  355. package/src/languageProcessing/languages/ja/helpers/internal/createWordForms.js +0 -68
  356. package/src/languageProcessing/languages/ja/helpers/internal/determineStem.js +0 -17
  357. package/src/languageProcessing/languages/ja/helpers/matchTextWithWord.js +0 -53
  358. package/src/languageProcessing/languages/ja/helpers/matchTransitionWords.js +0 -25
  359. package/src/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +0 -28
  360. package/src/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +0 -20
  361. package/src/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +0 -13
  362. package/src/languageProcessing/languages/nb/Researcher.js +0 -45
  363. package/src/languageProcessing/languages/nb/config/firstWordExceptions.js +0 -12
  364. package/src/languageProcessing/languages/nb/config/functionWords.js +0 -106
  365. package/src/languageProcessing/languages/nb/config/internal/participles.js +0 -3127
  366. package/src/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +0 -15
  367. package/src/languageProcessing/languages/nb/config/stopWords.js +0 -39
  368. package/src/languageProcessing/languages/nb/config/transitionWords.js +0 -21
  369. package/src/languageProcessing/languages/nb/config/twoPartTransitionWords.js +0 -10
  370. package/src/languageProcessing/languages/nb/helpers/getClauses.js +0 -28
  371. package/src/languageProcessing/languages/nb/helpers/getStemmer.js +0 -22
  372. package/src/languageProcessing/languages/nb/helpers/internal/getParticiples.js +0 -24
  373. package/src/languageProcessing/languages/nb/helpers/internal/stem.js +0 -133
  374. package/src/languageProcessing/languages/nb/values/Clause.js +0 -43
  375. package/src/languageProcessing/languages/nl/Researcher.js +0 -48
  376. package/src/languageProcessing/languages/nl/config/firstWordExceptions.js +0 -15
  377. package/src/languageProcessing/languages/nl/config/functionWords.js +0 -233
  378. package/src/languageProcessing/languages/nl/config/internal/nonParticiples.js +0 -2515
  379. package/src/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +0 -13
  380. package/src/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +0 -474
  381. package/src/languageProcessing/languages/nl/config/keyphraseLength.js +0 -10
  382. package/src/languageProcessing/languages/nl/config/stopWords.js +0 -35
  383. package/src/languageProcessing/languages/nl/config/syllables.json +0 -343
  384. package/src/languageProcessing/languages/nl/config/transitionWords.js +0 -22
  385. package/src/languageProcessing/languages/nl/config/twoPartTransitionWords.js +0 -8
  386. package/src/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +0 -15
  387. package/src/languageProcessing/languages/nl/helpers/getClauses.js +0 -25
  388. package/src/languageProcessing/languages/nl/helpers/getStemmer.js +0 -22
  389. package/src/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +0 -128
  390. package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +0 -324
  391. package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +0 -164
  392. package/src/languageProcessing/languages/nl/helpers/internal/determineStem.js +0 -133
  393. package/src/languageProcessing/languages/nl/helpers/internal/getParticiples.js +0 -25
  394. package/src/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +0 -183
  395. package/src/languageProcessing/languages/nl/helpers/internal/stem.js +0 -146
  396. package/src/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +0 -109
  397. package/src/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +0 -65
  398. package/src/languageProcessing/languages/nl/values/Clause.js +0 -62
  399. package/src/languageProcessing/languages/pl/Researcher.js +0 -47
  400. package/src/languageProcessing/languages/pl/config/firstWordExceptions.js +0 -12
  401. package/src/languageProcessing/languages/pl/config/functionWords.js +0 -421
  402. package/src/languageProcessing/languages/pl/config/internal/auxiliaries.js +0 -85
  403. package/src/languageProcessing/languages/pl/config/internal/participles.js +0 -26433
  404. package/src/languageProcessing/languages/pl/config/sentenceLength.js +0 -10
  405. package/src/languageProcessing/languages/pl/config/stopWords.js +0 -36
  406. package/src/languageProcessing/languages/pl/config/transitionWords.js +0 -42
  407. package/src/languageProcessing/languages/pl/config/twoPartTransitionWords.js +0 -8
  408. package/src/languageProcessing/languages/pl/helpers/getClauses.js +0 -25
  409. package/src/languageProcessing/languages/pl/helpers/getStemmer.js +0 -22
  410. package/src/languageProcessing/languages/pl/helpers/internal/getParticiples.js +0 -18
  411. package/src/languageProcessing/languages/pl/helpers/internal/stem.js +0 -161
  412. package/src/languageProcessing/languages/pl/values/Clause.js +0 -53
  413. package/src/languageProcessing/languages/pt/Researcher.js +0 -48
  414. package/src/languageProcessing/languages/pt/config/firstWordExceptions.js +0 -15
  415. package/src/languageProcessing/languages/pt/config/functionWords.js +0 -226
  416. package/src/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +0 -66
  417. package/src/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +0 -4088
  418. package/src/languageProcessing/languages/pt/config/sentenceLength.js +0 -3
  419. package/src/languageProcessing/languages/pt/config/stopWords.js +0 -50
  420. package/src/languageProcessing/languages/pt/config/syllables.json +0 -38
  421. package/src/languageProcessing/languages/pt/config/transitionWords.js +0 -34
  422. package/src/languageProcessing/languages/pt/config/twoPartTransitionWords.js +0 -9
  423. package/src/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +0 -15
  424. package/src/languageProcessing/languages/pt/helpers/getClauses.js +0 -29
  425. package/src/languageProcessing/languages/pt/helpers/getStemmer.js +0 -22
  426. package/src/languageProcessing/languages/pt/helpers/internal/getParticiples.js +0 -35
  427. package/src/languageProcessing/languages/pt/helpers/internal/stem.js +0 -319
  428. package/src/languageProcessing/languages/pt/values/Clause.js +0 -43
  429. package/src/languageProcessing/languages/ru/Researcher.js +0 -48
  430. package/src/languageProcessing/languages/ru/config/firstWordExceptions.js +0 -14
  431. package/src/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +0 -20
  432. package/src/languageProcessing/languages/ru/config/functionWords.js +0 -519
  433. package/src/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +0 -2914
  434. package/src/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +0 -6295
  435. package/src/languageProcessing/languages/ru/config/sentenceLength.js +0 -3
  436. package/src/languageProcessing/languages/ru/config/syllables.json +0 -19
  437. package/src/languageProcessing/languages/ru/config/transitionWords.js +0 -62
  438. package/src/languageProcessing/languages/ru/config/twoPartTransitionWords.js +0 -14
  439. package/src/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +0 -16
  440. package/src/languageProcessing/languages/ru/helpers/getStemmer.js +0 -22
  441. package/src/languageProcessing/languages/ru/helpers/internal/stem.js +0 -288
  442. package/src/languageProcessing/languages/ru/helpers/isPassiveSentence.js +0 -14
  443. package/src/languageProcessing/languages/sk/Researcher.js +0 -46
  444. package/src/languageProcessing/languages/sk/config/firstWordExceptions.js +0 -14
  445. package/src/languageProcessing/languages/sk/config/functionWords.js +0 -855
  446. package/src/languageProcessing/languages/sk/config/internal/nonPassives.js +0 -1074
  447. package/src/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +0 -22
  448. package/src/languageProcessing/languages/sk/config/stopWords.js +0 -34
  449. package/src/languageProcessing/languages/sk/config/transitionWords.js +0 -23
  450. package/src/languageProcessing/languages/sk/config/twoPartTransitionWords.js +0 -10
  451. package/src/languageProcessing/languages/sk/helpers/getClauses.js +0 -26
  452. package/src/languageProcessing/languages/sk/helpers/getStemmer.js +0 -22
  453. package/src/languageProcessing/languages/sk/helpers/internal/getParticiples.js +0 -16
  454. package/src/languageProcessing/languages/sk/helpers/internal/stem.js +0 -319
  455. package/src/languageProcessing/languages/sk/values/Clause.js +0 -39
  456. package/src/languageProcessing/languages/sv/Researcher.js +0 -45
  457. package/src/languageProcessing/languages/sv/config/firstWordExceptions.js +0 -15
  458. package/src/languageProcessing/languages/sv/config/functionWords.js +0 -176
  459. package/src/languageProcessing/languages/sv/config/internal/passiveVerbs.js +0 -10400
  460. package/src/languageProcessing/languages/sv/config/keyphraseLength.js +0 -11
  461. package/src/languageProcessing/languages/sv/config/transitionWords.js +0 -35
  462. package/src/languageProcessing/languages/sv/config/twoPartTransitionWords.js +0 -8
  463. package/src/languageProcessing/languages/sv/helpers/getStemmer.js +0 -22
  464. package/src/languageProcessing/languages/sv/helpers/internal/stem.js +0 -152
  465. package/src/languageProcessing/languages/sv/helpers/isPassiveSentence.js +0 -14
  466. package/src/languageProcessing/languages/tr/Researcher.js +0 -44
  467. package/src/languageProcessing/languages/tr/config/firstWordExceptions.js +0 -13
  468. package/src/languageProcessing/languages/tr/config/functionWords.js +0 -116
  469. package/src/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +0 -574
  470. package/src/languageProcessing/languages/tr/config/internal/passiveEndings.js +0 -151
  471. package/src/languageProcessing/languages/tr/config/sentenceLength.js +0 -7
  472. package/src/languageProcessing/languages/tr/config/transitionWords.js +0 -42
  473. package/src/languageProcessing/languages/tr/config/twoPartTransitionWords.js +0 -7
  474. package/src/languageProcessing/languages/tr/helpers/getStemmer.js +0 -22
  475. package/src/languageProcessing/languages/tr/helpers/internal/stem.js +0 -20
  476. package/src/languageProcessing/languages/tr/helpers/isPassiveSentence.js +0 -43
  477. package/src/languageProcessing/researches/altTagCount.js +0 -70
  478. package/src/languageProcessing/researches/countSentencesFromText.js +0 -19
  479. package/src/languageProcessing/researches/findKeyphraseInSEOTitle.js +0 -257
  480. package/src/languageProcessing/researches/findKeywordInFirstParagraph.js +0 -86
  481. package/src/languageProcessing/researches/findTransitionWords.js +0 -123
  482. package/src/languageProcessing/researches/functionWordsInKeyphrase.js +0 -44
  483. package/src/languageProcessing/researches/getAnchorsWithKeyphrase.js +0 -227
  484. package/src/languageProcessing/researches/getFleschReadingScore.js +0 -150
  485. package/src/languageProcessing/researches/getKeywordDensity.js +0 -44
  486. package/src/languageProcessing/researches/getLinkStatistics.js +0 -54
  487. package/src/languageProcessing/researches/getLinks.js +0 -18
  488. package/src/languageProcessing/researches/getLongCenterAlignedTexts.js +0 -37
  489. package/src/languageProcessing/researches/getParagraphLength.js +0 -44
  490. package/src/languageProcessing/researches/getParagraphs.js +0 -18
  491. package/src/languageProcessing/researches/getPassiveVoiceResult.js +0 -129
  492. package/src/languageProcessing/researches/getProminentWordsForInsights.js +0 -48
  493. package/src/languageProcessing/researches/getProminentWordsForInternalLinking.js +0 -119
  494. package/src/languageProcessing/researches/getSentenceBeginnings.js +0 -124
  495. package/src/languageProcessing/researches/getSubheadingTextLengths.js +0 -59
  496. package/src/languageProcessing/researches/getWordForms.js +0 -204
  497. package/src/languageProcessing/researches/h1s.js +0 -10
  498. package/src/languageProcessing/researches/imageCount.js +0 -16
  499. package/src/languageProcessing/researches/index.js +0 -5
  500. package/src/languageProcessing/researches/keyphraseDistribution.js +0 -249
  501. package/src/languageProcessing/researches/keyphraseLength.js +0 -17
  502. package/src/languageProcessing/researches/keywordCount.js +0 -134
  503. package/src/languageProcessing/researches/keywordCountInUrl.js +0 -57
  504. package/src/languageProcessing/researches/matchKeywordInSubheadings.js +0 -62
  505. package/src/languageProcessing/researches/metaDescriptionKeyword.js +0 -85
  506. package/src/languageProcessing/researches/metaDescriptionLength.js +0 -12
  507. package/src/languageProcessing/researches/pageTitleWidth.js +0 -11
  508. package/src/languageProcessing/researches/readingTime.js +0 -82
  509. package/src/languageProcessing/researches/sentences.js +0 -20
  510. package/src/languageProcessing/researches/videoCount.js +0 -32
  511. package/src/languageProcessing/researches/wordComplexity.js +0 -129
  512. package/src/languageProcessing/researches/wordCountInText.js +0 -29
  513. package/src/languageProcessing/values/Clause.js +0 -108
  514. package/src/languageProcessing/values/ProminentWord.js +0 -95
  515. package/src/languageProcessing/values/Sentence.js +0 -111
  516. package/src/languageProcessing/values/index.js +0 -9
  517. package/src/markers/addMark.js +0 -9
  518. package/src/markers/addMarkSingleWord.js +0 -32
  519. package/src/markers/index.js +0 -7
  520. package/src/markers/removeDuplicateMarks.js +0 -27
  521. package/src/markers/removeMarks.js +0 -11
  522. package/src/parse/build/build.js +0 -52
  523. package/src/parse/build/index.js +0 -10
  524. package/src/parse/build/private/adapt.js +0 -113
  525. package/src/parse/build/private/adaptAttributes.js +0 -36
  526. package/src/parse/build/private/alwaysFilterElements.js +0 -75
  527. package/src/parse/build/private/combineIntoImplicitParagraphs.js +0 -130
  528. package/src/parse/build/private/filterBeforeTokenizing.js +0 -32
  529. package/src/parse/build/private/filterHelpers.js +0 -44
  530. package/src/parse/build/private/filterTree.js +0 -42
  531. package/src/parse/build/private/getTextElementPositions.js +0 -184
  532. package/src/parse/build/private/helpers/parseClassAttribute.js +0 -9
  533. package/src/parse/build/private/isPhrasingContent.js +0 -28
  534. package/src/parse/build/private/parseBlocks.js +0 -151
  535. package/src/parse/build/private/tokenize.js +0 -74
  536. package/src/parse/language/LanguageProcessor.js +0 -74
  537. package/src/parse/structure/Heading.js +0 -26
  538. package/src/parse/structure/Node.js +0 -69
  539. package/src/parse/structure/Paragraph.js +0 -48
  540. package/src/parse/structure/Sentence.js +0 -30
  541. package/src/parse/structure/SourceCodeLocation.js +0 -41
  542. package/src/parse/structure/Text.js +0 -27
  543. package/src/parse/structure/Token.js +0 -24
  544. package/src/parse/structure/index.js +0 -16
  545. package/src/parse/traverse/findAllInTree.js +0 -58
  546. package/src/parse/traverse/index.js +0 -12
  547. package/src/parse/traverse/innerText.js +0 -26
  548. package/src/parsedPaper/ParsedPaper.js +0 -92
  549. package/src/parsedPaper/assess/TreeAssessor.js +0 -184
  550. package/src/parsedPaper/assess/assessmentListFactories.js +0 -73
  551. package/src/parsedPaper/assess/assessments/Assessment.js +0 -79
  552. package/src/parsedPaper/assess/assessments/index.js +0 -6
  553. package/src/parsedPaper/assess/assessorFactories.js +0 -104
  554. package/src/parsedPaper/assess/cornerstone/assessmentListFactories.js +0 -47
  555. package/src/parsedPaper/assess/cornerstone/index.js +0 -5
  556. package/src/parsedPaper/assess/index.js +0 -20
  557. package/src/parsedPaper/build/PaperParser.js +0 -105
  558. package/src/parsedPaper/build/linguisticParsing/Sentence.js +0 -89
  559. package/src/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +0 -323
  560. package/src/parsedPaper/build/linguisticParsing/parseText.js +0 -20
  561. package/src/parsedPaper/build/tree/TreeBuilder.js +0 -75
  562. package/src/parsedPaper/build/tree/cleanup/calculateTextIndices.js +0 -190
  563. package/src/parsedPaper/build/tree/cleanup/getElementContent.js +0 -21
  564. package/src/parsedPaper/build/tree/cleanup/postParsing.js +0 -37
  565. package/src/parsedPaper/build/tree/html/HTMLTreeConverter.js +0 -230
  566. package/src/parsedPaper/build/tree/html/buildTree.js +0 -31
  567. package/src/parsedPaper/build/tree/html/htmlConstants.js +0 -37
  568. package/src/parsedPaper/build/tree/index.js +0 -14
  569. package/src/parsedPaper/build/tree/metadata/buildTree.js +0 -32
  570. package/src/parsedPaper/research/TreeResearcher.js +0 -134
  571. package/src/parsedPaper/research/index.js +0 -13
  572. package/src/parsedPaper/research/researches/Headings.js +0 -20
  573. package/src/parsedPaper/research/researches/LinkStatistics.js +0 -128
  574. package/src/parsedPaper/research/researches/Research.js +0 -50
  575. package/src/parsedPaper/research/researches/index.js +0 -1
  576. package/src/parsedPaper/structure/tree/FormattingElement.js +0 -67
  577. package/src/parsedPaper/structure/tree/SourceCodeLocation.js +0 -31
  578. package/src/parsedPaper/structure/tree/TextContainer.js +0 -85
  579. package/src/parsedPaper/structure/tree/index.js +0 -22
  580. package/src/parsedPaper/structure/tree/nodes/Heading.js +0 -26
  581. package/src/parsedPaper/structure/tree/nodes/LeafNode.js +0 -75
  582. package/src/parsedPaper/structure/tree/nodes/List.js +0 -47
  583. package/src/parsedPaper/structure/tree/nodes/ListItem.js +0 -26
  584. package/src/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +0 -46
  585. package/src/parsedPaper/structure/tree/nodes/MetadataText.js +0 -26
  586. package/src/parsedPaper/structure/tree/nodes/Node.js +0 -154
  587. package/src/parsedPaper/structure/tree/nodes/Paragraph.js +0 -24
  588. package/src/parsedPaper/structure/tree/nodes/StructuredNode.js +0 -52
  589. package/src/parsedPaper/structure/tree/nodes/index.js +0 -21
  590. package/src/scoring/assessments/assessment.js +0 -63
  591. package/src/scoring/assessments/index.js +0 -58
  592. package/src/scoring/assessments/readability/ParagraphTooLongAssessment.js +0 -173
  593. package/src/scoring/assessments/readability/SentenceBeginningsAssessment.js +0 -132
  594. package/src/scoring/assessments/readability/SentenceLengthInTextAssessment.js +0 -186
  595. package/src/scoring/assessments/readability/TransitionWordsAssessment.js +0 -168
  596. package/src/scoring/assessments/seo/ImageCountAssessment.js +0 -112
  597. package/src/scoring/assessments/seo/InternalLinksAssessment.js +0 -114
  598. package/src/scoring/assessments/seo/IntroductionKeywordAssessment.js +0 -110
  599. package/src/scoring/assessments/seo/KeyphraseAssessment.js +0 -104
  600. package/src/scoring/assessments/seo/KeyphraseLengthAssessment.js +0 -110
  601. package/src/scoring/assessments/seo/KeywordDensityAssessment.js +0 -116
  602. package/src/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +0 -114
  603. package/src/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +0 -112
  604. package/src/scoring/assessments/seo/MetaTitleKeywordAssessment.js +0 -111
  605. package/src/scoring/assessments/seo/NumberInMetaTitleAssessment.js +0 -107
  606. package/src/scoring/assessments/seo/OutboundLinksAssessment.js +0 -111
  607. package/src/scoring/assessments/seo/PageTitleWidthAssessment.js +0 -104
  608. package/src/scoring/assessments/seo/SingleH1Assessment.js +0 -118
  609. package/src/scoring/assessments/seo/SingleTitleAssessment.js +0 -108
  610. package/src/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +0 -107
  611. package/src/scoring/assessments/seo/TextImagesAssessment.js +0 -144
  612. package/src/scoring/assessments/seo/TextLengthAssessment.js +0 -100
  613. package/src/scoring/assessments/seo/UrlKeywordAssessment.js +0 -111
  614. package/src/scoring/assessments/seo/UrlLengthAssessment.js +0 -103
  615. package/src/scoring/assessors/assessor.js +0 -269
  616. package/src/scoring/assessors/avadaAssessor.js +0 -67
  617. package/src/scoring/assessors/contentAssessor.js +0 -159
  618. package/src/scoring/assessors/index.js +0 -4
  619. package/src/scoring/assessors/seoAssessor.js +0 -57
  620. package/src/scoring/helpers/assessments/checkForTooLongSentences.js +0 -13
  621. package/src/scoring/helpers/assessments/inRange.js +0 -49
  622. package/src/scoring/helpers/assessments/keyphraseLengthFactor.js +0 -10
  623. package/src/scoring/helpers/assessments/recommendedKeywordCount.js +0 -43
  624. package/src/scoring/helpers/index.js +0 -74
  625. package/src/scoring/interpreters/index.js +0 -5
  626. package/src/scoring/interpreters/scoreToRating.js +0 -31
  627. package/src/scoring/renderers/AssessorPresenter.js +0 -360
  628. package/src/scoring/scoreAggregators/ReadabilityScoreAggregator.js +0 -203
  629. package/src/scoring/scoreAggregators/SEOScoreAggregator.js +0 -54
  630. package/src/scoring/scoreAggregators/ScoreAggregator.js +0 -23
  631. package/src/scoring/scoreAggregators/index.js +0 -3
  632. package/src/values/AssessmentResult.js +0 -496
  633. package/src/values/Mark.js +0 -271
  634. package/src/values/Paper.js +0 -425
  635. package/src/values/index.js +0 -9
  636. package/src/vendor/turkishStemmer.js +0 -3435
  637. package/tsconfig.json +0 -15
@@ -1,633 +0,0 @@
1
- /* eslint-disable max-statements, complexity */
2
- import {languageProcessing} from '../../../index';
3
- const {
4
- exceptionListHelpers: {checkIfWordEndingIsOnExceptionList},
5
- regexHelpers: {applyAllReplacements}
6
- } = languageProcessing;
7
-
8
- /*
9
- * MIT License
10
- *
11
- * Copyright (c) 2017 Bastien Botella
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining a copy
14
- * of this software and associated documentation files (the "Software"), to deal
15
- * in the Software without restriction, including without limitation the rights
16
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
- * copies of the Software, and to permit persons to whom the Software is
18
- * furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included in all
21
- * copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
- * SOFTWARE.
30
- */
31
- /*
32
- * Author: Kasun Gajasinghe, University of Moratuwa
33
- * E-Mail: kasunbg AT gmail DOT com
34
- * Date: 09.08.2010
35
- *
36
- * LICENSE:
37
- *
38
- * Copyright (c) 2010, Kasun Gajasinghe. All rights reserved.
39
- *
40
- * Redistribution and use in source and binary forms, with or without modification,
41
- * are permitted provided that the following conditions are met:
42
- *
43
- * 1. Redistributions of source code must retain the above copyright notice,
44
- * this list of conditions and the following disclaimer.
45
- *
46
- * 2. Redistributions in binary form must reproduce the above copyright notice,
47
- * this list of conditions and the following disclaimer in the documentation
48
- * and/or other materials provided with the distribution.
49
- *
50
- *
51
- * THIS SOFTWARE IS PROVIDED BY KASUN GAJASINGHE ""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES,
52
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
53
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KASUN GAJASINGHE BE LIABLE FOR ANY DIRECT,
54
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
55
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
56
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
57
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
58
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
59
- *
60
- */
61
-
62
- /**
63
- * Determines R1, R2 and RV.
64
- *
65
- * @param {string} word The word for which to determine the R regions.
66
- * @param {Object} rIntervalsData The regexes that cover French RV and R1 intervals.
67
- *
68
- * @returns {[number]} The R1, R2 and RV.
69
- */
70
- const determineRs = function(word, rIntervalsData) {
71
- let rvIndex;
72
-
73
- if (
74
- word.search(new RegExp(rIntervalsData.rvRegex1)) !== -1 ||
75
- word.search(new RegExp(rIntervalsData.rvRegex2)) !== -1
76
- ) {
77
- rvIndex = 3;
78
- } else {
79
- rvIndex = word.substring(1).search(new RegExp(rIntervalsData.rvRegex3));
80
- if (rvIndex === -1) {
81
- rvIndex = word.length;
82
- } else {
83
- // +2 is to supplement the substring(1) used to find rvIndex
84
- rvIndex += 2;
85
- }
86
- }
87
- /*
88
- * R1 is the region after the first non-vowel following a vowel, or the end of the word if there is no such non-vowel.
89
- * R2 is the region after the first non-vowel following a vowel in R1, or the end of the word if there is no such non-vowel.
90
- */
91
- const r1Regex = new RegExp(rIntervalsData.r1Regex);
92
- let r1Index = word.search(r1Regex);
93
- let r1 = '';
94
- if (r1Index === -1) {
95
- r1Index = word.length;
96
- } else {
97
- r1Index += 2;
98
- r1 = word.substring(r1Index);
99
- }
100
-
101
- let r2Index = r1.search(r1Regex);
102
- if (r2Index === -1) {
103
- r2Index = word.length;
104
- } else {
105
- r2Index += 2;
106
- r2Index += r1Index;
107
- }
108
-
109
- if (r1Index !== -1 && r1Index < 3) {
110
- r1Index = 3;
111
- }
112
-
113
- return [r1Index, r2Index, rvIndex];
114
- };
115
-
116
- /**
117
- * Removes or normalizes standard suffixes.
118
- *
119
- * @param {string} word The word for which to remove suffixes.
120
- * @param {Object} standardSuffixData The French morphology data covering standard suffixes.
121
- * @param {number} r1Index The start index of R1.
122
- * @param {number} r2Index The start index of R2.
123
- * @param {number} rvIndex The start index of RV.
124
- *
125
- * @returns {string} The word with standard suffixes removed or normalized.
126
- */
127
- const processStandardSuffixes = function(word, standardSuffixData, r1Index, r2Index, rvIndex) {
128
- const a1Index = word.search(new RegExp(standardSuffixData.standardSuffixes1));
129
- const a2Index = word.search(new RegExp(standardSuffixData.standardSuffixes2));
130
- const a3Index = word.search(new RegExp(standardSuffixData.standardSuffixes3[0]));
131
- const a4Index = word.search(new RegExp(standardSuffixData.standardSuffixes4[0]));
132
- const a5Index = word.search(new RegExp(standardSuffixData.standardSuffixes5[0]));
133
- const a6Index = word.search(new RegExp(standardSuffixData.standardSuffixes6));
134
- const a7Index = word.search(new RegExp(standardSuffixData.standardSuffixes7));
135
- const a8Index = word.search(new RegExp(standardSuffixData.standardSuffixes8));
136
- const a9Index = word.search(new RegExp(standardSuffixData.standardSuffixes9[0]));
137
- const a10Index = word.search(new RegExp(standardSuffixData.standardSuffixes10[0]));
138
- const a11Index = word.search(new RegExp(standardSuffixData.standardSuffixes11[0]));
139
- const a12Index = word.search(new RegExp(standardSuffixData.standardSuffixes12));
140
- const a13Index = word.search(new RegExp(standardSuffixData.standardSuffixes13[0]));
141
- const a14Index = word.search(new RegExp(standardSuffixData.standardSuffixes14[0]));
142
- const a15Index = word.search(new RegExp(standardSuffixData.standardSuffixes15));
143
-
144
- if (a1Index !== -1 && a1Index >= r2Index) {
145
- word = word.substring(0, a1Index);
146
- } else if (a2Index !== -1 && a2Index >= r2Index) {
147
- word = word.substring(0, a2Index);
148
- const a2Index2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]));
149
-
150
- if (a2Index2 !== -1 && a2Index2 >= r2Index) {
151
- // If preceded by ic, delete if in R2
152
- word = word.substring(0, a2Index2);
153
- } else {
154
- // Else replace by iqU
155
- word = word.replace(
156
- new RegExp(standardSuffixData.suffixesPrecedingChar1[0]),
157
- standardSuffixData.suffixesPrecedingChar1[1]
158
- );
159
- }
160
- } else if (a3Index !== -1 && a3Index >= r2Index) {
161
- // Replace with log if in R2
162
- word = word.slice(0, a3Index) + standardSuffixData.standardSuffixes3[1];
163
- } else if (a4Index !== -1 && a4Index >= r2Index) {
164
- // Replace with u if in R2
165
- word = word.slice(0, a4Index) + standardSuffixData.standardSuffixes4[1];
166
- } else if (a5Index !== -1 && a5Index >= r2Index) {
167
- // Replace with ent if in R2
168
- word = word.slice(0, a5Index) + standardSuffixData.standardSuffixes5[1];
169
- } else if (a12Index !== -1 && a12Index >= r1Index) {
170
- // +1- amendment to non-vowel
171
- word = word.substring(0, a12Index + 1);
172
- } else if (a6Index !== -1 && a6Index >= rvIndex) {
173
- word = word.substring(0, a6Index);
174
-
175
- const precedingCharacter2 = word.search(
176
- new RegExp(standardSuffixData.suffixesPrecedingChar2[0])
177
- );
178
- const a6Index2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar4[0]));
179
- const precedingCharacter5 = word.search(
180
- new RegExp(standardSuffixData.suffixesPrecedingChar5[0])
181
- );
182
- const precedingCharacter6 = word.search(
183
- new RegExp(standardSuffixData.suffixesPrecedingChar6[0])
184
- );
185
- if (precedingCharacter2 >= r2Index) {
186
- word = word.slice(0, precedingCharacter2) + standardSuffixData.suffixesPrecedingChar2[1];
187
-
188
- const precedingCharacter3 = word.search(
189
- new RegExp(standardSuffixData.suffixesPrecedingChar3[0])
190
- );
191
- if (precedingCharacter3 >= r2Index) {
192
- word = word.slice(0, precedingCharacter3) + standardSuffixData.suffixesPrecedingChar3[1];
193
- }
194
- } else if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar4[0])) !== -1) {
195
- if (a6Index2 >= r2Index) {
196
- word = word.substring(0, a6Index2);
197
- } else if (a6Index2 >= r1Index) {
198
- word = word.substring(0, a6Index2) + standardSuffixData.suffixesPrecedingChar4[1];
199
- }
200
- } else if (precedingCharacter5 >= r2Index) {
201
- // If preceded by abl or iqU, delete if in R2
202
- word = word.slice(0, precedingCharacter5) + standardSuffixData.suffixesPrecedingChar5[1];
203
- } else if (precedingCharacter6 >= rvIndex) {
204
- // If preceded by ièr, replace with i if in RV
205
- word = word.slice(0, precedingCharacter6) + standardSuffixData.suffixesPrecedingChar6[1];
206
- }
207
- } else if (a7Index !== -1 && a7Index >= r2Index) {
208
- // Delete if in R2
209
- word = word.substring(0, a7Index);
210
-
211
- const a7Index2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar7[0]));
212
- const a7Index3 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]));
213
- if (a7Index2 !== -1) {
214
- // If preceded by abil, delete if in R2, else replace by abl, otherwise
215
- if (a7Index2 >= r2Index) {
216
- word = word.substring(0, a7Index2);
217
- } else {
218
- word = word.substring(0, a7Index2) + standardSuffixData.suffixesPrecedingChar7[1];
219
- }
220
- } else if (a7Index3 !== -1) {
221
- if (a7Index3 !== -1 && a7Index3 >= r2Index) {
222
- // If preceded by ic, delete if in R2
223
- word = word.substring(0, a7Index3);
224
- } else {
225
- // Else replace by iqU
226
- word = word.substring(0, a7Index3) + standardSuffixData.suffixesPrecedingChar1[1];
227
- }
228
- } else if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar2[0])) >= r2Index) {
229
- word = word.replace(
230
- new RegExp(standardSuffixData.suffixesPrecedingChar2[0]),
231
- standardSuffixData.suffixesPrecedingChar2[1]
232
- );
233
- }
234
- } else if (a8Index !== -1 && a8Index >= r2Index) {
235
- word = word.substring(0, a8Index);
236
-
237
- if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar3[0])) >= r2Index) {
238
- word = word.replace(
239
- new RegExp(standardSuffixData.suffixesPrecedingChar3[0]),
240
- standardSuffixData.suffixesPrecedingChar3[1]
241
- );
242
-
243
- if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar1[0])) >= r2Index) {
244
- word = word.replace(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]), '');
245
- } else {
246
- word = word.replace(
247
- new RegExp(standardSuffixData.suffixesPrecedingChar1[0]),
248
- standardSuffixData.suffixesPrecedingChar1[1]
249
- );
250
- }
251
- }
252
- } else if (a9Index !== -1) {
253
- word = word.replace(
254
- new RegExp(standardSuffixData.standardSuffixes9[0]),
255
- standardSuffixData.standardSuffixes9[1]
256
- );
257
- } else if (a10Index >= r1Index) {
258
- word = word.replace(
259
- new RegExp(standardSuffixData.standardSuffixes10[0]),
260
- standardSuffixData.standardSuffixes10[1]
261
- );
262
- } else if (a11Index !== -1) {
263
- const a11Index2 = word.search(new RegExp(standardSuffixData.standardSuffixes11[0]));
264
-
265
- if (a11Index2 >= r2Index) {
266
- word = word.substring(0, a11Index2);
267
- } else if (a11Index2 >= r1Index) {
268
- word = word.substring(0, a11Index2) + standardSuffixData.standardSuffixes11[1];
269
- }
270
- } else if (a13Index !== -1 && a13Index >= rvIndex) {
271
- word = word.replace(
272
- new RegExp(standardSuffixData.standardSuffixes13[0]),
273
- standardSuffixData.standardSuffixes13[1]
274
- );
275
- } else if (a14Index !== -1 && a14Index >= rvIndex) {
276
- word = word.replace(
277
- new RegExp(standardSuffixData.standardSuffixes14[0]),
278
- standardSuffixData.standardSuffixes14[1]
279
- );
280
- } else if (a15Index !== -1 && a15Index >= rvIndex) {
281
- word = word.substring(0, a15Index + 1);
282
- }
283
-
284
- return word;
285
- };
286
-
287
- /**
288
- * Removes verb suffixes starting with i.
289
- *
290
- * @param {string} word The word for which to remove suffixes.
291
- * @param {string} originalWord The unprocessed word.
292
- * @param {number} rvIndex The start index of RV.
293
- * @param {string} verbSuffixesWithIBeginning Data for checking French suffixes starting with I.
294
- *
295
- * @returns {{step2aDone: boolean, word: string}} The word and information about whether the conditions for step 2a were met.
296
- */
297
- const removeVerbSuffixesStartingWithI = function(
298
- word,
299
- originalWord,
300
- rvIndex,
301
- verbSuffixesWithIBeginning
302
- ) {
303
- let step2aDone = false;
304
- if (
305
- originalWord === word.toLowerCase() ||
306
- checkIfWordEndingIsOnExceptionList(originalWord, verbSuffixesWithIBeginning.exceptions)
307
- ) {
308
- step2aDone = true;
309
-
310
- const b1Regex = new RegExp(verbSuffixesWithIBeginning.suffixes[0]);
311
- if (word.search(b1Regex) >= rvIndex) {
312
- word = word.replace(b1Regex, verbSuffixesWithIBeginning.suffixes[1]);
313
- }
314
- }
315
-
316
- return {word, step2aDone};
317
- };
318
-
319
- /**
320
- * Removes other verb suffixes.
321
- *
322
- * @param {string} word The word for which to remove suffixes.
323
- * @param {boolean} step2aDone Whether step 2a was done.
324
- * @param {string} wordAfterStep1 The word after step 1 was done.
325
- * @param {number} r2Index The start index of R2.
326
- * @param {number} rvIndex The start index of RV.
327
- * @param {Object} morphologyData The French morphology data.
328
- *
329
- * @returns {string} The word after other verb suffixes were removed.
330
- */
331
- const removeOtherVerbSuffixes = function(
332
- word,
333
- step2aDone,
334
- wordAfterStep1,
335
- r2Index,
336
- rvIndex,
337
- morphologyData
338
- ) {
339
- const otherVerbSuffixes = morphologyData.regularStemmer.otherVerbSuffixes;
340
-
341
- if (step2aDone && wordAfterStep1 === word) {
342
- const suffixIons = new RegExp(otherVerbSuffixes[0]);
343
- if (word.search(suffixIons) >= r2Index) {
344
- return word.replace(suffixIons, '');
345
- }
346
-
347
- for (let i = 1; i < otherVerbSuffixes.length; i++) {
348
- const regex = new RegExp(otherVerbSuffixes[i]);
349
- if (word.search(regex) >= rvIndex) {
350
- return word.replace(regex, '');
351
- }
352
- }
353
- // Check if a word ends in "ons" preceded by "i", if it is "ons" is not stemmed.
354
- if (word.endsWith('ions')) {
355
- return word;
356
- }
357
-
358
- // Check if a word ends in "ons" preceded by other than "i" and stem it if it is in RV.
359
- const verbSuffixOns = new RegExp(morphologyData.regularStemmer.verbSuffixOns);
360
- if (word.search(verbSuffixOns) >= rvIndex) {
361
- word = word.replace(verbSuffixOns, '');
362
- }
363
- }
364
-
365
- return word;
366
- };
367
-
368
- /**
369
- * Removes residual suffixes.
370
- *
371
- * @param {string} word The word for which to remove residual suffixes.
372
- * @param {number} rvIndex The start index of RV.
373
- * @param {number} r2Index The start index of R2.
374
- * @param {Object} morphologyDataRegularStemmer The French morphology data.
375
- *
376
- * @returns {string} The word after residual suffixes were removed.
377
- */
378
- const removeResidualSuffixes = function(word, rvIndex, r2Index, morphologyDataRegularStemmer) {
379
- const residualSuffixes = morphologyDataRegularStemmer.residualSuffixes;
380
- if (word.search(new RegExp(residualSuffixes.residualSuffixes1[0])) >= rvIndex) {
381
- word = word.replace(
382
- new RegExp(residualSuffixes.residualSuffixes1[0]),
383
- residualSuffixes.residualSuffixes1[1]
384
- );
385
- }
386
-
387
- const e1Index = word.search(new RegExp(residualSuffixes.residualSuffix2));
388
-
389
- if (e1Index >= r2Index && word.search(new RegExp(residualSuffixes.residualSuffix3)) >= rvIndex) {
390
- word = word.substring(0, e1Index);
391
- } else {
392
- let e2Index = word.search(new RegExp(residualSuffixes.residualSuffixes4[0]));
393
-
394
- if (e2Index >= rvIndex) {
395
- word = word.substring(0, e2Index) + residualSuffixes.residualSuffixes4[1];
396
- } else {
397
- e2Index = word.search(new RegExp(residualSuffixes.residualSuffix5));
398
- if (e2Index >= rvIndex) {
399
- // Delete last e.
400
- word = word.substring(0, e2Index);
401
- } else {
402
- e2Index = word.search(new RegExp(residualSuffixes.residualSuffix6[0]));
403
- if (e2Index >= rvIndex) {
404
- word = word.substring(0, e2Index) + residualSuffixes.residualSuffix6[1];
405
- }
406
- }
407
- }
408
- }
409
-
410
- return word;
411
- };
412
-
413
- /**
414
- * Checks whether a word is in the full-form exception list and if so returns the canonical stem.
415
- *
416
- * @param {string} word The word to be checked.
417
- * @param {Object} exceptions The list of full-form exceptions to be checked in.
418
- *
419
- * @returns {null|string} The canonical stem or null if nothing was found.
420
- */
421
- const checkWordInFullFormExceptions = function(word, exceptions) {
422
- for (const paradigm of exceptions) {
423
- if (paradigm[1].includes(word)) {
424
- return paradigm[0];
425
- }
426
- }
427
- return null;
428
- };
429
-
430
- /**
431
- * Check whether the stem is on the exception list of stems that belong to one word. If it is, returns the canonical stem.
432
- *
433
- * @param {string} stemmedWord The stemmed word.
434
- * @param {Object} stemsThatBelongToOneWord The list of stems that belong to one word.
435
- *
436
- * @returns {null|string} The canonical stem if word was found on the list.
437
- */
438
- const canonicalizeStem = function(stemmedWord, stemsThatBelongToOneWord) {
439
- // Check the adjectives list.
440
- for (const paradigm of stemsThatBelongToOneWord.adjectives) {
441
- if (paradigm.includes(stemmedWord)) {
442
- return paradigm[0];
443
- }
444
- }
445
- // Check the verbs list. The infinitive stem is always the canonical stem for verbs.
446
- for (const paradigm of stemsThatBelongToOneWord.verbs) {
447
- if (paradigm.includes(stemmedWord)) {
448
- return paradigm[0];
449
- }
450
- }
451
- };
452
-
453
- /**
454
- * Checks whether the word is on the list of words which should be stemmed, even though the suffix would not be found in the
455
- * required region. If the word is found on the list, the stem specified in that list is returned.
456
- *
457
- * @param {string} word The word to check.
458
- * @param {Object} shortWordsAndStems The list to check.
459
- *
460
- * @returns {null|string} The stem or null if the word was not found on the list.
461
- */
462
- const checkShortWordsExceptionList = function(word, shortWordsAndStems) {
463
- // First check whether the word is on the sub-list of words that cannot take an extra -s suffix.
464
- for (const wordStemPair of shortWordsAndStems.cannotTakeExtraSuffixS) {
465
- if (wordStemPair[0] === word) {
466
- return wordStemPair[1];
467
- }
468
- }
469
- // If the word was not found on the first sub-list, check the second sub-list of words that can take an extra -s suffix.
470
- if (word.endsWith('s')) {
471
- word = word.slice(0, -1);
472
- }
473
- for (const wordStemPair of shortWordsAndStems.canTakeExtraSuffixS) {
474
- if (wordStemPair[0] === word) {
475
- return wordStemPair[1];
476
- }
477
- }
478
- };
479
-
480
- /**
481
- * Stems French words.
482
- *
483
- * @param {string} word The word to stem.
484
- * @param {Object} morphologyData The French morphology data.
485
- *
486
- * @returns {string} The stemmed word.
487
- */
488
- export default function stem(word, morphologyData) {
489
- word = word.toLowerCase();
490
- const originalWord = word;
491
-
492
- // Check if the word is on an exception list of words that should be stemmed even though the suffix is not in the required region.
493
- const wordAfterShortWordsCheck = checkShortWordsExceptionList(
494
- word,
495
- morphologyData.shortWordsAndStems
496
- );
497
- if (wordAfterShortWordsCheck) {
498
- return wordAfterShortWordsCheck;
499
- }
500
-
501
- // Check if the word is on an exception list for which all forms of a word and its stem are listed.
502
- const ifException = checkWordInFullFormExceptions(
503
- word,
504
- morphologyData.exceptionStemsWithFullForms
505
- );
506
- if (ifException) {
507
- return ifException;
508
- }
509
-
510
- // Check the exception list of words with plural suffix -x.
511
- if (word.endsWith('x')) {
512
- const pluralsWithXSuffix = morphologyData.pluralsWithXSuffix;
513
- if (pluralsWithXSuffix.includes(word)) {
514
- return word.slice(0, -1);
515
- }
516
- }
517
-
518
- // Check if the word is on the exception list of words for which -s should not be stemmed.
519
- if (word.endsWith('s')) {
520
- const sShouldNotBeStemmed = morphologyData.sShouldNotBeStemmed;
521
- if (sShouldNotBeStemmed.includes(word)) {
522
- return word;
523
- }
524
- }
525
-
526
- // Check if the word is on the exception list of words for which -ent should not be stemmed.
527
- const nonVerbsOnEnt = morphologyData.nonVerbsOnEnt;
528
- if (word.endsWith('ent')) {
529
- if (nonVerbsOnEnt.includes(word)) {
530
- return word;
531
- }
532
- }
533
- if (word.endsWith('ents')) {
534
- if (nonVerbsOnEnt.includes(word.slice(0, -1))) {
535
- return word.slice(0, -1);
536
- }
537
- }
538
-
539
- // Check if word is on the exception list of nouns and adjectives for which the verb suffix -ons should not be stemmed.
540
- const nonVerbsOnOns = morphologyData.nonVerbsOnOns;
541
- if (word.endsWith('ons')) {
542
- if (nonVerbsOnOns.includes(word)) {
543
- return word.slice(0, -1);
544
- }
545
- }
546
-
547
- // Pre-processing steps
548
- word = applyAllReplacements(word, morphologyData.regularStemmer.preProcessingStepsRegexes);
549
-
550
- // Determine R1, R2 & RV regions.
551
- const [r1Index, r2Index, rvIndex] = determineRs(word, morphologyData.regularStemmer.rIntervals);
552
-
553
- /*
554
- * Step 1:
555
- * Remove standard suffixes
556
- */
557
- word = processStandardSuffixes(
558
- word,
559
- morphologyData.regularStemmer.standardSuffixes,
560
- r1Index,
561
- r2Index,
562
- rvIndex
563
- );
564
- const wordAfterStep1 = word;
565
-
566
- /*
567
- * Step 2a:
568
- * Stem verb suffixes beginning with "i"
569
- */
570
- const verbSuffixesStartingWithIRemoved = removeVerbSuffixesStartingWithI(
571
- word,
572
- originalWord,
573
- rvIndex,
574
- morphologyData.regularStemmer.verbSuffixesWithIBeginning
575
- );
576
- word = verbSuffixesStartingWithIRemoved.word;
577
- const step2aDone = verbSuffixesStartingWithIRemoved.step2aDone;
578
-
579
- /*
580
- * Step 2b:
581
- * Stem other verb suffixes
582
- */
583
- if (!nonVerbsOnEnt.includes(word)) {
584
- word = removeOtherVerbSuffixes(
585
- word,
586
- step2aDone,
587
- wordAfterStep1,
588
- r2Index,
589
- rvIndex,
590
- morphologyData
591
- );
592
- }
593
-
594
- if (originalWord === word.toLowerCase()) {
595
- /* Step 4:
596
- * Stem residual suffixes.
597
- */
598
- word = removeResidualSuffixes(word, rvIndex, r2Index, morphologyData.regularStemmer);
599
- } else {
600
- /*
601
- * Step 3 (only needs to be executed if step 4 isn't executed)
602
- * Replace final Y with i or final ç with c.
603
- */
604
- const yEnding =
605
- morphologyData.regularStemmer.yAndSoftCEndingAndReplacement.yEndingAndReplacement;
606
- const softCEnding =
607
- morphologyData.regularStemmer.yAndSoftCEndingAndReplacement.softCEndingAndReplacement;
608
- if (word.endsWith(yEnding[0])) {
609
- word = word.slice(0, -1) + yEnding[1];
610
- } else if (word.endsWith(softCEnding[0])) {
611
- word = word.slice(0, -1) + softCEnding[1];
612
- }
613
- }
614
-
615
- /* Step 5:
616
- * Undouble final consonants
617
- */
618
- word = applyAllReplacements(word, morphologyData.regularStemmer.finalConsonantUndoubling);
619
-
620
- /* Step 6:
621
- * Un-accent
622
- */
623
- const unaccentE = morphologyData.regularStemmer.unaccentERegex;
624
- word = word.replace(new RegExp(unaccentE[0]), unaccentE[1]);
625
- word = word.toLowerCase();
626
-
627
- const canonicalStem = canonicalizeStem(word, morphologyData.stemsThatBelongToOneWord);
628
- if (canonicalStem) {
629
- return canonicalStem;
630
- }
631
-
632
- return word;
633
- }