axyseo 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1256) hide show
  1. package/README.md +228 -0
  2. package/build/bundledPlugins/index.js +14 -0
  3. package/build/bundledPlugins/index.js.map +1 -0
  4. package/build/bundledPlugins/previouslyUsedKeywords.js +171 -0
  5. package/build/bundledPlugins/previouslyUsedKeywords.js.map +1 -0
  6. package/build/config/diacritics.js +140 -0
  7. package/build/config/diacritics.js.map +1 -0
  8. package/build/config/getTransliterations.js +3572 -0
  9. package/build/config/getTransliterations.js.map +1 -0
  10. package/build/config/transliterationsWPstyle.js +1424 -0
  11. package/build/config/transliterationsWPstyle.js.map +1 -0
  12. package/build/config/wordBoundaries.js +26 -0
  13. package/build/config/wordBoundaries.js.map +1 -0
  14. package/build/config/wordBoundariesWithoutPunctuation.js +16 -0
  15. package/build/config/wordBoundariesWithoutPunctuation.js.map +1 -0
  16. package/build/const/analysis.js +20 -0
  17. package/build/const/analysis.js.map +1 -0
  18. package/build/errors/invalidType.js +22 -0
  19. package/build/errors/invalidType.js.map +1 -0
  20. package/build/errors/missingArgument.js +22 -0
  21. package/build/errors/missingArgument.js.map +1 -0
  22. package/build/helpers/createMeasurementElement.js +46 -0
  23. package/build/helpers/createMeasurementElement.js.map +1 -0
  24. package/build/helpers/domManipulation.js +66 -0
  25. package/build/helpers/domManipulation.js.map +1 -0
  26. package/build/helpers/errors.js +26 -0
  27. package/build/helpers/errors.js.map +1 -0
  28. package/build/helpers/factory.js +207 -0
  29. package/build/helpers/factory.js.map +1 -0
  30. package/build/helpers/formatNumber.js +18 -0
  31. package/build/helpers/formatNumber.js.map +1 -0
  32. package/build/helpers/formatString.js +38 -0
  33. package/build/helpers/formatString.js.map +1 -0
  34. package/build/helpers/getLanguagesWithWordComplexity.js +15 -0
  35. package/build/helpers/getLanguagesWithWordComplexity.js.map +1 -0
  36. package/build/helpers/getLanguagesWithWordFormSupport.js +16 -0
  37. package/build/helpers/getLanguagesWithWordFormSupport.js.map +1 -0
  38. package/build/helpers/getWordComplexityConfig.js +27 -0
  39. package/build/helpers/getWordComplexityConfig.js.map +1 -0
  40. package/build/helpers/getWordComplexityHelper.js +27 -0
  41. package/build/helpers/getWordComplexityHelper.js.map +1 -0
  42. package/build/helpers/htmlEntities.js +21 -0
  43. package/build/helpers/htmlEntities.js.map +1 -0
  44. package/build/helpers/includesAny.js +24 -0
  45. package/build/helpers/includesAny.js.map +1 -0
  46. package/build/helpers/index.js +179 -0
  47. package/build/helpers/index.js.map +1 -0
  48. package/build/helpers/shortlinker/Shortlinker.js +79 -0
  49. package/build/helpers/shortlinker/Shortlinker.js.map +1 -0
  50. package/build/helpers/shortlinker/index.js +17 -0
  51. package/build/helpers/shortlinker/index.js.map +1 -0
  52. package/build/helpers/shortlinker/singleton.js +76 -0
  53. package/build/helpers/shortlinker/singleton.js.map +1 -0
  54. package/build/helpers/types.js +37 -0
  55. package/build/helpers/types.js.map +1 -0
  56. package/build/index.js +103 -0
  57. package/build/index.js.map +1 -0
  58. package/build/languageProcessing/AbstractResearcher.js +348 -0
  59. package/build/languageProcessing/AbstractResearcher.js.map +1 -0
  60. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +123 -0
  61. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js.map +1 -0
  62. package/build/languageProcessing/helpers/html/getFieldsToMark.js +37 -0
  63. package/build/languageProcessing/helpers/html/getFieldsToMark.js.map +1 -0
  64. package/build/languageProcessing/helpers/html/getSubheadingTexts.js +47 -0
  65. package/build/languageProcessing/helpers/html/getSubheadingTexts.js.map +1 -0
  66. package/build/languageProcessing/helpers/html/getSubheadings.js +92 -0
  67. package/build/languageProcessing/helpers/html/getSubheadings.js.map +1 -0
  68. package/build/languageProcessing/helpers/html/html.js +152 -0
  69. package/build/languageProcessing/helpers/html/html.js.map +1 -0
  70. package/build/languageProcessing/helpers/html/htmlParser.js +132 -0
  71. package/build/languageProcessing/helpers/html/htmlParser.js.map +1 -0
  72. package/build/languageProcessing/helpers/html/matchParagraphs.js +61 -0
  73. package/build/languageProcessing/helpers/html/matchParagraphs.js.map +1 -0
  74. package/build/languageProcessing/helpers/html/normalizeHTML.js +23 -0
  75. package/build/languageProcessing/helpers/html/normalizeHTML.js.map +1 -0
  76. package/build/languageProcessing/helpers/image/getAltAttribute.js +24 -0
  77. package/build/languageProcessing/helpers/image/getAltAttribute.js.map +1 -0
  78. package/build/languageProcessing/helpers/image/getImagesInTree.js +21 -0
  79. package/build/languageProcessing/helpers/image/getImagesInTree.js.map +1 -0
  80. package/build/languageProcessing/helpers/image/imageInText.js +26 -0
  81. package/build/languageProcessing/helpers/image/imageInText.js.map +1 -0
  82. package/build/languageProcessing/helpers/index.js +41 -0
  83. package/build/languageProcessing/helpers/index.js.map +1 -0
  84. package/build/languageProcessing/helpers/language/getLanguage.js +16 -0
  85. package/build/languageProcessing/helpers/language/getLanguage.js.map +1 -0
  86. package/build/languageProcessing/helpers/link/checkNofollow.js +42 -0
  87. package/build/languageProcessing/helpers/link/checkNofollow.js.map +1 -0
  88. package/build/languageProcessing/helpers/link/getAnchorsFromText.js +37 -0
  89. package/build/languageProcessing/helpers/link/getAnchorsFromText.js.map +1 -0
  90. package/build/languageProcessing/helpers/link/getLinkType.js +36 -0
  91. package/build/languageProcessing/helpers/link/getLinkType.js.map +1 -0
  92. package/build/languageProcessing/helpers/match/findKeywordFormsInString.js +101 -0
  93. package/build/languageProcessing/helpers/match/findKeywordFormsInString.js.map +1 -0
  94. package/build/languageProcessing/helpers/match/isDoubleQuoted.js +19 -0
  95. package/build/languageProcessing/helpers/match/isDoubleQuoted.js.map +1 -0
  96. package/build/languageProcessing/helpers/match/matchTextWithArray.js +41 -0
  97. package/build/languageProcessing/helpers/match/matchTextWithArray.js.map +1 -0
  98. package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js +58 -0
  99. package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js.map +1 -0
  100. package/build/languageProcessing/helpers/match/matchTextWithWord.js +47 -0
  101. package/build/languageProcessing/helpers/match/matchTextWithWord.js.map +1 -0
  102. package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js +162 -0
  103. package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js.map +1 -0
  104. package/build/languageProcessing/helpers/match/processExactMatchRequest.js +29 -0
  105. package/build/languageProcessing/helpers/match/processExactMatchRequest.js.map +1 -0
  106. package/build/languageProcessing/helpers/morphology/baseStemmer.js +18 -0
  107. package/build/languageProcessing/helpers/morphology/baseStemmer.js.map +1 -0
  108. package/build/languageProcessing/helpers/morphology/buildFormRule.js +26 -0
  109. package/build/languageProcessing/helpers/morphology/buildFormRule.js.map +1 -0
  110. package/build/languageProcessing/helpers/morphology/buildTopicStems.js +164 -0
  111. package/build/languageProcessing/helpers/morphology/buildTopicStems.js.map +1 -0
  112. package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js +48 -0
  113. package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js.map +1 -0
  114. package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js +71 -0
  115. package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js.map +1 -0
  116. package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +29 -0
  117. package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js.map +1 -0
  118. package/build/languageProcessing/helpers/morphology/flattenSortLength.js +19 -0
  119. package/build/languageProcessing/helpers/morphology/flattenSortLength.js.map +1 -0
  120. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +35 -0
  121. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js.map +1 -0
  122. package/build/languageProcessing/helpers/morphology/regexHelpers.js +53 -0
  123. package/build/languageProcessing/helpers/morphology/regexHelpers.js.map +1 -0
  124. package/build/languageProcessing/helpers/morphology/stemHelpers.js +46 -0
  125. package/build/languageProcessing/helpers/morphology/stemHelpers.js.map +1 -0
  126. package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +39 -0
  127. package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js.map +1 -0
  128. package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +42 -0
  129. package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js.map +1 -0
  130. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +116 -0
  131. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js.map +1 -0
  132. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +45 -0
  133. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js.map +1 -0
  134. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +220 -0
  135. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js.map +1 -0
  136. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +27 -0
  137. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js.map +1 -0
  138. package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +28 -0
  139. package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js.map +1 -0
  140. package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +46 -0
  141. package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js.map +1 -0
  142. package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js +203 -0
  143. package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js.map +1 -0
  144. package/build/languageProcessing/helpers/regex/createRegexFromArray.js +38 -0
  145. package/build/languageProcessing/helpers/regex/createRegexFromArray.js.map +1 -0
  146. package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +39 -0
  147. package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js.map +1 -0
  148. package/build/languageProcessing/helpers/regex/createWordRegex.js +34 -0
  149. package/build/languageProcessing/helpers/regex/createWordRegex.js.map +1 -0
  150. package/build/languageProcessing/helpers/regex/matchStringWithRegex.js +24 -0
  151. package/build/languageProcessing/helpers/regex/matchStringWithRegex.js.map +1 -0
  152. package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +21 -0
  153. package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js.map +1 -0
  154. package/build/languageProcessing/helpers/sanitize/doubleQuotes.js +19 -0
  155. package/build/languageProcessing/helpers/sanitize/doubleQuotes.js.map +1 -0
  156. package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +131 -0
  157. package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js.map +1 -0
  158. package/build/languageProcessing/helpers/sanitize/mergeListItems.js +30 -0
  159. package/build/languageProcessing/helpers/sanitize/mergeListItems.js.map +1 -0
  160. package/build/languageProcessing/helpers/sanitize/parseSynonyms.js +24 -0
  161. package/build/languageProcessing/helpers/sanitize/parseSynonyms.js.map +1 -0
  162. package/build/languageProcessing/helpers/sanitize/quotes.js +47 -0
  163. package/build/languageProcessing/helpers/sanitize/quotes.js.map +1 -0
  164. package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js +19 -0
  165. package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js.map +1 -0
  166. package/build/languageProcessing/helpers/sanitize/removePunctuation.js +64 -0
  167. package/build/languageProcessing/helpers/sanitize/removePunctuation.js.map +1 -0
  168. package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +24 -0
  169. package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js.map +1 -0
  170. package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +20 -0
  171. package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js.map +1 -0
  172. package/build/languageProcessing/helpers/sanitize/removeURLs.js +19 -0
  173. package/build/languageProcessing/helpers/sanitize/removeURLs.js.map +1 -0
  174. package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +18 -0
  175. package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js.map +1 -0
  176. package/build/languageProcessing/helpers/sanitize/sanitizeString.js +23 -0
  177. package/build/languageProcessing/helpers/sanitize/sanitizeString.js.map +1 -0
  178. package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js +59 -0
  179. package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js.map +1 -0
  180. package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js +22 -0
  181. package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js.map +1 -0
  182. package/build/languageProcessing/helpers/sanitize/stripNumbers.js +26 -0
  183. package/build/languageProcessing/helpers/sanitize/stripNumbers.js.map +1 -0
  184. package/build/languageProcessing/helpers/sanitize/stripSpaces.js +29 -0
  185. package/build/languageProcessing/helpers/sanitize/stripSpaces.js.map +1 -0
  186. package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js +65 -0
  187. package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js.map +1 -0
  188. package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js +64 -0
  189. package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js.map +1 -0
  190. package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js +565 -0
  191. package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js.map +1 -0
  192. package/build/languageProcessing/helpers/sentence/countSentences.js +27 -0
  193. package/build/languageProcessing/helpers/sentence/countSentences.js.map +1 -0
  194. package/build/languageProcessing/helpers/sentence/getSentences.js +71 -0
  195. package/build/languageProcessing/helpers/sentence/getSentences.js.map +1 -0
  196. package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js +60 -0
  197. package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js.map +1 -0
  198. package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +37 -0
  199. package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js.map +1 -0
  200. package/build/languageProcessing/helpers/sentence/sentencesLength.js +37 -0
  201. package/build/languageProcessing/helpers/sentence/sentencesLength.js.map +1 -0
  202. package/build/languageProcessing/helpers/syllables/DeviationFragment.js +108 -0
  203. package/build/languageProcessing/helpers/syllables/DeviationFragment.js.map +1 -0
  204. package/build/languageProcessing/helpers/syllables/countSyllables.js +173 -0
  205. package/build/languageProcessing/helpers/syllables/countSyllables.js.map +1 -0
  206. package/build/languageProcessing/helpers/syllables/syllableCountIterator.js +63 -0
  207. package/build/languageProcessing/helpers/syllables/syllableCountIterator.js.map +1 -0
  208. package/build/languageProcessing/helpers/syllables/syllableCountStep.js +75 -0
  209. package/build/languageProcessing/helpers/syllables/syllableCountStep.js.map +1 -0
  210. package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js +24 -0
  211. package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js.map +1 -0
  212. package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js +25 -0
  213. package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js.map +1 -0
  214. package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js +194 -0
  215. package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js.map +1 -0
  216. package/build/languageProcessing/helpers/transliterate/transliterate.js +24 -0
  217. package/build/languageProcessing/helpers/transliterate/transliterate.js.map +1 -0
  218. package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js +25 -0
  219. package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js.map +1 -0
  220. package/build/languageProcessing/helpers/url/parseSlug.js +17 -0
  221. package/build/languageProcessing/helpers/url/parseSlug.js.map +1 -0
  222. package/build/languageProcessing/helpers/url/url.js +174 -0
  223. package/build/languageProcessing/helpers/url/url.js.map +1 -0
  224. package/build/languageProcessing/helpers/word/addWordboundary.js +41 -0
  225. package/build/languageProcessing/helpers/word/addWordboundary.js.map +1 -0
  226. package/build/languageProcessing/helpers/word/areWordsInSentence.js +23 -0
  227. package/build/languageProcessing/helpers/word/areWordsInSentence.js.map +1 -0
  228. package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js +24 -0
  229. package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js.map +1 -0
  230. package/build/languageProcessing/helpers/word/countWords.js +21 -0
  231. package/build/languageProcessing/helpers/word/countWords.js.map +1 -0
  232. package/build/languageProcessing/helpers/word/createPunctuationTokens.js +46 -0
  233. package/build/languageProcessing/helpers/word/createPunctuationTokens.js.map +1 -0
  234. package/build/languageProcessing/helpers/word/filterWordsFromArray.js +21 -0
  235. package/build/languageProcessing/helpers/word/filterWordsFromArray.js.map +1 -0
  236. package/build/languageProcessing/helpers/word/followsIndex.js +29 -0
  237. package/build/languageProcessing/helpers/word/followsIndex.js.map +1 -0
  238. package/build/languageProcessing/helpers/word/getAllWordsFromTree.js +30 -0
  239. package/build/languageProcessing/helpers/word/getAllWordsFromTree.js.map +1 -0
  240. package/build/languageProcessing/helpers/word/getWords.js +47 -0
  241. package/build/languageProcessing/helpers/word/getWords.js.map +1 -0
  242. package/build/languageProcessing/helpers/word/includesIndex.js +34 -0
  243. package/build/languageProcessing/helpers/word/includesIndex.js.map +1 -0
  244. package/build/languageProcessing/helpers/word/indices.js +141 -0
  245. package/build/languageProcessing/helpers/word/indices.js.map +1 -0
  246. package/build/languageProcessing/helpers/word/markWordsInSentences.js +189 -0
  247. package/build/languageProcessing/helpers/word/markWordsInSentences.js.map +1 -0
  248. package/build/languageProcessing/helpers/word/matchWordInSentence.js +63 -0
  249. package/build/languageProcessing/helpers/word/matchWordInSentence.js.map +1 -0
  250. package/build/languageProcessing/helpers/word/splitIntoTokens.js +52 -0
  251. package/build/languageProcessing/helpers/word/splitIntoTokens.js.map +1 -0
  252. package/build/languageProcessing/index.js +283 -0
  253. package/build/languageProcessing/index.js.map +1 -0
  254. package/build/languageProcessing/languages/_default/Researcher.js +43 -0
  255. package/build/languageProcessing/languages/_default/Researcher.js.map +1 -0
  256. package/build/languageProcessing/languages/_default/helpers/getStemmer.js +20 -0
  257. package/build/languageProcessing/languages/_default/helpers/getStemmer.js.map +1 -0
  258. package/build/languageProcessing/languages/ar/Researcher.js +54 -0
  259. package/build/languageProcessing/languages/ar/Researcher.js.map +1 -0
  260. package/build/languageProcessing/languages/ar/config/firstWordExceptions.js +18 -0
  261. package/build/languageProcessing/languages/ar/config/firstWordExceptions.js.map +1 -0
  262. package/build/languageProcessing/languages/ar/config/functionWords.js +80 -0
  263. package/build/languageProcessing/languages/ar/config/functionWords.js.map +1 -0
  264. package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +13 -0
  265. package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js.map +1 -0
  266. package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js +11 -0
  267. package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js.map +1 -0
  268. package/build/languageProcessing/languages/ar/config/transitionWords.js +13 -0
  269. package/build/languageProcessing/languages/ar/config/transitionWords.js.map +1 -0
  270. package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js +13 -0
  271. package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js.map +1 -0
  272. package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js +38 -0
  273. package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js.map +1 -0
  274. package/build/languageProcessing/languages/ar/helpers/getStemmer.js +28 -0
  275. package/build/languageProcessing/languages/ar/helpers/getStemmer.js.map +1 -0
  276. package/build/languageProcessing/languages/ar/helpers/internal/stem.js +635 -0
  277. package/build/languageProcessing/languages/ar/helpers/internal/stem.js.map +1 -0
  278. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js +41 -0
  279. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js.map +1 -0
  280. package/build/languageProcessing/languages/ca/Researcher.js +52 -0
  281. package/build/languageProcessing/languages/ca/Researcher.js.map +1 -0
  282. package/build/languageProcessing/languages/ca/config/sentenceLength.js +10 -0
  283. package/build/languageProcessing/languages/ca/config/sentenceLength.js.map +1 -0
  284. package/build/languageProcessing/languages/ca/config/transitionWords.js +13 -0
  285. package/build/languageProcessing/languages/ca/config/transitionWords.js.map +1 -0
  286. package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js +13 -0
  287. package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js.map +1 -0
  288. package/build/languageProcessing/languages/ca/helpers/getStemmer.js +20 -0
  289. package/build/languageProcessing/languages/ca/helpers/getStemmer.js.map +1 -0
  290. package/build/languageProcessing/languages/cs/Researcher.js +52 -0
  291. package/build/languageProcessing/languages/cs/Researcher.js.map +1 -0
  292. package/build/languageProcessing/languages/cs/config/firstWordExceptions.js +20 -0
  293. package/build/languageProcessing/languages/cs/config/firstWordExceptions.js.map +1 -0
  294. package/build/languageProcessing/languages/cs/config/functionWords.js +50 -0
  295. package/build/languageProcessing/languages/cs/config/functionWords.js.map +1 -0
  296. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +10 -0
  297. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  298. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +14 -0
  299. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js.map +1 -0
  300. package/build/languageProcessing/languages/cs/config/stopWords.js +12 -0
  301. package/build/languageProcessing/languages/cs/config/stopWords.js.map +1 -0
  302. package/build/languageProcessing/languages/cs/config/transitionWords.js +13 -0
  303. package/build/languageProcessing/languages/cs/config/transitionWords.js.map +1 -0
  304. package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js +13 -0
  305. package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js.map +1 -0
  306. package/build/languageProcessing/languages/cs/helpers/getClauses.js +35 -0
  307. package/build/languageProcessing/languages/cs/helpers/getClauses.js.map +1 -0
  308. package/build/languageProcessing/languages/cs/helpers/getStemmer.js +28 -0
  309. package/build/languageProcessing/languages/cs/helpers/getStemmer.js.map +1 -0
  310. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js +24 -0
  311. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js.map +1 -0
  312. package/build/languageProcessing/languages/cs/helpers/internal/stem.js +341 -0
  313. package/build/languageProcessing/languages/cs/helpers/internal/stem.js.map +1 -0
  314. package/build/languageProcessing/languages/cs/values/Clause.js +45 -0
  315. package/build/languageProcessing/languages/cs/values/Clause.js.map +1 -0
  316. package/build/languageProcessing/languages/de/Researcher.js +61 -0
  317. package/build/languageProcessing/languages/de/Researcher.js.map +1 -0
  318. package/build/languageProcessing/languages/de/config/firstWordExceptions.js +20 -0
  319. package/build/languageProcessing/languages/de/config/firstWordExceptions.js.map +1 -0
  320. package/build/languageProcessing/languages/de/config/functionWords.js +103 -0
  321. package/build/languageProcessing/languages/de/config/functionWords.js.map +1 -0
  322. package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +13 -0
  323. package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js.map +1 -0
  324. package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +29 -0
  325. package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  326. package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +15 -0
  327. package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js.map +1 -0
  328. package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +78 -0
  329. package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js.map +1 -0
  330. package/build/languageProcessing/languages/de/config/keyphraseLength.js +17 -0
  331. package/build/languageProcessing/languages/de/config/keyphraseLength.js.map +1 -0
  332. package/build/languageProcessing/languages/de/config/stopWords.js +12 -0
  333. package/build/languageProcessing/languages/de/config/stopWords.js.map +1 -0
  334. package/build/languageProcessing/languages/de/config/syllables.json +460 -0
  335. package/build/languageProcessing/languages/de/config/transitionWords.js +13 -0
  336. package/build/languageProcessing/languages/de/config/transitionWords.js.map +1 -0
  337. package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js +13 -0
  338. package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js.map +1 -0
  339. package/build/languageProcessing/languages/de/config/wordComplexity.js +11 -0
  340. package/build/languageProcessing/languages/de/config/wordComplexity.js.map +1 -0
  341. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +23 -0
  342. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js.map +1 -0
  343. package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +47 -0
  344. package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js.map +1 -0
  345. package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +20 -0
  346. package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js.map +1 -0
  347. package/build/languageProcessing/languages/de/helpers/getClauses.js +34 -0
  348. package/build/languageProcessing/languages/de/helpers/getClauses.js.map +1 -0
  349. package/build/languageProcessing/languages/de/helpers/getStemmer.js +28 -0
  350. package/build/languageProcessing/languages/de/helpers/getStemmer.js.map +1 -0
  351. package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +38 -0
  352. package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js.map +1 -0
  353. package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +118 -0
  354. package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js.map +1 -0
  355. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js +113 -0
  356. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js.map +1 -0
  357. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js +39 -0
  358. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js.map +1 -0
  359. package/build/languageProcessing/languages/de/helpers/internal/stem.js +222 -0
  360. package/build/languageProcessing/languages/de/helpers/internal/stem.js.map +1 -0
  361. package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +37 -0
  362. package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js.map +1 -0
  363. package/build/languageProcessing/languages/de/values/Clause.js +91 -0
  364. package/build/languageProcessing/languages/de/values/Clause.js.map +1 -0
  365. package/build/languageProcessing/languages/el/Researcher.js +55 -0
  366. package/build/languageProcessing/languages/el/Researcher.js.map +1 -0
  367. package/build/languageProcessing/languages/el/config/firstWordExceptions.js +33 -0
  368. package/build/languageProcessing/languages/el/config/firstWordExceptions.js.map +1 -0
  369. package/build/languageProcessing/languages/el/config/functionWords.js +47 -0
  370. package/build/languageProcessing/languages/el/config/functionWords.js.map +1 -0
  371. package/build/languageProcessing/languages/el/config/internal/auxiliaries.js +12 -0
  372. package/build/languageProcessing/languages/el/config/internal/auxiliaries.js.map +1 -0
  373. package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +8 -0
  374. package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js.map +1 -0
  375. package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +22 -0
  376. package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js.map +1 -0
  377. package/build/languageProcessing/languages/el/config/stopWords.js +13 -0
  378. package/build/languageProcessing/languages/el/config/stopWords.js.map +1 -0
  379. package/build/languageProcessing/languages/el/config/transitionWords.js +18 -0
  380. package/build/languageProcessing/languages/el/config/transitionWords.js.map +1 -0
  381. package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js +13 -0
  382. package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js.map +1 -0
  383. package/build/languageProcessing/languages/el/helpers/getClauses.js +34 -0
  384. package/build/languageProcessing/languages/el/helpers/getClauses.js.map +1 -0
  385. package/build/languageProcessing/languages/el/helpers/getStemmer.js +29 -0
  386. package/build/languageProcessing/languages/el/helpers/getStemmer.js.map +1 -0
  387. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js +24 -0
  388. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js.map +1 -0
  389. package/build/languageProcessing/languages/el/helpers/internal/stem.js +347 -0
  390. package/build/languageProcessing/languages/el/helpers/internal/stem.js.map +1 -0
  391. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js +43 -0
  392. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js.map +1 -0
  393. package/build/languageProcessing/languages/el/values/Clause.js +46 -0
  394. package/build/languageProcessing/languages/el/values/Clause.js.map +1 -0
  395. package/build/languageProcessing/languages/en/Researcher.js +55 -0
  396. package/build/languageProcessing/languages/en/Researcher.js.map +1 -0
  397. package/build/languageProcessing/languages/en/config/abbreviations.js +16 -0
  398. package/build/languageProcessing/languages/en/config/abbreviations.js.map +1 -0
  399. package/build/languageProcessing/languages/en/config/firstWordExceptions.js +20 -0
  400. package/build/languageProcessing/languages/en/config/firstWordExceptions.js.map +1 -0
  401. package/build/languageProcessing/languages/en/config/functionWords.js +110 -0
  402. package/build/languageProcessing/languages/en/config/functionWords.js.map +1 -0
  403. package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +15 -0
  404. package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  405. package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +15 -0
  406. package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js.map +1 -0
  407. package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +13 -0
  408. package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js.map +1 -0
  409. package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js +12 -0
  410. package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js.map +1 -0
  411. package/build/languageProcessing/languages/en/config/stopWords.js +12 -0
  412. package/build/languageProcessing/languages/en/config/stopWords.js.map +1 -0
  413. package/build/languageProcessing/languages/en/config/syllables.json +86 -0
  414. package/build/languageProcessing/languages/en/config/transitionWords.js +13 -0
  415. package/build/languageProcessing/languages/en/config/transitionWords.js.map +1 -0
  416. package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js +13 -0
  417. package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js.map +1 -0
  418. package/build/languageProcessing/languages/en/config/wordComplexity.js +12 -0
  419. package/build/languageProcessing/languages/en/config/wordComplexity.js.map +1 -0
  420. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +23 -0
  421. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js.map +1 -0
  422. package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +49 -0
  423. package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js.map +1 -0
  424. package/build/languageProcessing/languages/en/helpers/getClauses.js +58 -0
  425. package/build/languageProcessing/languages/en/helpers/getClauses.js.map +1 -0
  426. package/build/languageProcessing/languages/en/helpers/getStemmer.js +28 -0
  427. package/build/languageProcessing/languages/en/helpers/getStemmer.js.map +1 -0
  428. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js +161 -0
  429. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js.map +1 -0
  430. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +149 -0
  431. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js.map +1 -0
  432. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js +33 -0
  433. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js.map +1 -0
  434. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js +228 -0
  435. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js.map +1 -0
  436. package/build/languageProcessing/languages/en/values/Clause.js +68 -0
  437. package/build/languageProcessing/languages/en/values/Clause.js.map +1 -0
  438. package/build/languageProcessing/languages/es/Researcher.js +57 -0
  439. package/build/languageProcessing/languages/es/Researcher.js.map +1 -0
  440. package/build/languageProcessing/languages/es/config/firstWordExceptions.js +20 -0
  441. package/build/languageProcessing/languages/es/config/firstWordExceptions.js.map +1 -0
  442. package/build/languageProcessing/languages/es/config/functionWords.js +111 -0
  443. package/build/languageProcessing/languages/es/config/functionWords.js.map +1 -0
  444. package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +12 -0
  445. package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  446. package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +13 -0
  447. package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js.map +1 -0
  448. package/build/languageProcessing/languages/es/config/sentenceLength.js +10 -0
  449. package/build/languageProcessing/languages/es/config/sentenceLength.js.map +1 -0
  450. package/build/languageProcessing/languages/es/config/stopWords.js +12 -0
  451. package/build/languageProcessing/languages/es/config/stopWords.js.map +1 -0
  452. package/build/languageProcessing/languages/es/config/syllables.json +176 -0
  453. package/build/languageProcessing/languages/es/config/transitionWords.js +13 -0
  454. package/build/languageProcessing/languages/es/config/transitionWords.js.map +1 -0
  455. package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js +13 -0
  456. package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js.map +1 -0
  457. package/build/languageProcessing/languages/es/config/wordComplexity.js +11 -0
  458. package/build/languageProcessing/languages/es/config/wordComplexity.js.map +1 -0
  459. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +23 -0
  460. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js.map +1 -0
  461. package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +59 -0
  462. package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js.map +1 -0
  463. package/build/languageProcessing/languages/es/helpers/getClauses.js +38 -0
  464. package/build/languageProcessing/languages/es/helpers/getClauses.js.map +1 -0
  465. package/build/languageProcessing/languages/es/helpers/getStemmer.js +28 -0
  466. package/build/languageProcessing/languages/es/helpers/getStemmer.js.map +1 -0
  467. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +40 -0
  468. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js.map +1 -0
  469. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js +43 -0
  470. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js.map +1 -0
  471. package/build/languageProcessing/languages/es/helpers/internal/stem.js +574 -0
  472. package/build/languageProcessing/languages/es/helpers/internal/stem.js.map +1 -0
  473. package/build/languageProcessing/languages/es/values/Clause.js +49 -0
  474. package/build/languageProcessing/languages/es/values/Clause.js.map +1 -0
  475. package/build/languageProcessing/languages/fa/Researcher.js +56 -0
  476. package/build/languageProcessing/languages/fa/Researcher.js.map +1 -0
  477. package/build/languageProcessing/languages/fa/config/firstWordExceptions.js +18 -0
  478. package/build/languageProcessing/languages/fa/config/firstWordExceptions.js.map +1 -0
  479. package/build/languageProcessing/languages/fa/config/functionWords.js +41 -0
  480. package/build/languageProcessing/languages/fa/config/functionWords.js.map +1 -0
  481. package/build/languageProcessing/languages/fa/config/internal/participles.js +14 -0
  482. package/build/languageProcessing/languages/fa/config/internal/participles.js.map +1 -0
  483. package/build/languageProcessing/languages/fa/config/sentenceLength.js +10 -0
  484. package/build/languageProcessing/languages/fa/config/sentenceLength.js.map +1 -0
  485. package/build/languageProcessing/languages/fa/config/transitionWords.js +18 -0
  486. package/build/languageProcessing/languages/fa/config/transitionWords.js.map +1 -0
  487. package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js +13 -0
  488. package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js.map +1 -0
  489. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js +99 -0
  490. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js.map +1 -0
  491. package/build/languageProcessing/languages/fa/helpers/getStemmer.js +22 -0
  492. package/build/languageProcessing/languages/fa/helpers/getStemmer.js.map +1 -0
  493. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js +22 -0
  494. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js.map +1 -0
  495. package/build/languageProcessing/languages/fr/Researcher.js +55 -0
  496. package/build/languageProcessing/languages/fr/Researcher.js.map +1 -0
  497. package/build/languageProcessing/languages/fr/config/firstWordExceptions.js +20 -0
  498. package/build/languageProcessing/languages/fr/config/firstWordExceptions.js.map +1 -0
  499. package/build/languageProcessing/languages/fr/config/functionWords.js +144 -0
  500. package/build/languageProcessing/languages/fr/config/functionWords.js.map +1 -0
  501. package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +22 -0
  502. package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js.map +1 -0
  503. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +12 -0
  504. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  505. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +27 -0
  506. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js.map +1 -0
  507. package/build/languageProcessing/languages/fr/config/stopWords.js +12 -0
  508. package/build/languageProcessing/languages/fr/config/stopWords.js.map +1 -0
  509. package/build/languageProcessing/languages/fr/config/syllables.json +1426 -0
  510. package/build/languageProcessing/languages/fr/config/transitionWords.js +13 -0
  511. package/build/languageProcessing/languages/fr/config/transitionWords.js.map +1 -0
  512. package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js +13 -0
  513. package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js.map +1 -0
  514. package/build/languageProcessing/languages/fr/config/wordComplexity.js +11 -0
  515. package/build/languageProcessing/languages/fr/config/wordComplexity.js.map +1 -0
  516. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +23 -0
  517. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js.map +1 -0
  518. package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +72 -0
  519. package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js.map +1 -0
  520. package/build/languageProcessing/languages/fr/helpers/getClauses.js +42 -0
  521. package/build/languageProcessing/languages/fr/helpers/getClauses.js.map +1 -0
  522. package/build/languageProcessing/languages/fr/helpers/getStemmer.js +28 -0
  523. package/build/languageProcessing/languages/fr/helpers/getStemmer.js.map +1 -0
  524. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js +71 -0
  525. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js.map +1 -0
  526. package/build/languageProcessing/languages/fr/helpers/internal/stem.js +544 -0
  527. package/build/languageProcessing/languages/fr/helpers/internal/stem.js.map +1 -0
  528. package/build/languageProcessing/languages/fr/values/Clause.js +90 -0
  529. package/build/languageProcessing/languages/fr/values/Clause.js.map +1 -0
  530. package/build/languageProcessing/languages/he/Researcher.js +59 -0
  531. package/build/languageProcessing/languages/he/Researcher.js.map +1 -0
  532. package/build/languageProcessing/languages/he/config/firstWordExceptions.js +18 -0
  533. package/build/languageProcessing/languages/he/config/firstWordExceptions.js.map +1 -0
  534. package/build/languageProcessing/languages/he/config/functionWords.js +504 -0
  535. package/build/languageProcessing/languages/he/config/functionWords.js.map +1 -0
  536. package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js +13 -0
  537. package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js.map +1 -0
  538. package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js +13 -0
  539. package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js.map +1 -0
  540. package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js +13 -0
  541. package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js.map +1 -0
  542. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +15 -0
  543. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js.map +1 -0
  544. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +15 -0
  545. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js.map +1 -0
  546. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +15 -0
  547. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js.map +1 -0
  548. package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js +9 -0
  549. package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js.map +1 -0
  550. package/build/languageProcessing/languages/he/config/sentenceLength.js +10 -0
  551. package/build/languageProcessing/languages/he/config/sentenceLength.js.map +1 -0
  552. package/build/languageProcessing/languages/he/config/transitionWords.js +13 -0
  553. package/build/languageProcessing/languages/he/config/transitionWords.js.map +1 -0
  554. package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js +13 -0
  555. package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js.map +1 -0
  556. package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js +40 -0
  557. package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js.map +1 -0
  558. package/build/languageProcessing/languages/he/helpers/getStemmer.js +28 -0
  559. package/build/languageProcessing/languages/he/helpers/getStemmer.js.map +1 -0
  560. package/build/languageProcessing/languages/he/helpers/internal/stem.js +59 -0
  561. package/build/languageProcessing/languages/he/helpers/internal/stem.js.map +1 -0
  562. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js +122 -0
  563. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js.map +1 -0
  564. package/build/languageProcessing/languages/he/helpers/stem.js +59 -0
  565. package/build/languageProcessing/languages/he/helpers/stem.js.map +1 -0
  566. package/build/languageProcessing/languages/hu/Researcher.js +57 -0
  567. package/build/languageProcessing/languages/hu/Researcher.js.map +1 -0
  568. package/build/languageProcessing/languages/hu/config/firstWordExceptions.js +32 -0
  569. package/build/languageProcessing/languages/hu/config/firstWordExceptions.js.map +1 -0
  570. package/build/languageProcessing/languages/hu/config/functionWords.js +52 -0
  571. package/build/languageProcessing/languages/hu/config/functionWords.js.map +1 -0
  572. package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js +20 -0
  573. package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js.map +1 -0
  574. package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +12 -0
  575. package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js.map +1 -0
  576. package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +25 -0
  577. package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js.map +1 -0
  578. package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js +25 -0
  579. package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js.map +1 -0
  580. package/build/languageProcessing/languages/hu/config/internal/participles.js +25 -0
  581. package/build/languageProcessing/languages/hu/config/internal/participles.js.map +1 -0
  582. package/build/languageProcessing/languages/hu/config/stopWords.js +29 -0
  583. package/build/languageProcessing/languages/hu/config/stopWords.js.map +1 -0
  584. package/build/languageProcessing/languages/hu/config/transitionWords.js +13 -0
  585. package/build/languageProcessing/languages/hu/config/transitionWords.js.map +1 -0
  586. package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js +13 -0
  587. package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js.map +1 -0
  588. package/build/languageProcessing/languages/hu/helpers/getClauses.js +34 -0
  589. package/build/languageProcessing/languages/hu/helpers/getClauses.js.map +1 -0
  590. package/build/languageProcessing/languages/hu/helpers/getStemmer.js +28 -0
  591. package/build/languageProcessing/languages/hu/helpers/getStemmer.js.map +1 -0
  592. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js +25 -0
  593. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js.map +1 -0
  594. package/build/languageProcessing/languages/hu/helpers/internal/stem.js +390 -0
  595. package/build/languageProcessing/languages/hu/helpers/internal/stem.js.map +1 -0
  596. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js +53 -0
  597. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js.map +1 -0
  598. package/build/languageProcessing/languages/hu/values/Clause.js +47 -0
  599. package/build/languageProcessing/languages/hu/values/Clause.js.map +1 -0
  600. package/build/languageProcessing/languages/id/Researcher.js +55 -0
  601. package/build/languageProcessing/languages/id/Researcher.js.map +1 -0
  602. package/build/languageProcessing/languages/id/config/firstWordExceptions.js +18 -0
  603. package/build/languageProcessing/languages/id/config/firstWordExceptions.js.map +1 -0
  604. package/build/languageProcessing/languages/id/config/functionWords.js +109 -0
  605. package/build/languageProcessing/languages/id/config/functionWords.js.map +1 -0
  606. package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +13 -0
  607. package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js.map +1 -0
  608. package/build/languageProcessing/languages/id/config/transitionWords.js +30 -0
  609. package/build/languageProcessing/languages/id/config/transitionWords.js.map +1 -0
  610. package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js +14 -0
  611. package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js.map +1 -0
  612. package/build/languageProcessing/languages/id/helpers/getStemmer.js +28 -0
  613. package/build/languageProcessing/languages/id/helpers/getStemmer.js.map +1 -0
  614. package/build/languageProcessing/languages/id/helpers/internal/stem.js +394 -0
  615. package/build/languageProcessing/languages/id/helpers/internal/stem.js.map +1 -0
  616. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js +86 -0
  617. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js.map +1 -0
  618. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js +47 -0
  619. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js.map +1 -0
  620. package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +53 -0
  621. package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js.map +1 -0
  622. package/build/languageProcessing/languages/it/Researcher.js +57 -0
  623. package/build/languageProcessing/languages/it/Researcher.js.map +1 -0
  624. package/build/languageProcessing/languages/it/config/firstWordExceptions.js +20 -0
  625. package/build/languageProcessing/languages/it/config/firstWordExceptions.js.map +1 -0
  626. package/build/languageProcessing/languages/it/config/functionWords.js +141 -0
  627. package/build/languageProcessing/languages/it/config/functionWords.js.map +1 -0
  628. package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +12 -0
  629. package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  630. package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +13 -0
  631. package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js.map +1 -0
  632. package/build/languageProcessing/languages/it/config/sentenceLength.js +10 -0
  633. package/build/languageProcessing/languages/it/config/sentenceLength.js.map +1 -0
  634. package/build/languageProcessing/languages/it/config/stopWords.js +12 -0
  635. package/build/languageProcessing/languages/it/config/stopWords.js.map +1 -0
  636. package/build/languageProcessing/languages/it/config/syllables.json +573 -0
  637. package/build/languageProcessing/languages/it/config/transitionWords.js +13 -0
  638. package/build/languageProcessing/languages/it/config/transitionWords.js.map +1 -0
  639. package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js +12 -0
  640. package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js.map +1 -0
  641. package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +23 -0
  642. package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js.map +1 -0
  643. package/build/languageProcessing/languages/it/helpers/getClauses.js +40 -0
  644. package/build/languageProcessing/languages/it/helpers/getClauses.js.map +1 -0
  645. package/build/languageProcessing/languages/it/helpers/getStemmer.js +28 -0
  646. package/build/languageProcessing/languages/it/helpers/getStemmer.js.map +1 -0
  647. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js +42 -0
  648. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js.map +1 -0
  649. package/build/languageProcessing/languages/it/helpers/internal/stem.js +408 -0
  650. package/build/languageProcessing/languages/it/helpers/internal/stem.js.map +1 -0
  651. package/build/languageProcessing/languages/it/values/Clause.js +51 -0
  652. package/build/languageProcessing/languages/it/values/Clause.js.map +1 -0
  653. package/build/languageProcessing/languages/ja/Researcher.js +94 -0
  654. package/build/languageProcessing/languages/ja/Researcher.js.map +1 -0
  655. package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +11 -0
  656. package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js.map +1 -0
  657. package/build/languageProcessing/languages/ja/config/firstWordExceptions.js +14 -0
  658. package/build/languageProcessing/languages/ja/config/firstWordExceptions.js.map +1 -0
  659. package/build/languageProcessing/languages/ja/config/functionWords.js +8 -0
  660. package/build/languageProcessing/languages/ja/config/functionWords.js.map +1 -0
  661. package/build/languageProcessing/languages/ja/config/keyphraseLength.js +23 -0
  662. package/build/languageProcessing/languages/ja/config/keyphraseLength.js.map +1 -0
  663. package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js +11 -0
  664. package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js.map +1 -0
  665. package/build/languageProcessing/languages/ja/config/paragraphLength.js +17 -0
  666. package/build/languageProcessing/languages/ja/config/paragraphLength.js.map +1 -0
  667. package/build/languageProcessing/languages/ja/config/sentenceLength.js +11 -0
  668. package/build/languageProcessing/languages/ja/config/sentenceLength.js.map +1 -0
  669. package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js +25 -0
  670. package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js.map +1 -0
  671. package/build/languageProcessing/languages/ja/config/textLength.js +54 -0
  672. package/build/languageProcessing/languages/ja/config/textLength.js.map +1 -0
  673. package/build/languageProcessing/languages/ja/config/topicLength.js +12 -0
  674. package/build/languageProcessing/languages/ja/config/topicLength.js.map +1 -0
  675. package/build/languageProcessing/languages/ja/config/transitionWords.js +9 -0
  676. package/build/languageProcessing/languages/ja/config/transitionWords.js.map +1 -0
  677. package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +102 -0
  678. package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js.map +1 -0
  679. package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +25 -0
  680. package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js.map +1 -0
  681. package/build/languageProcessing/languages/ja/customResearches/getWordForms.js +57 -0
  682. package/build/languageProcessing/languages/ja/customResearches/getWordForms.js.map +1 -0
  683. package/build/languageProcessing/languages/ja/customResearches/textLength.js +31 -0
  684. package/build/languageProcessing/languages/ja/customResearches/textLength.js.map +1 -0
  685. package/build/languageProcessing/languages/ja/helpers/countCharacters.js +27 -0
  686. package/build/languageProcessing/languages/ja/helpers/countCharacters.js.map +1 -0
  687. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js +28 -0
  688. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js.map +1 -0
  689. package/build/languageProcessing/languages/ja/helpers/getContentWords.js +27 -0
  690. package/build/languageProcessing/languages/ja/helpers/getContentWords.js.map +1 -0
  691. package/build/languageProcessing/languages/ja/helpers/getWords.js +38 -0
  692. package/build/languageProcessing/languages/ja/helpers/getWords.js.map +1 -0
  693. package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +99 -0
  694. package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js.map +1 -0
  695. package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js +70 -0
  696. package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js.map +1 -0
  697. package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js +23 -0
  698. package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js.map +1 -0
  699. package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js +58 -0
  700. package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js.map +1 -0
  701. package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js +29 -0
  702. package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js.map +1 -0
  703. package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +37 -0
  704. package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js.map +1 -0
  705. package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +27 -0
  706. package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js.map +1 -0
  707. package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +19 -0
  708. package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js.map +1 -0
  709. package/build/languageProcessing/languages/nb/Researcher.js +54 -0
  710. package/build/languageProcessing/languages/nb/Researcher.js.map +1 -0
  711. package/build/languageProcessing/languages/nb/config/firstWordExceptions.js +18 -0
  712. package/build/languageProcessing/languages/nb/config/firstWordExceptions.js.map +1 -0
  713. package/build/languageProcessing/languages/nb/config/functionWords.js +54 -0
  714. package/build/languageProcessing/languages/nb/config/functionWords.js.map +1 -0
  715. package/build/languageProcessing/languages/nb/config/internal/participles.js +12 -0
  716. package/build/languageProcessing/languages/nb/config/internal/participles.js.map +1 -0
  717. package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +12 -0
  718. package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  719. package/build/languageProcessing/languages/nb/config/stopWords.js +13 -0
  720. package/build/languageProcessing/languages/nb/config/stopWords.js.map +1 -0
  721. package/build/languageProcessing/languages/nb/config/transitionWords.js +13 -0
  722. package/build/languageProcessing/languages/nb/config/transitionWords.js.map +1 -0
  723. package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js +13 -0
  724. package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js.map +1 -0
  725. package/build/languageProcessing/languages/nb/helpers/getClauses.js +37 -0
  726. package/build/languageProcessing/languages/nb/helpers/getClauses.js.map +1 -0
  727. package/build/languageProcessing/languages/nb/helpers/getStemmer.js +28 -0
  728. package/build/languageProcessing/languages/nb/helpers/getStemmer.js.map +1 -0
  729. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js +31 -0
  730. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js.map +1 -0
  731. package/build/languageProcessing/languages/nb/helpers/internal/stem.js +135 -0
  732. package/build/languageProcessing/languages/nb/helpers/internal/stem.js.map +1 -0
  733. package/build/languageProcessing/languages/nb/values/Clause.js +49 -0
  734. package/build/languageProcessing/languages/nb/values/Clause.js.map +1 -0
  735. package/build/languageProcessing/languages/nl/Researcher.js +57 -0
  736. package/build/languageProcessing/languages/nl/Researcher.js.map +1 -0
  737. package/build/languageProcessing/languages/nl/config/firstWordExceptions.js +20 -0
  738. package/build/languageProcessing/languages/nl/config/firstWordExceptions.js.map +1 -0
  739. package/build/languageProcessing/languages/nl/config/functionWords.js +102 -0
  740. package/build/languageProcessing/languages/nl/config/functionWords.js.map +1 -0
  741. package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js +12 -0
  742. package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js.map +1 -0
  743. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +12 -0
  744. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  745. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +13 -0
  746. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js.map +1 -0
  747. package/build/languageProcessing/languages/nl/config/keyphraseLength.js +17 -0
  748. package/build/languageProcessing/languages/nl/config/keyphraseLength.js.map +1 -0
  749. package/build/languageProcessing/languages/nl/config/stopWords.js +12 -0
  750. package/build/languageProcessing/languages/nl/config/stopWords.js.map +1 -0
  751. package/build/languageProcessing/languages/nl/config/syllables.json +343 -0
  752. package/build/languageProcessing/languages/nl/config/transitionWords.js +11 -0
  753. package/build/languageProcessing/languages/nl/config/transitionWords.js.map +1 -0
  754. package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js +12 -0
  755. package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js.map +1 -0
  756. package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +23 -0
  757. package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js.map +1 -0
  758. package/build/languageProcessing/languages/nl/helpers/getClauses.js +34 -0
  759. package/build/languageProcessing/languages/nl/helpers/getClauses.js.map +1 -0
  760. package/build/languageProcessing/languages/nl/helpers/getStemmer.js +28 -0
  761. package/build/languageProcessing/languages/nl/helpers/getStemmer.js.map +1 -0
  762. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +124 -0
  763. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js.map +1 -0
  764. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +260 -0
  765. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js.map +1 -0
  766. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +157 -0
  767. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js.map +1 -0
  768. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js +120 -0
  769. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js.map +1 -0
  770. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js +27 -0
  771. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js.map +1 -0
  772. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +152 -0
  773. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js.map +1 -0
  774. package/build/languageProcessing/languages/nl/helpers/internal/stem.js +131 -0
  775. package/build/languageProcessing/languages/nl/helpers/internal/stem.js.map +1 -0
  776. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +94 -0
  777. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js.map +1 -0
  778. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +59 -0
  779. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js.map +1 -0
  780. package/build/languageProcessing/languages/nl/values/Clause.js +63 -0
  781. package/build/languageProcessing/languages/nl/values/Clause.js.map +1 -0
  782. package/build/languageProcessing/languages/pl/Researcher.js +56 -0
  783. package/build/languageProcessing/languages/pl/Researcher.js.map +1 -0
  784. package/build/languageProcessing/languages/pl/config/firstWordExceptions.js +16 -0
  785. package/build/languageProcessing/languages/pl/config/firstWordExceptions.js.map +1 -0
  786. package/build/languageProcessing/languages/pl/config/functionWords.js +78 -0
  787. package/build/languageProcessing/languages/pl/config/functionWords.js.map +1 -0
  788. package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js +12 -0
  789. package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js.map +1 -0
  790. package/build/languageProcessing/languages/pl/config/internal/participles.js +13 -0
  791. package/build/languageProcessing/languages/pl/config/internal/participles.js.map +1 -0
  792. package/build/languageProcessing/languages/pl/config/sentenceLength.js +17 -0
  793. package/build/languageProcessing/languages/pl/config/sentenceLength.js.map +1 -0
  794. package/build/languageProcessing/languages/pl/config/stopWords.js +12 -0
  795. package/build/languageProcessing/languages/pl/config/stopWords.js.map +1 -0
  796. package/build/languageProcessing/languages/pl/config/transitionWords.js +13 -0
  797. package/build/languageProcessing/languages/pl/config/transitionWords.js.map +1 -0
  798. package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js +13 -0
  799. package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js.map +1 -0
  800. package/build/languageProcessing/languages/pl/helpers/getClauses.js +34 -0
  801. package/build/languageProcessing/languages/pl/helpers/getClauses.js.map +1 -0
  802. package/build/languageProcessing/languages/pl/helpers/getStemmer.js +28 -0
  803. package/build/languageProcessing/languages/pl/helpers/getStemmer.js.map +1 -0
  804. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js +25 -0
  805. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js.map +1 -0
  806. package/build/languageProcessing/languages/pl/helpers/internal/stem.js +158 -0
  807. package/build/languageProcessing/languages/pl/helpers/internal/stem.js.map +1 -0
  808. package/build/languageProcessing/languages/pl/values/Clause.js +51 -0
  809. package/build/languageProcessing/languages/pl/values/Clause.js.map +1 -0
  810. package/build/languageProcessing/languages/pt/Researcher.js +57 -0
  811. package/build/languageProcessing/languages/pt/Researcher.js.map +1 -0
  812. package/build/languageProcessing/languages/pt/config/firstWordExceptions.js +20 -0
  813. package/build/languageProcessing/languages/pt/config/firstWordExceptions.js.map +1 -0
  814. package/build/languageProcessing/languages/pt/config/functionWords.js +98 -0
  815. package/build/languageProcessing/languages/pt/config/functionWords.js.map +1 -0
  816. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +12 -0
  817. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  818. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +13 -0
  819. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js.map +1 -0
  820. package/build/languageProcessing/languages/pt/config/sentenceLength.js +10 -0
  821. package/build/languageProcessing/languages/pt/config/sentenceLength.js.map +1 -0
  822. package/build/languageProcessing/languages/pt/config/stopWords.js +12 -0
  823. package/build/languageProcessing/languages/pt/config/stopWords.js.map +1 -0
  824. package/build/languageProcessing/languages/pt/config/syllables.json +38 -0
  825. package/build/languageProcessing/languages/pt/config/transitionWords.js +11 -0
  826. package/build/languageProcessing/languages/pt/config/transitionWords.js.map +1 -0
  827. package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js +12 -0
  828. package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js.map +1 -0
  829. package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +23 -0
  830. package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js.map +1 -0
  831. package/build/languageProcessing/languages/pt/helpers/getClauses.js +38 -0
  832. package/build/languageProcessing/languages/pt/helpers/getClauses.js.map +1 -0
  833. package/build/languageProcessing/languages/pt/helpers/getStemmer.js +28 -0
  834. package/build/languageProcessing/languages/pt/helpers/getStemmer.js.map +1 -0
  835. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js +43 -0
  836. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js.map +1 -0
  837. package/build/languageProcessing/languages/pt/helpers/internal/stem.js +283 -0
  838. package/build/languageProcessing/languages/pt/helpers/internal/stem.js.map +1 -0
  839. package/build/languageProcessing/languages/pt/values/Clause.js +50 -0
  840. package/build/languageProcessing/languages/pt/values/Clause.js.map +1 -0
  841. package/build/languageProcessing/languages/ru/Researcher.js +57 -0
  842. package/build/languageProcessing/languages/ru/Researcher.js.map +1 -0
  843. package/build/languageProcessing/languages/ru/config/firstWordExceptions.js +16 -0
  844. package/build/languageProcessing/languages/ru/config/firstWordExceptions.js.map +1 -0
  845. package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +27 -0
  846. package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js.map +1 -0
  847. package/build/languageProcessing/languages/ru/config/functionWords.js +91 -0
  848. package/build/languageProcessing/languages/ru/config/functionWords.js.map +1 -0
  849. package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +27 -0
  850. package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js.map +1 -0
  851. package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +24 -0
  852. package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js.map +1 -0
  853. package/build/languageProcessing/languages/ru/config/sentenceLength.js +10 -0
  854. package/build/languageProcessing/languages/ru/config/sentenceLength.js.map +1 -0
  855. package/build/languageProcessing/languages/ru/config/syllables.json +19 -0
  856. package/build/languageProcessing/languages/ru/config/transitionWords.js +13 -0
  857. package/build/languageProcessing/languages/ru/config/transitionWords.js.map +1 -0
  858. package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js +13 -0
  859. package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js.map +1 -0
  860. package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +23 -0
  861. package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js.map +1 -0
  862. package/build/languageProcessing/languages/ru/helpers/getStemmer.js +28 -0
  863. package/build/languageProcessing/languages/ru/helpers/getStemmer.js.map +1 -0
  864. package/build/languageProcessing/languages/ru/helpers/internal/stem.js +271 -0
  865. package/build/languageProcessing/languages/ru/helpers/internal/stem.js.map +1 -0
  866. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js +22 -0
  867. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js.map +1 -0
  868. package/build/languageProcessing/languages/sk/Researcher.js +55 -0
  869. package/build/languageProcessing/languages/sk/Researcher.js.map +1 -0
  870. package/build/languageProcessing/languages/sk/config/firstWordExceptions.js +18 -0
  871. package/build/languageProcessing/languages/sk/config/firstWordExceptions.js.map +1 -0
  872. package/build/languageProcessing/languages/sk/config/functionWords.js +18 -0
  873. package/build/languageProcessing/languages/sk/config/functionWords.js.map +1 -0
  874. package/build/languageProcessing/languages/sk/config/internal/nonPassives.js +14 -0
  875. package/build/languageProcessing/languages/sk/config/internal/nonPassives.js.map +1 -0
  876. package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +10 -0
  877. package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  878. package/build/languageProcessing/languages/sk/config/stopWords.js +13 -0
  879. package/build/languageProcessing/languages/sk/config/stopWords.js.map +1 -0
  880. package/build/languageProcessing/languages/sk/config/transitionWords.js +13 -0
  881. package/build/languageProcessing/languages/sk/config/transitionWords.js.map +1 -0
  882. package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js +13 -0
  883. package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js.map +1 -0
  884. package/build/languageProcessing/languages/sk/helpers/getClauses.js +35 -0
  885. package/build/languageProcessing/languages/sk/helpers/getClauses.js.map +1 -0
  886. package/build/languageProcessing/languages/sk/helpers/getStemmer.js +28 -0
  887. package/build/languageProcessing/languages/sk/helpers/getStemmer.js.map +1 -0
  888. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js +24 -0
  889. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js.map +1 -0
  890. package/build/languageProcessing/languages/sk/helpers/internal/stem.js +322 -0
  891. package/build/languageProcessing/languages/sk/helpers/internal/stem.js.map +1 -0
  892. package/build/languageProcessing/languages/sk/values/Clause.js +47 -0
  893. package/build/languageProcessing/languages/sk/values/Clause.js.map +1 -0
  894. package/build/languageProcessing/languages/sv/Researcher.js +54 -0
  895. package/build/languageProcessing/languages/sv/Researcher.js.map +1 -0
  896. package/build/languageProcessing/languages/sv/config/firstWordExceptions.js +21 -0
  897. package/build/languageProcessing/languages/sv/config/firstWordExceptions.js.map +1 -0
  898. package/build/languageProcessing/languages/sv/config/functionWords.js +74 -0
  899. package/build/languageProcessing/languages/sv/config/functionWords.js.map +1 -0
  900. package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js +12 -0
  901. package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js.map +1 -0
  902. package/build/languageProcessing/languages/sv/config/keyphraseLength.js +17 -0
  903. package/build/languageProcessing/languages/sv/config/keyphraseLength.js.map +1 -0
  904. package/build/languageProcessing/languages/sv/config/transitionWords.js +13 -0
  905. package/build/languageProcessing/languages/sv/config/transitionWords.js.map +1 -0
  906. package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js +13 -0
  907. package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js.map +1 -0
  908. package/build/languageProcessing/languages/sv/helpers/getStemmer.js +28 -0
  909. package/build/languageProcessing/languages/sv/helpers/getStemmer.js.map +1 -0
  910. package/build/languageProcessing/languages/sv/helpers/internal/stem.js +159 -0
  911. package/build/languageProcessing/languages/sv/helpers/internal/stem.js.map +1 -0
  912. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js +22 -0
  913. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js.map +1 -0
  914. package/build/languageProcessing/languages/tr/Researcher.js +52 -0
  915. package/build/languageProcessing/languages/tr/Researcher.js.map +1 -0
  916. package/build/languageProcessing/languages/tr/config/firstWordExceptions.js +18 -0
  917. package/build/languageProcessing/languages/tr/config/firstWordExceptions.js.map +1 -0
  918. package/build/languageProcessing/languages/tr/config/functionWords.js +51 -0
  919. package/build/languageProcessing/languages/tr/config/functionWords.js.map +1 -0
  920. package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +13 -0
  921. package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js.map +1 -0
  922. package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js +13 -0
  923. package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js.map +1 -0
  924. package/build/languageProcessing/languages/tr/config/sentenceLength.js +14 -0
  925. package/build/languageProcessing/languages/tr/config/sentenceLength.js.map +1 -0
  926. package/build/languageProcessing/languages/tr/config/transitionWords.js +13 -0
  927. package/build/languageProcessing/languages/tr/config/transitionWords.js.map +1 -0
  928. package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js +13 -0
  929. package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js.map +1 -0
  930. package/build/languageProcessing/languages/tr/helpers/getStemmer.js +28 -0
  931. package/build/languageProcessing/languages/tr/helpers/getStemmer.js.map +1 -0
  932. package/build/languageProcessing/languages/tr/helpers/internal/stem.js +25 -0
  933. package/build/languageProcessing/languages/tr/helpers/internal/stem.js.map +1 -0
  934. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js +46 -0
  935. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js.map +1 -0
  936. package/build/languageProcessing/researches/altTagCount.js +72 -0
  937. package/build/languageProcessing/researches/altTagCount.js.map +1 -0
  938. package/build/languageProcessing/researches/countSentencesFromText.js +26 -0
  939. package/build/languageProcessing/researches/countSentencesFromText.js.map +1 -0
  940. package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js +257 -0
  941. package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js.map +1 -0
  942. package/build/languageProcessing/researches/findKeywordInFirstParagraph.js +80 -0
  943. package/build/languageProcessing/researches/findKeywordInFirstParagraph.js.map +1 -0
  944. package/build/languageProcessing/researches/findTransitionWords.js +119 -0
  945. package/build/languageProcessing/researches/findTransitionWords.js.map +1 -0
  946. package/build/languageProcessing/researches/functionWordsInKeyphrase.js +48 -0
  947. package/build/languageProcessing/researches/functionWordsInKeyphrase.js.map +1 -0
  948. package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js +222 -0
  949. package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js.map +1 -0
  950. package/build/languageProcessing/researches/getFleschReadingScore.js +152 -0
  951. package/build/languageProcessing/researches/getFleschReadingScore.js.map +1 -0
  952. package/build/languageProcessing/researches/getKeywordDensity.js +49 -0
  953. package/build/languageProcessing/researches/getKeywordDensity.js.map +1 -0
  954. package/build/languageProcessing/researches/getLinkStatistics.js +56 -0
  955. package/build/languageProcessing/researches/getLinkStatistics.js.map +1 -0
  956. package/build/languageProcessing/researches/getLinks.js +23 -0
  957. package/build/languageProcessing/researches/getLinks.js.map +1 -0
  958. package/build/languageProcessing/researches/getLongCenterAlignedTexts.js +42 -0
  959. package/build/languageProcessing/researches/getLongCenterAlignedTexts.js.map +1 -0
  960. package/build/languageProcessing/researches/getParagraphLength.js +49 -0
  961. package/build/languageProcessing/researches/getParagraphLength.js.map +1 -0
  962. package/build/languageProcessing/researches/getParagraphs.js +23 -0
  963. package/build/languageProcessing/researches/getParagraphs.js.map +1 -0
  964. package/build/languageProcessing/researches/getPassiveVoiceResult.js +127 -0
  965. package/build/languageProcessing/researches/getPassiveVoiceResult.js.map +1 -0
  966. package/build/languageProcessing/researches/getProminentWordsForInsights.js +45 -0
  967. package/build/languageProcessing/researches/getProminentWordsForInsights.js.map +1 -0
  968. package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js +103 -0
  969. package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js.map +1 -0
  970. package/build/languageProcessing/researches/getSentenceBeginnings.js +122 -0
  971. package/build/languageProcessing/researches/getSentenceBeginnings.js.map +1 -0
  972. package/build/languageProcessing/researches/getSubheadingTextLengths.js +60 -0
  973. package/build/languageProcessing/researches/getSubheadingTextLengths.js.map +1 -0
  974. package/build/languageProcessing/researches/getWordForms.js +183 -0
  975. package/build/languageProcessing/researches/getWordForms.js.map +1 -0
  976. package/build/languageProcessing/researches/h1s.js +17 -0
  977. package/build/languageProcessing/researches/h1s.js.map +1 -0
  978. package/build/languageProcessing/researches/imageCount.js +22 -0
  979. package/build/languageProcessing/researches/imageCount.js.map +1 -0
  980. package/build/languageProcessing/researches/index.js +28 -0
  981. package/build/languageProcessing/researches/index.js.map +1 -0
  982. package/build/languageProcessing/researches/keyphraseDistribution.js +233 -0
  983. package/build/languageProcessing/researches/keyphraseDistribution.js.map +1 -0
  984. package/build/languageProcessing/researches/keyphraseLength.js +23 -0
  985. package/build/languageProcessing/researches/keyphraseLength.js.map +1 -0
  986. package/build/languageProcessing/researches/keywordCount.js +135 -0
  987. package/build/languageProcessing/researches/keywordCount.js.map +1 -0
  988. package/build/languageProcessing/researches/keywordCountInUrl.js +58 -0
  989. package/build/languageProcessing/researches/keywordCountInUrl.js.map +1 -0
  990. package/build/languageProcessing/researches/matchKeywordInSubheadings.js +68 -0
  991. package/build/languageProcessing/researches/matchKeywordInSubheadings.js.map +1 -0
  992. package/build/languageProcessing/researches/metaDescriptionKeyword.js +78 -0
  993. package/build/languageProcessing/researches/metaDescriptionKeyword.js.map +1 -0
  994. package/build/languageProcessing/researches/metaDescriptionLength.js +19 -0
  995. package/build/languageProcessing/researches/metaDescriptionLength.js.map +1 -0
  996. package/build/languageProcessing/researches/pageTitleWidth.js +18 -0
  997. package/build/languageProcessing/researches/pageTitleWidth.js.map +1 -0
  998. package/build/languageProcessing/researches/readingTime.js +84 -0
  999. package/build/languageProcessing/researches/readingTime.js.map +1 -0
  1000. package/build/languageProcessing/researches/sentences.js +26 -0
  1001. package/build/languageProcessing/researches/sentences.js.map +1 -0
  1002. package/build/languageProcessing/researches/videoCount.js +39 -0
  1003. package/build/languageProcessing/researches/videoCount.js.map +1 -0
  1004. package/build/languageProcessing/researches/wordComplexity.js +128 -0
  1005. package/build/languageProcessing/researches/wordComplexity.js.map +1 -0
  1006. package/build/languageProcessing/researches/wordCountInText.js +36 -0
  1007. package/build/languageProcessing/researches/wordCountInText.js.map +1 -0
  1008. package/build/languageProcessing/values/Clause.js +113 -0
  1009. package/build/languageProcessing/values/Clause.js.map +1 -0
  1010. package/build/languageProcessing/values/ProminentWord.js +101 -0
  1011. package/build/languageProcessing/values/ProminentWord.js.map +1 -0
  1012. package/build/languageProcessing/values/Sentence.js +116 -0
  1013. package/build/languageProcessing/values/Sentence.js.map +1 -0
  1014. package/build/languageProcessing/values/index.js +28 -0
  1015. package/build/languageProcessing/values/index.js.map +1 -0
  1016. package/build/markers/addMark.js +16 -0
  1017. package/build/markers/addMark.js.map +1 -0
  1018. package/build/markers/addMarkSingleWord.js +37 -0
  1019. package/build/markers/addMarkSingleWord.js.map +1 -0
  1020. package/build/markers/index.js +21 -0
  1021. package/build/markers/index.js.map +1 -0
  1022. package/build/markers/removeDuplicateMarks.js +31 -0
  1023. package/build/markers/removeDuplicateMarks.js.map +1 -0
  1024. package/build/markers/removeMarks.js +16 -0
  1025. package/build/markers/removeMarks.js.map +1 -0
  1026. package/build/parse/build/build.js +62 -0
  1027. package/build/parse/build/build.js.map +1 -0
  1028. package/build/parse/build/index.js +14 -0
  1029. package/build/parse/build/index.js.map +1 -0
  1030. package/build/parse/build/private/adapt.js +111 -0
  1031. package/build/parse/build/private/adapt.js.map +1 -0
  1032. package/build/parse/build/private/adaptAttributes.js +41 -0
  1033. package/build/parse/build/private/adaptAttributes.js.map +1 -0
  1034. package/build/parse/build/private/alwaysFilterElements.js +32 -0
  1035. package/build/parse/build/private/alwaysFilterElements.js.map +1 -0
  1036. package/build/parse/build/private/combineIntoImplicitParagraphs.js +129 -0
  1037. package/build/parse/build/private/combineIntoImplicitParagraphs.js.map +1 -0
  1038. package/build/parse/build/private/filterBeforeTokenizing.js +37 -0
  1039. package/build/parse/build/private/filterBeforeTokenizing.js.map +1 -0
  1040. package/build/parse/build/private/filterHelpers.js +52 -0
  1041. package/build/parse/build/private/filterHelpers.js.map +1 -0
  1042. package/build/parse/build/private/filterTree.js +47 -0
  1043. package/build/parse/build/private/filterTree.js.map +1 -0
  1044. package/build/parse/build/private/getTextElementPositions.js +184 -0
  1045. package/build/parse/build/private/getTextElementPositions.js.map +1 -0
  1046. package/build/parse/build/private/helpers/parseClassAttribute.js +15 -0
  1047. package/build/parse/build/private/helpers/parseClassAttribute.js.map +1 -0
  1048. package/build/parse/build/private/isPhrasingContent.js +30 -0
  1049. package/build/parse/build/private/isPhrasingContent.js.map +1 -0
  1050. package/build/parse/build/private/parseBlocks.js +151 -0
  1051. package/build/parse/build/private/parseBlocks.js.map +1 -0
  1052. package/build/parse/build/private/tokenize.js +78 -0
  1053. package/build/parse/build/private/tokenize.js.map +1 -0
  1054. package/build/parse/language/LanguageProcessor.js +77 -0
  1055. package/build/parse/language/LanguageProcessor.js.map +1 -0
  1056. package/build/parse/structure/Heading.js +32 -0
  1057. package/build/parse/structure/Heading.js.map +1 -0
  1058. package/build/parse/structure/Node.js +75 -0
  1059. package/build/parse/structure/Node.js.map +1 -0
  1060. package/build/parse/structure/Paragraph.js +53 -0
  1061. package/build/parse/structure/Paragraph.js.map +1 -0
  1062. package/build/parse/structure/Sentence.js +36 -0
  1063. package/build/parse/structure/Sentence.js.map +1 -0
  1064. package/build/parse/structure/SourceCodeLocation.js +46 -0
  1065. package/build/parse/structure/SourceCodeLocation.js.map +1 -0
  1066. package/build/parse/structure/Text.js +33 -0
  1067. package/build/parse/structure/Text.js.map +1 -0
  1068. package/build/parse/structure/Token.js +29 -0
  1069. package/build/parse/structure/Token.js.map +1 -0
  1070. package/build/parse/structure/index.js +35 -0
  1071. package/build/parse/structure/index.js.map +1 -0
  1072. package/build/parse/traverse/findAllInTree.js +62 -0
  1073. package/build/parse/traverse/findAllInTree.js.map +1 -0
  1074. package/build/parse/traverse/index.js +21 -0
  1075. package/build/parse/traverse/index.js.map +1 -0
  1076. package/build/parse/traverse/innerText.js +30 -0
  1077. package/build/parse/traverse/innerText.js.map +1 -0
  1078. package/build/parsedPaper/ParsedPaper.js +100 -0
  1079. package/build/parsedPaper/ParsedPaper.js.map +1 -0
  1080. package/build/parsedPaper/assess/TreeAssessor.js +181 -0
  1081. package/build/parsedPaper/assess/TreeAssessor.js.map +1 -0
  1082. package/build/parsedPaper/assess/assessmentListFactories.js +77 -0
  1083. package/build/parsedPaper/assess/assessmentListFactories.js.map +1 -0
  1084. package/build/parsedPaper/assess/assessments/Assessment.js +86 -0
  1085. package/build/parsedPaper/assess/assessments/Assessment.js.map +1 -0
  1086. package/build/parsedPaper/assess/assessments/index.js +14 -0
  1087. package/build/parsedPaper/assess/assessments/index.js.map +1 -0
  1088. package/build/parsedPaper/assess/assessorFactories.js +104 -0
  1089. package/build/parsedPaper/assess/assessorFactories.js.map +1 -0
  1090. package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js +51 -0
  1091. package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js.map +1 -0
  1092. package/build/parsedPaper/assess/cornerstone/index.js +11 -0
  1093. package/build/parsedPaper/assess/cornerstone/index.js.map +1 -0
  1094. package/build/parsedPaper/assess/index.js +31 -0
  1095. package/build/parsedPaper/assess/index.js.map +1 -0
  1096. package/build/parsedPaper/build/PaperParser.js +103 -0
  1097. package/build/parsedPaper/build/PaperParser.js.map +1 -0
  1098. package/build/parsedPaper/build/linguisticParsing/Sentence.js +95 -0
  1099. package/build/parsedPaper/build/linguisticParsing/Sentence.js.map +1 -0
  1100. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +294 -0
  1101. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js.map +1 -0
  1102. package/build/parsedPaper/build/linguisticParsing/parseText.js +26 -0
  1103. package/build/parsedPaper/build/linguisticParsing/parseText.js.map +1 -0
  1104. package/build/parsedPaper/build/tree/TreeBuilder.js +82 -0
  1105. package/build/parsedPaper/build/tree/TreeBuilder.js.map +1 -0
  1106. package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js +183 -0
  1107. package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js.map +1 -0
  1108. package/build/parsedPaper/build/tree/cleanup/getElementContent.js +27 -0
  1109. package/build/parsedPaper/build/tree/cleanup/getElementContent.js.map +1 -0
  1110. package/build/parsedPaper/build/tree/cleanup/postParsing.js +43 -0
  1111. package/build/parsedPaper/build/tree/cleanup/postParsing.js.map +1 -0
  1112. package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js +226 -0
  1113. package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js.map +1 -0
  1114. package/build/parsedPaper/build/tree/html/buildTree.js +36 -0
  1115. package/build/parsedPaper/build/tree/html/buildTree.js.map +1 -0
  1116. package/build/parsedPaper/build/tree/html/htmlConstants.js +35 -0
  1117. package/build/parsedPaper/build/tree/html/htmlConstants.js.map +1 -0
  1118. package/build/parsedPaper/build/tree/index.js +20 -0
  1119. package/build/parsedPaper/build/tree/index.js.map +1 -0
  1120. package/build/parsedPaper/build/tree/metadata/buildTree.js +36 -0
  1121. package/build/parsedPaper/build/tree/metadata/buildTree.js.map +1 -0
  1122. package/build/parsedPaper/research/TreeResearcher.js +136 -0
  1123. package/build/parsedPaper/research/TreeResearcher.js.map +1 -0
  1124. package/build/parsedPaper/research/index.js +14 -0
  1125. package/build/parsedPaper/research/index.js.map +1 -0
  1126. package/build/parsedPaper/research/researches/Headings.js +26 -0
  1127. package/build/parsedPaper/research/researches/Headings.js.map +1 -0
  1128. package/build/parsedPaper/research/researches/LinkStatistics.js +129 -0
  1129. package/build/parsedPaper/research/researches/LinkStatistics.js.map +1 -0
  1130. package/build/parsedPaper/research/researches/Research.js +58 -0
  1131. package/build/parsedPaper/research/researches/Research.js.map +1 -0
  1132. package/build/parsedPaper/research/researches/index.js +14 -0
  1133. package/build/parsedPaper/research/researches/index.js.map +1 -0
  1134. package/build/parsedPaper/structure/tree/FormattingElement.js +73 -0
  1135. package/build/parsedPaper/structure/tree/FormattingElement.js.map +1 -0
  1136. package/build/parsedPaper/structure/tree/SourceCodeLocation.js +48 -0
  1137. package/build/parsedPaper/structure/tree/SourceCodeLocation.js.map +1 -0
  1138. package/build/parsedPaper/structure/tree/TextContainer.js +89 -0
  1139. package/build/parsedPaper/structure/tree/TextContainer.js.map +1 -0
  1140. package/build/parsedPaper/structure/tree/index.js +76 -0
  1141. package/build/parsedPaper/structure/tree/index.js.map +1 -0
  1142. package/build/parsedPaper/structure/tree/nodes/Heading.js +33 -0
  1143. package/build/parsedPaper/structure/tree/nodes/Heading.js.map +1 -0
  1144. package/build/parsedPaper/structure/tree/nodes/LeafNode.js +82 -0
  1145. package/build/parsedPaper/structure/tree/nodes/LeafNode.js.map +1 -0
  1146. package/build/parsedPaper/structure/tree/nodes/List.js +54 -0
  1147. package/build/parsedPaper/structure/tree/nodes/List.js.map +1 -0
  1148. package/build/parsedPaper/structure/tree/nodes/ListItem.js +34 -0
  1149. package/build/parsedPaper/structure/tree/nodes/ListItem.js.map +1 -0
  1150. package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +51 -0
  1151. package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js.map +1 -0
  1152. package/build/parsedPaper/structure/tree/nodes/MetadataText.js +31 -0
  1153. package/build/parsedPaper/structure/tree/nodes/MetadataText.js.map +1 -0
  1154. package/build/parsedPaper/structure/tree/nodes/Node.js +159 -0
  1155. package/build/parsedPaper/structure/tree/nodes/Node.js.map +1 -0
  1156. package/build/parsedPaper/structure/tree/nodes/Paragraph.js +29 -0
  1157. package/build/parsedPaper/structure/tree/nodes/Paragraph.js.map +1 -0
  1158. package/build/parsedPaper/structure/tree/nodes/StructuredNode.js +60 -0
  1159. package/build/parsedPaper/structure/tree/nodes/StructuredNode.js.map +1 -0
  1160. package/build/parsedPaper/structure/tree/nodes/index.js +70 -0
  1161. package/build/parsedPaper/structure/tree/nodes/index.js.map +1 -0
  1162. package/build/scoring/assessments/assessment.js +68 -0
  1163. package/build/scoring/assessments/assessment.js.map +1 -0
  1164. package/build/scoring/assessments/index.js +64 -0
  1165. package/build/scoring/assessments/index.js.map +1 -0
  1166. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js +162 -0
  1167. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js.map +1 -0
  1168. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js +131 -0
  1169. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js.map +1 -0
  1170. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js +173 -0
  1171. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js.map +1 -0
  1172. package/build/scoring/assessments/readability/TransitionWordsAssessment.js +159 -0
  1173. package/build/scoring/assessments/readability/TransitionWordsAssessment.js.map +1 -0
  1174. package/build/scoring/assessments/seo/ImageCountAssessment.js +107 -0
  1175. package/build/scoring/assessments/seo/ImageCountAssessment.js.map +1 -0
  1176. package/build/scoring/assessments/seo/InternalLinksAssessment.js +108 -0
  1177. package/build/scoring/assessments/seo/InternalLinksAssessment.js.map +1 -0
  1178. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js +105 -0
  1179. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js.map +1 -0
  1180. package/build/scoring/assessments/seo/KeyphraseAssessment.js +100 -0
  1181. package/build/scoring/assessments/seo/KeyphraseAssessment.js.map +1 -0
  1182. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js +105 -0
  1183. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js.map +1 -0
  1184. package/build/scoring/assessments/seo/KeywordDensityAssessment.js +111 -0
  1185. package/build/scoring/assessments/seo/KeywordDensityAssessment.js.map +1 -0
  1186. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +114 -0
  1187. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js.map +1 -0
  1188. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +107 -0
  1189. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js.map +1 -0
  1190. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js +111 -0
  1191. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js.map +1 -0
  1192. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js +103 -0
  1193. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js.map +1 -0
  1194. package/build/scoring/assessments/seo/OutboundLinksAssessment.js +110 -0
  1195. package/build/scoring/assessments/seo/OutboundLinksAssessment.js.map +1 -0
  1196. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js +101 -0
  1197. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js.map +1 -0
  1198. package/build/scoring/assessments/seo/SingleH1Assessment.js +110 -0
  1199. package/build/scoring/assessments/seo/SingleH1Assessment.js.map +1 -0
  1200. package/build/scoring/assessments/seo/SingleTitleAssessment.js +103 -0
  1201. package/build/scoring/assessments/seo/SingleTitleAssessment.js.map +1 -0
  1202. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +103 -0
  1203. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js.map +1 -0
  1204. package/build/scoring/assessments/seo/TextImagesAssessment.js +138 -0
  1205. package/build/scoring/assessments/seo/TextImagesAssessment.js.map +1 -0
  1206. package/build/scoring/assessments/seo/TextLengthAssessment.js +100 -0
  1207. package/build/scoring/assessments/seo/TextLengthAssessment.js.map +1 -0
  1208. package/build/scoring/assessments/seo/UrlKeywordAssessment.js +102 -0
  1209. package/build/scoring/assessments/seo/UrlKeywordAssessment.js.map +1 -0
  1210. package/build/scoring/assessments/seo/UrlLengthAssessment.js +102 -0
  1211. package/build/scoring/assessments/seo/UrlLengthAssessment.js.map +1 -0
  1212. package/build/scoring/assessors/assessor.js +248 -0
  1213. package/build/scoring/assessors/assessor.js.map +1 -0
  1214. package/build/scoring/assessors/avadaAssessor.js +65 -0
  1215. package/build/scoring/assessors/avadaAssessor.js.map +1 -0
  1216. package/build/scoring/assessors/contentAssessor.js +149 -0
  1217. package/build/scoring/assessors/contentAssessor.js.map +1 -0
  1218. package/build/scoring/assessors/index.js +35 -0
  1219. package/build/scoring/assessors/index.js.map +1 -0
  1220. package/build/scoring/assessors/seoAssessor.js +44 -0
  1221. package/build/scoring/assessors/seoAssessor.js.map +1 -0
  1222. package/build/scoring/helpers/assessments/checkForTooLongSentences.js +19 -0
  1223. package/build/scoring/helpers/assessments/checkForTooLongSentences.js.map +1 -0
  1224. package/build/scoring/helpers/assessments/inRange.js +51 -0
  1225. package/build/scoring/helpers/assessments/inRange.js.map +1 -0
  1226. package/build/scoring/helpers/assessments/keyphraseLengthFactor.js +17 -0
  1227. package/build/scoring/helpers/assessments/keyphraseLengthFactor.js.map +1 -0
  1228. package/build/scoring/helpers/assessments/recommendedKeywordCount.js +47 -0
  1229. package/build/scoring/helpers/assessments/recommendedKeywordCount.js.map +1 -0
  1230. package/build/scoring/helpers/index.js +92 -0
  1231. package/build/scoring/helpers/index.js.map +1 -0
  1232. package/build/scoring/interpreters/index.js +14 -0
  1233. package/build/scoring/interpreters/index.js.map +1 -0
  1234. package/build/scoring/interpreters/scoreToRating.js +32 -0
  1235. package/build/scoring/interpreters/scoreToRating.js.map +1 -0
  1236. package/build/scoring/renderers/AssessorPresenter.js +348 -0
  1237. package/build/scoring/renderers/AssessorPresenter.js.map +1 -0
  1238. package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js +203 -0
  1239. package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js.map +1 -0
  1240. package/build/scoring/scoreAggregators/SEOScoreAggregator.js +60 -0
  1241. package/build/scoring/scoreAggregators/SEOScoreAggregator.js.map +1 -0
  1242. package/build/scoring/scoreAggregators/ScoreAggregator.js +30 -0
  1243. package/build/scoring/scoreAggregators/ScoreAggregator.js.map +1 -0
  1244. package/build/scoring/scoreAggregators/index.js +28 -0
  1245. package/build/scoring/scoreAggregators/index.js.map +1 -0
  1246. package/build/values/AssessmentResult.js +485 -0
  1247. package/build/values/AssessmentResult.js.map +1 -0
  1248. package/build/values/Mark.js +273 -0
  1249. package/build/values/Mark.js.map +1 -0
  1250. package/build/values/Paper.js +425 -0
  1251. package/build/values/Paper.js.map +1 -0
  1252. package/build/values/index.js +28 -0
  1253. package/build/values/index.js.map +1 -0
  1254. package/build/vendor/turkishStemmer.js +2817 -0
  1255. package/build/vendor/turkishStemmer.js.map +1 -0
  1256. package/package.json +42 -0
@@ -0,0 +1,544 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = stem;
7
+ var _index = require("../../../index");
8
+ /* eslint-disable max-statements, complexity */
9
+
10
+ const {
11
+ exceptionListHelpers: {
12
+ checkIfWordEndingIsOnExceptionList
13
+ },
14
+ regexHelpers: {
15
+ applyAllReplacements
16
+ }
17
+ } = _index.languageProcessing;
18
+
19
+ /*
20
+ * MIT License
21
+ *
22
+ * Copyright (c) 2017 Bastien Botella
23
+ *
24
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
25
+ * of this software and associated documentation files (the "Software"), to deal
26
+ * in the Software without restriction, including without limitation the rights
27
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
28
+ * copies of the Software, and to permit persons to whom the Software is
29
+ * furnished to do so, subject to the following conditions:
30
+ *
31
+ * The above copyright notice and this permission notice shall be included in all
32
+ * copies or substantial portions of the Software.
33
+ *
34
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
35
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
36
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
37
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
38
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
39
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
40
+ * SOFTWARE.
41
+ */
42
+ /*
43
+ * Author: Kasun Gajasinghe, University of Moratuwa
44
+ * E-Mail: kasunbg AT gmail DOT com
45
+ * Date: 09.08.2010
46
+ *
47
+ * LICENSE:
48
+ *
49
+ * Copyright (c) 2010, Kasun Gajasinghe. All rights reserved.
50
+ *
51
+ * Redistribution and use in source and binary forms, with or without modification,
52
+ * are permitted provided that the following conditions are met:
53
+ *
54
+ * 1. Redistributions of source code must retain the above copyright notice,
55
+ * this list of conditions and the following disclaimer.
56
+ *
57
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
58
+ * this list of conditions and the following disclaimer in the documentation
59
+ * and/or other materials provided with the distribution.
60
+ *
61
+ *
62
+ * THIS SOFTWARE IS PROVIDED BY KASUN GAJASINGHE ""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES,
63
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
64
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KASUN GAJASINGHE BE LIABLE FOR ANY DIRECT,
65
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
66
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
67
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
68
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
69
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
70
+ *
71
+ */
72
+
73
+ /**
74
+ * Determines R1, R2 and RV.
75
+ *
76
+ * @param {string} word The word for which to determine the R regions.
77
+ * @param {Object} rIntervalsData The regexes that cover French RV and R1 intervals.
78
+ *
79
+ * @returns {[number]} The R1, R2 and RV.
80
+ */
81
+ const determineRs = function (word, rIntervalsData) {
82
+ let rvIndex;
83
+ if (word.search(new RegExp(rIntervalsData.rvRegex1)) !== -1 || word.search(new RegExp(rIntervalsData.rvRegex2)) !== -1) {
84
+ rvIndex = 3;
85
+ } else {
86
+ rvIndex = word.substring(1).search(new RegExp(rIntervalsData.rvRegex3));
87
+ if (rvIndex === -1) {
88
+ rvIndex = word.length;
89
+ } else {
90
+ // +2 is to supplement the substring(1) used to find rvIndex
91
+ rvIndex += 2;
92
+ }
93
+ }
94
+ /*
95
+ * 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.
96
+ * 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.
97
+ */
98
+ const r1Regex = new RegExp(rIntervalsData.r1Regex);
99
+ let r1Index = word.search(r1Regex);
100
+ let r1 = '';
101
+ if (r1Index === -1) {
102
+ r1Index = word.length;
103
+ } else {
104
+ r1Index += 2;
105
+ r1 = word.substring(r1Index);
106
+ }
107
+ let r2Index = r1.search(r1Regex);
108
+ if (r2Index === -1) {
109
+ r2Index = word.length;
110
+ } else {
111
+ r2Index += 2;
112
+ r2Index += r1Index;
113
+ }
114
+ if (r1Index !== -1 && r1Index < 3) {
115
+ r1Index = 3;
116
+ }
117
+ return [r1Index, r2Index, rvIndex];
118
+ };
119
+
120
+ /**
121
+ * Removes or normalizes standard suffixes.
122
+ *
123
+ * @param {string} word The word for which to remove suffixes.
124
+ * @param {Object} standardSuffixData The French morphology data covering standard suffixes.
125
+ * @param {number} r1Index The start index of R1.
126
+ * @param {number} r2Index The start index of R2.
127
+ * @param {number} rvIndex The start index of RV.
128
+ *
129
+ * @returns {string} The word with standard suffixes removed or normalized.
130
+ */
131
+ const processStandardSuffixes = function (word, standardSuffixData, r1Index, r2Index, rvIndex) {
132
+ const a1Index = word.search(new RegExp(standardSuffixData.standardSuffixes1));
133
+ const a2Index = word.search(new RegExp(standardSuffixData.standardSuffixes2));
134
+ const a3Index = word.search(new RegExp(standardSuffixData.standardSuffixes3[0]));
135
+ const a4Index = word.search(new RegExp(standardSuffixData.standardSuffixes4[0]));
136
+ const a5Index = word.search(new RegExp(standardSuffixData.standardSuffixes5[0]));
137
+ const a6Index = word.search(new RegExp(standardSuffixData.standardSuffixes6));
138
+ const a7Index = word.search(new RegExp(standardSuffixData.standardSuffixes7));
139
+ const a8Index = word.search(new RegExp(standardSuffixData.standardSuffixes8));
140
+ const a9Index = word.search(new RegExp(standardSuffixData.standardSuffixes9[0]));
141
+ const a10Index = word.search(new RegExp(standardSuffixData.standardSuffixes10[0]));
142
+ const a11Index = word.search(new RegExp(standardSuffixData.standardSuffixes11[0]));
143
+ const a12Index = word.search(new RegExp(standardSuffixData.standardSuffixes12));
144
+ const a13Index = word.search(new RegExp(standardSuffixData.standardSuffixes13[0]));
145
+ const a14Index = word.search(new RegExp(standardSuffixData.standardSuffixes14[0]));
146
+ const a15Index = word.search(new RegExp(standardSuffixData.standardSuffixes15));
147
+ if (a1Index !== -1 && a1Index >= r2Index) {
148
+ word = word.substring(0, a1Index);
149
+ } else if (a2Index !== -1 && a2Index >= r2Index) {
150
+ word = word.substring(0, a2Index);
151
+ const a2Index2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]));
152
+ if (a2Index2 !== -1 && a2Index2 >= r2Index) {
153
+ // If preceded by ic, delete if in R2
154
+ word = word.substring(0, a2Index2);
155
+ } else {
156
+ // Else replace by iqU
157
+ word = word.replace(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]), standardSuffixData.suffixesPrecedingChar1[1]);
158
+ }
159
+ } else if (a3Index !== -1 && a3Index >= r2Index) {
160
+ // Replace with log if in R2
161
+ word = word.slice(0, a3Index) + standardSuffixData.standardSuffixes3[1];
162
+ } else if (a4Index !== -1 && a4Index >= r2Index) {
163
+ // Replace with u if in R2
164
+ word = word.slice(0, a4Index) + standardSuffixData.standardSuffixes4[1];
165
+ } else if (a5Index !== -1 && a5Index >= r2Index) {
166
+ // Replace with ent if in R2
167
+ word = word.slice(0, a5Index) + standardSuffixData.standardSuffixes5[1];
168
+ } else if (a12Index !== -1 && a12Index >= r1Index) {
169
+ // +1- amendment to non-vowel
170
+ word = word.substring(0, a12Index + 1);
171
+ } else if (a6Index !== -1 && a6Index >= rvIndex) {
172
+ word = word.substring(0, a6Index);
173
+ const precedingCharacter2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar2[0]));
174
+ const a6Index2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar4[0]));
175
+ const precedingCharacter5 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar5[0]));
176
+ const precedingCharacter6 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar6[0]));
177
+ if (precedingCharacter2 >= r2Index) {
178
+ word = word.slice(0, precedingCharacter2) + standardSuffixData.suffixesPrecedingChar2[1];
179
+ const precedingCharacter3 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar3[0]));
180
+ if (precedingCharacter3 >= r2Index) {
181
+ word = word.slice(0, precedingCharacter3) + standardSuffixData.suffixesPrecedingChar3[1];
182
+ }
183
+ } else if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar4[0])) !== -1) {
184
+ if (a6Index2 >= r2Index) {
185
+ word = word.substring(0, a6Index2);
186
+ } else if (a6Index2 >= r1Index) {
187
+ word = word.substring(0, a6Index2) + standardSuffixData.suffixesPrecedingChar4[1];
188
+ }
189
+ } else if (precedingCharacter5 >= r2Index) {
190
+ // If preceded by abl or iqU, delete if in R2
191
+ word = word.slice(0, precedingCharacter5) + standardSuffixData.suffixesPrecedingChar5[1];
192
+ } else if (precedingCharacter6 >= rvIndex) {
193
+ // If preceded by ièr, replace with i if in RV
194
+ word = word.slice(0, precedingCharacter6) + standardSuffixData.suffixesPrecedingChar6[1];
195
+ }
196
+ } else if (a7Index !== -1 && a7Index >= r2Index) {
197
+ // Delete if in R2
198
+ word = word.substring(0, a7Index);
199
+ const a7Index2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar7[0]));
200
+ const a7Index3 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]));
201
+ if (a7Index2 !== -1) {
202
+ // If preceded by abil, delete if in R2, else replace by abl, otherwise
203
+ if (a7Index2 >= r2Index) {
204
+ word = word.substring(0, a7Index2);
205
+ } else {
206
+ word = word.substring(0, a7Index2) + standardSuffixData.suffixesPrecedingChar7[1];
207
+ }
208
+ } else if (a7Index3 !== -1) {
209
+ if (a7Index3 !== -1 && a7Index3 >= r2Index) {
210
+ // If preceded by ic, delete if in R2
211
+ word = word.substring(0, a7Index3);
212
+ } else {
213
+ // Else replace by iqU
214
+ word = word.substring(0, a7Index3) + standardSuffixData.suffixesPrecedingChar1[1];
215
+ }
216
+ } else if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar2[0])) >= r2Index) {
217
+ word = word.replace(new RegExp(standardSuffixData.suffixesPrecedingChar2[0]), standardSuffixData.suffixesPrecedingChar2[1]);
218
+ }
219
+ } else if (a8Index !== -1 && a8Index >= r2Index) {
220
+ word = word.substring(0, a8Index);
221
+ if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar3[0])) >= r2Index) {
222
+ word = word.replace(new RegExp(standardSuffixData.suffixesPrecedingChar3[0]), standardSuffixData.suffixesPrecedingChar3[1]);
223
+ if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar1[0])) >= r2Index) {
224
+ word = word.replace(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]), '');
225
+ } else {
226
+ word = word.replace(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]), standardSuffixData.suffixesPrecedingChar1[1]);
227
+ }
228
+ }
229
+ } else if (a9Index !== -1) {
230
+ word = word.replace(new RegExp(standardSuffixData.standardSuffixes9[0]), standardSuffixData.standardSuffixes9[1]);
231
+ } else if (a10Index >= r1Index) {
232
+ word = word.replace(new RegExp(standardSuffixData.standardSuffixes10[0]), standardSuffixData.standardSuffixes10[1]);
233
+ } else if (a11Index !== -1) {
234
+ const a11Index2 = word.search(new RegExp(standardSuffixData.standardSuffixes11[0]));
235
+ if (a11Index2 >= r2Index) {
236
+ word = word.substring(0, a11Index2);
237
+ } else if (a11Index2 >= r1Index) {
238
+ word = word.substring(0, a11Index2) + standardSuffixData.standardSuffixes11[1];
239
+ }
240
+ } else if (a13Index !== -1 && a13Index >= rvIndex) {
241
+ word = word.replace(new RegExp(standardSuffixData.standardSuffixes13[0]), standardSuffixData.standardSuffixes13[1]);
242
+ } else if (a14Index !== -1 && a14Index >= rvIndex) {
243
+ word = word.replace(new RegExp(standardSuffixData.standardSuffixes14[0]), standardSuffixData.standardSuffixes14[1]);
244
+ } else if (a15Index !== -1 && a15Index >= rvIndex) {
245
+ word = word.substring(0, a15Index + 1);
246
+ }
247
+ return word;
248
+ };
249
+
250
+ /**
251
+ * Removes verb suffixes starting with i.
252
+ *
253
+ * @param {string} word The word for which to remove suffixes.
254
+ * @param {string} originalWord The unprocessed word.
255
+ * @param {number} rvIndex The start index of RV.
256
+ * @param {string} verbSuffixesWithIBeginning Data for checking French suffixes starting with I.
257
+ *
258
+ * @returns {{step2aDone: boolean, word: string}} The word and information about whether the conditions for step 2a were met.
259
+ */
260
+ const removeVerbSuffixesStartingWithI = function (word, originalWord, rvIndex, verbSuffixesWithIBeginning) {
261
+ let step2aDone = false;
262
+ if (originalWord === word.toLowerCase() || checkIfWordEndingIsOnExceptionList(originalWord, verbSuffixesWithIBeginning.exceptions)) {
263
+ step2aDone = true;
264
+ const b1Regex = new RegExp(verbSuffixesWithIBeginning.suffixes[0]);
265
+ if (word.search(b1Regex) >= rvIndex) {
266
+ word = word.replace(b1Regex, verbSuffixesWithIBeginning.suffixes[1]);
267
+ }
268
+ }
269
+ return {
270
+ word,
271
+ step2aDone
272
+ };
273
+ };
274
+
275
+ /**
276
+ * Removes other verb suffixes.
277
+ *
278
+ * @param {string} word The word for which to remove suffixes.
279
+ * @param {boolean} step2aDone Whether step 2a was done.
280
+ * @param {string} wordAfterStep1 The word after step 1 was done.
281
+ * @param {number} r2Index The start index of R2.
282
+ * @param {number} rvIndex The start index of RV.
283
+ * @param {Object} morphologyData The French morphology data.
284
+ *
285
+ * @returns {string} The word after other verb suffixes were removed.
286
+ */
287
+ const removeOtherVerbSuffixes = function (word, step2aDone, wordAfterStep1, r2Index, rvIndex, morphologyData) {
288
+ const otherVerbSuffixes = morphologyData.regularStemmer.otherVerbSuffixes;
289
+ if (step2aDone && wordAfterStep1 === word) {
290
+ const suffixIons = new RegExp(otherVerbSuffixes[0]);
291
+ if (word.search(suffixIons) >= r2Index) {
292
+ return word.replace(suffixIons, '');
293
+ }
294
+ for (let i = 1; i < otherVerbSuffixes.length; i++) {
295
+ const regex = new RegExp(otherVerbSuffixes[i]);
296
+ if (word.search(regex) >= rvIndex) {
297
+ return word.replace(regex, '');
298
+ }
299
+ }
300
+ // Check if a word ends in "ons" preceded by "i", if it is "ons" is not stemmed.
301
+ if (word.endsWith('ions')) {
302
+ return word;
303
+ }
304
+
305
+ // Check if a word ends in "ons" preceded by other than "i" and stem it if it is in RV.
306
+ const verbSuffixOns = new RegExp(morphologyData.regularStemmer.verbSuffixOns);
307
+ if (word.search(verbSuffixOns) >= rvIndex) {
308
+ word = word.replace(verbSuffixOns, '');
309
+ }
310
+ }
311
+ return word;
312
+ };
313
+
314
+ /**
315
+ * Removes residual suffixes.
316
+ *
317
+ * @param {string} word The word for which to remove residual suffixes.
318
+ * @param {number} rvIndex The start index of RV.
319
+ * @param {number} r2Index The start index of R2.
320
+ * @param {Object} morphologyDataRegularStemmer The French morphology data.
321
+ *
322
+ * @returns {string} The word after residual suffixes were removed.
323
+ */
324
+ const removeResidualSuffixes = function (word, rvIndex, r2Index, morphologyDataRegularStemmer) {
325
+ const residualSuffixes = morphologyDataRegularStemmer.residualSuffixes;
326
+ if (word.search(new RegExp(residualSuffixes.residualSuffixes1[0])) >= rvIndex) {
327
+ word = word.replace(new RegExp(residualSuffixes.residualSuffixes1[0]), residualSuffixes.residualSuffixes1[1]);
328
+ }
329
+ const e1Index = word.search(new RegExp(residualSuffixes.residualSuffix2));
330
+ if (e1Index >= r2Index && word.search(new RegExp(residualSuffixes.residualSuffix3)) >= rvIndex) {
331
+ word = word.substring(0, e1Index);
332
+ } else {
333
+ let e2Index = word.search(new RegExp(residualSuffixes.residualSuffixes4[0]));
334
+ if (e2Index >= rvIndex) {
335
+ word = word.substring(0, e2Index) + residualSuffixes.residualSuffixes4[1];
336
+ } else {
337
+ e2Index = word.search(new RegExp(residualSuffixes.residualSuffix5));
338
+ if (e2Index >= rvIndex) {
339
+ // Delete last e.
340
+ word = word.substring(0, e2Index);
341
+ } else {
342
+ e2Index = word.search(new RegExp(residualSuffixes.residualSuffix6[0]));
343
+ if (e2Index >= rvIndex) {
344
+ word = word.substring(0, e2Index) + residualSuffixes.residualSuffix6[1];
345
+ }
346
+ }
347
+ }
348
+ }
349
+ return word;
350
+ };
351
+
352
+ /**
353
+ * Checks whether a word is in the full-form exception list and if so returns the canonical stem.
354
+ *
355
+ * @param {string} word The word to be checked.
356
+ * @param {Object} exceptions The list of full-form exceptions to be checked in.
357
+ *
358
+ * @returns {null|string} The canonical stem or null if nothing was found.
359
+ */
360
+ const checkWordInFullFormExceptions = function (word, exceptions) {
361
+ for (const paradigm of exceptions) {
362
+ if (paradigm[1].includes(word)) {
363
+ return paradigm[0];
364
+ }
365
+ }
366
+ return null;
367
+ };
368
+
369
+ /**
370
+ * Check whether the stem is on the exception list of stems that belong to one word. If it is, returns the canonical stem.
371
+ *
372
+ * @param {string} stemmedWord The stemmed word.
373
+ * @param {Object} stemsThatBelongToOneWord The list of stems that belong to one word.
374
+ *
375
+ * @returns {null|string} The canonical stem if word was found on the list.
376
+ */
377
+ const canonicalizeStem = function (stemmedWord, stemsThatBelongToOneWord) {
378
+ // Check the adjectives list.
379
+ for (const paradigm of stemsThatBelongToOneWord.adjectives) {
380
+ if (paradigm.includes(stemmedWord)) {
381
+ return paradigm[0];
382
+ }
383
+ }
384
+ // Check the verbs list. The infinitive stem is always the canonical stem for verbs.
385
+ for (const paradigm of stemsThatBelongToOneWord.verbs) {
386
+ if (paradigm.includes(stemmedWord)) {
387
+ return paradigm[0];
388
+ }
389
+ }
390
+ };
391
+
392
+ /**
393
+ * Checks whether the word is on the list of words which should be stemmed, even though the suffix would not be found in the
394
+ * required region. If the word is found on the list, the stem specified in that list is returned.
395
+ *
396
+ * @param {string} word The word to check.
397
+ * @param {Object} shortWordsAndStems The list to check.
398
+ *
399
+ * @returns {null|string} The stem or null if the word was not found on the list.
400
+ */
401
+ const checkShortWordsExceptionList = function (word, shortWordsAndStems) {
402
+ // First check whether the word is on the sub-list of words that cannot take an extra -s suffix.
403
+ for (const wordStemPair of shortWordsAndStems.cannotTakeExtraSuffixS) {
404
+ if (wordStemPair[0] === word) {
405
+ return wordStemPair[1];
406
+ }
407
+ }
408
+ // 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.
409
+ if (word.endsWith('s')) {
410
+ word = word.slice(0, -1);
411
+ }
412
+ for (const wordStemPair of shortWordsAndStems.canTakeExtraSuffixS) {
413
+ if (wordStemPair[0] === word) {
414
+ return wordStemPair[1];
415
+ }
416
+ }
417
+ };
418
+
419
+ /**
420
+ * Stems French words.
421
+ *
422
+ * @param {string} word The word to stem.
423
+ * @param {Object} morphologyData The French morphology data.
424
+ *
425
+ * @returns {string} The stemmed word.
426
+ */
427
+ function stem(word, morphologyData) {
428
+ word = word.toLowerCase();
429
+ const originalWord = word;
430
+
431
+ // 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.
432
+ const wordAfterShortWordsCheck = checkShortWordsExceptionList(word, morphologyData.shortWordsAndStems);
433
+ if (wordAfterShortWordsCheck) {
434
+ return wordAfterShortWordsCheck;
435
+ }
436
+
437
+ // Check if the word is on an exception list for which all forms of a word and its stem are listed.
438
+ const ifException = checkWordInFullFormExceptions(word, morphologyData.exceptionStemsWithFullForms);
439
+ if (ifException) {
440
+ return ifException;
441
+ }
442
+
443
+ // Check the exception list of words with plural suffix -x.
444
+ if (word.endsWith('x')) {
445
+ const pluralsWithXSuffix = morphologyData.pluralsWithXSuffix;
446
+ if (pluralsWithXSuffix.includes(word)) {
447
+ return word.slice(0, -1);
448
+ }
449
+ }
450
+
451
+ // Check if the word is on the exception list of words for which -s should not be stemmed.
452
+ if (word.endsWith('s')) {
453
+ const sShouldNotBeStemmed = morphologyData.sShouldNotBeStemmed;
454
+ if (sShouldNotBeStemmed.includes(word)) {
455
+ return word;
456
+ }
457
+ }
458
+
459
+ // Check if the word is on the exception list of words for which -ent should not be stemmed.
460
+ const nonVerbsOnEnt = morphologyData.nonVerbsOnEnt;
461
+ if (word.endsWith('ent')) {
462
+ if (nonVerbsOnEnt.includes(word)) {
463
+ return word;
464
+ }
465
+ }
466
+ if (word.endsWith('ents')) {
467
+ if (nonVerbsOnEnt.includes(word.slice(0, -1))) {
468
+ return word.slice(0, -1);
469
+ }
470
+ }
471
+
472
+ // Check if word is on the exception list of nouns and adjectives for which the verb suffix -ons should not be stemmed.
473
+ const nonVerbsOnOns = morphologyData.nonVerbsOnOns;
474
+ if (word.endsWith('ons')) {
475
+ if (nonVerbsOnOns.includes(word)) {
476
+ return word.slice(0, -1);
477
+ }
478
+ }
479
+
480
+ // Pre-processing steps
481
+ word = applyAllReplacements(word, morphologyData.regularStemmer.preProcessingStepsRegexes);
482
+
483
+ // Determine R1, R2 & RV regions.
484
+ const [r1Index, r2Index, rvIndex] = determineRs(word, morphologyData.regularStemmer.rIntervals);
485
+
486
+ /*
487
+ * Step 1:
488
+ * Remove standard suffixes
489
+ */
490
+ word = processStandardSuffixes(word, morphologyData.regularStemmer.standardSuffixes, r1Index, r2Index, rvIndex);
491
+ const wordAfterStep1 = word;
492
+
493
+ /*
494
+ * Step 2a:
495
+ * Stem verb suffixes beginning with "i"
496
+ */
497
+ const verbSuffixesStartingWithIRemoved = removeVerbSuffixesStartingWithI(word, originalWord, rvIndex, morphologyData.regularStemmer.verbSuffixesWithIBeginning);
498
+ word = verbSuffixesStartingWithIRemoved.word;
499
+ const step2aDone = verbSuffixesStartingWithIRemoved.step2aDone;
500
+
501
+ /*
502
+ * Step 2b:
503
+ * Stem other verb suffixes
504
+ */
505
+ if (!nonVerbsOnEnt.includes(word)) {
506
+ word = removeOtherVerbSuffixes(word, step2aDone, wordAfterStep1, r2Index, rvIndex, morphologyData);
507
+ }
508
+ if (originalWord === word.toLowerCase()) {
509
+ /* Step 4:
510
+ * Stem residual suffixes.
511
+ */
512
+ word = removeResidualSuffixes(word, rvIndex, r2Index, morphologyData.regularStemmer);
513
+ } else {
514
+ /*
515
+ * Step 3 (only needs to be executed if step 4 isn't executed)
516
+ * Replace final Y with i or final ç with c.
517
+ */
518
+ const yEnding = morphologyData.regularStemmer.yAndSoftCEndingAndReplacement.yEndingAndReplacement;
519
+ const softCEnding = morphologyData.regularStemmer.yAndSoftCEndingAndReplacement.softCEndingAndReplacement;
520
+ if (word.endsWith(yEnding[0])) {
521
+ word = word.slice(0, -1) + yEnding[1];
522
+ } else if (word.endsWith(softCEnding[0])) {
523
+ word = word.slice(0, -1) + softCEnding[1];
524
+ }
525
+ }
526
+
527
+ /* Step 5:
528
+ * Undouble final consonants
529
+ */
530
+ word = applyAllReplacements(word, morphologyData.regularStemmer.finalConsonantUndoubling);
531
+
532
+ /* Step 6:
533
+ * Un-accent
534
+ */
535
+ const unaccentE = morphologyData.regularStemmer.unaccentERegex;
536
+ word = word.replace(new RegExp(unaccentE[0]), unaccentE[1]);
537
+ word = word.toLowerCase();
538
+ const canonicalStem = canonicalizeStem(word, morphologyData.stemsThatBelongToOneWord);
539
+ if (canonicalStem) {
540
+ return canonicalStem;
541
+ }
542
+ return word;
543
+ }
544
+ //# sourceMappingURL=stem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stem.js","names":["_index","require","exceptionListHelpers","checkIfWordEndingIsOnExceptionList","regexHelpers","applyAllReplacements","languageProcessing","determineRs","word","rIntervalsData","rvIndex","search","RegExp","rvRegex1","rvRegex2","substring","rvRegex3","length","r1Regex","r1Index","r1","r2Index","processStandardSuffixes","standardSuffixData","a1Index","standardSuffixes1","a2Index","standardSuffixes2","a3Index","standardSuffixes3","a4Index","standardSuffixes4","a5Index","standardSuffixes5","a6Index","standardSuffixes6","a7Index","standardSuffixes7","a8Index","standardSuffixes8","a9Index","standardSuffixes9","a10Index","standardSuffixes10","a11Index","standardSuffixes11","a12Index","standardSuffixes12","a13Index","standardSuffixes13","a14Index","standardSuffixes14","a15Index","standardSuffixes15","a2Index2","suffixesPrecedingChar1","replace","slice","precedingCharacter2","suffixesPrecedingChar2","a6Index2","suffixesPrecedingChar4","precedingCharacter5","suffixesPrecedingChar5","precedingCharacter6","suffixesPrecedingChar6","precedingCharacter3","suffixesPrecedingChar3","a7Index2","suffixesPrecedingChar7","a7Index3","a11Index2","removeVerbSuffixesStartingWithI","originalWord","verbSuffixesWithIBeginning","step2aDone","toLowerCase","exceptions","b1Regex","suffixes","removeOtherVerbSuffixes","wordAfterStep1","morphologyData","otherVerbSuffixes","regularStemmer","suffixIons","i","regex","endsWith","verbSuffixOns","removeResidualSuffixes","morphologyDataRegularStemmer","residualSuffixes","residualSuffixes1","e1Index","residualSuffix2","residualSuffix3","e2Index","residualSuffixes4","residualSuffix5","residualSuffix6","checkWordInFullFormExceptions","paradigm","includes","canonicalizeStem","stemmedWord","stemsThatBelongToOneWord","adjectives","verbs","checkShortWordsExceptionList","shortWordsAndStems","wordStemPair","cannotTakeExtraSuffixS","canTakeExtraSuffixS","stem","wordAfterShortWordsCheck","ifException","exceptionStemsWithFullForms","pluralsWithXSuffix","sShouldNotBeStemmed","nonVerbsOnEnt","nonVerbsOnOns","preProcessingStepsRegexes","rIntervals","standardSuffixes","verbSuffixesStartingWithIRemoved","yEnding","yAndSoftCEndingAndReplacement","yEndingAndReplacement","softCEnding","softCEndingAndReplacement","finalConsonantUndoubling","unaccentE","unaccentERegex","canonicalStem"],"sources":["../../../../../../src/languageProcessing/languages/fr/helpers/internal/stem.js"],"sourcesContent":["/* eslint-disable max-statements, complexity */\nimport {languageProcessing} from '../../../index';\nconst {\n exceptionListHelpers: {checkIfWordEndingIsOnExceptionList},\n regexHelpers: {applyAllReplacements}\n} = languageProcessing;\n\n/*\n * MIT License\n *\n * Copyright (c) 2017 Bastien Botella\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n/*\n * Author: Kasun Gajasinghe, University of Moratuwa\n * E-Mail: kasunbg AT gmail DOT com\n * Date: 09.08.2010\n *\n * LICENSE:\n *\n * Copyright (c) 2010, Kasun Gajasinghe. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n *\n * THIS SOFTWARE IS PROVIDED BY KASUN GAJASINGHE \"\"AS IS\"\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\n * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KASUN GAJASINGHE BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\n * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\n * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n/**\n * Determines R1, R2 and RV.\n *\n * @param {string} word The word for which to determine the R regions.\n * @param {Object} rIntervalsData The regexes that cover French RV and R1 intervals.\n *\n * @returns {[number]} The R1, R2 and RV.\n */\nconst determineRs = function(word, rIntervalsData) {\n let rvIndex;\n\n if (\n word.search(new RegExp(rIntervalsData.rvRegex1)) !== -1 ||\n word.search(new RegExp(rIntervalsData.rvRegex2)) !== -1\n ) {\n rvIndex = 3;\n } else {\n rvIndex = word.substring(1).search(new RegExp(rIntervalsData.rvRegex3));\n if (rvIndex === -1) {\n rvIndex = word.length;\n } else {\n // +2 is to supplement the substring(1) used to find rvIndex\n rvIndex += 2;\n }\n }\n /*\n * 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.\n * 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.\n */\n const r1Regex = new RegExp(rIntervalsData.r1Regex);\n let r1Index = word.search(r1Regex);\n let r1 = '';\n if (r1Index === -1) {\n r1Index = word.length;\n } else {\n r1Index += 2;\n r1 = word.substring(r1Index);\n }\n\n let r2Index = r1.search(r1Regex);\n if (r2Index === -1) {\n r2Index = word.length;\n } else {\n r2Index += 2;\n r2Index += r1Index;\n }\n\n if (r1Index !== -1 && r1Index < 3) {\n r1Index = 3;\n }\n\n return [r1Index, r2Index, rvIndex];\n};\n\n/**\n * Removes or normalizes standard suffixes.\n *\n * @param {string} word The word for which to remove suffixes.\n * @param {Object} standardSuffixData The French morphology data covering standard suffixes.\n * @param {number} r1Index The start index of R1.\n * @param {number} r2Index The start index of R2.\n * @param {number} rvIndex The start index of RV.\n *\n * @returns {string} The word with standard suffixes removed or normalized.\n */\nconst processStandardSuffixes = function(word, standardSuffixData, r1Index, r2Index, rvIndex) {\n const a1Index = word.search(new RegExp(standardSuffixData.standardSuffixes1));\n const a2Index = word.search(new RegExp(standardSuffixData.standardSuffixes2));\n const a3Index = word.search(new RegExp(standardSuffixData.standardSuffixes3[0]));\n const a4Index = word.search(new RegExp(standardSuffixData.standardSuffixes4[0]));\n const a5Index = word.search(new RegExp(standardSuffixData.standardSuffixes5[0]));\n const a6Index = word.search(new RegExp(standardSuffixData.standardSuffixes6));\n const a7Index = word.search(new RegExp(standardSuffixData.standardSuffixes7));\n const a8Index = word.search(new RegExp(standardSuffixData.standardSuffixes8));\n const a9Index = word.search(new RegExp(standardSuffixData.standardSuffixes9[0]));\n const a10Index = word.search(new RegExp(standardSuffixData.standardSuffixes10[0]));\n const a11Index = word.search(new RegExp(standardSuffixData.standardSuffixes11[0]));\n const a12Index = word.search(new RegExp(standardSuffixData.standardSuffixes12));\n const a13Index = word.search(new RegExp(standardSuffixData.standardSuffixes13[0]));\n const a14Index = word.search(new RegExp(standardSuffixData.standardSuffixes14[0]));\n const a15Index = word.search(new RegExp(standardSuffixData.standardSuffixes15));\n\n if (a1Index !== -1 && a1Index >= r2Index) {\n word = word.substring(0, a1Index);\n } else if (a2Index !== -1 && a2Index >= r2Index) {\n word = word.substring(0, a2Index);\n const a2Index2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]));\n\n if (a2Index2 !== -1 && a2Index2 >= r2Index) {\n // If preceded by ic, delete if in R2\n word = word.substring(0, a2Index2);\n } else {\n // Else replace by iqU\n word = word.replace(\n new RegExp(standardSuffixData.suffixesPrecedingChar1[0]),\n standardSuffixData.suffixesPrecedingChar1[1]\n );\n }\n } else if (a3Index !== -1 && a3Index >= r2Index) {\n // Replace with log if in R2\n word = word.slice(0, a3Index) + standardSuffixData.standardSuffixes3[1];\n } else if (a4Index !== -1 && a4Index >= r2Index) {\n // Replace with u if in R2\n word = word.slice(0, a4Index) + standardSuffixData.standardSuffixes4[1];\n } else if (a5Index !== -1 && a5Index >= r2Index) {\n // Replace with ent if in R2\n word = word.slice(0, a5Index) + standardSuffixData.standardSuffixes5[1];\n } else if (a12Index !== -1 && a12Index >= r1Index) {\n // +1- amendment to non-vowel\n word = word.substring(0, a12Index + 1);\n } else if (a6Index !== -1 && a6Index >= rvIndex) {\n word = word.substring(0, a6Index);\n\n const precedingCharacter2 = word.search(\n new RegExp(standardSuffixData.suffixesPrecedingChar2[0])\n );\n const a6Index2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar4[0]));\n const precedingCharacter5 = word.search(\n new RegExp(standardSuffixData.suffixesPrecedingChar5[0])\n );\n const precedingCharacter6 = word.search(\n new RegExp(standardSuffixData.suffixesPrecedingChar6[0])\n );\n if (precedingCharacter2 >= r2Index) {\n word = word.slice(0, precedingCharacter2) + standardSuffixData.suffixesPrecedingChar2[1];\n\n const precedingCharacter3 = word.search(\n new RegExp(standardSuffixData.suffixesPrecedingChar3[0])\n );\n if (precedingCharacter3 >= r2Index) {\n word = word.slice(0, precedingCharacter3) + standardSuffixData.suffixesPrecedingChar3[1];\n }\n } else if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar4[0])) !== -1) {\n if (a6Index2 >= r2Index) {\n word = word.substring(0, a6Index2);\n } else if (a6Index2 >= r1Index) {\n word = word.substring(0, a6Index2) + standardSuffixData.suffixesPrecedingChar4[1];\n }\n } else if (precedingCharacter5 >= r2Index) {\n // If preceded by abl or iqU, delete if in R2\n word = word.slice(0, precedingCharacter5) + standardSuffixData.suffixesPrecedingChar5[1];\n } else if (precedingCharacter6 >= rvIndex) {\n // If preceded by ièr, replace with i if in RV\n word = word.slice(0, precedingCharacter6) + standardSuffixData.suffixesPrecedingChar6[1];\n }\n } else if (a7Index !== -1 && a7Index >= r2Index) {\n // Delete if in R2\n word = word.substring(0, a7Index);\n\n const a7Index2 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar7[0]));\n const a7Index3 = word.search(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]));\n if (a7Index2 !== -1) {\n // If preceded by abil, delete if in R2, else replace by abl, otherwise\n if (a7Index2 >= r2Index) {\n word = word.substring(0, a7Index2);\n } else {\n word = word.substring(0, a7Index2) + standardSuffixData.suffixesPrecedingChar7[1];\n }\n } else if (a7Index3 !== -1) {\n if (a7Index3 !== -1 && a7Index3 >= r2Index) {\n // If preceded by ic, delete if in R2\n word = word.substring(0, a7Index3);\n } else {\n // Else replace by iqU\n word = word.substring(0, a7Index3) + standardSuffixData.suffixesPrecedingChar1[1];\n }\n } else if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar2[0])) >= r2Index) {\n word = word.replace(\n new RegExp(standardSuffixData.suffixesPrecedingChar2[0]),\n standardSuffixData.suffixesPrecedingChar2[1]\n );\n }\n } else if (a8Index !== -1 && a8Index >= r2Index) {\n word = word.substring(0, a8Index);\n\n if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar3[0])) >= r2Index) {\n word = word.replace(\n new RegExp(standardSuffixData.suffixesPrecedingChar3[0]),\n standardSuffixData.suffixesPrecedingChar3[1]\n );\n\n if (word.search(new RegExp(standardSuffixData.suffixesPrecedingChar1[0])) >= r2Index) {\n word = word.replace(new RegExp(standardSuffixData.suffixesPrecedingChar1[0]), '');\n } else {\n word = word.replace(\n new RegExp(standardSuffixData.suffixesPrecedingChar1[0]),\n standardSuffixData.suffixesPrecedingChar1[1]\n );\n }\n }\n } else if (a9Index !== -1) {\n word = word.replace(\n new RegExp(standardSuffixData.standardSuffixes9[0]),\n standardSuffixData.standardSuffixes9[1]\n );\n } else if (a10Index >= r1Index) {\n word = word.replace(\n new RegExp(standardSuffixData.standardSuffixes10[0]),\n standardSuffixData.standardSuffixes10[1]\n );\n } else if (a11Index !== -1) {\n const a11Index2 = word.search(new RegExp(standardSuffixData.standardSuffixes11[0]));\n\n if (a11Index2 >= r2Index) {\n word = word.substring(0, a11Index2);\n } else if (a11Index2 >= r1Index) {\n word = word.substring(0, a11Index2) + standardSuffixData.standardSuffixes11[1];\n }\n } else if (a13Index !== -1 && a13Index >= rvIndex) {\n word = word.replace(\n new RegExp(standardSuffixData.standardSuffixes13[0]),\n standardSuffixData.standardSuffixes13[1]\n );\n } else if (a14Index !== -1 && a14Index >= rvIndex) {\n word = word.replace(\n new RegExp(standardSuffixData.standardSuffixes14[0]),\n standardSuffixData.standardSuffixes14[1]\n );\n } else if (a15Index !== -1 && a15Index >= rvIndex) {\n word = word.substring(0, a15Index + 1);\n }\n\n return word;\n};\n\n/**\n * Removes verb suffixes starting with i.\n *\n * @param {string} word The word for which to remove suffixes.\n * @param {string} originalWord The unprocessed word.\n * @param {number} rvIndex The start index of RV.\n * @param {string} verbSuffixesWithIBeginning Data for checking French suffixes starting with I.\n *\n * @returns {{step2aDone: boolean, word: string}} The word and information about whether the conditions for step 2a were met.\n */\nconst removeVerbSuffixesStartingWithI = function(\n word,\n originalWord,\n rvIndex,\n verbSuffixesWithIBeginning\n) {\n let step2aDone = false;\n if (\n originalWord === word.toLowerCase() ||\n checkIfWordEndingIsOnExceptionList(originalWord, verbSuffixesWithIBeginning.exceptions)\n ) {\n step2aDone = true;\n\n const b1Regex = new RegExp(verbSuffixesWithIBeginning.suffixes[0]);\n if (word.search(b1Regex) >= rvIndex) {\n word = word.replace(b1Regex, verbSuffixesWithIBeginning.suffixes[1]);\n }\n }\n\n return {word, step2aDone};\n};\n\n/**\n * Removes other verb suffixes.\n *\n * @param {string} word The word for which to remove suffixes.\n * @param {boolean} step2aDone Whether step 2a was done.\n * @param {string} wordAfterStep1 The word after step 1 was done.\n * @param {number} r2Index The start index of R2.\n * @param {number} rvIndex The start index of RV.\n * @param {Object} morphologyData The French morphology data.\n *\n * @returns {string} The word after other verb suffixes were removed.\n */\nconst removeOtherVerbSuffixes = function(\n word,\n step2aDone,\n wordAfterStep1,\n r2Index,\n rvIndex,\n morphologyData\n) {\n const otherVerbSuffixes = morphologyData.regularStemmer.otherVerbSuffixes;\n\n if (step2aDone && wordAfterStep1 === word) {\n const suffixIons = new RegExp(otherVerbSuffixes[0]);\n if (word.search(suffixIons) >= r2Index) {\n return word.replace(suffixIons, '');\n }\n\n for (let i = 1; i < otherVerbSuffixes.length; i++) {\n const regex = new RegExp(otherVerbSuffixes[i]);\n if (word.search(regex) >= rvIndex) {\n return word.replace(regex, '');\n }\n }\n // Check if a word ends in \"ons\" preceded by \"i\", if it is \"ons\" is not stemmed.\n if (word.endsWith('ions')) {\n return word;\n }\n\n // Check if a word ends in \"ons\" preceded by other than \"i\" and stem it if it is in RV.\n const verbSuffixOns = new RegExp(morphologyData.regularStemmer.verbSuffixOns);\n if (word.search(verbSuffixOns) >= rvIndex) {\n word = word.replace(verbSuffixOns, '');\n }\n }\n\n return word;\n};\n\n/**\n * Removes residual suffixes.\n *\n * @param {string} word The word for which to remove residual suffixes.\n * @param {number} rvIndex The start index of RV.\n * @param {number} r2Index The start index of R2.\n * @param {Object} morphologyDataRegularStemmer The French morphology data.\n *\n * @returns {string} The word after residual suffixes were removed.\n */\nconst removeResidualSuffixes = function(word, rvIndex, r2Index, morphologyDataRegularStemmer) {\n const residualSuffixes = morphologyDataRegularStemmer.residualSuffixes;\n if (word.search(new RegExp(residualSuffixes.residualSuffixes1[0])) >= rvIndex) {\n word = word.replace(\n new RegExp(residualSuffixes.residualSuffixes1[0]),\n residualSuffixes.residualSuffixes1[1]\n );\n }\n\n const e1Index = word.search(new RegExp(residualSuffixes.residualSuffix2));\n\n if (e1Index >= r2Index && word.search(new RegExp(residualSuffixes.residualSuffix3)) >= rvIndex) {\n word = word.substring(0, e1Index);\n } else {\n let e2Index = word.search(new RegExp(residualSuffixes.residualSuffixes4[0]));\n\n if (e2Index >= rvIndex) {\n word = word.substring(0, e2Index) + residualSuffixes.residualSuffixes4[1];\n } else {\n e2Index = word.search(new RegExp(residualSuffixes.residualSuffix5));\n if (e2Index >= rvIndex) {\n // Delete last e.\n word = word.substring(0, e2Index);\n } else {\n e2Index = word.search(new RegExp(residualSuffixes.residualSuffix6[0]));\n if (e2Index >= rvIndex) {\n word = word.substring(0, e2Index) + residualSuffixes.residualSuffix6[1];\n }\n }\n }\n }\n\n return word;\n};\n\n/**\n * Checks whether a word is in the full-form exception list and if so returns the canonical stem.\n *\n * @param {string} word\t The word to be checked.\n * @param {Object} exceptions The list of full-form exceptions to be checked in.\n *\n * @returns {null|string} The canonical stem or null if nothing was found.\n */\nconst checkWordInFullFormExceptions = function(word, exceptions) {\n for (const paradigm of exceptions) {\n if (paradigm[1].includes(word)) {\n return paradigm[0];\n }\n }\n return null;\n};\n\n/**\n * Check whether the stem is on the exception list of stems that belong to one word. If it is, returns the canonical stem.\n *\n * @param {string}\tstemmedWord\t\t\t\t\tThe stemmed word.\n * @param {Object}\tstemsThatBelongToOneWord\tThe list of stems that belong to one word.\n *\n * @returns {null|string}\tThe canonical stem if word was found on the list.\n */\nconst canonicalizeStem = function(stemmedWord, stemsThatBelongToOneWord) {\n // Check the adjectives list.\n for (const paradigm of stemsThatBelongToOneWord.adjectives) {\n if (paradigm.includes(stemmedWord)) {\n return paradigm[0];\n }\n }\n // Check the verbs list. The infinitive stem is always the canonical stem for verbs.\n for (const paradigm of stemsThatBelongToOneWord.verbs) {\n if (paradigm.includes(stemmedWord)) {\n return paradigm[0];\n }\n }\n};\n\n/**\n * Checks whether the word is on the list of words which should be stemmed, even though the suffix would not be found in the\n * required region. If the word is found on the list, the stem specified in that list is returned.\n *\n * @param {string}\tword\t\t\t\tThe word to check.\n * @param {Object}\tshortWordsAndStems\tThe list to check.\n *\n * @returns {null|string} The stem or null if the word was not found on the list.\n */\nconst checkShortWordsExceptionList = function(word, shortWordsAndStems) {\n // First check whether the word is on the sub-list of words that cannot take an extra -s suffix.\n for (const wordStemPair of shortWordsAndStems.cannotTakeExtraSuffixS) {\n if (wordStemPair[0] === word) {\n return wordStemPair[1];\n }\n }\n // 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.\n if (word.endsWith('s')) {\n word = word.slice(0, -1);\n }\n for (const wordStemPair of shortWordsAndStems.canTakeExtraSuffixS) {\n if (wordStemPair[0] === word) {\n return wordStemPair[1];\n }\n }\n};\n\n/**\n * Stems French words.\n *\n * @param {string} word The word to stem.\n * @param {Object} morphologyData The French morphology data.\n *\n * @returns {string} The stemmed word.\n */\nexport default function stem(word, morphologyData) {\n word = word.toLowerCase();\n const originalWord = word;\n\n // 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.\n const wordAfterShortWordsCheck = checkShortWordsExceptionList(\n word,\n morphologyData.shortWordsAndStems\n );\n if (wordAfterShortWordsCheck) {\n return wordAfterShortWordsCheck;\n }\n\n // Check if the word is on an exception list for which all forms of a word and its stem are listed.\n const ifException = checkWordInFullFormExceptions(\n word,\n morphologyData.exceptionStemsWithFullForms\n );\n if (ifException) {\n return ifException;\n }\n\n // Check the exception list of words with plural suffix -x.\n if (word.endsWith('x')) {\n const pluralsWithXSuffix = morphologyData.pluralsWithXSuffix;\n if (pluralsWithXSuffix.includes(word)) {\n return word.slice(0, -1);\n }\n }\n\n // Check if the word is on the exception list of words for which -s should not be stemmed.\n if (word.endsWith('s')) {\n const sShouldNotBeStemmed = morphologyData.sShouldNotBeStemmed;\n if (sShouldNotBeStemmed.includes(word)) {\n return word;\n }\n }\n\n // Check if the word is on the exception list of words for which -ent should not be stemmed.\n const nonVerbsOnEnt = morphologyData.nonVerbsOnEnt;\n if (word.endsWith('ent')) {\n if (nonVerbsOnEnt.includes(word)) {\n return word;\n }\n }\n if (word.endsWith('ents')) {\n if (nonVerbsOnEnt.includes(word.slice(0, -1))) {\n return word.slice(0, -1);\n }\n }\n\n // Check if word is on the exception list of nouns and adjectives for which the verb suffix -ons should not be stemmed.\n const nonVerbsOnOns = morphologyData.nonVerbsOnOns;\n if (word.endsWith('ons')) {\n if (nonVerbsOnOns.includes(word)) {\n return word.slice(0, -1);\n }\n }\n\n // Pre-processing steps\n word = applyAllReplacements(word, morphologyData.regularStemmer.preProcessingStepsRegexes);\n\n // Determine R1, R2 & RV regions.\n const [r1Index, r2Index, rvIndex] = determineRs(word, morphologyData.regularStemmer.rIntervals);\n\n /*\n * Step 1:\n * Remove standard suffixes\n */\n word = processStandardSuffixes(\n word,\n morphologyData.regularStemmer.standardSuffixes,\n r1Index,\n r2Index,\n rvIndex\n );\n const wordAfterStep1 = word;\n\n /*\n * Step 2a:\n * Stem verb suffixes beginning with \"i\"\n */\n const verbSuffixesStartingWithIRemoved = removeVerbSuffixesStartingWithI(\n word,\n originalWord,\n rvIndex,\n morphologyData.regularStemmer.verbSuffixesWithIBeginning\n );\n word = verbSuffixesStartingWithIRemoved.word;\n const step2aDone = verbSuffixesStartingWithIRemoved.step2aDone;\n\n /*\n * Step 2b:\n * Stem other verb suffixes\n */\n if (!nonVerbsOnEnt.includes(word)) {\n word = removeOtherVerbSuffixes(\n word,\n step2aDone,\n wordAfterStep1,\n r2Index,\n rvIndex,\n morphologyData\n );\n }\n\n if (originalWord === word.toLowerCase()) {\n /* Step 4:\n * Stem residual suffixes.\n */\n word = removeResidualSuffixes(word, rvIndex, r2Index, morphologyData.regularStemmer);\n } else {\n /*\n * Step 3 (only needs to be executed if step 4 isn't executed)\n * Replace final Y with i or final ç with c.\n */\n const yEnding =\n morphologyData.regularStemmer.yAndSoftCEndingAndReplacement.yEndingAndReplacement;\n const softCEnding =\n morphologyData.regularStemmer.yAndSoftCEndingAndReplacement.softCEndingAndReplacement;\n if (word.endsWith(yEnding[0])) {\n word = word.slice(0, -1) + yEnding[1];\n } else if (word.endsWith(softCEnding[0])) {\n word = word.slice(0, -1) + softCEnding[1];\n }\n }\n\n /* Step 5:\n * Undouble final consonants\n */\n word = applyAllReplacements(word, morphologyData.regularStemmer.finalConsonantUndoubling);\n\n /* Step 6:\n * Un-accent\n */\n const unaccentE = morphologyData.regularStemmer.unaccentERegex;\n word = word.replace(new RegExp(unaccentE[0]), unaccentE[1]);\n word = word.toLowerCase();\n\n const canonicalStem = canonicalizeStem(word, morphologyData.stemsThatBelongToOneWord);\n if (canonicalStem) {\n return canonicalStem;\n }\n\n return word;\n}\n"],"mappings":"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","ignoreList":[]}