axyseo 2.0.0-alpha.0.0.4 → 2.0.0-alpha.0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,632 +0,0 @@
1
- /**
2
- * Copyright (c) 2015 Mouaffak A. Sarhan
3
- *
4
- * Permission is hereby granted, free of charge, to any person obtaining a copy
5
- * of this software and associated documentation files (the "Software"), to deal
6
- * in the Software without restriction, including without limitation the rights
7
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- * copies of the Software, and to permit persons to whom the Software is
9
- * furnished to do so, subject to the following conditions:
10
- *
11
- * The above copyright notice and this permission notice shall be included in all
12
- * copies or substantial portions of the Software.
13
- *
14
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- * SOFTWARE.
21
- */
22
-
23
- /**
24
- * Tries to match a word with a regex. If matched, modifies the string according to the indicated pattern.
25
- *
26
- * @param {string} word The word to check.
27
- * @param {string[]} regexAndReplacement The regex to match the word with and what the word should be replaced with if it is matched.
28
- *
29
- * @returns {string} The modified word or the original word if it was not matched.
30
- */
31
- const matchWithRegexAndReplace = function( word, regexAndReplacement ) {
32
- return word.replace( new RegExp( regexAndReplacement[ 0 ] ),
33
- regexAndReplacement[ 1 ] );
34
- };
35
-
36
- /**
37
- * Check if the word is on the list of three-letter roots which had the last weak letter removed (so are now two letters long).
38
- * If the word is on the list, add back the removed last letter and return the three-letter root.
39
- * Examples: طر -> طري (word with last weak letter ي (yeh) removed) , حص -> حصا (word with last weak letter ا (alef) removed)
40
- *
41
- * @param {string} word The two-letter word to check.
42
- * @param {Object} morphologyData The Arabic morphology data.
43
- *
44
- * @returns {string|null} The word with the last weak letter added back or null if the word was not found on a list.
45
- */
46
- const checkWordsWithRemovedLastLetter = function( word, morphologyData ) {
47
- const externalStemmer = morphologyData.externalStemmer;
48
- const characters = externalStemmer.characters;
49
-
50
- if ( externalStemmer.wordsWithLastAlefRemoved.includes( word ) ) {
51
- return word + characters.alef;
52
- }
53
- if ( externalStemmer.wordsWithLastHamzaRemoved.includes( word ) ) {
54
- return word + characters.alef_hamza_above;
55
- }
56
- if ( externalStemmer.wordsWithLastMaksoraRemoved.includes( word ) ) {
57
- return word + characters.yeh_maksorah;
58
- }
59
- if ( externalStemmer.wordsWithLastYehRemoved.includes( word ) ) {
60
- return word + characters.yeh;
61
- }
62
- };
63
-
64
- /**
65
- * Check if the word is on the list of three-letter roots which had the first weak letter removed (so are now two letters long).
66
- * If the word is on the list, add back the removed first letter and return the three-letter root.
67
- * Examples: مض -> ومض (word with first weak letter و (waw) removed) , سن -> يسن (word with first weak letter ي (yeh) removed)
68
- *
69
- * @param {string} word The two-letter word to check.
70
- * @param {Object} morphologyData The Arabic morphology data.
71
- *
72
- * @returns {string|null} The word with the first weak letter added back or null if the word was not found on any list.
73
- */
74
- const checkWordsWithRemovedFirstLetter = function( word, morphologyData ) {
75
- const externalStemmer = morphologyData.externalStemmer;
76
- const characters = externalStemmer.characters;
77
-
78
- if ( externalStemmer.wordsWithFirstWawRemoved.includes( word ) ) {
79
- return characters.waw + word;
80
- }
81
- if ( externalStemmer.wordsWithFirstYehRemoved.includes( word ) ) {
82
- return characters.yeh + word;
83
- }
84
- };
85
-
86
- /**
87
- * Check if the word is on the list of three-letter roots which had the middle weak letter removed (so are now two letters long).
88
- * If the word is on the list, add back the removed middle letter and return the three-letter root.
89
- * Examples: غز -> غوز (word with middle weak letter و (waw) removed), لن -> لين (word with middle weak letter ي (yeh) removed)
90
- *
91
- * @param {string} word The two-letter word to check.
92
- * @param {Object} morphologyData The Arabic morphology data.
93
- *
94
- * @returns {string|null} The word with the middle weak letter added back or null if the word was not found on a list.
95
- */
96
- const checkWordsWithRemovedMiddleLetter = function( word, morphologyData ) {
97
- const externalStemmer = morphologyData.externalStemmer;
98
- const characters = externalStemmer.characters;
99
-
100
- if ( externalStemmer.wordsWithMiddleWawRemoved.includes( word ) ) {
101
- return word[ 0 ] + characters.waw + word[ 1 ];
102
- }
103
- if ( externalStemmer.wordsWithMiddleYehRemoved.includes( word ) ) {
104
- return word[ 0 ] + characters.yeh + word[ 1 ];
105
- }
106
- };
107
-
108
-
109
- /**
110
- * Find the root of two-letter words. Two-letter words usually come from three-letter roots for which a letter was deleted
111
- * as it is a duplicated last letter or a weak letter.
112
- *
113
- * @param {string} word The two-letter word to process.
114
- * @param {Object} morphologyData The Arabic morphology data.
115
- *
116
- * @returns {string} The three-letter root or the input word if no root was found.
117
- */
118
- const processTwoLetterWords = function( word, morphologyData ) {
119
- // Check whether the word is on the list of words with removed duplicate last letter. If it is, add back the removed letter to get the root.
120
- if ( morphologyData.externalStemmer.wordsWithRemovedDuplicateLetter.includes( word ) ) {
121
- return word + word.substring( 1 );
122
- }
123
- // Check whether the word is on one of the lists of words with removed weak letter or hamza.
124
- const wordAfterLastLetterCheck = checkWordsWithRemovedLastLetter( word, morphologyData );
125
- if ( wordAfterLastLetterCheck ) {
126
- return wordAfterLastLetterCheck;
127
- }
128
- const wordAfterFirstLetterCheck = checkWordsWithRemovedFirstLetter( word, morphologyData );
129
- if ( wordAfterFirstLetterCheck ) {
130
- return wordAfterFirstLetterCheck;
131
- }
132
- const wordAfterMiddleLetterCheck = checkWordsWithRemovedMiddleLetter( word, morphologyData );
133
- if ( wordAfterMiddleLetterCheck ) {
134
- return wordAfterMiddleLetterCheck;
135
- }
136
-
137
- return word;
138
- };
139
-
140
- /**
141
- * Remove the middle/last weak letter or hamza in a three letter word. Find its root by checking the appropriate exception lists
142
- * (words with middle letter removed or words with last letter removed) and attaching the removed letter back.
143
- * Example: بدء -> بد -> بدأ (three letter word with (ء) hamza ending,
144
- * which is found on the list of words with last letter removed after removing the suffix)
145
- *
146
- * @param {string} word The three-letter word to check.
147
- * @param {Object} morphologyData The Arabic morphology data.
148
- * @param {string[]} replacementPattern The regex to find and remove middle or last weak letter/hamza in three letter words
149
- * @param {function} functionToRunToGetRoot The function that checks lists of words with either middle or last letter removed
150
- * and attaches it back.
151
- *
152
- * @returns {string|null} The root or null if no root was found.
153
- */
154
- const processThreeLetterWordsWithWeakLetterOrHamza = function( word, morphologyData, replacementPattern, functionToRunToGetRoot ) {
155
- // Find and remove middle or last weak letter or hamza
156
- const wordAfterRemovingWeakLetterOrHamza = word.replace( new RegExp( replacementPattern[ 0 ] ),
157
- replacementPattern[ 1 ] );
158
- if ( wordAfterRemovingWeakLetterOrHamza !== word ) {
159
- /*
160
- * If the weak letter or hamza was removed, get the root by checking lists of words with middle/last weak letter
161
- * or hamza removed and attaching it back.
162
- */
163
- return functionToRunToGetRoot( wordAfterRemovingWeakLetterOrHamza, morphologyData );
164
- }
165
- };
166
-
167
- /**
168
- * Get the root of three letter words.
169
- * Examples: ؤكد -> أكد (three letter word with ؤ (waw_hamza) beginning, قدّ -> قدد (three letter word which has a shadda on the second letter)
170
- *
171
- * @param {string} word The three-letter word to check.
172
- * @param {Object} morphologyData The Arabic morphology data.
173
- *
174
- * @returns {string|null} The root or the original input word (which may already be the root).
175
- */
176
- const processThreeLetterWords = function( word, morphologyData ) {
177
- const characters = morphologyData.externalStemmer.characters;
178
-
179
- // If the word exists on the list of three letter roots, return the word.
180
- if ( morphologyData.externalStemmer.threeLetterRoots.includes( word ) ) {
181
- return word;
182
- }
183
- // If the first letter is ا/ ؤ/ ئ (yeh_hamza/waw_hamza/alef), change it to أ (alef_hamza_above).
184
- if ( word[ 0 ] === characters.alef || word[ 0 ] === characters.waw_hamza ||
185
- word[ 0 ] === characters.yeh_hamza ) {
186
- word = characters.alef_hamza_above + word.slice( 1 );
187
- }
188
-
189
- // If the last letter is a weak letter or a hamza, check if the word is a root that may get the last weak letter/hamza removed.
190
- const wordAfterLastWeakLetterOrHamzaCheck = processThreeLetterWordsWithWeakLetterOrHamza( word, morphologyData,
191
- morphologyData.externalStemmer.regexRemoveLastWeakLetterOrHamza, checkWordsWithRemovedLastLetter );
192
- if ( wordAfterLastWeakLetterOrHamzaCheck ) {
193
- return wordAfterLastWeakLetterOrHamzaCheck;
194
- }
195
-
196
- // If the middle letter is a waw, yeh, alef or a yeh_hamza, check if the word is a root that may get the middle weak letter/hamza removed..
197
- const wordAfterMiddleWeakLetterOrHamzaCheck = processThreeLetterWordsWithWeakLetterOrHamza( word, morphologyData,
198
- morphologyData.externalStemmer.regexRemoveMiddleWeakLetterOrHamza, checkWordsWithRemovedMiddleLetter );
199
- if ( wordAfterMiddleWeakLetterOrHamzaCheck ) {
200
- return wordAfterMiddleWeakLetterOrHamzaCheck;
201
- }
202
-
203
- const regexReplaceMiddleLetterWithAlef = morphologyData.externalStemmer.regexReplaceMiddleLetterWithAlef;
204
- const regexReplaceMiddleLetterWithAlefWithHamza = morphologyData.externalStemmer.regexReplaceMiddleLetterWithAlefWithHamza;
205
-
206
- // If the word has ئ/ؤ (yeh_hamza/waw_hamza) as the second letter and ends in ر/ز/ن (noon/zai/reh), change ئ/ؤ (yeh_hamza/waw_hamza) to ا (alef).
207
- const wordAfterReplacingMiddleLetterWithAlef = word.replace( new RegExp( regexReplaceMiddleLetterWithAlef[ 0 ] ),
208
- regexReplaceMiddleLetterWithAlef[ 1 ] );
209
- if ( wordAfterReplacingMiddleLetterWithAlef === word ) {
210
- // If the second letter is a ئ/ؤ (yeh_hamza/waw_hamza) and it doesn't end in noon/zai/reh, change ئ/ؤ d to أ (alef_hamza_above).
211
- word = word.replace( new RegExp( regexReplaceMiddleLetterWithAlefWithHamza[ 0 ] ),
212
- regexReplaceMiddleLetterWithAlefWithHamza[ 1 ] );
213
- } else {
214
- word = wordAfterReplacingMiddleLetterWithAlef;
215
- }
216
- // If the last letter is a shadda, remove it and duplicate the last letter.
217
- const regexRemoveShaddaAndDuplicateLastLetter = morphologyData.externalStemmer.regexRemoveShaddaAndDuplicateLastLetter;
218
- word = word.replace( new RegExp( regexRemoveShaddaAndDuplicateLastLetter[ 0 ] ),
219
- regexRemoveShaddaAndDuplicateLastLetter[ 1 ] );
220
-
221
- return word;
222
- };
223
-
224
- /**
225
- * Check whether the word matches the pattern (it is a 6 letter-word, the fourth and sixth letter are the same, and the pattern
226
- * and the word share two same letters at the same index). If it does, remove the first character and the two last characters and
227
- * get the root.
228
- * Example: احولال -> حول (the stem is the 2nd to 4th character)
229
- *
230
- * @param {string} word The word to check.
231
- * @param {number} numberSameLetters The number of letters the word and the pattern share at the same index.
232
- * @param {Object} morphologyData The Arabic morphology data.
233
- *
234
- * @returns {string} The root or the original word if word was not matched by the pattern.
235
- */
236
- const checkFirstPatternAndGetRoot = function( word, numberSameLetters, morphologyData ) {
237
- if ( word.length === 6 && word[ 3 ] === word[ 5 ] && numberSameLetters === 2 ) {
238
- return processThreeLetterWords( word.substring( 1, 4 ), morphologyData );
239
- }
240
- return word;
241
- };
242
-
243
- /**
244
- * Checks whether the word matches the pattern (the word shares three characters with the pattern) and get the root if it does.
245
- * Example: استكتب -> كتب (A word that matches pattern (استفعل))
246
- *
247
- * @param {string} word The word to check.
248
- * @param {string} pattern The pattern to check.
249
- * @param {number} numberSameLetters The number of letters the word and the pattern share at the same index.
250
- * @param {Object} morphologyData The Arabic morphology data.
251
- *
252
- * @returns {string} The root or the original word if no root was found.
253
- */
254
- const checkSecondPatternAndGetRoot = function( word, pattern, numberSameLetters, morphologyData ) {
255
- const characters = morphologyData.externalStemmer.characters;
256
- // If the word length minus three is equal to or less than the number of same letters found in the checkPatterns function.
257
- if ( word.length - 3 <= numberSameLetters ) {
258
- let root = "";
259
- for ( let i = 0; i < word.length; i++ ) {
260
- if ( pattern[ i ] === characters.feh ||
261
- pattern[ i ] === characters.aen ||
262
- pattern[ i ] === characters.lam ) {
263
- root = root.concat( word[ i ] );
264
- }
265
- }
266
-
267
- return processThreeLetterWords( root, morphologyData );
268
- }
269
- return word;
270
- };
271
-
272
- /**
273
- * Count the number of letters the word and the pattern to match with share at the same index.
274
- *
275
- * @param {string} word The word to check.
276
- * @param {string} pattern The pattern to check.
277
- * @param {Object} morphologyData The Arabic morphology data.
278
- *
279
- * @returns {number} The number of shared letters between the word and the pattern at the same index.
280
- */
281
- const countSharedLettersBetweenWordAndPattern = function( word, pattern, morphologyData ) {
282
- const characters = morphologyData.externalStemmer.characters;
283
-
284
- let numberSameLetters = 0;
285
- for ( let i = 0; i < word.length; i++ ) {
286
- if ( pattern[ i ] === word[ i ] &&
287
- pattern[ i ] !== characters.feh &&
288
- pattern[ i ] !== characters.aen &&
289
- pattern[ i ] !== characters.lam ) {
290
- numberSameLetters++;
291
- }
292
- }
293
- return numberSameLetters;
294
- };
295
-
296
- /**
297
- * Check if a word matches a specific pattern of letters, and if it does, modify the word to get the root.
298
- *
299
- * @param {string} word The word to check.
300
- * @param {Object} morphologyData The Arabic morphology data.
301
- *
302
- * @returns {Object|null} An object with either the root or the modified word and the information whether the root was found,
303
- * or null if the word was not modified and the root was not found.
304
- */
305
- const checkPatterns = function( word, morphologyData ) {
306
- // If the first letter is an alef_madda, alef_hamza_above, or alef_hamza_below (أ/إ/آ), change it to an alef (ا)
307
- const wordAfterModification = matchWithRegexAndReplace( word, morphologyData.externalStemmer.regexReplaceFirstHamzaWithAlef );
308
-
309
- // Try and find a pattern that matches the word
310
- for ( const pattern of morphologyData.externalStemmer.patterns ) {
311
- if ( pattern.length === wordAfterModification.length ) {
312
- // Count the number of letters the word and the pattern share at the same index.
313
- const numberSameLetters = countSharedLettersBetweenWordAndPattern( wordAfterModification, pattern, morphologyData );
314
-
315
- const wordAfterCheckingFirstPattern = checkFirstPatternAndGetRoot( wordAfterModification, numberSameLetters, morphologyData );
316
- if ( wordAfterCheckingFirstPattern !== wordAfterModification ) {
317
- return { word: wordAfterCheckingFirstPattern, rootFound: true };
318
- }
319
-
320
- const wordAfterCheckingSecondPattern = checkSecondPatternAndGetRoot( wordAfterModification, pattern, numberSameLetters, morphologyData );
321
- if ( wordAfterCheckingSecondPattern !== wordAfterModification ) {
322
- return { word: wordAfterCheckingSecondPattern, rootFound: true };
323
- }
324
- }
325
- }
326
-
327
- // If a pattern was not matched but the word was modified, return the modified word.
328
- if ( wordAfterModification !== word ) {
329
- return { word: wordAfterModification, rootFound: false };
330
- }
331
- };
332
-
333
- /**
334
- * Tries to find the root of two-, three- and four-letter words by checking lists and/or applying modifications to the word.
335
- *
336
- * Example: the word أبطر is on the list of four-letter roots.
337
- *
338
- * @param {string} word The word to check.
339
- * @param {Object} morphologyData The Arabic morphology data.
340
- *
341
- * @returns {string|null} The root or null if the root was not found.
342
- */
343
- const checkIfWordIsRoot = function( word, morphologyData ) {
344
- // Check if the word consists of two letters and find its root.
345
- if ( word.length === 2 ) {
346
- return processTwoLetterWords( word, morphologyData );
347
- }
348
- // Check if the word consists of three letters.
349
- if ( word.length === 3 ) {
350
- return processThreeLetterWords( word, morphologyData );
351
- }
352
- // If the word consists of four letters, check if it is on the list of four-letter roots.
353
- if ( word.length === 4 ) {
354
- if ( morphologyData.externalStemmer.fourLetterRoots.includes( word ) ) {
355
- return word;
356
- }
357
- }
358
- };
359
-
360
- /**
361
- * Checks whether the word ends in a suffix, and removes it if it does.
362
- *
363
- * @param {string} word The word to check.
364
- * @param {string[]} suffixes The suffixes to check.
365
- *
366
- * @returns {string} The word with the suffix removed or the input word if no suffix was found.
367
- */
368
- const removeSuffix = function( word, suffixes ) {
369
- for ( const suffix of suffixes ) {
370
- if ( word.endsWith( suffix ) ) {
371
- return word.slice( 0, -suffix.length );
372
- }
373
- }
374
- return word;
375
- };
376
-
377
- /**
378
- * Checks whether the word starts with a prefix, and removes it if it does.
379
- *
380
- * @param {string} word The word to check.
381
- * @param {string[]} prefixes The prefixes to check.
382
- *
383
- * @returns {string} The word with the prefix removed or the input word if no prefix was found.
384
- */
385
- const removePrefix = function( word, prefixes ) {
386
- for ( const prefix of prefixes ) {
387
- if ( word.startsWith( prefix ) ) {
388
- return word.substring( prefix.length, word.length );
389
- }
390
- }
391
- return word;
392
- };
393
-
394
- /**
395
- * Searches for a suffix, removes it if found, and tries to find the root of the stemmed word. If the root is not found, the
396
- * function returns null, with one exception: it is possible that in the checkPatterns function that is ran inside of this one,
397
- * the word is modified but no root is found. In this case, the function returns the modified word.
398
- *
399
- * Example: جمعكم -> جمع (word with suffix كم which is found on the list of three-letter roots after removing the suffix).
400
- *
401
- * @param {string} word The word to check.
402
- * @param {Object} morphologyData The Arabic morphology data.
403
- *
404
- * @returns {Object|null} An object with the root/modified word and information about whether the root was found, or null if
405
- * the word is not modified and no root is found.
406
- */
407
- const processWordWithSuffix = function( word, morphologyData ) {
408
- // Find and remove suffix.
409
- const wordAfterRemovingSuffix = removeSuffix( word, morphologyData.externalStemmer.suffixes );
410
- if ( wordAfterRemovingSuffix !== word ) {
411
- // If suffix was removed, check if the stemmed word is a root.
412
- const root = checkIfWordIsRoot( wordAfterRemovingSuffix, morphologyData );
413
- if ( root ) {
414
- return { word: root, rootFound: true };
415
- }
416
- // If no root was found, try to get the root by matching with a pattern.
417
- const outputAfterCheckingPatterns = checkPatterns( wordAfterRemovingSuffix, morphologyData );
418
- if ( outputAfterCheckingPatterns ) {
419
- return outputAfterCheckingPatterns;
420
- }
421
- }
422
- };
423
-
424
- /**
425
- * Searches for a prefix (other than the definite article), removes it if found, and tries to find the root of the stemmed
426
- * word. If the root is not found, the function returns null, with one exception: it is possible that in the checkPatterns
427
- * function that is ran inside of this one, the word is modified but no root is found. In this case, the function returns
428
- * the modified word.
429
- *
430
- * Example: للزهور -> زهر (word with prefix لل that gets its root by matching with a pattern after removing the prefix).
431
- *
432
- * @param {string} word The word to check.
433
- * @param {Object} morphologyData The Arabic morphology data.
434
- *
435
- * @returns {Object|null} An object with the root/modified word and information about whether the root was found, or null if
436
- * the word is not modified and no root is found.
437
- */
438
- const processWordWithPrefix = function( word, morphologyData ) {
439
- // Find and remove prefix.
440
- let wordAfterRemovingPrefix = removePrefix( word, morphologyData.externalStemmer.prefixes );
441
- if ( wordAfterRemovingPrefix !== word ) {
442
- // If prefix was removed, check if the stemmed word is a root.
443
- const root = checkIfWordIsRoot( wordAfterRemovingPrefix, morphologyData );
444
- if ( root ) {
445
- return { word: root, rootFound: true };
446
- }
447
- // If no root was found, try to get the root by matching with a pattern.
448
- const outputAfterCheckingPatterns = checkPatterns( wordAfterRemovingPrefix, morphologyData );
449
- if ( outputAfterCheckingPatterns ) {
450
- if ( outputAfterCheckingPatterns.rootFound === true ) {
451
- return outputAfterCheckingPatterns;
452
- }
453
- wordAfterRemovingPrefix = outputAfterCheckingPatterns.word;
454
- }
455
- // If the root was still not found, try to find and remove suffixes and find the root again.
456
- const outputAfterCheckingForSuffixes = processWordWithSuffix( wordAfterRemovingPrefix, morphologyData );
457
- if ( outputAfterCheckingForSuffixes ) {
458
- return outputAfterCheckingForSuffixes;
459
- }
460
- }
461
- };
462
-
463
- /**
464
- * Checks if the word is a root. If root is not found, checks whether the root can be derived using a pattern. If the root is
465
- * still not found, removes affixes and tries to find the root again. If the root is not found, the function returns null,
466
- * with one exception: it is possible that in the checkPatterns function that is ran inside of this one, the word is modified
467
- * but no root is found. In this case, the function returns the modified word.
468
- *
469
- * @param {string} word The word to check.
470
- * @param {Object} morphologyData The Arabic morphology data.
471
- *
472
- * @returns {Object|null} An object with the root/modified word and information about whether the root was found, or null if
473
- * the word is not modified and no root is found.
474
- */
475
- const findRoot = function( word, morphologyData ) {
476
- // Check if the word is a root.
477
- const root = checkIfWordIsRoot( word, morphologyData );
478
- if ( root ) {
479
- return { word: root, rootFound: true };
480
- }
481
-
482
- // Check if the root can be derived by matching a pattern. إعدجص
483
- const outputAfterCheckingPatterns = checkPatterns( word, morphologyData );
484
- let stemmedWord = word;
485
- if ( outputAfterCheckingPatterns ) {
486
- if ( outputAfterCheckingPatterns.rootFound === true ) {
487
- return outputAfterCheckingPatterns;
488
- }
489
- // Word: اعدجص
490
- stemmedWord = outputAfterCheckingPatterns.word;
491
- }
492
- // Remove affixes and check if the stemmed word is a root
493
- const outputAfterProcessingSuffix = processWordWithSuffix( stemmedWord, morphologyData );
494
- if ( outputAfterProcessingSuffix ) {
495
- return outputAfterProcessingSuffix;
496
- }
497
- const outputAfterRemovingPrefix = processWordWithPrefix( stemmedWord, morphologyData );
498
- if ( outputAfterRemovingPrefix ) {
499
- return outputAfterRemovingPrefix;
500
- }
501
-
502
- if ( stemmedWord !== word ) {
503
- return { word: stemmedWord, rootFound: false };
504
- }
505
- };
506
-
507
- /**
508
- * Search for and remove a definite article and try to get the root of the word. If the root was not found, but the word
509
- * was modified inside the checkPatterns function, returns the modified word. If the definite article was removed and the
510
- * stemmed word is longer than three letters, but the root was not found, returns the stemmed word. Otherwise, if the root
511
- * was not found, returns null.
512
- *
513
- * Example: الجدولين -> جدول (word with definite article ال and suffix ين ).
514
- *
515
- * @param {string} word The word to check.
516
- * @param {Object} morphologyData The Arabic morphology data.
517
- *
518
- * @returns {Object|null} An object with the root/modified word and information about whether the root was found, or null if
519
- * the word is not modified and no root is found.
520
- */
521
- const processWordWithDefiniteArticle = function( word, morphologyData ) {
522
- // Search for and remove the definite article.
523
- const wordAfterRemovingDefiniteArticle = removePrefix( word, morphologyData.externalStemmer.definiteArticles );
524
- // If a definite article was removed, try to find the root.
525
- if ( wordAfterRemovingDefiniteArticle !== word ) {
526
- /**
527
- * If definite article was removed, try to find root by checking whether the word is a root, matching with a pattern, and/or
528
- * searching for and removing prefixes.
529
- */
530
- const outputAfterTryingToFindRoot = findRoot( wordAfterRemovingDefiniteArticle, morphologyData );
531
- if ( outputAfterTryingToFindRoot ) {
532
- return outputAfterTryingToFindRoot;
533
- }
534
-
535
- // Return it even if no root was found.
536
- return { word: wordAfterRemovingDefiniteArticle, rootFound: false };
537
- }
538
- };
539
-
540
- /**
541
- * Searches for prefix waw (و) and removes it if found, then tries to find the root. If the root is still not found, removes
542
- * affixes and tries to find the root again. If the root is not found, the function returns null, with one exception: it
543
- * is possible that in the checkPatterns function that is ran inside of this one, the word is modified but no root is found.
544
- * In this case, the function returns the modified word.
545
- *
546
- * Example: وتمثّل -> مثل (word with prefix waw which matches a pattern after removing the prefix).
547
- *
548
- * @param {string} word The word to check.
549
- * @param {Object} morphologyData The Arabic morphology data.
550
- *
551
- * @returns {Object|null} An object with the root/modified word and information about whether the root was found, or null if
552
- * the word is not modified and no root is found.
553
- */
554
- const processWordWithPrefixWaw = function( word, morphologyData ) {
555
- let wordAfterRemovingWaw = "";
556
- if ( word.length > 3 && word.startsWith( morphologyData.externalStemmer.characters.waw ) ) {
557
- wordAfterRemovingWaw = word.substring( 1 );
558
- /*
559
- * If the prefix waw was removed, try to find the root by checking whether the word is a root, matching with a pattern,
560
- * and/or searching for and removing prefixes.
561
- */
562
- const outputAfterTryingToFindRoot = findRoot( wordAfterRemovingWaw, morphologyData );
563
-
564
- if ( outputAfterTryingToFindRoot ) {
565
- return outputAfterTryingToFindRoot;
566
- }
567
- }
568
- };
569
-
570
- /**
571
- * Stems Arabic words.
572
- *
573
- * @param {string} word The word to stem.
574
- * @param {Object} morphologyData The Arabic morphology data.
575
- *
576
- * @returns {string} The stemmed word.
577
- */
578
- export default function stem( word, morphologyData ) {
579
- // Remove diacritics that serve as phonetic guides and are not usually used in regular writing.
580
- const regexRemovingDiacritics = morphologyData.externalStemmer.regexRemovingDiacritics;
581
- word.replace( new RegExp( regexRemovingDiacritics ), "" );
582
-
583
- const root = checkIfWordIsRoot( word, morphologyData );
584
- if ( root ) {
585
- return root;
586
- }
587
- // If the root still hasn't been found, check if the word matches a pattern and get its root if it does.
588
- const outputAfterCheckingPatterns = checkPatterns( word, morphologyData );
589
- if ( outputAfterCheckingPatterns ) {
590
- // Return the root if it was found in the checkPatterns function
591
- if ( outputAfterCheckingPatterns.rootFound === true ) {
592
- return outputAfterCheckingPatterns.word;
593
- }
594
- // If the checkPatterns function modified the word but did not find the root, replace the word with the modified word.
595
- word = outputAfterCheckingPatterns.word;
596
- }
597
-
598
- // If the root still hasn't been found, remove the definite article and try to find the root.
599
- const outputAfterProcessingDefiniteArticle = processWordWithDefiniteArticle( word, morphologyData );
600
- if ( outputAfterProcessingDefiniteArticle ) {
601
- // Return the root if it was found after removing the definite article.
602
- if ( outputAfterProcessingDefiniteArticle.rootFound === true ) {
603
- return outputAfterProcessingDefiniteArticle.word;
604
- }
605
- // If the definite article was removed but the root was not found, replace the word with the stemmed word.
606
-
607
- word = outputAfterProcessingDefiniteArticle.word;
608
- }
609
-
610
- // If the root still hasn't been found, remove the prefix waw and try to find the root.
611
- const outputAfterProcessingPrefixWaw = processWordWithPrefixWaw( word, morphologyData );
612
- if ( outputAfterProcessingPrefixWaw ) {
613
- if ( outputAfterProcessingPrefixWaw.rootFound === true ) {
614
- return outputAfterProcessingPrefixWaw.word;
615
- }
616
- // If the checkPatterns function modified the word but did not find the root, replace the word with the modified word.
617
- word = outputAfterProcessingPrefixWaw.word;
618
- }
619
- // If the root still hasn't been found, remove a suffix and try to find the root.
620
- const outputAfterProcessingSuffix = processWordWithSuffix( word, morphologyData );
621
- if ( outputAfterProcessingSuffix ) {
622
- return outputAfterProcessingSuffix.word;
623
- }
624
-
625
- // If the root still hasn't been found, remove a prefix and try to find the root.
626
- const wordAfterProcessingPrefix = processWordWithPrefix( word, morphologyData );
627
- if ( wordAfterProcessingPrefix ) {
628
- return wordAfterProcessingPrefix.word;
629
- }
630
-
631
- return word;
632
- }
@@ -1,33 +0,0 @@
1
- import getPassiveVerbs from '../config/internal/passiveVerbsWithLongVowel';
2
- import {languageProcessing} from '../../../index';
3
- const {getWords} = languageProcessing;
4
-
5
- /**
6
- * Checks the passed sentence to see if it contains Arabic passive verb-forms.
7
- *
8
- * @param {string} sentence The sentence to match against.
9
- *
10
- * @returns {Boolean} Whether the sentence contains Arabic passive voice.
11
- */
12
- export default function isPassiveSentence(sentence) {
13
- const arabicPrepositionalPrefix = 'و';
14
- const words = getWords(sentence);
15
- const passiveVerbs = [];
16
-
17
- for (let word of words) {
18
- // Check if the word starts with prefix و
19
- if (word.startsWith(arabicPrepositionalPrefix)) {
20
- word = word.slice(1);
21
- }
22
- let wordWithDamma = -1;
23
- // Check if the first character has a damma or if the word is in the list of Arabic passive verbs
24
- if (word.length >= 2) {
25
- wordWithDamma = word[1].search('\u064F');
26
- }
27
- if (wordWithDamma !== -1 || getPassiveVerbs.includes(word)) {
28
- passiveVerbs.push(word);
29
- }
30
- }
31
-
32
- return passiveVerbs.length !== 0;
33
- }