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.
- package/README.md +228 -0
- package/build/bundledPlugins/index.js +14 -0
- package/build/bundledPlugins/index.js.map +1 -0
- package/build/bundledPlugins/previouslyUsedKeywords.js +171 -0
- package/build/bundledPlugins/previouslyUsedKeywords.js.map +1 -0
- package/build/config/diacritics.js +140 -0
- package/build/config/diacritics.js.map +1 -0
- package/build/config/getTransliterations.js +3572 -0
- package/build/config/getTransliterations.js.map +1 -0
- package/build/config/transliterationsWPstyle.js +1424 -0
- package/build/config/transliterationsWPstyle.js.map +1 -0
- package/build/config/wordBoundaries.js +26 -0
- package/build/config/wordBoundaries.js.map +1 -0
- package/build/config/wordBoundariesWithoutPunctuation.js +16 -0
- package/build/config/wordBoundariesWithoutPunctuation.js.map +1 -0
- package/build/const/analysis.js +20 -0
- package/build/const/analysis.js.map +1 -0
- package/build/errors/invalidType.js +22 -0
- package/build/errors/invalidType.js.map +1 -0
- package/build/errors/missingArgument.js +22 -0
- package/build/errors/missingArgument.js.map +1 -0
- package/build/helpers/createMeasurementElement.js +46 -0
- package/build/helpers/createMeasurementElement.js.map +1 -0
- package/build/helpers/domManipulation.js +66 -0
- package/build/helpers/domManipulation.js.map +1 -0
- package/build/helpers/errors.js +26 -0
- package/build/helpers/errors.js.map +1 -0
- package/build/helpers/factory.js +207 -0
- package/build/helpers/factory.js.map +1 -0
- package/build/helpers/formatNumber.js +18 -0
- package/build/helpers/formatNumber.js.map +1 -0
- package/build/helpers/formatString.js +38 -0
- package/build/helpers/formatString.js.map +1 -0
- package/build/helpers/getLanguagesWithWordComplexity.js +15 -0
- package/build/helpers/getLanguagesWithWordComplexity.js.map +1 -0
- package/build/helpers/getLanguagesWithWordFormSupport.js +16 -0
- package/build/helpers/getLanguagesWithWordFormSupport.js.map +1 -0
- package/build/helpers/getWordComplexityConfig.js +27 -0
- package/build/helpers/getWordComplexityConfig.js.map +1 -0
- package/build/helpers/getWordComplexityHelper.js +27 -0
- package/build/helpers/getWordComplexityHelper.js.map +1 -0
- package/build/helpers/htmlEntities.js +21 -0
- package/build/helpers/htmlEntities.js.map +1 -0
- package/build/helpers/includesAny.js +24 -0
- package/build/helpers/includesAny.js.map +1 -0
- package/build/helpers/index.js +179 -0
- package/build/helpers/index.js.map +1 -0
- package/build/helpers/shortlinker/Shortlinker.js +79 -0
- package/build/helpers/shortlinker/Shortlinker.js.map +1 -0
- package/build/helpers/shortlinker/index.js +17 -0
- package/build/helpers/shortlinker/index.js.map +1 -0
- package/build/helpers/shortlinker/singleton.js +76 -0
- package/build/helpers/shortlinker/singleton.js.map +1 -0
- package/build/helpers/types.js +37 -0
- package/build/helpers/types.js.map +1 -0
- package/build/index.js +103 -0
- package/build/index.js.map +1 -0
- package/build/languageProcessing/AbstractResearcher.js +348 -0
- package/build/languageProcessing/AbstractResearcher.js.map +1 -0
- package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +123 -0
- package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js.map +1 -0
- package/build/languageProcessing/helpers/html/getFieldsToMark.js +37 -0
- package/build/languageProcessing/helpers/html/getFieldsToMark.js.map +1 -0
- package/build/languageProcessing/helpers/html/getSubheadingTexts.js +47 -0
- package/build/languageProcessing/helpers/html/getSubheadingTexts.js.map +1 -0
- package/build/languageProcessing/helpers/html/getSubheadings.js +92 -0
- package/build/languageProcessing/helpers/html/getSubheadings.js.map +1 -0
- package/build/languageProcessing/helpers/html/html.js +152 -0
- package/build/languageProcessing/helpers/html/html.js.map +1 -0
- package/build/languageProcessing/helpers/html/htmlParser.js +132 -0
- package/build/languageProcessing/helpers/html/htmlParser.js.map +1 -0
- package/build/languageProcessing/helpers/html/matchParagraphs.js +61 -0
- package/build/languageProcessing/helpers/html/matchParagraphs.js.map +1 -0
- package/build/languageProcessing/helpers/html/normalizeHTML.js +23 -0
- package/build/languageProcessing/helpers/html/normalizeHTML.js.map +1 -0
- package/build/languageProcessing/helpers/image/getAltAttribute.js +24 -0
- package/build/languageProcessing/helpers/image/getAltAttribute.js.map +1 -0
- package/build/languageProcessing/helpers/image/getImagesInTree.js +21 -0
- package/build/languageProcessing/helpers/image/getImagesInTree.js.map +1 -0
- package/build/languageProcessing/helpers/image/imageInText.js +26 -0
- package/build/languageProcessing/helpers/image/imageInText.js.map +1 -0
- package/build/languageProcessing/helpers/index.js +41 -0
- package/build/languageProcessing/helpers/index.js.map +1 -0
- package/build/languageProcessing/helpers/language/getLanguage.js +16 -0
- package/build/languageProcessing/helpers/language/getLanguage.js.map +1 -0
- package/build/languageProcessing/helpers/link/checkNofollow.js +42 -0
- package/build/languageProcessing/helpers/link/checkNofollow.js.map +1 -0
- package/build/languageProcessing/helpers/link/getAnchorsFromText.js +37 -0
- package/build/languageProcessing/helpers/link/getAnchorsFromText.js.map +1 -0
- package/build/languageProcessing/helpers/link/getLinkType.js +36 -0
- package/build/languageProcessing/helpers/link/getLinkType.js.map +1 -0
- package/build/languageProcessing/helpers/match/findKeywordFormsInString.js +101 -0
- package/build/languageProcessing/helpers/match/findKeywordFormsInString.js.map +1 -0
- package/build/languageProcessing/helpers/match/isDoubleQuoted.js +19 -0
- package/build/languageProcessing/helpers/match/isDoubleQuoted.js.map +1 -0
- package/build/languageProcessing/helpers/match/matchTextWithArray.js +41 -0
- package/build/languageProcessing/helpers/match/matchTextWithArray.js.map +1 -0
- package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js +58 -0
- package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js.map +1 -0
- package/build/languageProcessing/helpers/match/matchTextWithWord.js +47 -0
- package/build/languageProcessing/helpers/match/matchTextWithWord.js.map +1 -0
- package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js +162 -0
- package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js.map +1 -0
- package/build/languageProcessing/helpers/match/processExactMatchRequest.js +29 -0
- package/build/languageProcessing/helpers/match/processExactMatchRequest.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/baseStemmer.js +18 -0
- package/build/languageProcessing/helpers/morphology/baseStemmer.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/buildFormRule.js +26 -0
- package/build/languageProcessing/helpers/morphology/buildFormRule.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/buildTopicStems.js +164 -0
- package/build/languageProcessing/helpers/morphology/buildTopicStems.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js +48 -0
- package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js +71 -0
- package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +29 -0
- package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/flattenSortLength.js +19 -0
- package/build/languageProcessing/helpers/morphology/flattenSortLength.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +35 -0
- package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/regexHelpers.js +53 -0
- package/build/languageProcessing/helpers/morphology/regexHelpers.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/stemHelpers.js +46 -0
- package/build/languageProcessing/helpers/morphology/stemHelpers.js.map +1 -0
- package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +39 -0
- package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js.map +1 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +42 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js.map +1 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +116 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js.map +1 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +45 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js.map +1 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +220 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js.map +1 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +27 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js.map +1 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +28 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js.map +1 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +46 -0
- package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js.map +1 -0
- package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js +203 -0
- package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js.map +1 -0
- package/build/languageProcessing/helpers/regex/createRegexFromArray.js +38 -0
- package/build/languageProcessing/helpers/regex/createRegexFromArray.js.map +1 -0
- package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +39 -0
- package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js.map +1 -0
- package/build/languageProcessing/helpers/regex/createWordRegex.js +34 -0
- package/build/languageProcessing/helpers/regex/createWordRegex.js.map +1 -0
- package/build/languageProcessing/helpers/regex/matchStringWithRegex.js +24 -0
- package/build/languageProcessing/helpers/regex/matchStringWithRegex.js.map +1 -0
- package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +21 -0
- package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/doubleQuotes.js +19 -0
- package/build/languageProcessing/helpers/sanitize/doubleQuotes.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +131 -0
- package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/mergeListItems.js +30 -0
- package/build/languageProcessing/helpers/sanitize/mergeListItems.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/parseSynonyms.js +24 -0
- package/build/languageProcessing/helpers/sanitize/parseSynonyms.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/quotes.js +47 -0
- package/build/languageProcessing/helpers/sanitize/quotes.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js +19 -0
- package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/removePunctuation.js +64 -0
- package/build/languageProcessing/helpers/sanitize/removePunctuation.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +24 -0
- package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +20 -0
- package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/removeURLs.js +19 -0
- package/build/languageProcessing/helpers/sanitize/removeURLs.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +18 -0
- package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/sanitizeString.js +23 -0
- package/build/languageProcessing/helpers/sanitize/sanitizeString.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js +59 -0
- package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js +22 -0
- package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/stripNumbers.js +26 -0
- package/build/languageProcessing/helpers/sanitize/stripNumbers.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/stripSpaces.js +29 -0
- package/build/languageProcessing/helpers/sanitize/stripSpaces.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js +65 -0
- package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js.map +1 -0
- package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js +64 -0
- package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js.map +1 -0
- package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js +565 -0
- package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js.map +1 -0
- package/build/languageProcessing/helpers/sentence/countSentences.js +27 -0
- package/build/languageProcessing/helpers/sentence/countSentences.js.map +1 -0
- package/build/languageProcessing/helpers/sentence/getSentences.js +71 -0
- package/build/languageProcessing/helpers/sentence/getSentences.js.map +1 -0
- package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js +60 -0
- package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js.map +1 -0
- package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +37 -0
- package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js.map +1 -0
- package/build/languageProcessing/helpers/sentence/sentencesLength.js +37 -0
- package/build/languageProcessing/helpers/sentence/sentencesLength.js.map +1 -0
- package/build/languageProcessing/helpers/syllables/DeviationFragment.js +108 -0
- package/build/languageProcessing/helpers/syllables/DeviationFragment.js.map +1 -0
- package/build/languageProcessing/helpers/syllables/countSyllables.js +173 -0
- package/build/languageProcessing/helpers/syllables/countSyllables.js.map +1 -0
- package/build/languageProcessing/helpers/syllables/syllableCountIterator.js +63 -0
- package/build/languageProcessing/helpers/syllables/syllableCountIterator.js.map +1 -0
- package/build/languageProcessing/helpers/syllables/syllableCountStep.js +75 -0
- package/build/languageProcessing/helpers/syllables/syllableCountStep.js.map +1 -0
- package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js +24 -0
- package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js.map +1 -0
- package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js +25 -0
- package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js.map +1 -0
- package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js +194 -0
- package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js.map +1 -0
- package/build/languageProcessing/helpers/transliterate/transliterate.js +24 -0
- package/build/languageProcessing/helpers/transliterate/transliterate.js.map +1 -0
- package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js +25 -0
- package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js.map +1 -0
- package/build/languageProcessing/helpers/url/parseSlug.js +17 -0
- package/build/languageProcessing/helpers/url/parseSlug.js.map +1 -0
- package/build/languageProcessing/helpers/url/url.js +174 -0
- package/build/languageProcessing/helpers/url/url.js.map +1 -0
- package/build/languageProcessing/helpers/word/addWordboundary.js +41 -0
- package/build/languageProcessing/helpers/word/addWordboundary.js.map +1 -0
- package/build/languageProcessing/helpers/word/areWordsInSentence.js +23 -0
- package/build/languageProcessing/helpers/word/areWordsInSentence.js.map +1 -0
- package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js +24 -0
- package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js.map +1 -0
- package/build/languageProcessing/helpers/word/countWords.js +21 -0
- package/build/languageProcessing/helpers/word/countWords.js.map +1 -0
- package/build/languageProcessing/helpers/word/createPunctuationTokens.js +46 -0
- package/build/languageProcessing/helpers/word/createPunctuationTokens.js.map +1 -0
- package/build/languageProcessing/helpers/word/filterWordsFromArray.js +21 -0
- package/build/languageProcessing/helpers/word/filterWordsFromArray.js.map +1 -0
- package/build/languageProcessing/helpers/word/followsIndex.js +29 -0
- package/build/languageProcessing/helpers/word/followsIndex.js.map +1 -0
- package/build/languageProcessing/helpers/word/getAllWordsFromTree.js +30 -0
- package/build/languageProcessing/helpers/word/getAllWordsFromTree.js.map +1 -0
- package/build/languageProcessing/helpers/word/getWords.js +47 -0
- package/build/languageProcessing/helpers/word/getWords.js.map +1 -0
- package/build/languageProcessing/helpers/word/includesIndex.js +34 -0
- package/build/languageProcessing/helpers/word/includesIndex.js.map +1 -0
- package/build/languageProcessing/helpers/word/indices.js +141 -0
- package/build/languageProcessing/helpers/word/indices.js.map +1 -0
- package/build/languageProcessing/helpers/word/markWordsInSentences.js +189 -0
- package/build/languageProcessing/helpers/word/markWordsInSentences.js.map +1 -0
- package/build/languageProcessing/helpers/word/matchWordInSentence.js +63 -0
- package/build/languageProcessing/helpers/word/matchWordInSentence.js.map +1 -0
- package/build/languageProcessing/helpers/word/splitIntoTokens.js +52 -0
- package/build/languageProcessing/helpers/word/splitIntoTokens.js.map +1 -0
- package/build/languageProcessing/index.js +283 -0
- package/build/languageProcessing/index.js.map +1 -0
- package/build/languageProcessing/languages/_default/Researcher.js +43 -0
- package/build/languageProcessing/languages/_default/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/_default/helpers/getStemmer.js +20 -0
- package/build/languageProcessing/languages/_default/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/ar/Researcher.js +54 -0
- package/build/languageProcessing/languages/ar/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/ar/config/firstWordExceptions.js +18 -0
- package/build/languageProcessing/languages/ar/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/ar/config/functionWords.js +80 -0
- package/build/languageProcessing/languages/ar/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +13 -0
- package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js.map +1 -0
- package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js +11 -0
- package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js.map +1 -0
- package/build/languageProcessing/languages/ar/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/ar/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js +38 -0
- package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js.map +1 -0
- package/build/languageProcessing/languages/ar/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/ar/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/ar/helpers/internal/stem.js +635 -0
- package/build/languageProcessing/languages/ar/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js +41 -0
- package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js.map +1 -0
- package/build/languageProcessing/languages/ca/Researcher.js +52 -0
- package/build/languageProcessing/languages/ca/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/ca/config/sentenceLength.js +10 -0
- package/build/languageProcessing/languages/ca/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/ca/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/ca/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/ca/helpers/getStemmer.js +20 -0
- package/build/languageProcessing/languages/ca/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/cs/Researcher.js +52 -0
- package/build/languageProcessing/languages/cs/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/cs/config/firstWordExceptions.js +20 -0
- package/build/languageProcessing/languages/cs/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/cs/config/functionWords.js +50 -0
- package/build/languageProcessing/languages/cs/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +10 -0
- package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +14 -0
- package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js.map +1 -0
- package/build/languageProcessing/languages/cs/config/stopWords.js +12 -0
- package/build/languageProcessing/languages/cs/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/cs/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/cs/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/cs/helpers/getClauses.js +35 -0
- package/build/languageProcessing/languages/cs/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/cs/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/cs/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js +24 -0
- package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/cs/helpers/internal/stem.js +341 -0
- package/build/languageProcessing/languages/cs/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/cs/values/Clause.js +45 -0
- package/build/languageProcessing/languages/cs/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/de/Researcher.js +61 -0
- package/build/languageProcessing/languages/de/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/de/config/firstWordExceptions.js +20 -0
- package/build/languageProcessing/languages/de/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/de/config/functionWords.js +103 -0
- package/build/languageProcessing/languages/de/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +13 -0
- package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js.map +1 -0
- package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +29 -0
- package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +15 -0
- package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js.map +1 -0
- package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +78 -0
- package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js.map +1 -0
- package/build/languageProcessing/languages/de/config/keyphraseLength.js +17 -0
- package/build/languageProcessing/languages/de/config/keyphraseLength.js.map +1 -0
- package/build/languageProcessing/languages/de/config/stopWords.js +12 -0
- package/build/languageProcessing/languages/de/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/de/config/syllables.json +460 -0
- package/build/languageProcessing/languages/de/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/de/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/de/config/wordComplexity.js +11 -0
- package/build/languageProcessing/languages/de/config/wordComplexity.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +23 -0
- package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +47 -0
- package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +20 -0
- package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/getClauses.js +34 -0
- package/build/languageProcessing/languages/de/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/de/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +38 -0
- package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +118 -0
- package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/internal/determineStem.js +113 -0
- package/build/languageProcessing/languages/de/helpers/internal/determineStem.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js +39 -0
- package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/internal/stem.js +222 -0
- package/build/languageProcessing/languages/de/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +37 -0
- package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js.map +1 -0
- package/build/languageProcessing/languages/de/values/Clause.js +91 -0
- package/build/languageProcessing/languages/de/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/el/Researcher.js +55 -0
- package/build/languageProcessing/languages/el/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/el/config/firstWordExceptions.js +33 -0
- package/build/languageProcessing/languages/el/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/el/config/functionWords.js +47 -0
- package/build/languageProcessing/languages/el/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/el/config/internal/auxiliaries.js +12 -0
- package/build/languageProcessing/languages/el/config/internal/auxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +8 -0
- package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js.map +1 -0
- package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +22 -0
- package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js.map +1 -0
- package/build/languageProcessing/languages/el/config/stopWords.js +13 -0
- package/build/languageProcessing/languages/el/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/el/config/transitionWords.js +18 -0
- package/build/languageProcessing/languages/el/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/el/helpers/getClauses.js +34 -0
- package/build/languageProcessing/languages/el/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/el/helpers/getStemmer.js +29 -0
- package/build/languageProcessing/languages/el/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js +24 -0
- package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/el/helpers/internal/stem.js +347 -0
- package/build/languageProcessing/languages/el/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js +43 -0
- package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js.map +1 -0
- package/build/languageProcessing/languages/el/values/Clause.js +46 -0
- package/build/languageProcessing/languages/el/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/en/Researcher.js +55 -0
- package/build/languageProcessing/languages/en/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/en/config/abbreviations.js +16 -0
- package/build/languageProcessing/languages/en/config/abbreviations.js.map +1 -0
- package/build/languageProcessing/languages/en/config/firstWordExceptions.js +20 -0
- package/build/languageProcessing/languages/en/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/en/config/functionWords.js +110 -0
- package/build/languageProcessing/languages/en/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +15 -0
- package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +15 -0
- package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js.map +1 -0
- package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +13 -0
- package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js.map +1 -0
- package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js +12 -0
- package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js.map +1 -0
- package/build/languageProcessing/languages/en/config/stopWords.js +12 -0
- package/build/languageProcessing/languages/en/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/en/config/syllables.json +86 -0
- package/build/languageProcessing/languages/en/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/en/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/en/config/wordComplexity.js +12 -0
- package/build/languageProcessing/languages/en/config/wordComplexity.js.map +1 -0
- package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +23 -0
- package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js.map +1 -0
- package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +49 -0
- package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js.map +1 -0
- package/build/languageProcessing/languages/en/helpers/getClauses.js +58 -0
- package/build/languageProcessing/languages/en/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/en/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/en/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/en/helpers/internal/determineStem.js +161 -0
- package/build/languageProcessing/languages/en/helpers/internal/determineStem.js.map +1 -0
- package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +149 -0
- package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js.map +1 -0
- package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js +33 -0
- package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js +228 -0
- package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js.map +1 -0
- package/build/languageProcessing/languages/en/values/Clause.js +68 -0
- package/build/languageProcessing/languages/en/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/es/Researcher.js +57 -0
- package/build/languageProcessing/languages/es/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/es/config/firstWordExceptions.js +20 -0
- package/build/languageProcessing/languages/es/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/es/config/functionWords.js +111 -0
- package/build/languageProcessing/languages/es/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +12 -0
- package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +13 -0
- package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js.map +1 -0
- package/build/languageProcessing/languages/es/config/sentenceLength.js +10 -0
- package/build/languageProcessing/languages/es/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/es/config/stopWords.js +12 -0
- package/build/languageProcessing/languages/es/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/es/config/syllables.json +176 -0
- package/build/languageProcessing/languages/es/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/es/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/es/config/wordComplexity.js +11 -0
- package/build/languageProcessing/languages/es/config/wordComplexity.js.map +1 -0
- package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +23 -0
- package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js.map +1 -0
- package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +59 -0
- package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js.map +1 -0
- package/build/languageProcessing/languages/es/helpers/getClauses.js +38 -0
- package/build/languageProcessing/languages/es/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/es/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/es/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +40 -0
- package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js.map +1 -0
- package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js +43 -0
- package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/es/helpers/internal/stem.js +574 -0
- package/build/languageProcessing/languages/es/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/es/values/Clause.js +49 -0
- package/build/languageProcessing/languages/es/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/fa/Researcher.js +56 -0
- package/build/languageProcessing/languages/fa/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/fa/config/firstWordExceptions.js +18 -0
- package/build/languageProcessing/languages/fa/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/fa/config/functionWords.js +41 -0
- package/build/languageProcessing/languages/fa/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/fa/config/internal/participles.js +14 -0
- package/build/languageProcessing/languages/fa/config/internal/participles.js.map +1 -0
- package/build/languageProcessing/languages/fa/config/sentenceLength.js +10 -0
- package/build/languageProcessing/languages/fa/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/fa/config/transitionWords.js +18 -0
- package/build/languageProcessing/languages/fa/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js +99 -0
- package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js.map +1 -0
- package/build/languageProcessing/languages/fa/helpers/getStemmer.js +22 -0
- package/build/languageProcessing/languages/fa/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js +22 -0
- package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js.map +1 -0
- package/build/languageProcessing/languages/fr/Researcher.js +55 -0
- package/build/languageProcessing/languages/fr/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/fr/config/firstWordExceptions.js +20 -0
- package/build/languageProcessing/languages/fr/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/fr/config/functionWords.js +144 -0
- package/build/languageProcessing/languages/fr/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +22 -0
- package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js.map +1 -0
- package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +12 -0
- package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +27 -0
- package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js.map +1 -0
- package/build/languageProcessing/languages/fr/config/stopWords.js +12 -0
- package/build/languageProcessing/languages/fr/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/fr/config/syllables.json +1426 -0
- package/build/languageProcessing/languages/fr/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/fr/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/fr/config/wordComplexity.js +11 -0
- package/build/languageProcessing/languages/fr/config/wordComplexity.js.map +1 -0
- package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +23 -0
- package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js.map +1 -0
- package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +72 -0
- package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js.map +1 -0
- package/build/languageProcessing/languages/fr/helpers/getClauses.js +42 -0
- package/build/languageProcessing/languages/fr/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/fr/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/fr/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js +71 -0
- package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/fr/helpers/internal/stem.js +544 -0
- package/build/languageProcessing/languages/fr/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/fr/values/Clause.js +90 -0
- package/build/languageProcessing/languages/fr/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/he/Researcher.js +59 -0
- package/build/languageProcessing/languages/he/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/he/config/firstWordExceptions.js +18 -0
- package/build/languageProcessing/languages/he/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/he/config/functionWords.js +504 -0
- package/build/languageProcessing/languages/he/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js +13 -0
- package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js.map +1 -0
- package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js +13 -0
- package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js.map +1 -0
- package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js +13 -0
- package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js.map +1 -0
- package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +15 -0
- package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js.map +1 -0
- package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +15 -0
- package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js.map +1 -0
- package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +15 -0
- package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js.map +1 -0
- package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js +9 -0
- package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js.map +1 -0
- package/build/languageProcessing/languages/he/config/sentenceLength.js +10 -0
- package/build/languageProcessing/languages/he/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/he/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/he/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js +40 -0
- package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js.map +1 -0
- package/build/languageProcessing/languages/he/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/he/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/he/helpers/internal/stem.js +59 -0
- package/build/languageProcessing/languages/he/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js +122 -0
- package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js.map +1 -0
- package/build/languageProcessing/languages/he/helpers/stem.js +59 -0
- package/build/languageProcessing/languages/he/helpers/stem.js.map +1 -0
- package/build/languageProcessing/languages/hu/Researcher.js +57 -0
- package/build/languageProcessing/languages/hu/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/firstWordExceptions.js +32 -0
- package/build/languageProcessing/languages/hu/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/functionWords.js +52 -0
- package/build/languageProcessing/languages/hu/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js +20 -0
- package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +12 -0
- package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +25 -0
- package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js +25 -0
- package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/internal/participles.js +25 -0
- package/build/languageProcessing/languages/hu/config/internal/participles.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/stopWords.js +29 -0
- package/build/languageProcessing/languages/hu/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/hu/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/hu/helpers/getClauses.js +34 -0
- package/build/languageProcessing/languages/hu/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/hu/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/hu/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js +25 -0
- package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/hu/helpers/internal/stem.js +390 -0
- package/build/languageProcessing/languages/hu/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js +53 -0
- package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js.map +1 -0
- package/build/languageProcessing/languages/hu/values/Clause.js +47 -0
- package/build/languageProcessing/languages/hu/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/id/Researcher.js +55 -0
- package/build/languageProcessing/languages/id/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/id/config/firstWordExceptions.js +18 -0
- package/build/languageProcessing/languages/id/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/id/config/functionWords.js +109 -0
- package/build/languageProcessing/languages/id/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +13 -0
- package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js.map +1 -0
- package/build/languageProcessing/languages/id/config/transitionWords.js +30 -0
- package/build/languageProcessing/languages/id/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js +14 -0
- package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/id/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/id/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/id/helpers/internal/stem.js +394 -0
- package/build/languageProcessing/languages/id/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js +86 -0
- package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js.map +1 -0
- package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js +47 -0
- package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js.map +1 -0
- package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +53 -0
- package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js.map +1 -0
- package/build/languageProcessing/languages/it/Researcher.js +57 -0
- package/build/languageProcessing/languages/it/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/it/config/firstWordExceptions.js +20 -0
- package/build/languageProcessing/languages/it/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/it/config/functionWords.js +141 -0
- package/build/languageProcessing/languages/it/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +12 -0
- package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +13 -0
- package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js.map +1 -0
- package/build/languageProcessing/languages/it/config/sentenceLength.js +10 -0
- package/build/languageProcessing/languages/it/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/it/config/stopWords.js +12 -0
- package/build/languageProcessing/languages/it/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/it/config/syllables.json +573 -0
- package/build/languageProcessing/languages/it/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/it/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js +12 -0
- package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +23 -0
- package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js.map +1 -0
- package/build/languageProcessing/languages/it/helpers/getClauses.js +40 -0
- package/build/languageProcessing/languages/it/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/it/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/it/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js +42 -0
- package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/it/helpers/internal/stem.js +408 -0
- package/build/languageProcessing/languages/it/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/it/values/Clause.js +51 -0
- package/build/languageProcessing/languages/it/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/ja/Researcher.js +94 -0
- package/build/languageProcessing/languages/ja/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +11 -0
- package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/firstWordExceptions.js +14 -0
- package/build/languageProcessing/languages/ja/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/functionWords.js +8 -0
- package/build/languageProcessing/languages/ja/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/keyphraseLength.js +23 -0
- package/build/languageProcessing/languages/ja/config/keyphraseLength.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js +11 -0
- package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/paragraphLength.js +17 -0
- package/build/languageProcessing/languages/ja/config/paragraphLength.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/sentenceLength.js +11 -0
- package/build/languageProcessing/languages/ja/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js +25 -0
- package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/textLength.js +54 -0
- package/build/languageProcessing/languages/ja/config/textLength.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/topicLength.js +12 -0
- package/build/languageProcessing/languages/ja/config/topicLength.js.map +1 -0
- package/build/languageProcessing/languages/ja/config/transitionWords.js +9 -0
- package/build/languageProcessing/languages/ja/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +102 -0
- package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js.map +1 -0
- package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +25 -0
- package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js.map +1 -0
- package/build/languageProcessing/languages/ja/customResearches/getWordForms.js +57 -0
- package/build/languageProcessing/languages/ja/customResearches/getWordForms.js.map +1 -0
- package/build/languageProcessing/languages/ja/customResearches/textLength.js +31 -0
- package/build/languageProcessing/languages/ja/customResearches/textLength.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/countCharacters.js +27 -0
- package/build/languageProcessing/languages/ja/helpers/countCharacters.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js +28 -0
- package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/getContentWords.js +27 -0
- package/build/languageProcessing/languages/ja/helpers/getContentWords.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/getWords.js +38 -0
- package/build/languageProcessing/languages/ja/helpers/getWords.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +99 -0
- package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js +70 -0
- package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js +23 -0
- package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js +58 -0
- package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js +29 -0
- package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +37 -0
- package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +27 -0
- package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js.map +1 -0
- package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +19 -0
- package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js.map +1 -0
- package/build/languageProcessing/languages/nb/Researcher.js +54 -0
- package/build/languageProcessing/languages/nb/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/nb/config/firstWordExceptions.js +18 -0
- package/build/languageProcessing/languages/nb/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/nb/config/functionWords.js +54 -0
- package/build/languageProcessing/languages/nb/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/nb/config/internal/participles.js +12 -0
- package/build/languageProcessing/languages/nb/config/internal/participles.js.map +1 -0
- package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +12 -0
- package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/nb/config/stopWords.js +13 -0
- package/build/languageProcessing/languages/nb/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/nb/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/nb/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/nb/helpers/getClauses.js +37 -0
- package/build/languageProcessing/languages/nb/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/nb/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/nb/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js +31 -0
- package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/nb/helpers/internal/stem.js +135 -0
- package/build/languageProcessing/languages/nb/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/nb/values/Clause.js +49 -0
- package/build/languageProcessing/languages/nb/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/nl/Researcher.js +57 -0
- package/build/languageProcessing/languages/nl/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/nl/config/firstWordExceptions.js +20 -0
- package/build/languageProcessing/languages/nl/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/nl/config/functionWords.js +102 -0
- package/build/languageProcessing/languages/nl/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js +12 -0
- package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js.map +1 -0
- package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +12 -0
- package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +13 -0
- package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js.map +1 -0
- package/build/languageProcessing/languages/nl/config/keyphraseLength.js +17 -0
- package/build/languageProcessing/languages/nl/config/keyphraseLength.js.map +1 -0
- package/build/languageProcessing/languages/nl/config/stopWords.js +12 -0
- package/build/languageProcessing/languages/nl/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/nl/config/syllables.json +343 -0
- package/build/languageProcessing/languages/nl/config/transitionWords.js +11 -0
- package/build/languageProcessing/languages/nl/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js +12 -0
- package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +23 -0
- package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/getClauses.js +34 -0
- package/build/languageProcessing/languages/nl/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/nl/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +124 -0
- package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +260 -0
- package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +157 -0
- package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js +120 -0
- package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js +27 -0
- package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +152 -0
- package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/internal/stem.js +131 -0
- package/build/languageProcessing/languages/nl/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +94 -0
- package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js.map +1 -0
- package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +59 -0
- package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js.map +1 -0
- package/build/languageProcessing/languages/nl/values/Clause.js +63 -0
- package/build/languageProcessing/languages/nl/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/pl/Researcher.js +56 -0
- package/build/languageProcessing/languages/pl/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/pl/config/firstWordExceptions.js +16 -0
- package/build/languageProcessing/languages/pl/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/pl/config/functionWords.js +78 -0
- package/build/languageProcessing/languages/pl/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js +12 -0
- package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/pl/config/internal/participles.js +13 -0
- package/build/languageProcessing/languages/pl/config/internal/participles.js.map +1 -0
- package/build/languageProcessing/languages/pl/config/sentenceLength.js +17 -0
- package/build/languageProcessing/languages/pl/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/pl/config/stopWords.js +12 -0
- package/build/languageProcessing/languages/pl/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/pl/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/pl/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/pl/helpers/getClauses.js +34 -0
- package/build/languageProcessing/languages/pl/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/pl/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/pl/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js +25 -0
- package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/pl/helpers/internal/stem.js +158 -0
- package/build/languageProcessing/languages/pl/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/pl/values/Clause.js +51 -0
- package/build/languageProcessing/languages/pl/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/pt/Researcher.js +57 -0
- package/build/languageProcessing/languages/pt/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/pt/config/firstWordExceptions.js +20 -0
- package/build/languageProcessing/languages/pt/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/pt/config/functionWords.js +98 -0
- package/build/languageProcessing/languages/pt/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +12 -0
- package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +13 -0
- package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js.map +1 -0
- package/build/languageProcessing/languages/pt/config/sentenceLength.js +10 -0
- package/build/languageProcessing/languages/pt/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/pt/config/stopWords.js +12 -0
- package/build/languageProcessing/languages/pt/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/pt/config/syllables.json +38 -0
- package/build/languageProcessing/languages/pt/config/transitionWords.js +11 -0
- package/build/languageProcessing/languages/pt/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js +12 -0
- package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +23 -0
- package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js.map +1 -0
- package/build/languageProcessing/languages/pt/helpers/getClauses.js +38 -0
- package/build/languageProcessing/languages/pt/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/pt/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/pt/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js +43 -0
- package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/pt/helpers/internal/stem.js +283 -0
- package/build/languageProcessing/languages/pt/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/pt/values/Clause.js +50 -0
- package/build/languageProcessing/languages/pt/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/ru/Researcher.js +57 -0
- package/build/languageProcessing/languages/ru/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/ru/config/firstWordExceptions.js +16 -0
- package/build/languageProcessing/languages/ru/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +27 -0
- package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js.map +1 -0
- package/build/languageProcessing/languages/ru/config/functionWords.js +91 -0
- package/build/languageProcessing/languages/ru/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +27 -0
- package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js.map +1 -0
- package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +24 -0
- package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js.map +1 -0
- package/build/languageProcessing/languages/ru/config/sentenceLength.js +10 -0
- package/build/languageProcessing/languages/ru/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/ru/config/syllables.json +19 -0
- package/build/languageProcessing/languages/ru/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/ru/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +23 -0
- package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js.map +1 -0
- package/build/languageProcessing/languages/ru/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/ru/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/ru/helpers/internal/stem.js +271 -0
- package/build/languageProcessing/languages/ru/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js +22 -0
- package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js.map +1 -0
- package/build/languageProcessing/languages/sk/Researcher.js +55 -0
- package/build/languageProcessing/languages/sk/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/sk/config/firstWordExceptions.js +18 -0
- package/build/languageProcessing/languages/sk/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/sk/config/functionWords.js +18 -0
- package/build/languageProcessing/languages/sk/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/sk/config/internal/nonPassives.js +14 -0
- package/build/languageProcessing/languages/sk/config/internal/nonPassives.js.map +1 -0
- package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +10 -0
- package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
- package/build/languageProcessing/languages/sk/config/stopWords.js +13 -0
- package/build/languageProcessing/languages/sk/config/stopWords.js.map +1 -0
- package/build/languageProcessing/languages/sk/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/sk/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/sk/helpers/getClauses.js +35 -0
- package/build/languageProcessing/languages/sk/helpers/getClauses.js.map +1 -0
- package/build/languageProcessing/languages/sk/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/sk/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js +24 -0
- package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js.map +1 -0
- package/build/languageProcessing/languages/sk/helpers/internal/stem.js +322 -0
- package/build/languageProcessing/languages/sk/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/sk/values/Clause.js +47 -0
- package/build/languageProcessing/languages/sk/values/Clause.js.map +1 -0
- package/build/languageProcessing/languages/sv/Researcher.js +54 -0
- package/build/languageProcessing/languages/sv/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/sv/config/firstWordExceptions.js +21 -0
- package/build/languageProcessing/languages/sv/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/sv/config/functionWords.js +74 -0
- package/build/languageProcessing/languages/sv/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js +12 -0
- package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js.map +1 -0
- package/build/languageProcessing/languages/sv/config/keyphraseLength.js +17 -0
- package/build/languageProcessing/languages/sv/config/keyphraseLength.js.map +1 -0
- package/build/languageProcessing/languages/sv/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/sv/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/sv/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/sv/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/sv/helpers/internal/stem.js +159 -0
- package/build/languageProcessing/languages/sv/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js +22 -0
- package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js.map +1 -0
- package/build/languageProcessing/languages/tr/Researcher.js +52 -0
- package/build/languageProcessing/languages/tr/Researcher.js.map +1 -0
- package/build/languageProcessing/languages/tr/config/firstWordExceptions.js +18 -0
- package/build/languageProcessing/languages/tr/config/firstWordExceptions.js.map +1 -0
- package/build/languageProcessing/languages/tr/config/functionWords.js +51 -0
- package/build/languageProcessing/languages/tr/config/functionWords.js.map +1 -0
- package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +13 -0
- package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js.map +1 -0
- package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js +13 -0
- package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js.map +1 -0
- package/build/languageProcessing/languages/tr/config/sentenceLength.js +14 -0
- package/build/languageProcessing/languages/tr/config/sentenceLength.js.map +1 -0
- package/build/languageProcessing/languages/tr/config/transitionWords.js +13 -0
- package/build/languageProcessing/languages/tr/config/transitionWords.js.map +1 -0
- package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js +13 -0
- package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js.map +1 -0
- package/build/languageProcessing/languages/tr/helpers/getStemmer.js +28 -0
- package/build/languageProcessing/languages/tr/helpers/getStemmer.js.map +1 -0
- package/build/languageProcessing/languages/tr/helpers/internal/stem.js +25 -0
- package/build/languageProcessing/languages/tr/helpers/internal/stem.js.map +1 -0
- package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js +46 -0
- package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js.map +1 -0
- package/build/languageProcessing/researches/altTagCount.js +72 -0
- package/build/languageProcessing/researches/altTagCount.js.map +1 -0
- package/build/languageProcessing/researches/countSentencesFromText.js +26 -0
- package/build/languageProcessing/researches/countSentencesFromText.js.map +1 -0
- package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js +257 -0
- package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js.map +1 -0
- package/build/languageProcessing/researches/findKeywordInFirstParagraph.js +80 -0
- package/build/languageProcessing/researches/findKeywordInFirstParagraph.js.map +1 -0
- package/build/languageProcessing/researches/findTransitionWords.js +119 -0
- package/build/languageProcessing/researches/findTransitionWords.js.map +1 -0
- package/build/languageProcessing/researches/functionWordsInKeyphrase.js +48 -0
- package/build/languageProcessing/researches/functionWordsInKeyphrase.js.map +1 -0
- package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js +222 -0
- package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js.map +1 -0
- package/build/languageProcessing/researches/getFleschReadingScore.js +152 -0
- package/build/languageProcessing/researches/getFleschReadingScore.js.map +1 -0
- package/build/languageProcessing/researches/getKeywordDensity.js +49 -0
- package/build/languageProcessing/researches/getKeywordDensity.js.map +1 -0
- package/build/languageProcessing/researches/getLinkStatistics.js +56 -0
- package/build/languageProcessing/researches/getLinkStatistics.js.map +1 -0
- package/build/languageProcessing/researches/getLinks.js +23 -0
- package/build/languageProcessing/researches/getLinks.js.map +1 -0
- package/build/languageProcessing/researches/getLongCenterAlignedTexts.js +42 -0
- package/build/languageProcessing/researches/getLongCenterAlignedTexts.js.map +1 -0
- package/build/languageProcessing/researches/getParagraphLength.js +49 -0
- package/build/languageProcessing/researches/getParagraphLength.js.map +1 -0
- package/build/languageProcessing/researches/getParagraphs.js +23 -0
- package/build/languageProcessing/researches/getParagraphs.js.map +1 -0
- package/build/languageProcessing/researches/getPassiveVoiceResult.js +127 -0
- package/build/languageProcessing/researches/getPassiveVoiceResult.js.map +1 -0
- package/build/languageProcessing/researches/getProminentWordsForInsights.js +45 -0
- package/build/languageProcessing/researches/getProminentWordsForInsights.js.map +1 -0
- package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js +103 -0
- package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js.map +1 -0
- package/build/languageProcessing/researches/getSentenceBeginnings.js +122 -0
- package/build/languageProcessing/researches/getSentenceBeginnings.js.map +1 -0
- package/build/languageProcessing/researches/getSubheadingTextLengths.js +60 -0
- package/build/languageProcessing/researches/getSubheadingTextLengths.js.map +1 -0
- package/build/languageProcessing/researches/getWordForms.js +183 -0
- package/build/languageProcessing/researches/getWordForms.js.map +1 -0
- package/build/languageProcessing/researches/h1s.js +17 -0
- package/build/languageProcessing/researches/h1s.js.map +1 -0
- package/build/languageProcessing/researches/imageCount.js +22 -0
- package/build/languageProcessing/researches/imageCount.js.map +1 -0
- package/build/languageProcessing/researches/index.js +28 -0
- package/build/languageProcessing/researches/index.js.map +1 -0
- package/build/languageProcessing/researches/keyphraseDistribution.js +233 -0
- package/build/languageProcessing/researches/keyphraseDistribution.js.map +1 -0
- package/build/languageProcessing/researches/keyphraseLength.js +23 -0
- package/build/languageProcessing/researches/keyphraseLength.js.map +1 -0
- package/build/languageProcessing/researches/keywordCount.js +135 -0
- package/build/languageProcessing/researches/keywordCount.js.map +1 -0
- package/build/languageProcessing/researches/keywordCountInUrl.js +58 -0
- package/build/languageProcessing/researches/keywordCountInUrl.js.map +1 -0
- package/build/languageProcessing/researches/matchKeywordInSubheadings.js +68 -0
- package/build/languageProcessing/researches/matchKeywordInSubheadings.js.map +1 -0
- package/build/languageProcessing/researches/metaDescriptionKeyword.js +78 -0
- package/build/languageProcessing/researches/metaDescriptionKeyword.js.map +1 -0
- package/build/languageProcessing/researches/metaDescriptionLength.js +19 -0
- package/build/languageProcessing/researches/metaDescriptionLength.js.map +1 -0
- package/build/languageProcessing/researches/pageTitleWidth.js +18 -0
- package/build/languageProcessing/researches/pageTitleWidth.js.map +1 -0
- package/build/languageProcessing/researches/readingTime.js +84 -0
- package/build/languageProcessing/researches/readingTime.js.map +1 -0
- package/build/languageProcessing/researches/sentences.js +26 -0
- package/build/languageProcessing/researches/sentences.js.map +1 -0
- package/build/languageProcessing/researches/videoCount.js +39 -0
- package/build/languageProcessing/researches/videoCount.js.map +1 -0
- package/build/languageProcessing/researches/wordComplexity.js +128 -0
- package/build/languageProcessing/researches/wordComplexity.js.map +1 -0
- package/build/languageProcessing/researches/wordCountInText.js +36 -0
- package/build/languageProcessing/researches/wordCountInText.js.map +1 -0
- package/build/languageProcessing/values/Clause.js +113 -0
- package/build/languageProcessing/values/Clause.js.map +1 -0
- package/build/languageProcessing/values/ProminentWord.js +101 -0
- package/build/languageProcessing/values/ProminentWord.js.map +1 -0
- package/build/languageProcessing/values/Sentence.js +116 -0
- package/build/languageProcessing/values/Sentence.js.map +1 -0
- package/build/languageProcessing/values/index.js +28 -0
- package/build/languageProcessing/values/index.js.map +1 -0
- package/build/markers/addMark.js +16 -0
- package/build/markers/addMark.js.map +1 -0
- package/build/markers/addMarkSingleWord.js +37 -0
- package/build/markers/addMarkSingleWord.js.map +1 -0
- package/build/markers/index.js +21 -0
- package/build/markers/index.js.map +1 -0
- package/build/markers/removeDuplicateMarks.js +31 -0
- package/build/markers/removeDuplicateMarks.js.map +1 -0
- package/build/markers/removeMarks.js +16 -0
- package/build/markers/removeMarks.js.map +1 -0
- package/build/parse/build/build.js +62 -0
- package/build/parse/build/build.js.map +1 -0
- package/build/parse/build/index.js +14 -0
- package/build/parse/build/index.js.map +1 -0
- package/build/parse/build/private/adapt.js +111 -0
- package/build/parse/build/private/adapt.js.map +1 -0
- package/build/parse/build/private/adaptAttributes.js +41 -0
- package/build/parse/build/private/adaptAttributes.js.map +1 -0
- package/build/parse/build/private/alwaysFilterElements.js +32 -0
- package/build/parse/build/private/alwaysFilterElements.js.map +1 -0
- package/build/parse/build/private/combineIntoImplicitParagraphs.js +129 -0
- package/build/parse/build/private/combineIntoImplicitParagraphs.js.map +1 -0
- package/build/parse/build/private/filterBeforeTokenizing.js +37 -0
- package/build/parse/build/private/filterBeforeTokenizing.js.map +1 -0
- package/build/parse/build/private/filterHelpers.js +52 -0
- package/build/parse/build/private/filterHelpers.js.map +1 -0
- package/build/parse/build/private/filterTree.js +47 -0
- package/build/parse/build/private/filterTree.js.map +1 -0
- package/build/parse/build/private/getTextElementPositions.js +184 -0
- package/build/parse/build/private/getTextElementPositions.js.map +1 -0
- package/build/parse/build/private/helpers/parseClassAttribute.js +15 -0
- package/build/parse/build/private/helpers/parseClassAttribute.js.map +1 -0
- package/build/parse/build/private/isPhrasingContent.js +30 -0
- package/build/parse/build/private/isPhrasingContent.js.map +1 -0
- package/build/parse/build/private/parseBlocks.js +151 -0
- package/build/parse/build/private/parseBlocks.js.map +1 -0
- package/build/parse/build/private/tokenize.js +78 -0
- package/build/parse/build/private/tokenize.js.map +1 -0
- package/build/parse/language/LanguageProcessor.js +77 -0
- package/build/parse/language/LanguageProcessor.js.map +1 -0
- package/build/parse/structure/Heading.js +32 -0
- package/build/parse/structure/Heading.js.map +1 -0
- package/build/parse/structure/Node.js +75 -0
- package/build/parse/structure/Node.js.map +1 -0
- package/build/parse/structure/Paragraph.js +53 -0
- package/build/parse/structure/Paragraph.js.map +1 -0
- package/build/parse/structure/Sentence.js +36 -0
- package/build/parse/structure/Sentence.js.map +1 -0
- package/build/parse/structure/SourceCodeLocation.js +46 -0
- package/build/parse/structure/SourceCodeLocation.js.map +1 -0
- package/build/parse/structure/Text.js +33 -0
- package/build/parse/structure/Text.js.map +1 -0
- package/build/parse/structure/Token.js +29 -0
- package/build/parse/structure/Token.js.map +1 -0
- package/build/parse/structure/index.js +35 -0
- package/build/parse/structure/index.js.map +1 -0
- package/build/parse/traverse/findAllInTree.js +62 -0
- package/build/parse/traverse/findAllInTree.js.map +1 -0
- package/build/parse/traverse/index.js +21 -0
- package/build/parse/traverse/index.js.map +1 -0
- package/build/parse/traverse/innerText.js +30 -0
- package/build/parse/traverse/innerText.js.map +1 -0
- package/build/parsedPaper/ParsedPaper.js +100 -0
- package/build/parsedPaper/ParsedPaper.js.map +1 -0
- package/build/parsedPaper/assess/TreeAssessor.js +181 -0
- package/build/parsedPaper/assess/TreeAssessor.js.map +1 -0
- package/build/parsedPaper/assess/assessmentListFactories.js +77 -0
- package/build/parsedPaper/assess/assessmentListFactories.js.map +1 -0
- package/build/parsedPaper/assess/assessments/Assessment.js +86 -0
- package/build/parsedPaper/assess/assessments/Assessment.js.map +1 -0
- package/build/parsedPaper/assess/assessments/index.js +14 -0
- package/build/parsedPaper/assess/assessments/index.js.map +1 -0
- package/build/parsedPaper/assess/assessorFactories.js +104 -0
- package/build/parsedPaper/assess/assessorFactories.js.map +1 -0
- package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js +51 -0
- package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js.map +1 -0
- package/build/parsedPaper/assess/cornerstone/index.js +11 -0
- package/build/parsedPaper/assess/cornerstone/index.js.map +1 -0
- package/build/parsedPaper/assess/index.js +31 -0
- package/build/parsedPaper/assess/index.js.map +1 -0
- package/build/parsedPaper/build/PaperParser.js +103 -0
- package/build/parsedPaper/build/PaperParser.js.map +1 -0
- package/build/parsedPaper/build/linguisticParsing/Sentence.js +95 -0
- package/build/parsedPaper/build/linguisticParsing/Sentence.js.map +1 -0
- package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +294 -0
- package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js.map +1 -0
- package/build/parsedPaper/build/linguisticParsing/parseText.js +26 -0
- package/build/parsedPaper/build/linguisticParsing/parseText.js.map +1 -0
- package/build/parsedPaper/build/tree/TreeBuilder.js +82 -0
- package/build/parsedPaper/build/tree/TreeBuilder.js.map +1 -0
- package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js +183 -0
- package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js.map +1 -0
- package/build/parsedPaper/build/tree/cleanup/getElementContent.js +27 -0
- package/build/parsedPaper/build/tree/cleanup/getElementContent.js.map +1 -0
- package/build/parsedPaper/build/tree/cleanup/postParsing.js +43 -0
- package/build/parsedPaper/build/tree/cleanup/postParsing.js.map +1 -0
- package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js +226 -0
- package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js.map +1 -0
- package/build/parsedPaper/build/tree/html/buildTree.js +36 -0
- package/build/parsedPaper/build/tree/html/buildTree.js.map +1 -0
- package/build/parsedPaper/build/tree/html/htmlConstants.js +35 -0
- package/build/parsedPaper/build/tree/html/htmlConstants.js.map +1 -0
- package/build/parsedPaper/build/tree/index.js +20 -0
- package/build/parsedPaper/build/tree/index.js.map +1 -0
- package/build/parsedPaper/build/tree/metadata/buildTree.js +36 -0
- package/build/parsedPaper/build/tree/metadata/buildTree.js.map +1 -0
- package/build/parsedPaper/research/TreeResearcher.js +136 -0
- package/build/parsedPaper/research/TreeResearcher.js.map +1 -0
- package/build/parsedPaper/research/index.js +14 -0
- package/build/parsedPaper/research/index.js.map +1 -0
- package/build/parsedPaper/research/researches/Headings.js +26 -0
- package/build/parsedPaper/research/researches/Headings.js.map +1 -0
- package/build/parsedPaper/research/researches/LinkStatistics.js +129 -0
- package/build/parsedPaper/research/researches/LinkStatistics.js.map +1 -0
- package/build/parsedPaper/research/researches/Research.js +58 -0
- package/build/parsedPaper/research/researches/Research.js.map +1 -0
- package/build/parsedPaper/research/researches/index.js +14 -0
- package/build/parsedPaper/research/researches/index.js.map +1 -0
- package/build/parsedPaper/structure/tree/FormattingElement.js +73 -0
- package/build/parsedPaper/structure/tree/FormattingElement.js.map +1 -0
- package/build/parsedPaper/structure/tree/SourceCodeLocation.js +48 -0
- package/build/parsedPaper/structure/tree/SourceCodeLocation.js.map +1 -0
- package/build/parsedPaper/structure/tree/TextContainer.js +89 -0
- package/build/parsedPaper/structure/tree/TextContainer.js.map +1 -0
- package/build/parsedPaper/structure/tree/index.js +76 -0
- package/build/parsedPaper/structure/tree/index.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/Heading.js +33 -0
- package/build/parsedPaper/structure/tree/nodes/Heading.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/LeafNode.js +82 -0
- package/build/parsedPaper/structure/tree/nodes/LeafNode.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/List.js +54 -0
- package/build/parsedPaper/structure/tree/nodes/List.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/ListItem.js +34 -0
- package/build/parsedPaper/structure/tree/nodes/ListItem.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +51 -0
- package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/MetadataText.js +31 -0
- package/build/parsedPaper/structure/tree/nodes/MetadataText.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/Node.js +159 -0
- package/build/parsedPaper/structure/tree/nodes/Node.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/Paragraph.js +29 -0
- package/build/parsedPaper/structure/tree/nodes/Paragraph.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/StructuredNode.js +60 -0
- package/build/parsedPaper/structure/tree/nodes/StructuredNode.js.map +1 -0
- package/build/parsedPaper/structure/tree/nodes/index.js +70 -0
- package/build/parsedPaper/structure/tree/nodes/index.js.map +1 -0
- package/build/scoring/assessments/assessment.js +68 -0
- package/build/scoring/assessments/assessment.js.map +1 -0
- package/build/scoring/assessments/index.js +64 -0
- package/build/scoring/assessments/index.js.map +1 -0
- package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js +162 -0
- package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js.map +1 -0
- package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js +131 -0
- package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js.map +1 -0
- package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js +173 -0
- package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js.map +1 -0
- package/build/scoring/assessments/readability/TransitionWordsAssessment.js +159 -0
- package/build/scoring/assessments/readability/TransitionWordsAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/ImageCountAssessment.js +107 -0
- package/build/scoring/assessments/seo/ImageCountAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/InternalLinksAssessment.js +108 -0
- package/build/scoring/assessments/seo/InternalLinksAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js +105 -0
- package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/KeyphraseAssessment.js +100 -0
- package/build/scoring/assessments/seo/KeyphraseAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js +105 -0
- package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/KeywordDensityAssessment.js +111 -0
- package/build/scoring/assessments/seo/KeywordDensityAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +114 -0
- package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +107 -0
- package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js +111 -0
- package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js +103 -0
- package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/OutboundLinksAssessment.js +110 -0
- package/build/scoring/assessments/seo/OutboundLinksAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/PageTitleWidthAssessment.js +101 -0
- package/build/scoring/assessments/seo/PageTitleWidthAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/SingleH1Assessment.js +110 -0
- package/build/scoring/assessments/seo/SingleH1Assessment.js.map +1 -0
- package/build/scoring/assessments/seo/SingleTitleAssessment.js +103 -0
- package/build/scoring/assessments/seo/SingleTitleAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +103 -0
- package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/TextImagesAssessment.js +138 -0
- package/build/scoring/assessments/seo/TextImagesAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/TextLengthAssessment.js +100 -0
- package/build/scoring/assessments/seo/TextLengthAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/UrlKeywordAssessment.js +102 -0
- package/build/scoring/assessments/seo/UrlKeywordAssessment.js.map +1 -0
- package/build/scoring/assessments/seo/UrlLengthAssessment.js +102 -0
- package/build/scoring/assessments/seo/UrlLengthAssessment.js.map +1 -0
- package/build/scoring/assessors/assessor.js +248 -0
- package/build/scoring/assessors/assessor.js.map +1 -0
- package/build/scoring/assessors/avadaAssessor.js +65 -0
- package/build/scoring/assessors/avadaAssessor.js.map +1 -0
- package/build/scoring/assessors/contentAssessor.js +149 -0
- package/build/scoring/assessors/contentAssessor.js.map +1 -0
- package/build/scoring/assessors/index.js +35 -0
- package/build/scoring/assessors/index.js.map +1 -0
- package/build/scoring/assessors/seoAssessor.js +44 -0
- package/build/scoring/assessors/seoAssessor.js.map +1 -0
- package/build/scoring/helpers/assessments/checkForTooLongSentences.js +19 -0
- package/build/scoring/helpers/assessments/checkForTooLongSentences.js.map +1 -0
- package/build/scoring/helpers/assessments/inRange.js +51 -0
- package/build/scoring/helpers/assessments/inRange.js.map +1 -0
- package/build/scoring/helpers/assessments/keyphraseLengthFactor.js +17 -0
- package/build/scoring/helpers/assessments/keyphraseLengthFactor.js.map +1 -0
- package/build/scoring/helpers/assessments/recommendedKeywordCount.js +47 -0
- package/build/scoring/helpers/assessments/recommendedKeywordCount.js.map +1 -0
- package/build/scoring/helpers/index.js +92 -0
- package/build/scoring/helpers/index.js.map +1 -0
- package/build/scoring/interpreters/index.js +14 -0
- package/build/scoring/interpreters/index.js.map +1 -0
- package/build/scoring/interpreters/scoreToRating.js +32 -0
- package/build/scoring/interpreters/scoreToRating.js.map +1 -0
- package/build/scoring/renderers/AssessorPresenter.js +348 -0
- package/build/scoring/renderers/AssessorPresenter.js.map +1 -0
- package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js +203 -0
- package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js.map +1 -0
- package/build/scoring/scoreAggregators/SEOScoreAggregator.js +60 -0
- package/build/scoring/scoreAggregators/SEOScoreAggregator.js.map +1 -0
- package/build/scoring/scoreAggregators/ScoreAggregator.js +30 -0
- package/build/scoring/scoreAggregators/ScoreAggregator.js.map +1 -0
- package/build/scoring/scoreAggregators/index.js +28 -0
- package/build/scoring/scoreAggregators/index.js.map +1 -0
- package/build/values/AssessmentResult.js +485 -0
- package/build/values/AssessmentResult.js.map +1 -0
- package/build/values/Mark.js +273 -0
- package/build/values/Mark.js.map +1 -0
- package/build/values/Paper.js +425 -0
- package/build/values/Paper.js.map +1 -0
- package/build/values/index.js +28 -0
- package/build/values/index.js.map +1 -0
- package/build/vendor/turkishStemmer.js +2817 -0
- package/build/vendor/turkishStemmer.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _lodash = require("lodash");
|
|
8
|
+
var _core = _interopRequireDefault(require("tokenizer2/core"));
|
|
9
|
+
var _quotes = require("../sanitize/quotes.js");
|
|
10
|
+
var _abbreviations = _interopRequireDefault(require("../../languages/en/config/abbreviations"));
|
|
11
|
+
var _createRegexFromArray = _interopRequireDefault(require("../regex/createRegexFromArray"));
|
|
12
|
+
var _wordBoundaries = _interopRequireDefault(require("../../../config/wordBoundaries"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
// All characters that indicate a sentence delimiter.
|
|
15
|
+
const fullStop = ".";
|
|
16
|
+
const fullStopRegex = new RegExp("^[" + fullStop + "]$");
|
|
17
|
+
const smallerThanContentRegex = /^<[^><]*$/;
|
|
18
|
+
const htmlStartRegex = /^<([^>\s/]+)[^>]*>$/mi;
|
|
19
|
+
const htmlEndRegex = /^<\/([^>\s]+)[^>]*>$/mi;
|
|
20
|
+
const blockStartRegex = /^\s*[[({]\s*$/;
|
|
21
|
+
const blockEndRegex = /^\s*[\])}]\s*$/;
|
|
22
|
+
const abbreviationsPreparedForRegex = _abbreviations.default.map(abbreviation => abbreviation.replace(".", "\\."));
|
|
23
|
+
const abbreviationsRegex = (0, _createRegexFromArray.default)(abbreviationsPreparedForRegex);
|
|
24
|
+
const wordBoundariesForRegex = "(^|$|[" + (0, _wordBoundaries.default)().map(boundary => "\\" + boundary).join("") + "])";
|
|
25
|
+
const lastCharacterPartOfInitialsRegex = new RegExp(wordBoundariesForRegex + "[A-Za-z]$");
|
|
26
|
+
|
|
27
|
+
// Constants to be used in isValidTagPair.
|
|
28
|
+
// A regex to get the tag type.
|
|
29
|
+
const tagTypeRegex = /<\/?([^\s]+?)(\s|>)/;
|
|
30
|
+
// Semantic tags (as opposed to style tags) are tags that are used to structure the text.
|
|
31
|
+
const semanticTags = ["p", "div", "h1", "h2", "h3", "h4", "h5", "h6", "span", "li", "main"];
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Class for tokenizing a (html) text into sentences.
|
|
35
|
+
*/
|
|
36
|
+
class SentenceTokenizer {
|
|
37
|
+
/**
|
|
38
|
+
* Constructor
|
|
39
|
+
* @constructor
|
|
40
|
+
*/
|
|
41
|
+
constructor() {
|
|
42
|
+
/*
|
|
43
|
+
* \u2026 - ellipsis.
|
|
44
|
+
* \u06D4 - Urdu full stop.
|
|
45
|
+
* \u061f - Arabic question mark.
|
|
46
|
+
*/
|
|
47
|
+
this.sentenceDelimiters = "”〞〟„』›»’‛`\"?!\u2026\u06d4\u061f";
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Gets the sentence delimiters.
|
|
52
|
+
*
|
|
53
|
+
* @returns {string} The sentence delimiters.
|
|
54
|
+
*/
|
|
55
|
+
getSentenceDelimiters() {
|
|
56
|
+
return this.sentenceDelimiters;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Returns whether or not a certain character is a number.
|
|
61
|
+
*
|
|
62
|
+
* @param {string} character The character to check.
|
|
63
|
+
* @returns {boolean} Whether or not the character is a capital letter.
|
|
64
|
+
*/
|
|
65
|
+
isNumber(character) {
|
|
66
|
+
return !(0, _lodash.isNaN)(parseInt(character, 10));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Returns whether or not a given HTML tag is a break tag.
|
|
71
|
+
*
|
|
72
|
+
* @param {string} htmlTag The HTML tag to check.
|
|
73
|
+
* @returns {boolean} Whether or not the given HTML tag is a break tag.
|
|
74
|
+
*/
|
|
75
|
+
isBreakTag(htmlTag) {
|
|
76
|
+
return /<\/?br/.test(htmlTag);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Returns whether or not a given character is quotation mark.
|
|
81
|
+
*
|
|
82
|
+
* @param {string} character The character to check.
|
|
83
|
+
* @returns {boolean} Whether or not the given character is a quotation mark.
|
|
84
|
+
*/
|
|
85
|
+
isQuotation(character) {
|
|
86
|
+
character = (0, _quotes.normalize)(character);
|
|
87
|
+
return "'" === character || "\"" === character;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* A mock definition of this function. This function is only used in extensions for languages that use an ordinal dot.
|
|
92
|
+
*
|
|
93
|
+
* @returns {boolean} Always returns false as it is a language specific implementation if a language has an ordinal dot.
|
|
94
|
+
*/
|
|
95
|
+
endsWithOrdinalDot() {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Returns whether or not a given character is a punctuation mark that can be at the beginning
|
|
101
|
+
* of a sentence, like ¿ and ¡ used in Spanish.
|
|
102
|
+
*
|
|
103
|
+
* @param {string} character The character to check.
|
|
104
|
+
* @returns {boolean} Whether or not the given character is a punctuation mark.
|
|
105
|
+
*/
|
|
106
|
+
isPunctuation(character) {
|
|
107
|
+
return "¿" === character || "¡" === character;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Removes duplicate whitespace from a given text.
|
|
112
|
+
*
|
|
113
|
+
* @param {string} text The text with duplicate whitespace.
|
|
114
|
+
* @returns {string} The text without duplicate whitespace.
|
|
115
|
+
*/
|
|
116
|
+
removeDuplicateWhitespace(text) {
|
|
117
|
+
return text.replace(/\s+/, " ");
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Returns whether or not a certain character is a capital letter.
|
|
122
|
+
*
|
|
123
|
+
* @param {string} character The character to check.
|
|
124
|
+
* @returns {boolean} Whether or not the character is a capital letter.
|
|
125
|
+
*/
|
|
126
|
+
isCapitalLetter(character) {
|
|
127
|
+
return character !== character.toLocaleLowerCase();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Checks whether the given character is a smaller than sign.
|
|
132
|
+
*
|
|
133
|
+
* This function is used to make sure that tokenizing the content after
|
|
134
|
+
* the smaller than sign works as expected.
|
|
135
|
+
* E.g. 'A sentence. < Hello world!' = ['A sentence.', '< Hello world!'].
|
|
136
|
+
*
|
|
137
|
+
* @param {string} character The character to check.
|
|
138
|
+
* @returns {boolean} Whether the character is a smaller than sign ('<') or not.
|
|
139
|
+
*/
|
|
140
|
+
isSmallerThanSign(character) {
|
|
141
|
+
return character === "<";
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Retrieves the next two characters from an array with the two next tokens.
|
|
146
|
+
*
|
|
147
|
+
* @param {Array} nextTokens The two next tokens. Might be undefined.
|
|
148
|
+
* @returns {string} The next two characters.
|
|
149
|
+
*/
|
|
150
|
+
getNextTwoCharacters(nextTokens) {
|
|
151
|
+
let next = "";
|
|
152
|
+
if (!(0, _lodash.isUndefined)(nextTokens[0])) {
|
|
153
|
+
next += nextTokens[0].src;
|
|
154
|
+
}
|
|
155
|
+
if (!(0, _lodash.isUndefined)(nextTokens[1])) {
|
|
156
|
+
next += nextTokens[1].src;
|
|
157
|
+
}
|
|
158
|
+
next = this.removeDuplicateWhitespace(next);
|
|
159
|
+
return next;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Checks whether a character is from a language that's written from right to left.
|
|
164
|
+
* These languages don't have capital letter forms. Therefore any letter from these languages is a
|
|
165
|
+
* potential sentence beginning.
|
|
166
|
+
*
|
|
167
|
+
* @param {string} letter The letter to check.
|
|
168
|
+
*
|
|
169
|
+
* @returns {boolean} Whether the letter is from an LTR language.
|
|
170
|
+
*/
|
|
171
|
+
isLetterFromSpecificLanguage(letter) {
|
|
172
|
+
const ltrLetterRanges = [
|
|
173
|
+
// Hebrew characters.
|
|
174
|
+
/^[\u0590-\u05fe]+$/i,
|
|
175
|
+
// Arabic characters (used for Arabic, Farsi, Urdu).
|
|
176
|
+
/^[\u0600-\u06FF]+$/i,
|
|
177
|
+
// Additional Farsi characters.
|
|
178
|
+
/^[\uFB8A\u067E\u0686\u06AF]+$/i];
|
|
179
|
+
return ltrLetterRanges.some(ltrLetterRange => ltrLetterRange.test(letter));
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Checks if the sentenceBeginning beginning is a valid beginning.
|
|
184
|
+
*
|
|
185
|
+
* @param {string} sentenceBeginning The beginning of the sentence to validate.
|
|
186
|
+
* @returns {boolean} Returns true if it is a valid beginning, false if it is not.
|
|
187
|
+
*/
|
|
188
|
+
isValidSentenceBeginning(sentenceBeginning) {
|
|
189
|
+
return this.isCapitalLetter(sentenceBeginning) || this.isLetterFromSpecificLanguage(sentenceBeginning) || this.isNumber(sentenceBeginning) || this.isQuotation(sentenceBeginning) || this.isPunctuation(sentenceBeginning) || this.isSmallerThanSign(sentenceBeginning);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Checks if the token is a valid sentence start.
|
|
194
|
+
*
|
|
195
|
+
* @param {Object} token The token to validate.
|
|
196
|
+
* @returns {boolean} Returns true if the token is valid sentence start, false if it is not.
|
|
197
|
+
*/
|
|
198
|
+
isSentenceStart(token) {
|
|
199
|
+
return !(0, _lodash.isUndefined)(token) && ("html-start" === token.type || "html-end" === token.type || "block-start" === token.type);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Checks if the token is a valid sentence ending. A valid sentence ending is either a full stop or another
|
|
204
|
+
* delimiter such as "?", "!", etc.
|
|
205
|
+
*
|
|
206
|
+
* @param {Object} token The token to validate.
|
|
207
|
+
* @returns {boolean} Returns true if the token is valid sentence ending, false if it is not.
|
|
208
|
+
*/
|
|
209
|
+
isSentenceEnding(token) {
|
|
210
|
+
return !(0, _lodash.isUndefined)(token) && (token.type === "full-stop" || token.type === "sentence-delimiter");
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Checks if a full stop is part of a person's initials.
|
|
215
|
+
*
|
|
216
|
+
* Tests if tokens exist. Then tests if the tokens are of the right type.
|
|
217
|
+
* For previous token, it checks if the sentence ends with a single letter.
|
|
218
|
+
* For nextToken it checks if it is a single letter.
|
|
219
|
+
* Checks if next token is followed by a full stop.
|
|
220
|
+
*
|
|
221
|
+
* @param {object} token The current token (must be a full stop).
|
|
222
|
+
* @param {object} previousToken The token before the full stop.
|
|
223
|
+
* @param {object} nextToken The token following the full stop.
|
|
224
|
+
* @param {object} secondToNextToken The second token after the full stop.
|
|
225
|
+
* @returns {boolean} True if a full stop is part of a person's initials, False if the full stop is not part of a person's initials.
|
|
226
|
+
*/
|
|
227
|
+
isPartOfPersonInitial(token, previousToken, nextToken, secondToNextToken) {
|
|
228
|
+
return !(0, _lodash.isUndefined)(token) && !(0, _lodash.isUndefined)(nextToken) && !(0, _lodash.isUndefined)(secondToNextToken) && !(0, _lodash.isUndefined)(previousToken) && token.type === "full-stop" && previousToken.type === "sentence" && lastCharacterPartOfInitialsRegex.test(previousToken.src) && nextToken.type === "sentence" && nextToken.src.trim().length === 1 && secondToNextToken.type === "full-stop";
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Tokens that represent a '<', followed by content until it enters another '<' or '>'
|
|
233
|
+
* gets another pass by the tokenizer.
|
|
234
|
+
*
|
|
235
|
+
* @param {Object} token A token of type 'smaller-than-sign-content'.
|
|
236
|
+
* @param {string[]} tokenSentences The current array of found sentences. Sentences may get added by this method.
|
|
237
|
+
* @param {string} currentSentence The current sentence. Sentence parts may get appended by this method.
|
|
238
|
+
* @returns {{tokenSentences, currentSentence}} The found sentences and the current sentence, appended when necessary.
|
|
239
|
+
*/
|
|
240
|
+
tokenizeSmallerThanContent(token, tokenSentences, currentSentence) {
|
|
241
|
+
/*
|
|
242
|
+
Remove the '<' from the text, to avoid matching this rule
|
|
243
|
+
recursively again and again.
|
|
244
|
+
We add it again later on.
|
|
245
|
+
*/
|
|
246
|
+
const localText = token.src.substring(1);
|
|
247
|
+
|
|
248
|
+
// Tokenize the current smaller-than-content token without the first '<'.
|
|
249
|
+
const tokenizerResult = this.createTokenizer();
|
|
250
|
+
this.tokenize(tokenizerResult.tokenizer, localText);
|
|
251
|
+
const localSentences = this.getSentencesFromTokens(tokenizerResult.tokens, false);
|
|
252
|
+
localSentences[0] = (0, _lodash.isUndefined)(localSentences[0]) ? "<" : "<" + localSentences[0];
|
|
253
|
+
|
|
254
|
+
/*
|
|
255
|
+
* When the first sentence has a valid sentence beginning.
|
|
256
|
+
* Add the currently build sentence to the sentences.
|
|
257
|
+
* Start building the next sentence.
|
|
258
|
+
*/
|
|
259
|
+
if (this.isValidSentenceBeginning(localSentences[0])) {
|
|
260
|
+
tokenSentences.push(currentSentence);
|
|
261
|
+
currentSentence = "";
|
|
262
|
+
}
|
|
263
|
+
currentSentence += localSentences[0];
|
|
264
|
+
if (localSentences.length > 1) {
|
|
265
|
+
/*
|
|
266
|
+
There is a new sentence after the first,
|
|
267
|
+
add and reset the current sentence.
|
|
268
|
+
*/
|
|
269
|
+
tokenSentences.push(currentSentence);
|
|
270
|
+
currentSentence = "";
|
|
271
|
+
|
|
272
|
+
// Remove the first sentence (we do not need to add it again).
|
|
273
|
+
localSentences.shift();
|
|
274
|
+
// Last sentence gets special treatment.
|
|
275
|
+
const lastSentence = localSentences.pop();
|
|
276
|
+
|
|
277
|
+
// Add the remaining found sentences.
|
|
278
|
+
localSentences.forEach(sentence => {
|
|
279
|
+
tokenSentences.push(sentence);
|
|
280
|
+
});
|
|
281
|
+
const sentenceEndRegex = new RegExp("[" + fullStop + this.getSentenceDelimiters() + "]$");
|
|
282
|
+
|
|
283
|
+
// Check if the last sentence has a valid sentence ending.
|
|
284
|
+
if (lastSentence.match(sentenceEndRegex)) {
|
|
285
|
+
// If so, add it as a sentence.
|
|
286
|
+
tokenSentences.push(lastSentence);
|
|
287
|
+
} else {
|
|
288
|
+
// If not, start making a new one.
|
|
289
|
+
currentSentence = lastSentence;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
return {
|
|
293
|
+
tokenSentences,
|
|
294
|
+
currentSentence
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Creates a tokenizer.
|
|
300
|
+
*
|
|
301
|
+
* @returns {Object} The tokenizer and the tokens.
|
|
302
|
+
*/
|
|
303
|
+
createTokenizer() {
|
|
304
|
+
const sentenceDelimiterRegex = new RegExp("^[" + this.getSentenceDelimiters() + "]$");
|
|
305
|
+
const sentenceRegex = new RegExp("^[^" + fullStop + this.getSentenceDelimiters() + "<\\(\\)\\[\\]]+$");
|
|
306
|
+
const tokens = [];
|
|
307
|
+
const tokenizer = (0, _core.default)(function (token) {
|
|
308
|
+
tokens.push(token);
|
|
309
|
+
});
|
|
310
|
+
tokenizer.addRule(fullStopRegex, "full-stop");
|
|
311
|
+
tokenizer.addRule(smallerThanContentRegex, "smaller-than-sign-content");
|
|
312
|
+
tokenizer.addRule(htmlStartRegex, "html-start");
|
|
313
|
+
tokenizer.addRule(htmlEndRegex, "html-end");
|
|
314
|
+
tokenizer.addRule(blockStartRegex, "block-start");
|
|
315
|
+
tokenizer.addRule(blockEndRegex, "block-end");
|
|
316
|
+
tokenizer.addRule(sentenceDelimiterRegex, "sentence-delimiter");
|
|
317
|
+
tokenizer.addRule(sentenceRegex, "sentence");
|
|
318
|
+
return {
|
|
319
|
+
tokenizer,
|
|
320
|
+
tokens
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Tokenizes the given text using the given tokenizer.
|
|
326
|
+
*
|
|
327
|
+
* @param {Object} tokenizer The tokenizer to use.
|
|
328
|
+
* @param {string} text The text to tokenize.
|
|
329
|
+
* @returns {void}
|
|
330
|
+
*/
|
|
331
|
+
tokenize(tokenizer, text) {
|
|
332
|
+
tokenizer.onText(text);
|
|
333
|
+
try {
|
|
334
|
+
tokenizer.end();
|
|
335
|
+
} catch (e) {
|
|
336
|
+
console.error("Tokenizer end error:", e, e.tokenizer2);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* Checks if a string ends with an abbreviation.
|
|
342
|
+
* @param {string} currentSentence A (part of) a sentence.
|
|
343
|
+
* @returns {boolean} True if the string ends with an abbreviation that is in abbreviations.js. Otherwise, False.
|
|
344
|
+
*/
|
|
345
|
+
endsWithAbbreviation(currentSentence) {
|
|
346
|
+
const matchedAbbreviations = currentSentence.match(abbreviationsRegex);
|
|
347
|
+
if (!matchedAbbreviations) {
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
const lastAbbreviation = matchedAbbreviations.pop();
|
|
351
|
+
return currentSentence.endsWith(lastAbbreviation);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* Checks whether the given tokens are a valid html tag pair.
|
|
356
|
+
* Note that this method is not a full html tag validator. It should be replaced with a better solution once the html parser is implemented.
|
|
357
|
+
*
|
|
358
|
+
* @param {object} firstToken The first token to check. It is asserted that this token contains/is an opening html tag.
|
|
359
|
+
* @param {object} lastToken The last token to check. It is asserted that this token contains/is a closing html tag.
|
|
360
|
+
*
|
|
361
|
+
* @returns {boolean} True if the tokens are a valid html tag pair. Otherwise, False.
|
|
362
|
+
*/
|
|
363
|
+
isValidTagPair(firstToken, lastToken) {
|
|
364
|
+
const firstTokenText = firstToken.src;
|
|
365
|
+
const lastTokenText = lastToken.src;
|
|
366
|
+
|
|
367
|
+
// Get the tag types.
|
|
368
|
+
const firstTagType = firstTokenText.match(tagTypeRegex)[1];
|
|
369
|
+
const lastTagType = lastTokenText.match(tagTypeRegex)[1];
|
|
370
|
+
|
|
371
|
+
// Check if the tags are the same and if they are a semantic tag (p, div, h1, h2, h3, h4, h5, h6, span).
|
|
372
|
+
return firstTagType === lastTagType && semanticTags.includes(firstTagType);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Returns an array of sentences for a given array of tokens, assumes that the text has already been split into blocks.
|
|
377
|
+
*
|
|
378
|
+
* @param {Object[]} tokenArray The tokens from the sentence tokenizer.
|
|
379
|
+
* @param {boolean} [trimSentences=true] Whether to trim the sentences at the end or not.
|
|
380
|
+
*
|
|
381
|
+
* @returns {string[]} A list of sentences.
|
|
382
|
+
*/
|
|
383
|
+
getSentencesFromTokens(tokenArray, trimSentences = true) {
|
|
384
|
+
let tokenSentences = [],
|
|
385
|
+
currentSentence = "",
|
|
386
|
+
nextSentenceStart,
|
|
387
|
+
sliced;
|
|
388
|
+
|
|
389
|
+
// Drop the first and last HTML tag if both are present.
|
|
390
|
+
do {
|
|
391
|
+
sliced = false;
|
|
392
|
+
const firstToken = tokenArray[0];
|
|
393
|
+
const lastToken = tokenArray[tokenArray.length - 1];
|
|
394
|
+
if (firstToken && lastToken && firstToken.type === "html-start" && lastToken.type === "html-end" && this.isValidTagPair(firstToken, lastToken)) {
|
|
395
|
+
tokenArray = tokenArray.slice(1, tokenArray.length - 1);
|
|
396
|
+
sliced = true;
|
|
397
|
+
}
|
|
398
|
+
} while (sliced && tokenArray.length > 1);
|
|
399
|
+
tokenArray.forEach((token, i) => {
|
|
400
|
+
let hasNextSentence, nextCharacters, tokenizeResults;
|
|
401
|
+
const nextToken = tokenArray[i + 1];
|
|
402
|
+
const previousToken = tokenArray[i - 1];
|
|
403
|
+
const secondToNextToken = tokenArray[i + 2];
|
|
404
|
+
nextCharacters = this.getNextTwoCharacters([nextToken, secondToNextToken]);
|
|
405
|
+
|
|
406
|
+
// For a new sentence we need to check the next two characters.
|
|
407
|
+
hasNextSentence = nextCharacters.length >= 2;
|
|
408
|
+
nextSentenceStart = hasNextSentence ? nextCharacters[1] : "";
|
|
409
|
+
switch (token.type) {
|
|
410
|
+
case "html-start":
|
|
411
|
+
case "html-end":
|
|
412
|
+
if (this.isBreakTag(token.src)) {
|
|
413
|
+
tokenSentences.push(currentSentence);
|
|
414
|
+
currentSentence = "";
|
|
415
|
+
} else {
|
|
416
|
+
currentSentence += token.src;
|
|
417
|
+
}
|
|
418
|
+
break;
|
|
419
|
+
case "smaller-than-sign-content":
|
|
420
|
+
tokenizeResults = this.tokenizeSmallerThanContent(token, tokenSentences, currentSentence);
|
|
421
|
+
tokenSentences = tokenizeResults.tokenSentences;
|
|
422
|
+
currentSentence = tokenizeResults.currentSentence;
|
|
423
|
+
break;
|
|
424
|
+
case "sentence":
|
|
425
|
+
currentSentence += token.src;
|
|
426
|
+
break;
|
|
427
|
+
case "sentence-delimiter":
|
|
428
|
+
currentSentence += token.src;
|
|
429
|
+
|
|
430
|
+
/*
|
|
431
|
+
* Only split text into sentences if:
|
|
432
|
+
* the next token is defined, AND
|
|
433
|
+
* the next token type is neither "block-end" nor "sentence-delimiter", AND
|
|
434
|
+
* the next token first character is a white space
|
|
435
|
+
*/
|
|
436
|
+
if (!(0, _lodash.isUndefined)(nextToken) && "block-end" !== nextToken.type && "sentence-delimiter" !== nextToken.type && this.isCharacterASpace(nextToken.src[0])) {
|
|
437
|
+
// Don't split on quotation marks unless they're preceded by a full stop.
|
|
438
|
+
if (this.isQuotation(token.src) && previousToken && previousToken.src !== ".") {
|
|
439
|
+
break;
|
|
440
|
+
}
|
|
441
|
+
/*
|
|
442
|
+
* Only split on ellipsis or quotation marks when:
|
|
443
|
+
* a) There is a next sentence, and the next character is a valid sentence beginning preceded by a white space, OR
|
|
444
|
+
* b) The next token is a sentence start
|
|
445
|
+
*/
|
|
446
|
+
if (this.isQuotation(token.src) || token.src === "…") {
|
|
447
|
+
currentSentence = this.getValidSentence(hasNextSentence, nextSentenceStart, nextCharacters, nextToken, tokenSentences, currentSentence);
|
|
448
|
+
} else {
|
|
449
|
+
tokenSentences.push(currentSentence);
|
|
450
|
+
currentSentence = "";
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
break;
|
|
454
|
+
case "full-stop":
|
|
455
|
+
currentSentence += token.src;
|
|
456
|
+
nextCharacters = this.getNextTwoCharacters([nextToken, secondToNextToken]);
|
|
457
|
+
|
|
458
|
+
// For a new sentence we need to check the next two characters.
|
|
459
|
+
hasNextSentence = nextCharacters.length >= 2;
|
|
460
|
+
nextSentenceStart = hasNextSentence ? nextCharacters[1] : "";
|
|
461
|
+
|
|
462
|
+
// If the current sentence ends with an abbreviation, the full stop does not split the sentence.
|
|
463
|
+
if (this.endsWithAbbreviation(currentSentence)) {
|
|
464
|
+
break;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
// It should not split the text if the first character of the potential next sentence is a number.
|
|
468
|
+
if (hasNextSentence && this.isNumber(nextCharacters[0])) {
|
|
469
|
+
break;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
// If the full stop is part of a person's initials, don't split sentence.
|
|
473
|
+
if (this.isPartOfPersonInitial(token, previousToken, nextToken, secondToNextToken)) {
|
|
474
|
+
break;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
// If the full stop is an ordinal dot (in German), then don't break the sentence.
|
|
478
|
+
// This check should be done after hasNextSentence && this.isNumber( nextCharacters[ 0 ] ) (above).
|
|
479
|
+
// Because otherwise it could break before that test.
|
|
480
|
+
if (this.endsWithOrdinalDot(currentSentence)) {
|
|
481
|
+
break;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/*
|
|
485
|
+
* Only split on full stop when:
|
|
486
|
+
* a) There is a next sentence, and the next character is a valid sentence beginning preceded by a white space, OR
|
|
487
|
+
* b) The next token is a sentence start
|
|
488
|
+
*/
|
|
489
|
+
currentSentence = this.getValidSentence(hasNextSentence, nextSentenceStart, nextCharacters, nextToken, tokenSentences, currentSentence);
|
|
490
|
+
break;
|
|
491
|
+
case "block-start":
|
|
492
|
+
currentSentence += token.src;
|
|
493
|
+
break;
|
|
494
|
+
case "block-end":
|
|
495
|
+
currentSentence += token.src;
|
|
496
|
+
nextCharacters = this.getNextTwoCharacters([nextToken, secondToNextToken]);
|
|
497
|
+
|
|
498
|
+
// For a new sentence we need to check the next two characters.
|
|
499
|
+
hasNextSentence = nextCharacters.length >= 2;
|
|
500
|
+
nextSentenceStart = hasNextSentence ? nextCharacters[0] : "";
|
|
501
|
+
|
|
502
|
+
/* Don't split if:
|
|
503
|
+
* - The next character is a number. For example: IPv4-numbers.
|
|
504
|
+
* - The block end is preceded by a valid sentence ending, but not followed by a valid sentence beginning.
|
|
505
|
+
*/
|
|
506
|
+
if (hasNextSentence && this.isNumber(nextCharacters[0]) || this.isSentenceEnding(previousToken) && !(this.isValidSentenceBeginning(nextSentenceStart) || this.isSentenceStart(nextToken))) {
|
|
507
|
+
break;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
/*
|
|
511
|
+
* Split if:
|
|
512
|
+
* - The block end is preceded by a sentence ending and followed by a valid sentence beginning.
|
|
513
|
+
*/
|
|
514
|
+
if (this.isSentenceEnding(previousToken) && (this.isSentenceStart(nextToken) || this.isValidSentenceBeginning(nextSentenceStart))) {
|
|
515
|
+
tokenSentences.push(currentSentence);
|
|
516
|
+
currentSentence = "";
|
|
517
|
+
}
|
|
518
|
+
break;
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
if ("" !== currentSentence) {
|
|
522
|
+
tokenSentences.push(currentSentence);
|
|
523
|
+
}
|
|
524
|
+
if (trimSentences) {
|
|
525
|
+
tokenSentences = (0, _lodash.map)(tokenSentences, function (sentence) {
|
|
526
|
+
return sentence.trim();
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
return tokenSentences;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* Gets the current sentence when:
|
|
534
|
+
* a) There is a next sentence, and the next character is a valid sentence beginning preceded by a white space, OR
|
|
535
|
+
* b) The next token is a sentence start
|
|
536
|
+
*
|
|
537
|
+
* @param {boolean} hasNextSentence Whether the next characters are more than two.
|
|
538
|
+
* @param {string} nextSentenceStart The second character of the next characters.
|
|
539
|
+
* @param {string} nextCharacters The string values of the next two tokens.
|
|
540
|
+
* @param {object} nextToken The next token object.
|
|
541
|
+
* @param {array} tokenSentences The array of pushed valid sentences.
|
|
542
|
+
* @param {string} currentSentence The current sentence.
|
|
543
|
+
*
|
|
544
|
+
* @returns {string} The current sentence.
|
|
545
|
+
*/
|
|
546
|
+
getValidSentence(hasNextSentence, nextSentenceStart, nextCharacters, nextToken, tokenSentences, currentSentence) {
|
|
547
|
+
if (hasNextSentence && this.isValidSentenceBeginning(nextSentenceStart) && this.isCharacterASpace(nextCharacters[0]) || this.isSentenceStart(nextToken)) {
|
|
548
|
+
tokenSentences.push(currentSentence);
|
|
549
|
+
currentSentence = "";
|
|
550
|
+
}
|
|
551
|
+
return currentSentence;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* Checks if the character is a whitespace.
|
|
556
|
+
*
|
|
557
|
+
* @param {string} character The character to check.
|
|
558
|
+
* @returns {boolean} Whether the character is a whitespace.
|
|
559
|
+
*/
|
|
560
|
+
isCharacterASpace(character) {
|
|
561
|
+
return /\s/.test(character);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
exports.default = SentenceTokenizer;
|
|
565
|
+
//# sourceMappingURL=SentenceTokenizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SentenceTokenizer.js","names":["_lodash","require","_core","_interopRequireDefault","_quotes","_abbreviations","_createRegexFromArray","_wordBoundaries","e","__esModule","default","fullStop","fullStopRegex","RegExp","smallerThanContentRegex","htmlStartRegex","htmlEndRegex","blockStartRegex","blockEndRegex","abbreviationsPreparedForRegex","abbreviations","map","abbreviation","replace","abbreviationsRegex","createRegexFromArray","wordBoundariesForRegex","wordBoundaries","boundary","join","lastCharacterPartOfInitialsRegex","tagTypeRegex","semanticTags","SentenceTokenizer","constructor","sentenceDelimiters","getSentenceDelimiters","isNumber","character","isNaN","parseInt","isBreakTag","htmlTag","test","isQuotation","normalizeQuotes","endsWithOrdinalDot","isPunctuation","removeDuplicateWhitespace","text","isCapitalLetter","toLocaleLowerCase","isSmallerThanSign","getNextTwoCharacters","nextTokens","next","isUndefined","src","isLetterFromSpecificLanguage","letter","ltrLetterRanges","some","ltrLetterRange","isValidSentenceBeginning","sentenceBeginning","isSentenceStart","token","type","isSentenceEnding","isPartOfPersonInitial","previousToken","nextToken","secondToNextToken","trim","length","tokenizeSmallerThanContent","tokenSentences","currentSentence","localText","substring","tokenizerResult","createTokenizer","tokenize","tokenizer","localSentences","getSentencesFromTokens","tokens","push","shift","lastSentence","pop","forEach","sentence","sentenceEndRegex","match","sentenceDelimiterRegex","sentenceRegex","core","addRule","onText","end","console","error","tokenizer2","endsWithAbbreviation","matchedAbbreviations","lastAbbreviation","endsWith","isValidTagPair","firstToken","lastToken","firstTokenText","lastTokenText","firstTagType","lastTagType","includes","tokenArray","trimSentences","nextSentenceStart","sliced","slice","i","hasNextSentence","nextCharacters","tokenizeResults","isCharacterASpace","getValidSentence","exports"],"sources":["../../../../src/languageProcessing/helpers/sentence/SentenceTokenizer.js"],"sourcesContent":["import { isNaN, isUndefined, map } from \"lodash\";\n\nimport core from \"tokenizer2/core\";\n\nimport { normalize as normalizeQuotes } from \"../sanitize/quotes.js\";\n\nimport abbreviations from \"../../languages/en/config/abbreviations\";\n\nimport createRegexFromArray from \"../regex/createRegexFromArray\";\nimport wordBoundaries from \"../../../config/wordBoundaries\";\n\n// All characters that indicate a sentence delimiter.\nconst fullStop = \".\";\n\nconst fullStopRegex = new RegExp( \"^[\" + fullStop + \"]$\" );\nconst smallerThanContentRegex = /^<[^><]*$/;\nconst htmlStartRegex = /^<([^>\\s/]+)[^>]*>$/mi;\nconst htmlEndRegex = /^<\\/([^>\\s]+)[^>]*>$/mi;\n\nconst blockStartRegex = /^\\s*[[({]\\s*$/;\nconst blockEndRegex = /^\\s*[\\])}]\\s*$/;\n\nconst abbreviationsPreparedForRegex = abbreviations.map( ( abbreviation ) => abbreviation.replace( \".\", \"\\\\.\" ) );\nconst abbreviationsRegex = createRegexFromArray( abbreviationsPreparedForRegex );\n\nconst wordBoundariesForRegex = \"(^|$|[\" + wordBoundaries().map( ( boundary ) => \"\\\\\" + boundary ).join( \"\" ) + \"])\";\nconst lastCharacterPartOfInitialsRegex = new RegExp( wordBoundariesForRegex + \"[A-Za-z]$\" );\n\n// Constants to be used in isValidTagPair.\n// A regex to get the tag type.\nconst tagTypeRegex = /<\\/?([^\\s]+?)(\\s|>)/;\n// Semantic tags (as opposed to style tags) are tags that are used to structure the text.\nconst semanticTags = [ \"p\", \"div\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"span\", \"li\", \"main\" ];\n\n/**\n * Class for tokenizing a (html) text into sentences.\n */\nexport default class SentenceTokenizer {\n\t/**\n\t * Constructor\n\t * @constructor\n\t */\n\tconstructor() {\n\t\t/*\n * \\u2026 - ellipsis.\n * \\u06D4 - Urdu full stop.\n * \\u061f - Arabic question mark.\n */\n\t\tthis.sentenceDelimiters = \"”〞〟„』›»’‛`\\\"?!\\u2026\\u06d4\\u061f\";\n\t}\n\n\t/**\n\t * Gets the sentence delimiters.\n\t *\n\t * @returns {string} The sentence delimiters.\n\t */\n\tgetSentenceDelimiters() {\n\t\treturn this.sentenceDelimiters;\n\t}\n\n\t/**\n\t * Returns whether or not a certain character is a number.\n\t *\n\t * @param {string} character The character to check.\n\t * @returns {boolean} Whether or not the character is a capital letter.\n\t */\n\tisNumber( character ) {\n\t\treturn ! isNaN( parseInt( character, 10 ) );\n\t}\n\n\t/**\n\t * Returns whether or not a given HTML tag is a break tag.\n\t *\n\t * @param {string} htmlTag The HTML tag to check.\n\t * @returns {boolean} Whether or not the given HTML tag is a break tag.\n\t */\n\tisBreakTag( htmlTag ) {\n\t\treturn /<\\/?br/.test( htmlTag );\n\t}\n\n\t/**\n\t * Returns whether or not a given character is quotation mark.\n\t *\n\t * @param {string} character The character to check.\n\t * @returns {boolean} Whether or not the given character is a quotation mark.\n\t */\n\tisQuotation( character ) {\n\t\tcharacter = normalizeQuotes( character );\n\n\t\treturn \"'\" === character ||\n\t\t\t\"\\\"\" === character;\n\t}\n\n\t/**\n\t * A mock definition of this function. This function is only used in extensions for languages that use an ordinal dot.\n\t *\n\t * @returns {boolean} Always returns false as it is a language specific implementation if a language has an ordinal dot.\n\t */\n\tendsWithOrdinalDot() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns whether or not a given character is a punctuation mark that can be at the beginning\n\t * of a sentence, like ¿ and ¡ used in Spanish.\n\t *\n\t * @param {string} character The character to check.\n\t * @returns {boolean} Whether or not the given character is a punctuation mark.\n\t */\n\tisPunctuation( character ) {\n\t\treturn \"¿\" === character ||\n\t\t\t\"¡\" === character;\n\t}\n\n\t/**\n\t * Removes duplicate whitespace from a given text.\n\t *\n\t * @param {string} text The text with duplicate whitespace.\n\t * @returns {string} The text without duplicate whitespace.\n\t */\n\tremoveDuplicateWhitespace( text ) {\n\t\treturn text.replace( /\\s+/, \" \" );\n\t}\n\n\t/**\n\t * Returns whether or not a certain character is a capital letter.\n\t *\n\t * @param {string} character The character to check.\n\t * @returns {boolean} Whether or not the character is a capital letter.\n\t */\n\tisCapitalLetter( character ) {\n\t\treturn character !== character.toLocaleLowerCase();\n\t}\n\n\t/**\n\t * Checks whether the given character is a smaller than sign.\n\t *\n\t * This function is used to make sure that tokenizing the content after\n\t * the smaller than sign works as expected.\n\t * E.g. 'A sentence. < Hello world!' = ['A sentence.', '< Hello world!'].\n\t *\n\t * @param {string} character The character to check.\n\t * @returns {boolean} Whether the character is a smaller than sign ('<') or not.\n\t */\n\tisSmallerThanSign( character ) {\n\t\treturn character === \"<\";\n\t}\n\n\t/**\n\t * Retrieves the next two characters from an array with the two next tokens.\n\t *\n\t * @param {Array} nextTokens The two next tokens. Might be undefined.\n\t * @returns {string} The next two characters.\n\t */\n\tgetNextTwoCharacters( nextTokens ) {\n\t\tlet next = \"\";\n\n\t\tif ( ! isUndefined( nextTokens[ 0 ] ) ) {\n\t\t\tnext += nextTokens[ 0 ].src;\n\t\t}\n\n\t\tif ( ! isUndefined( nextTokens[ 1 ] ) ) {\n\t\t\tnext += nextTokens[ 1 ].src;\n\t\t}\n\n\t\tnext = this.removeDuplicateWhitespace( next );\n\n\t\treturn next;\n\t}\n\n\t/**\n\t * Checks whether a character is from a language that's written from right to left.\n\t * These languages don't have capital letter forms. Therefore any letter from these languages is a\n\t * potential sentence beginning.\n\t *\n\t * @param {string} letter The letter to check.\n\t *\n\t * @returns {boolean} Whether the letter is from an LTR language.\n\t */\n\tisLetterFromSpecificLanguage( letter ) {\n\t\tconst ltrLetterRanges = [\n\t\t\t// Hebrew characters.\n\t\t\t/^[\\u0590-\\u05fe]+$/i,\n\t\t\t// Arabic characters (used for Arabic, Farsi, Urdu).\n\t\t\t/^[\\u0600-\\u06FF]+$/i,\n\t\t\t// Additional Farsi characters.\n\t\t\t/^[\\uFB8A\\u067E\\u0686\\u06AF]+$/i,\n\t\t];\n\n\t\treturn (\n\t\t\tltrLetterRanges.some( ltrLetterRange => ltrLetterRange.test( letter ) )\n\t\t);\n\t}\n\n\t/**\n\t * Checks if the sentenceBeginning beginning is a valid beginning.\n\t *\n\t * @param {string} sentenceBeginning The beginning of the sentence to validate.\n\t * @returns {boolean} Returns true if it is a valid beginning, false if it is not.\n\t */\n\tisValidSentenceBeginning( sentenceBeginning ) {\n\t\treturn ( this.isCapitalLetter( sentenceBeginning ) ||\n\t\t\t\tthis.isLetterFromSpecificLanguage( sentenceBeginning ) ||\n\t\t\t\tthis.isNumber( sentenceBeginning ) ||\n\t\t\t\tthis.isQuotation( sentenceBeginning ) ||\n\t\t\t\tthis.isPunctuation( sentenceBeginning ) ||\n\t\t\t\tthis.isSmallerThanSign( sentenceBeginning ) );\n\t}\n\n\t/**\n\t * Checks if the token is a valid sentence start.\n\t *\n\t * @param {Object} token The token to validate.\n\t * @returns {boolean} Returns true if the token is valid sentence start, false if it is not.\n\t */\n\tisSentenceStart( token ) {\n\t\treturn ( ! isUndefined( token ) && (\n\t\t\t\"html-start\" === token.type ||\n\t\t\t\"html-end\" === token.type ||\n\t\t\t\"block-start\" === token.type\n\t\t) );\n\t}\n\n\t/**\n\t * Checks if the token is a valid sentence ending. A valid sentence ending is either a full stop or another\n\t * delimiter such as \"?\", \"!\", etc.\n\t *\n\t * @param {Object} token The token to validate.\n\t * @returns {boolean} Returns true if the token is valid sentence ending, false if it is not.\n\t */\n\tisSentenceEnding( token ) {\n\t\treturn (\n\t\t\t! isUndefined( token ) &&\n\t\t\t( token.type === \"full-stop\" || token.type === \"sentence-delimiter\" )\n\t\t);\n\t}\n\n\t/**\n\t * Checks if a full stop is part of a person's initials.\n\t *\n\t * Tests if tokens exist. Then tests if the tokens are of the right type.\n\t * For previous token, it checks if the sentence ends with a single letter.\n\t * For nextToken it checks if it is a single letter.\n\t * Checks if next token is followed by a full stop.\n\t *\n\t * @param {object} token The current token (must be a full stop).\n\t * @param {object} previousToken The token before the full stop.\n\t * @param {object} nextToken The token following the full stop.\n\t * @param {object} secondToNextToken The second token after the full stop.\n\t * @returns {boolean} True if a full stop is part of a person's initials, False if the full stop is not part of a person's initials.\n\t */\n\tisPartOfPersonInitial( token, previousToken, nextToken, secondToNextToken ) {\n\t\treturn ( ! isUndefined( token ) &&\n\t\t\t! isUndefined( nextToken ) &&\n\t\t\t! isUndefined( secondToNextToken ) &&\n\t\t\t! isUndefined( previousToken ) &&\n\t\t\ttoken.type === \"full-stop\" &&\n\t\t\tpreviousToken.type === \"sentence\" &&\n\t\t\tlastCharacterPartOfInitialsRegex.test( previousToken.src ) &&\n\t\t\tnextToken.type === \"sentence\" &&\n\t\t\tnextToken.src.trim().length === 1 &&\n\t\t\tsecondToNextToken.type === \"full-stop\"\n\t\t);\n\t}\n\n\t/**\n\t * Tokens that represent a '<', followed by content until it enters another '<' or '>'\n\t * gets another pass by the tokenizer.\n\t *\n\t * @param {Object} token A token of type 'smaller-than-sign-content'.\n\t * @param {string[]} tokenSentences The current array of found sentences. Sentences may get added by this method.\n\t * @param {string} currentSentence The current sentence. Sentence parts may get appended by this method.\n\t * @returns {{tokenSentences, currentSentence}} The found sentences and the current sentence, appended when necessary.\n\t */\n\ttokenizeSmallerThanContent( token, tokenSentences, currentSentence ) {\n\t\t/*\n\t\t\tRemove the '<' from the text, to avoid matching this rule\n\t\t\trecursively again and again.\n\t\t\tWe add it again later on.\n\t\t*/\n\t\tconst localText = token.src.substring( 1 );\n\n\t\t// Tokenize the current smaller-than-content token without the first '<'.\n\t\tconst tokenizerResult = this.createTokenizer();\n\t\tthis.tokenize( tokenizerResult.tokenizer, localText );\n\t\tconst localSentences = this.getSentencesFromTokens( tokenizerResult.tokens, false );\n\n\t\tlocalSentences[ 0 ] = isUndefined( localSentences[ 0 ] ) ? \"<\" : \"<\" + localSentences[ 0 ];\n\n\t\t/*\n\t\t * When the first sentence has a valid sentence beginning.\n\t\t * Add the currently build sentence to the sentences.\n\t\t * Start building the next sentence.\n\t\t */\n\t\tif ( this.isValidSentenceBeginning( localSentences[ 0 ] ) ) {\n\t\t\ttokenSentences.push( currentSentence );\n\t\t\tcurrentSentence = \"\";\n\t\t}\n\t\tcurrentSentence += localSentences[ 0 ];\n\n\t\tif ( localSentences.length > 1 ) {\n\t\t\t/*\n\t\t\t\tThere is a new sentence after the first,\n\t\t\t\tadd and reset the current sentence.\n\t\t\t */\n\t\t\ttokenSentences.push( currentSentence );\n\t\t\tcurrentSentence = \"\";\n\n\t\t\t// Remove the first sentence (we do not need to add it again).\n\t\t\tlocalSentences.shift();\n\t\t\t// Last sentence gets special treatment.\n\t\t\tconst lastSentence = localSentences.pop();\n\n\t\t\t// Add the remaining found sentences.\n\t\t\tlocalSentences.forEach( sentence => {\n\t\t\t\ttokenSentences.push( sentence );\n\t\t\t} );\n\n\t\t\tconst sentenceEndRegex = new RegExp( \"[\" + fullStop + this.getSentenceDelimiters() + \"]$\" );\n\n\t\t\t// Check if the last sentence has a valid sentence ending.\n\t\t\tif ( lastSentence.match( sentenceEndRegex ) ) {\n\t\t\t\t// If so, add it as a sentence.\n\t\t\t\ttokenSentences.push( lastSentence );\n\t\t\t} else {\n\t\t\t\t// If not, start making a new one.\n\t\t\t\tcurrentSentence = lastSentence;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttokenSentences,\n\t\t\tcurrentSentence,\n\t\t};\n\t}\n\n\t/**\n\t * Creates a tokenizer.\n\t *\n\t * @returns {Object} The tokenizer and the tokens.\n\t */\n\tcreateTokenizer() {\n\t\tconst sentenceDelimiterRegex = new RegExp( \"^[\" + this.getSentenceDelimiters() + \"]$\" );\n\t\tconst sentenceRegex = new RegExp( \"^[^\" + fullStop + this.getSentenceDelimiters() + \"<\\\\(\\\\)\\\\[\\\\]]+$\" );\n\n\t\tconst tokens = [];\n\t\tconst tokenizer = core( function( token ) {\n\t\t\ttokens.push( token );\n\t\t} );\n\n\t\ttokenizer.addRule( fullStopRegex, \"full-stop\" );\n\t\ttokenizer.addRule( smallerThanContentRegex, \"smaller-than-sign-content\" );\n\t\ttokenizer.addRule( htmlStartRegex, \"html-start\" );\n\t\ttokenizer.addRule( htmlEndRegex, \"html-end\" );\n\t\ttokenizer.addRule( blockStartRegex, \"block-start\" );\n\t\ttokenizer.addRule( blockEndRegex, \"block-end\" );\n\t\ttokenizer.addRule( sentenceDelimiterRegex, \"sentence-delimiter\" );\n\t\ttokenizer.addRule( sentenceRegex, \"sentence\" );\n\n\t\treturn {\n\t\t\ttokenizer,\n\t\t\ttokens,\n\t\t};\n\t}\n\n\t/**\n\t * Tokenizes the given text using the given tokenizer.\n\t *\n\t * @param {Object} tokenizer The tokenizer to use.\n\t * @param {string} text The text to tokenize.\n\t * @returns {void}\n\t */\n\ttokenize( tokenizer, text ) {\n\t\ttokenizer.onText( text );\n\n\t\ttry {\n\t\t\ttokenizer.end();\n\t\t} catch ( e ) {\n\t\t\tconsole.error( \"Tokenizer end error:\", e, e.tokenizer2 );\n\t\t}\n\t}\n\n\t/**\n\t * Checks if a string ends with an abbreviation.\n\t * @param {string} currentSentence A (part of) a sentence.\n\t * @returns {boolean} True if the string ends with an abbreviation that is in abbreviations.js. Otherwise, False.\n\t */\n\tendsWithAbbreviation( currentSentence ) {\n\t\tconst matchedAbbreviations = currentSentence.match( abbreviationsRegex );\n\n\t\tif ( ! matchedAbbreviations ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst lastAbbreviation = matchedAbbreviations.pop();\n\t\treturn currentSentence.endsWith( lastAbbreviation );\n\t}\n\n\t/**\n\t * Checks whether the given tokens are a valid html tag pair.\n\t * Note that this method is not a full html tag validator. It should be replaced with a better solution once the html parser is implemented.\n\t *\n\t * @param {object} firstToken The first token to check. It is asserted that this token contains/is an opening html tag.\n\t * @param {object} lastToken The last token to check. It is asserted that this token contains/is a closing html tag.\n\t *\n\t * @returns {boolean} True if the tokens are a valid html tag pair. Otherwise, False.\n\t */\n\tisValidTagPair( firstToken, lastToken ) {\n\t\tconst firstTokenText = firstToken.src;\n\t\tconst lastTokenText = lastToken.src;\n\n\t\t// Get the tag types.\n\t\tconst firstTagType = firstTokenText.match( tagTypeRegex )[ 1 ];\n\t\tconst lastTagType = lastTokenText.match( tagTypeRegex )[ 1 ];\n\n\n\t\t// Check if the tags are the same and if they are a semantic tag (p, div, h1, h2, h3, h4, h5, h6, span).\n\t\treturn firstTagType === lastTagType && semanticTags.includes( firstTagType );\n\t}\n\n\t/**\n\t * Returns an array of sentences for a given array of tokens, assumes that the text has already been split into blocks.\n\t *\n\t * @param {Object[]} tokenArray The tokens from the sentence tokenizer.\n\t * @param {boolean} [trimSentences=true] Whether to trim the sentences at the end or not.\n\t *\n\t * @returns {string[]} A list of sentences.\n\t */\n\tgetSentencesFromTokens( tokenArray, trimSentences = true ) {\n\t\tlet tokenSentences = [], currentSentence = \"\", nextSentenceStart, sliced;\n\n\t\t// Drop the first and last HTML tag if both are present.\n\t\tdo {\n\t\t\tsliced = false;\n\t\t\tconst firstToken = tokenArray[ 0 ];\n\t\t\tconst lastToken = tokenArray[ tokenArray.length - 1 ];\n\n\t\t\tif ( firstToken && lastToken && firstToken.type === \"html-start\" &&\n\t\t\t\tlastToken.type === \"html-end\" && this.isValidTagPair( firstToken, lastToken ) ) {\n\t\t\t\ttokenArray = tokenArray.slice( 1, tokenArray.length - 1 );\n\n\t\t\t\tsliced = true;\n\t\t\t}\n\t\t} while ( sliced && tokenArray.length > 1 );\n\n\t\ttokenArray.forEach( ( token, i ) => {\n\t\t\tlet hasNextSentence, nextCharacters, tokenizeResults;\n\t\t\tconst nextToken = tokenArray[ i + 1 ];\n\t\t\tconst previousToken = tokenArray[ i - 1 ];\n\t\t\tconst secondToNextToken = tokenArray[ i + 2 ];\n\t\t\tnextCharacters = this.getNextTwoCharacters( [ nextToken, secondToNextToken ] );\n\n\t\t\t// For a new sentence we need to check the next two characters.\n\t\t\thasNextSentence = nextCharacters.length >= 2;\n\t\t\tnextSentenceStart = hasNextSentence ? nextCharacters[ 1 ] : \"\";\n\n\t\t\tswitch ( token.type ) {\n\t\t\t\tcase \"html-start\":\n\t\t\t\tcase \"html-end\":\n\t\t\t\t\tif ( this.isBreakTag( token.src ) ) {\n\t\t\t\t\t\ttokenSentences.push( currentSentence );\n\t\t\t\t\t\tcurrentSentence = \"\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentSentence += token.src;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"smaller-than-sign-content\":\n\t\t\t\t\ttokenizeResults = this.tokenizeSmallerThanContent( token, tokenSentences, currentSentence );\n\t\t\t\t\ttokenSentences = tokenizeResults.tokenSentences;\n\t\t\t\t\tcurrentSentence = tokenizeResults.currentSentence;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"sentence\":\n\t\t\t\t\tcurrentSentence += token.src;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"sentence-delimiter\":\n\t\t\t\t\tcurrentSentence += token.src;\n\n\t\t\t\t\t/*\n\t\t\t\t * Only split text into sentences if:\n\t\t\t\t * the next token is defined, AND\n\t\t\t\t * the next token type is neither \"block-end\" nor \"sentence-delimiter\", AND\n\t\t\t\t * the next token first character is a white space\n\t\t\t\t */\n\t\t\t\t\tif ( ! isUndefined( nextToken ) &&\n\t\t\t\t\t\t\"block-end\" !== nextToken.type &&\n\t\t\t\t\t\t\"sentence-delimiter\" !== nextToken.type &&\n\t\t\t\t\t\tthis.isCharacterASpace( nextToken.src[ 0 ] ) ) {\n\t\t\t\t\t\t// Don't split on quotation marks unless they're preceded by a full stop.\n\t\t\t\t\t\tif ( this.isQuotation( token.src ) && previousToken && previousToken.src !== \".\" ) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t/*\n\t\t\t\t * Only split on ellipsis or quotation marks when:\n\t\t\t\t\t * a) There is a next sentence, and the next character is a valid sentence beginning preceded by a white space, OR\n\t\t\t\t\t * b) The next token is a sentence start\n\t\t\t\t\t */\n\t\t\t\t\t\tif ( this.isQuotation( token.src ) || token.src === \"…\" ) {\n\t\t\t\t\t\t\tcurrentSentence = this.getValidSentence( hasNextSentence,\n\t\t\t\t\t\t\t\tnextSentenceStart,\n\t\t\t\t\t\t\t\tnextCharacters,\n\t\t\t\t\t\t\t\tnextToken,\n\t\t\t\t\t\t\t\ttokenSentences,\n\t\t\t\t\t\t\t\tcurrentSentence );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttokenSentences.push( currentSentence );\n\t\t\t\t\t\t\tcurrentSentence = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"full-stop\":\n\t\t\t\t\tcurrentSentence += token.src;\n\t\t\t\t\tnextCharacters = this.getNextTwoCharacters( [ nextToken, secondToNextToken ] );\n\n\t\t\t\t\t// For a new sentence we need to check the next two characters.\n\t\t\t\t\thasNextSentence = nextCharacters.length >= 2;\n\t\t\t\t\tnextSentenceStart = hasNextSentence ? nextCharacters[ 1 ] : \"\";\n\n\t\t\t\t\t// If the current sentence ends with an abbreviation, the full stop does not split the sentence.\n\t\t\t\t\tif ( this.endsWithAbbreviation( currentSentence ) ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// It should not split the text if the first character of the potential next sentence is a number.\n\t\t\t\t\tif ( hasNextSentence && this.isNumber( nextCharacters[ 0 ] ) ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the full stop is part of a person's initials, don't split sentence.\n\t\t\t\t\tif ( this.isPartOfPersonInitial( token, previousToken, nextToken, secondToNextToken ) ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the full stop is an ordinal dot (in German), then don't break the sentence.\n\t\t\t\t\t// This check should be done after hasNextSentence && this.isNumber( nextCharacters[ 0 ] ) (above).\n\t\t\t\t\t// Because otherwise it could break before that test.\n\t\t\t\t\tif ( this.endsWithOrdinalDot( currentSentence ) ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t/*\n\t\t\t\t\t * Only split on full stop when:\n\t\t\t\t\t * a) There is a next sentence, and the next character is a valid sentence beginning preceded by a white space, OR\n\t\t\t\t\t * b) The next token is a sentence start\n\t\t\t\t\t */\n\t\t\t\t\tcurrentSentence = this.getValidSentence( hasNextSentence,\n\t\t\t\t\t\tnextSentenceStart,\n\t\t\t\t\t\tnextCharacters,\n\t\t\t\t\t\tnextToken,\n\t\t\t\t\t\ttokenSentences,\n\t\t\t\t\t\tcurrentSentence );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"block-start\":\n\t\t\t\t\tcurrentSentence += token.src;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"block-end\":\n\t\t\t\t\tcurrentSentence += token.src;\n\n\t\t\t\t\tnextCharacters = this.getNextTwoCharacters( [ nextToken, secondToNextToken ] );\n\n\t\t\t\t\t// For a new sentence we need to check the next two characters.\n\t\t\t\t\thasNextSentence = nextCharacters.length >= 2;\n\t\t\t\t\tnextSentenceStart = hasNextSentence ? nextCharacters[ 0 ] : \"\";\n\n\t\t\t\t\t/* Don't split if:\n\t\t\t\t\t * - The next character is a number. For example: IPv4-numbers.\n\t\t\t\t\t * - The block end is preceded by a valid sentence ending, but not followed by a valid sentence beginning.\n\t\t\t\t\t */\n\t\t\t\t\tif (\n\t\t\t\t\t\thasNextSentence && this.isNumber( nextCharacters[ 0 ] ) ||\n\t\t\t\t\t\t( this.isSentenceEnding( previousToken ) &&\n\t\t\t\t\t\t\t( ! ( this.isValidSentenceBeginning( nextSentenceStart ) || this.isSentenceStart( nextToken ) ) ) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t/*\n\t\t\t\t\t * Split if:\n\t\t\t\t\t * - The block end is preceded by a sentence ending and followed by a valid sentence beginning.\n\t\t\t\t\t */\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.isSentenceEnding( previousToken ) &&\n\t\t\t\t\t\t( this.isSentenceStart( nextToken ) || this.isValidSentenceBeginning( nextSentenceStart ) )\n\t\t\t\t\t) {\n\t\t\t\t\t\ttokenSentences.push( currentSentence );\n\t\t\t\t\t\tcurrentSentence = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} );\n\n\t\tif ( \"\" !== currentSentence ) {\n\t\t\ttokenSentences.push( currentSentence );\n\t\t}\n\n\t\tif ( trimSentences ) {\n\t\t\ttokenSentences = map( tokenSentences, function( sentence ) {\n\t\t\t\treturn sentence.trim();\n\t\t\t} );\n\t\t}\n\n\t\treturn tokenSentences;\n\t}\n\n\t/**\n\t * Gets the current sentence when:\n\t * a) There is a next sentence, and the next character is a valid sentence beginning preceded by a white space, OR\n\t * b) The next token is a sentence start\n\t *\n\t * @param {boolean} hasNextSentence Whether the next characters are more than two.\n\t * @param {string} nextSentenceStart The second character of the next characters.\n\t * @param {string} nextCharacters The string values of the next two tokens.\n\t * @param {object} nextToken The next token object.\n\t * @param {array} tokenSentences The array of pushed valid sentences.\n\t * @param {string} currentSentence The current sentence.\n\t *\n\t * @returns {string} The current sentence.\n\t */\n\tgetValidSentence( hasNextSentence, nextSentenceStart, nextCharacters, nextToken, tokenSentences, currentSentence ) {\n\t\tif ( ( hasNextSentence && this.isValidSentenceBeginning( nextSentenceStart ) && this.isCharacterASpace( nextCharacters[ 0 ] ) ) ||\n\t\t\tthis.isSentenceStart( nextToken ) ) {\n\t\t\ttokenSentences.push( currentSentence );\n\t\t\tcurrentSentence = \"\";\n\t\t}\n\t\treturn currentSentence;\n\t}\n\n\t/**\n\t * Checks if the character is a whitespace.\n\t *\n\t * @param {string} character The character to check.\n\t * @returns {boolean} Whether the character is a whitespace.\n\t */\n\tisCharacterASpace( character ) {\n\t\treturn /\\s/.test( character );\n\t}\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,cAAA,GAAAF,sBAAA,CAAAF,OAAA;AAEA,IAAAK,qBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,eAAA,GAAAJ,sBAAA,CAAAF,OAAA;AAA4D,SAAAE,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5D;AACA,MAAMG,QAAQ,GAAG,GAAG;AAEpB,MAAMC,aAAa,GAAG,IAAIC,MAAM,CAAE,IAAI,GAAGF,QAAQ,GAAG,IAAK,CAAC;AAC1D,MAAMG,uBAAuB,GAAG,WAAW;AAC3C,MAAMC,cAAc,GAAG,uBAAuB;AAC9C,MAAMC,YAAY,GAAG,wBAAwB;AAE7C,MAAMC,eAAe,GAAG,eAAe;AACvC,MAAMC,aAAa,GAAG,gBAAgB;AAEtC,MAAMC,6BAA6B,GAAGC,sBAAa,CAACC,GAAG,CAAIC,YAAY,IAAMA,YAAY,CAACC,OAAO,CAAE,GAAG,EAAE,KAAM,CAAE,CAAC;AACjH,MAAMC,kBAAkB,GAAG,IAAAC,6BAAoB,EAAEN,6BAA8B,CAAC;AAEhF,MAAMO,sBAAsB,GAAG,QAAQ,GAAG,IAAAC,uBAAc,EAAC,CAAC,CAACN,GAAG,CAAIO,QAAQ,IAAM,IAAI,GAAGA,QAAS,CAAC,CAACC,IAAI,CAAE,EAAG,CAAC,GAAG,IAAI;AACnH,MAAMC,gCAAgC,GAAG,IAAIjB,MAAM,CAAEa,sBAAsB,GAAG,WAAY,CAAC;;AAE3F;AACA;AACA,MAAMK,YAAY,GAAG,qBAAqB;AAC1C;AACA,MAAMC,YAAY,GAAG,CAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAE;;AAE7F;AACA;AACA;AACe,MAAMC,iBAAiB,CAAC;EACtC;AACD;AACA;AACA;EACCC,WAAWA,CAAA,EAAG;IACb;AACF;AACA;AACA;AACA;IACE,IAAI,CAACC,kBAAkB,GAAG,kCAAkC;EAC7D;;EAEA;AACD;AACA;AACA;AACA;EACCC,qBAAqBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACD,kBAAkB;EAC/B;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCE,QAAQA,CAAEC,SAAS,EAAG;IACrB,OAAO,CAAE,IAAAC,aAAK,EAAEC,QAAQ,CAAEF,SAAS,EAAE,EAAG,CAAE,CAAC;EAC5C;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCG,UAAUA,CAAEC,OAAO,EAAG;IACrB,OAAO,QAAQ,CAACC,IAAI,CAAED,OAAQ,CAAC;EAChC;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCE,WAAWA,CAAEN,SAAS,EAAG;IACxBA,SAAS,GAAG,IAAAO,iBAAe,EAAEP,SAAU,CAAC;IAExC,OAAO,GAAG,KAAKA,SAAS,IACvB,IAAI,KAAKA,SAAS;EACpB;;EAEA;AACD;AACA;AACA;AACA;EACCQ,kBAAkBA,CAAA,EAAG;IACpB,OAAO,KAAK;EACb;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACCC,aAAaA,CAAET,SAAS,EAAG;IAC1B,OAAO,GAAG,KAAKA,SAAS,IACvB,GAAG,KAAKA,SAAS;EACnB;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCU,yBAAyBA,CAAEC,IAAI,EAAG;IACjC,OAAOA,IAAI,CAAC1B,OAAO,CAAE,KAAK,EAAE,GAAI,CAAC;EAClC;;EAEA;AACD;AACA;AACA;AACA;AACA;EACC2B,eAAeA,CAAEZ,SAAS,EAAG;IAC5B,OAAOA,SAAS,KAAKA,SAAS,CAACa,iBAAiB,CAAC,CAAC;EACnD;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCC,iBAAiBA,CAAEd,SAAS,EAAG;IAC9B,OAAOA,SAAS,KAAK,GAAG;EACzB;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCe,oBAAoBA,CAAEC,UAAU,EAAG;IAClC,IAAIC,IAAI,GAAG,EAAE;IAEb,IAAK,CAAE,IAAAC,mBAAW,EAAEF,UAAU,CAAE,CAAC,CAAG,CAAC,EAAG;MACvCC,IAAI,IAAID,UAAU,CAAE,CAAC,CAAE,CAACG,GAAG;IAC5B;IAEA,IAAK,CAAE,IAAAD,mBAAW,EAAEF,UAAU,CAAE,CAAC,CAAG,CAAC,EAAG;MACvCC,IAAI,IAAID,UAAU,CAAE,CAAC,CAAE,CAACG,GAAG;IAC5B;IAEAF,IAAI,GAAG,IAAI,CAACP,yBAAyB,CAAEO,IAAK,CAAC;IAE7C,OAAOA,IAAI;EACZ;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCG,4BAA4BA,CAAEC,MAAM,EAAG;IACtC,MAAMC,eAAe,GAAG;IACvB;IACA,qBAAqB;IACrB;IACA,qBAAqB;IACrB;IACA,gCAAgC,CAChC;IAED,OACCA,eAAe,CAACC,IAAI,CAAEC,cAAc,IAAIA,cAAc,CAACnB,IAAI,CAAEgB,MAAO,CAAE,CAAC;EAEzE;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCI,wBAAwBA,CAAEC,iBAAiB,EAAG;IAC7C,OAAS,IAAI,CAACd,eAAe,CAAEc,iBAAkB,CAAC,IAChD,IAAI,CAACN,4BAA4B,CAAEM,iBAAkB,CAAC,IACtD,IAAI,CAAC3B,QAAQ,CAAE2B,iBAAkB,CAAC,IAClC,IAAI,CAACpB,WAAW,CAAEoB,iBAAkB,CAAC,IACrC,IAAI,CAACjB,aAAa,CAAEiB,iBAAkB,CAAC,IACvC,IAAI,CAACZ,iBAAiB,CAAEY,iBAAkB,CAAC;EAC9C;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCC,eAAeA,CAAEC,KAAK,EAAG;IACxB,OAAS,CAAE,IAAAV,mBAAW,EAAEU,KAAM,CAAC,KAC9B,YAAY,KAAKA,KAAK,CAACC,IAAI,IAC3B,UAAU,KAAKD,KAAK,CAACC,IAAI,IACzB,aAAa,KAAKD,KAAK,CAACC,IAAI,CAC5B;EACF;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACCC,gBAAgBA,CAAEF,KAAK,EAAG;IACzB,OACC,CAAE,IAAAV,mBAAW,EAAEU,KAAM,CAAC,KACpBA,KAAK,CAACC,IAAI,KAAK,WAAW,IAAID,KAAK,CAACC,IAAI,KAAK,oBAAoB,CAAE;EAEvE;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCE,qBAAqBA,CAAEH,KAAK,EAAEI,aAAa,EAAEC,SAAS,EAAEC,iBAAiB,EAAG;IAC3E,OAAS,CAAE,IAAAhB,mBAAW,EAAEU,KAAM,CAAC,IAC9B,CAAE,IAAAV,mBAAW,EAAEe,SAAU,CAAC,IAC1B,CAAE,IAAAf,mBAAW,EAAEgB,iBAAkB,CAAC,IAClC,CAAE,IAAAhB,mBAAW,EAAEc,aAAc,CAAC,IAC9BJ,KAAK,CAACC,IAAI,KAAK,WAAW,IAC1BG,aAAa,CAACH,IAAI,KAAK,UAAU,IACjCrC,gCAAgC,CAACa,IAAI,CAAE2B,aAAa,CAACb,GAAI,CAAC,IAC1Dc,SAAS,CAACJ,IAAI,KAAK,UAAU,IAC7BI,SAAS,CAACd,GAAG,CAACgB,IAAI,CAAC,CAAC,CAACC,MAAM,KAAK,CAAC,IACjCF,iBAAiB,CAACL,IAAI,KAAK,WAAW;EAExC;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCQ,0BAA0BA,CAAET,KAAK,EAAEU,cAAc,EAAEC,eAAe,EAAG;IACpE;AACF;AACA;AACA;AACA;IACE,MAAMC,SAAS,GAAGZ,KAAK,CAACT,GAAG,CAACsB,SAAS,CAAE,CAAE,CAAC;;IAE1C;IACA,MAAMC,eAAe,GAAG,IAAI,CAACC,eAAe,CAAC,CAAC;IAC9C,IAAI,CAACC,QAAQ,CAAEF,eAAe,CAACG,SAAS,EAAEL,SAAU,CAAC;IACrD,MAAMM,cAAc,GAAG,IAAI,CAACC,sBAAsB,CAAEL,eAAe,CAACM,MAAM,EAAE,KAAM,CAAC;IAEnFF,cAAc,CAAE,CAAC,CAAE,GAAG,IAAA5B,mBAAW,EAAE4B,cAAc,CAAE,CAAC,CAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAGA,cAAc,CAAE,CAAC,CAAE;;IAE1F;AACF;AACA;AACA;AACA;IACE,IAAK,IAAI,CAACrB,wBAAwB,CAAEqB,cAAc,CAAE,CAAC,CAAG,CAAC,EAAG;MAC3DR,cAAc,CAACW,IAAI,CAAEV,eAAgB,CAAC;MACtCA,eAAe,GAAG,EAAE;IACrB;IACAA,eAAe,IAAIO,cAAc,CAAE,CAAC,CAAE;IAEtC,IAAKA,cAAc,CAACV,MAAM,GAAG,CAAC,EAAG;MAChC;AACH;AACA;AACA;MACGE,cAAc,CAACW,IAAI,CAAEV,eAAgB,CAAC;MACtCA,eAAe,GAAG,EAAE;;MAEpB;MACAO,cAAc,CAACI,KAAK,CAAC,CAAC;MACtB;MACA,MAAMC,YAAY,GAAGL,cAAc,CAACM,GAAG,CAAC,CAAC;;MAEzC;MACAN,cAAc,CAACO,OAAO,CAAEC,QAAQ,IAAI;QACnChB,cAAc,CAACW,IAAI,CAAEK,QAAS,CAAC;MAChC,CAAE,CAAC;MAEH,MAAMC,gBAAgB,GAAG,IAAIhF,MAAM,CAAE,GAAG,GAAGF,QAAQ,GAAG,IAAI,CAACyB,qBAAqB,CAAC,CAAC,GAAG,IAAK,CAAC;;MAE3F;MACA,IAAKqD,YAAY,CAACK,KAAK,CAAED,gBAAiB,CAAC,EAAG;QAC7C;QACAjB,cAAc,CAACW,IAAI,CAAEE,YAAa,CAAC;MACpC,CAAC,MAAM;QACN;QACAZ,eAAe,GAAGY,YAAY;MAC/B;IACD;IACA,OAAO;MACNb,cAAc;MACdC;IACD,CAAC;EACF;;EAEA;AACD;AACA;AACA;AACA;EACCI,eAAeA,CAAA,EAAG;IACjB,MAAMc,sBAAsB,GAAG,IAAIlF,MAAM,CAAE,IAAI,GAAG,IAAI,CAACuB,qBAAqB,CAAC,CAAC,GAAG,IAAK,CAAC;IACvF,MAAM4D,aAAa,GAAG,IAAInF,MAAM,CAAE,KAAK,GAAGF,QAAQ,GAAG,IAAI,CAACyB,qBAAqB,CAAC,CAAC,GAAG,kBAAmB,CAAC;IAExG,MAAMkD,MAAM,GAAG,EAAE;IACjB,MAAMH,SAAS,GAAG,IAAAc,aAAI,EAAE,UAAU/B,KAAK,EAAG;MACzCoB,MAAM,CAACC,IAAI,CAAErB,KAAM,CAAC;IACrB,CAAE,CAAC;IAEHiB,SAAS,CAACe,OAAO,CAAEtF,aAAa,EAAE,WAAY,CAAC;IAC/CuE,SAAS,CAACe,OAAO,CAAEpF,uBAAuB,EAAE,2BAA4B,CAAC;IACzEqE,SAAS,CAACe,OAAO,CAAEnF,cAAc,EAAE,YAAa,CAAC;IACjDoE,SAAS,CAACe,OAAO,CAAElF,YAAY,EAAE,UAAW,CAAC;IAC7CmE,SAAS,CAACe,OAAO,CAAEjF,eAAe,EAAE,aAAc,CAAC;IACnDkE,SAAS,CAACe,OAAO,CAAEhF,aAAa,EAAE,WAAY,CAAC;IAC/CiE,SAAS,CAACe,OAAO,CAAEH,sBAAsB,EAAE,oBAAqB,CAAC;IACjEZ,SAAS,CAACe,OAAO,CAAEF,aAAa,EAAE,UAAW,CAAC;IAE9C,OAAO;MACNb,SAAS;MACTG;IACD,CAAC;EACF;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACCJ,QAAQA,CAAEC,SAAS,EAAElC,IAAI,EAAG;IAC3BkC,SAAS,CAACgB,MAAM,CAAElD,IAAK,CAAC;IAExB,IAAI;MACHkC,SAAS,CAACiB,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC,OAAQ5F,CAAC,EAAG;MACb6F,OAAO,CAACC,KAAK,CAAE,sBAAsB,EAAE9F,CAAC,EAAEA,CAAC,CAAC+F,UAAW,CAAC;IACzD;EACD;;EAEA;AACD;AACA;AACA;AACA;EACCC,oBAAoBA,CAAE3B,eAAe,EAAG;IACvC,MAAM4B,oBAAoB,GAAG5B,eAAe,CAACiB,KAAK,CAAEtE,kBAAmB,CAAC;IAExE,IAAK,CAAEiF,oBAAoB,EAAG;MAC7B,OAAO,KAAK;IACb;IAEA,MAAMC,gBAAgB,GAAGD,oBAAoB,CAACf,GAAG,CAAC,CAAC;IACnD,OAAOb,eAAe,CAAC8B,QAAQ,CAAED,gBAAiB,CAAC;EACpD;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCE,cAAcA,CAAEC,UAAU,EAAEC,SAAS,EAAG;IACvC,MAAMC,cAAc,GAAGF,UAAU,CAACpD,GAAG;IACrC,MAAMuD,aAAa,GAAGF,SAAS,CAACrD,GAAG;;IAEnC;IACA,MAAMwD,YAAY,GAAGF,cAAc,CAACjB,KAAK,CAAE/D,YAAa,CAAC,CAAE,CAAC,CAAE;IAC9D,MAAMmF,WAAW,GAAIF,aAAa,CAAClB,KAAK,CAAE/D,YAAa,CAAC,CAAE,CAAC,CAAE;;IAG7D;IACA,OAAOkF,YAAY,KAAKC,WAAW,IAAIlF,YAAY,CAACmF,QAAQ,CAAEF,YAAa,CAAC;EAC7E;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EACC5B,sBAAsBA,CAAE+B,UAAU,EAAEC,aAAa,GAAG,IAAI,EAAG;IAC1D,IAAIzC,cAAc,GAAG,EAAE;MAAEC,eAAe,GAAG,EAAE;MAAEyC,iBAAiB;MAAEC,MAAM;;IAExE;IACA,GAAG;MACFA,MAAM,GAAG,KAAK;MACd,MAAMV,UAAU,GAAGO,UAAU,CAAE,CAAC,CAAE;MAClC,MAAMN,SAAS,GAAGM,UAAU,CAAEA,UAAU,CAAC1C,MAAM,GAAG,CAAC,CAAE;MAErD,IAAKmC,UAAU,IAAIC,SAAS,IAAID,UAAU,CAAC1C,IAAI,KAAK,YAAY,IAC/D2C,SAAS,CAAC3C,IAAI,KAAK,UAAU,IAAI,IAAI,CAACyC,cAAc,CAAEC,UAAU,EAAEC,SAAU,CAAC,EAAG;QAChFM,UAAU,GAAGA,UAAU,CAACI,KAAK,CAAE,CAAC,EAAEJ,UAAU,CAAC1C,MAAM,GAAG,CAAE,CAAC;QAEzD6C,MAAM,GAAG,IAAI;MACd;IACD,CAAC,QAASA,MAAM,IAAIH,UAAU,CAAC1C,MAAM,GAAG,CAAC;IAEzC0C,UAAU,CAACzB,OAAO,CAAE,CAAEzB,KAAK,EAAEuD,CAAC,KAAM;MACnC,IAAIC,eAAe,EAAEC,cAAc,EAAEC,eAAe;MACpD,MAAMrD,SAAS,GAAG6C,UAAU,CAAEK,CAAC,GAAG,CAAC,CAAE;MACrC,MAAMnD,aAAa,GAAG8C,UAAU,CAAEK,CAAC,GAAG,CAAC,CAAE;MACzC,MAAMjD,iBAAiB,GAAG4C,UAAU,CAAEK,CAAC,GAAG,CAAC,CAAE;MAC7CE,cAAc,GAAG,IAAI,CAACtE,oBAAoB,CAAE,CAAEkB,SAAS,EAAEC,iBAAiB,CAAG,CAAC;;MAE9E;MACAkD,eAAe,GAAGC,cAAc,CAACjD,MAAM,IAAI,CAAC;MAC5C4C,iBAAiB,GAAGI,eAAe,GAAGC,cAAc,CAAE,CAAC,CAAE,GAAG,EAAE;MAE9D,QAASzD,KAAK,CAACC,IAAI;QAClB,KAAK,YAAY;QACjB,KAAK,UAAU;UACd,IAAK,IAAI,CAAC1B,UAAU,CAAEyB,KAAK,CAACT,GAAI,CAAC,EAAG;YACnCmB,cAAc,CAACW,IAAI,CAAEV,eAAgB,CAAC;YACtCA,eAAe,GAAG,EAAE;UACrB,CAAC,MAAM;YACNA,eAAe,IAAIX,KAAK,CAACT,GAAG;UAC7B;UACA;QAED,KAAK,2BAA2B;UAC/BmE,eAAe,GAAG,IAAI,CAACjD,0BAA0B,CAAET,KAAK,EAAEU,cAAc,EAAEC,eAAgB,CAAC;UAC3FD,cAAc,GAAGgD,eAAe,CAAChD,cAAc;UAC/CC,eAAe,GAAG+C,eAAe,CAAC/C,eAAe;UACjD;QACD,KAAK,UAAU;UACdA,eAAe,IAAIX,KAAK,CAACT,GAAG;UAC5B;QACD,KAAK,oBAAoB;UACxBoB,eAAe,IAAIX,KAAK,CAACT,GAAG;;UAE5B;AACL;AACA;AACA;AACA;AACA;UACK,IAAK,CAAE,IAAAD,mBAAW,EAAEe,SAAU,CAAC,IAC9B,WAAW,KAAKA,SAAS,CAACJ,IAAI,IAC9B,oBAAoB,KAAKI,SAAS,CAACJ,IAAI,IACvC,IAAI,CAAC0D,iBAAiB,CAAEtD,SAAS,CAACd,GAAG,CAAE,CAAC,CAAG,CAAC,EAAG;YAC/C;YACA,IAAK,IAAI,CAACb,WAAW,CAAEsB,KAAK,CAACT,GAAI,CAAC,IAAIa,aAAa,IAAIA,aAAa,CAACb,GAAG,KAAK,GAAG,EAAG;cAClF;YACD;YACA;AACN;AACA;AACA;AACA;YACM,IAAK,IAAI,CAACb,WAAW,CAAEsB,KAAK,CAACT,GAAI,CAAC,IAAIS,KAAK,CAACT,GAAG,KAAK,GAAG,EAAG;cACzDoB,eAAe,GAAG,IAAI,CAACiD,gBAAgB,CAAEJ,eAAe,EACvDJ,iBAAiB,EACjBK,cAAc,EACdpD,SAAS,EACTK,cAAc,EACdC,eAAgB,CAAC;YACnB,CAAC,MAAM;cACND,cAAc,CAACW,IAAI,CAAEV,eAAgB,CAAC;cACtCA,eAAe,GAAG,EAAE;YACrB;UACD;UACA;QAED,KAAK,WAAW;UACfA,eAAe,IAAIX,KAAK,CAACT,GAAG;UAC5BkE,cAAc,GAAG,IAAI,CAACtE,oBAAoB,CAAE,CAAEkB,SAAS,EAAEC,iBAAiB,CAAG,CAAC;;UAE9E;UACAkD,eAAe,GAAGC,cAAc,CAACjD,MAAM,IAAI,CAAC;UAC5C4C,iBAAiB,GAAGI,eAAe,GAAGC,cAAc,CAAE,CAAC,CAAE,GAAG,EAAE;;UAE9D;UACA,IAAK,IAAI,CAACnB,oBAAoB,CAAE3B,eAAgB,CAAC,EAAG;YACnD;UACD;;UAEA;UACA,IAAK6C,eAAe,IAAI,IAAI,CAACrF,QAAQ,CAAEsF,cAAc,CAAE,CAAC,CAAG,CAAC,EAAG;YAC9D;UACD;;UAEA;UACA,IAAK,IAAI,CAACtD,qBAAqB,CAAEH,KAAK,EAAEI,aAAa,EAAEC,SAAS,EAAEC,iBAAkB,CAAC,EAAG;YACvF;UACD;;UAEA;UACA;UACA;UACA,IAAK,IAAI,CAAC1B,kBAAkB,CAAE+B,eAAgB,CAAC,EAAG;YACjD;UACD;;UAEA;AACL;AACA;AACA;AACA;UACKA,eAAe,GAAG,IAAI,CAACiD,gBAAgB,CAAEJ,eAAe,EACvDJ,iBAAiB,EACjBK,cAAc,EACdpD,SAAS,EACTK,cAAc,EACdC,eAAgB,CAAC;UAElB;QAED,KAAK,aAAa;UACjBA,eAAe,IAAIX,KAAK,CAACT,GAAG;UAC5B;QAED,KAAK,WAAW;UACfoB,eAAe,IAAIX,KAAK,CAACT,GAAG;UAE5BkE,cAAc,GAAG,IAAI,CAACtE,oBAAoB,CAAE,CAAEkB,SAAS,EAAEC,iBAAiB,CAAG,CAAC;;UAE9E;UACAkD,eAAe,GAAGC,cAAc,CAACjD,MAAM,IAAI,CAAC;UAC5C4C,iBAAiB,GAAGI,eAAe,GAAGC,cAAc,CAAE,CAAC,CAAE,GAAG,EAAE;;UAE9D;AACL;AACA;AACA;UACK,IACCD,eAAe,IAAI,IAAI,CAACrF,QAAQ,CAAEsF,cAAc,CAAE,CAAC,CAAG,CAAC,IACrD,IAAI,CAACvD,gBAAgB,CAAEE,aAAc,CAAC,IACrC,EAAI,IAAI,CAACP,wBAAwB,CAAEuD,iBAAkB,CAAC,IAAI,IAAI,CAACrD,eAAe,CAAEM,SAAU,CAAC,CAAM,EACnG;YACD;UACD;;UAEA;AACL;AACA;AACA;UACK,IACC,IAAI,CAACH,gBAAgB,CAAEE,aAAc,CAAC,KACpC,IAAI,CAACL,eAAe,CAAEM,SAAU,CAAC,IAAI,IAAI,CAACR,wBAAwB,CAAEuD,iBAAkB,CAAC,CAAE,EAC1F;YACD1C,cAAc,CAACW,IAAI,CAAEV,eAAgB,CAAC;YACtCA,eAAe,GAAG,EAAE;UACrB;UACA;MACF;IACD,CAAE,CAAC;IAEH,IAAK,EAAE,KAAKA,eAAe,EAAG;MAC7BD,cAAc,CAACW,IAAI,CAAEV,eAAgB,CAAC;IACvC;IAEA,IAAKwC,aAAa,EAAG;MACpBzC,cAAc,GAAG,IAAAvD,WAAG,EAAEuD,cAAc,EAAE,UAAUgB,QAAQ,EAAG;QAC1D,OAAOA,QAAQ,CAACnB,IAAI,CAAC,CAAC;MACvB,CAAE,CAAC;IACJ;IAEA,OAAOG,cAAc;EACtB;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCkD,gBAAgBA,CAAEJ,eAAe,EAAEJ,iBAAiB,EAAEK,cAAc,EAAEpD,SAAS,EAAEK,cAAc,EAAEC,eAAe,EAAG;IAClH,IAAO6C,eAAe,IAAI,IAAI,CAAC3D,wBAAwB,CAAEuD,iBAAkB,CAAC,IAAI,IAAI,CAACO,iBAAiB,CAAEF,cAAc,CAAE,CAAC,CAAG,CAAC,IAC5H,IAAI,CAAC1D,eAAe,CAAEM,SAAU,CAAC,EAAG;MACpCK,cAAc,CAACW,IAAI,CAAEV,eAAgB,CAAC;MACtCA,eAAe,GAAG,EAAE;IACrB;IACA,OAAOA,eAAe;EACvB;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCgD,iBAAiBA,CAAEvF,SAAS,EAAG;IAC9B,OAAO,IAAI,CAACK,IAAI,CAAEL,SAAU,CAAC;EAC9B;AACD;AAACyF,OAAA,CAAArH,OAAA,GAAAuB,iBAAA","ignoreList":[]}
|