hebrew-transliteration 2.6.4 → 2.7.0

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/schemas/tiberian.ts"],
4
- "sourcesContent": ["import { Schema } from \"../schema\";\n\nexport const tiberian: Schema = {\n VOCAL_SHEVA: \"a\",\n HATAF_SEGOL: \"\u025B\",\n HATAF_PATAH: \"a\",\n HATAF_QAMATS: \"\u0254\",\n HIRIQ: \"i\",\n TSERE: \"e\",\n SEGOL: \"\u025B\",\n PATAH: \"a\",\n QAMATS: \"\u0254\",\n HOLAM: \"o\",\n HOLAM_HASER: \"o\",\n QUBUTS: \"u\",\n DAGESH: \"\",\n DAGESH_CHAZAQ: true,\n MAQAF: \"-\",\n PASEQ: \"\",\n SOF_PASUQ: \"\",\n QAMATS_QATAN: \"\u0254\",\n FURTIVE_PATAH: \"a\",\n HIRIQ_YOD: \"i\u02D0\",\n TSERE_YOD: \"e\u02D0\",\n SEGOL_YOD: \"\u025B\u02D0\",\n SHUREQ: \"u\u02D0\",\n HOLAM_VAV: \"o\u02D0\",\n QAMATS_HE: \"\u0254\u02D0\",\n SEGOL_HE: \"\u025B\u02D0\",\n TSERE_HE: \"e\u02D0\",\n MS_SUFX: \"\u0254w\",\n ALEF: \"\u0294\",\n BET: \"v\",\n BET_DAGESH: \"b\",\n GIMEL: \"\u0281\",\n GIMEL_DAGESH: \"g\",\n DALET: \"\u00F0\",\n DALET_DAGESH: \"d\",\n HE: \"h\",\n VAV: \"v\",\n ZAYIN: \"z\",\n HET: \"\u0127\",\n TET: \"t\u02C1\",\n YOD: \"j\",\n FINAL_KAF: \"\u03C7\",\n KAF: \"\u03C7\",\n KAF_DAGESH: \"k\u02B0\",\n LAMED: \"l\",\n FINAL_MEM: \"m\",\n MEM: \"m\",\n FINAL_NUN: \"n\",\n NUN: \"n\",\n SAMEKH: \"s\",\n AYIN: \"\u0295\",\n FINAL_PE: \"f\",\n PE: \"f\",\n PE_DAGESH: \"p\u02B0\",\n FINAL_TSADI: \"s\u02C1\",\n TSADI: \"s\u02C1\",\n QOF: \"q\u031F\",\n RESH: \"\u0280\u031F\",\n SHIN: \"\u0283\",\n SIN: \"s\",\n TAV: \"\u03B8\",\n TAV_DAGESH: \"t\u02B0\",\n DIVINE_NAME: \"\u0294a\u00F0o\u02D0\u02C8n\u0254\u02D0\u0254j\",\n DIVINE_NAME_ELOHIM: \"\u0294\u025Blo\u02D0\u02C8hi\u02D0im\",\n STRESS_MARKER: { location: \"before-syllable\", mark: \"\u02C8\" },\n ADDITIONAL_FEATURES: [\n {\n FEATURE: \"cluster\",\n HEBREW: \"\\u{05D9}\\u{05BC}\",\n TRANSLITERATION: (cluster, hebrew) => {\n return cluster.text.replace(hebrew, \"\u025F\u025F\");\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /\u05EA\u05BC(?!\\u{05B0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // if there is a dagesh, but it is the beginning of the word\n // we can return the text, as the character w/ the dagesh will not be doubled\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n // if there is a dagesh, it may be that it is a dagesh qal (i.e. lene)\n // if it is a dagesh lene, then like the beginning of the word,\n // the character w/ the dagesh will not be doubled\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05EA\")) {\n return cluster.text;\n }\n\n // because the *_DAGESH value is a digraph, we need to replace the first character\n // or it will be doubled in rules.ts as \"t\u02B0t\u02B0\"\n const noAspiration = schema[\"TAV_DAGESH\"]?.replace(\"\u02B0\", \"\") ?? \"\";\n return cluster.text.replace(\"\u05EA\u05BC\", `${noAspiration + schema[\"TAV_DAGESH\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /\u05E4(?!\\u{05b0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // /\u05EA(?!\\u{05b0})/u rule for explanation\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05E4\")) {\n return cluster.text;\n }\n\n const noAspiration = schema[\"PE_DAGESH\"]?.replace(\"\u02B0\", \"\") ?? \"\";\n return cluster.text.replace(\"\u05E4\u05BC\", `${noAspiration + schema[\"PE_DAGESH\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /\u05D8\u05BC(?!\\u{05b0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // /\u05EA(?!\\u{05b0})/u rule for explanation\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05D8\")) {\n return cluster.text;\n }\n\n const noPharyngealization = schema[\"TET\"]?.replace(\"\u02C1\", \"\") ?? \"\";\n return cluster.text.replace(\"\u05D8\", `${noPharyngealization + schema[\"TET\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /\u05E6\u05BC(?!\\u{05b0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // /\u05EA(?!\\u{05b0})/u rule for explanation\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05E6\")) {\n return cluster.text;\n }\n\n const noPharyngealization = schema[\"TSADI\"]?.replace(\"\u02C1\", \"\") ?? \"\";\n return cluster.text.replace(\"\u05E6\", `${noPharyngealization + schema[\"TSADI\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /(\u05DB\u05BC|\u05DA\u05BC)(?!\\u{05b0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // /\u05EA\u05BC[\\u{05B4}-\\u{05BB}]/u rule for explanation\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05DB\") && !prevCoda?.includes(\"\u05DA\")) {\n return cluster.text;\n }\n\n const noAspiration = schema[\"KAF_DAGESH\"]?.replace(\"\u02B0\", \"\") ?? \"\";\n return cluster.text.replace(/\u05DB\u05BC|\u05DA\u05BC/u, `${noAspiration + schema[\"KAF_DAGESH\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: \"\\u{05D0}(?![\\u{05B1}-\\u{05BB}\\u{05C7}])\",\n TRANSLITERATION: (cluster) => {\n const next = cluster.next?.value;\n if (next && next.isShureq) {\n return cluster.text;\n }\n\n return \"\";\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: \"\\u{05D0}\\u{05BC}\",\n TRANSLITERATION: (cluster) => {\n // remove the dagesh\n return cluster.text.replace(\"\\u{05BC}\", \"\");\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /\u05E8/u,\n TRANSLITERATION: (syllable) => {\n // see TPT 229 for a summary if the pharyngealized resh\n const alveolars = /[\u05D3\u05D6\u05E6\u05EA\u05D8\u05E1\u05DC\u05E0]|\u05E9\u05C2/;\n\n // find cluster containing resh\n const cluster = syllable.clusters.filter((c) => c.text.includes(\"\u05E8\"))[0];\n const prevCluster = cluster.prev?.value;\n const currentSyllable = cluster?.syllable;\n const [onset, _, coda] = currentSyllable ? currentSyllable.structure(true) : [\"\", \"\", \"\"];\n\n if (prevCluster && alveolars.test(prevCluster.text)) {\n if (onset.includes(\"\u05E8\") && !prevCluster.hasVowel) {\n return syllable.text.replace(\"\u05E8\", \"r\u02C1\");\n }\n\n if (coda.includes(\"\u05E8\") && prevCluster.hasVowel) {\n return syllable.text.replace(\"\u05E8\", \"r\u02C1\");\n }\n }\n\n const nextCluster = cluster.next?.value;\n const lamedAndNun = /[\u05DC\u05E0\u05DF]/;\n if (nextCluster && lamedAndNun.test(nextCluster.text)) {\n if (onset.includes(\"\u05E8\") && !cluster.hasVowel) {\n return syllable.text.replace(\"\u05E8\", \"r\u02C1\");\n }\n\n if (coda.includes(\"\u05E8\") && cluster.hasSheva) {\n return syllable.text.replace(\"\u05E8\", \"r\u02C1\");\n }\n }\n\n // default\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: \"\u05D7\\u{05B7}\\u{05C3}?$\",\n PASS_THROUGH: true,\n TRANSLITERATION: (syllable, _hebrew, schema) => {\n // furtive patach before het preceded by vav or yod\n const prevText = syllable.prev?.value?.text || \"\";\n // see Khan 497-98 for examples involving length and the meteg\n // make sure to adjust other rules\n if (syllable.isFinal && prevText) {\n if (/[\u05D9\u05D5]/.test(prevText)) {\n const glide = /\u05D5/.test(prevText) ? \"w\" : \"j\";\n return glide + schema[\"PATAH\"] + schema[\"HET\"];\n }\n return schema[\"PATAH\"] + schema[\"HET\"];\n }\n\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: \"\u05E2\\u{05B7}\\u{05C3}?$\",\n PASS_THROUGH: true,\n TRANSLITERATION: (syllable, _hebrew, schema) => {\n // furtive patach before ayin preceded by vav or yod\n const prevText = syllable.prev?.value?.text;\n\n if (syllable.isFinal && prevText) {\n if (/[\u05D9\u05D5]/.test(prevText)) {\n const glide = /\u05D5/.test(prevText) ? \"w\" : \"j\";\n return glide + schema[\"PATAH\"] + schema[\"AYIN\"];\n }\n return schema[\"PATAH\"] + schema[\"AYIN\"];\n }\n\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: \"\u05D4\\u{05BC}\\u{05B7}\\u{05C3}?$\",\n PASS_THROUGH: true,\n TRANSLITERATION: (syllable, _hebrew, schema) => {\n // furtive patach before he preceded by vav or yod\n const prevText = syllable.prev?.value?.text;\n\n if (syllable.isFinal && prevText) {\n if (/[\u05D9\u05D5]/.test(prevText)) {\n const glide = /\u05D5/.test(prevText) ? \"w\" : \"j\";\n return glide + schema[\"PATAH\"] + schema[\"HE\"];\n }\n return schema[\"PATAH\"] + schema[\"HE\"];\n }\n\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /\u05D5\u05BC(?![\\u{05B4}-\\u{05BB}])/u,\n TRANSLITERATION: (syllable, _, schema) => {\n // finds a vav with a dagesh not followed by a vowel character\n // if the syllable is the first syllable, replace with wu\u02D0\n // syllable.clusters[0].isShureq is not totally necessary, but it's a good check\n if (!syllable.prev && syllable.clusters[0].isShureq) {\n const text = syllable.text;\n const hasMeteg = syllable.clusters.map((c) => c.hasMeteg).includes(true); // also called gaya marking half long vowel length (\u00A71.2.8.2.2)\n const secondaryAccent = hasMeteg ? \"\u02CC\" : \"\";\n const halfLengthMarker = hasMeteg ? \"\u02D1\" : \"\";\n return text.replace(\"\u05D5\u05BC\", `${secondaryAccent}wu${halfLengthMarker}`);\n }\n\n if (syllable.isAccented && syllable.isClosed) {\n const noLength = schema[\"SHUREQ\"].replace(\"\u02D0\", \"\");\n return syllable.text.replace(\"\u05D5\u05BC\", schema[\"SHUREQ\"] + noLength);\n }\n\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /[\\u{05B4}-\\u{05BB}\\u{05C7}]/u,\n TRANSLITERATION: (syllable, _, schema) => {\n // this features matches any syllable that has a full vowel character (i.e. not sheva)\n const vowelName = syllable.vowelNames[0];\n const vowel = syllable.vowels[0];\n\n if (!vowel || !vowelName) {\n return syllable.text;\n }\n\n if (vowelName === \"SHEVA\") {\n throw new Error(`Syllable ${syllable.text} has a sheva as vowel, should not have matched`);\n }\n\n // half vowels do not have length; exit early\n const hasHalfVowel = syllable.clusters.map((c) => c.hasHalfVowel).includes(true);\n if (hasHalfVowel) {\n throw new Error(`Syllable ${syllable.text} has a hataf as vowel, should not have matched`);\n }\n\n const [onset, _nuclues, coda] = syllable.structure(true);\n /**\n * Determines the realization of a patach\n *\n * @param vowelChar the hebrew vowel character\n * @returns the back unrounded patach realization of the vowel or the original vowel if not patach\n */\n function determinePatachRealization(vowelChar: string) {\n // see comment for explanation: https://github.com/charlesLoder/hebrew-transliteration/issues/45#issuecomment-1712186201\n // exit early if not patach\n if (vowelName !== \"PATAH\" && vowelName !== \"HATAF_PATAH\") {\n return vowelChar;\n }\n\n // by this point, the resh has already been pharyngealized\n // but only for the current syllable\n const pharyngealized = /r\u02C1|\u05D8|\u05E6|\u05E5/;\n if (pharyngealized.test(onset) || pharyngealized.test(coda)) {\n return \"\u0251\";\n }\n\n // the resh of the next syllable has not been transliterated yet\n // check if the next syllable has a resh in the onset\n // and if the current syllable's coda is an alveolar\n const nextSyllable = syllable.next?.value;\n const nextOnset = nextSyllable?.onset;\n const alveolars = /[\u05D3\u05D6\u05E6\u05EA\u05D8\u05E1\u05DC\u05E0]|\u05E9\u05C2/;\n if (nextOnset === \"\u05E8\" && alveolars.test(coda)) {\n return \"\u0251\";\n }\n\n return vowelChar;\n }\n\n const noMaterText = syllable.clusters\n .filter((c) => !c.isMater)\n .map((c) => c.text)\n .join(\"\")\n // a holem followed by a he without a mappiq is not a mater\n // but b/c the he is not pronounced, we need to remove the final he\n .replace(/(\\u{05B9}.{1})\\u{05D4}(?!\\u{05BC})/u, \"$1\");\n\n const hasMaters = syllable.clusters.map((c) => c.isMater).includes(true);\n const lengthMarker = \"\u02D0\";\n const halfLengthMarker = \"\u02D1\";\n\n // See TPT \u00A71.2.10 concering meteg/gaya\n const hasMeteg = syllable.clusters.map((c) => c.hasMeteg).includes(true);\n if (hasMeteg) {\n const hasLongVowel = syllable.clusters.map((c) => c.hasLongVowel).includes(true);\n // when a meteg is present, the syllable implicitly has secondary stress\n // and the vowel is extended if it is not already long\n const firstConsonant = noMaterText[0];\n return noMaterText\n .replace(firstConsonant, `\u02CC${firstConsonant}`)\n .replace(vowel, `${determinePatachRealization(vowel)}${hasLongVowel ? lengthMarker : halfLengthMarker}`);\n }\n\n const isClosed = syllable.isClosed;\n const isAccented = syllable.isAccented;\n\n // TPT \u00A71.2.4, p288\n // When long vowels with the main stress occur in closed syllables,\n // there is evidence that an epenthetic with the same quality as that of the long vowel\n // occurred before the final consonant in its phonetic realization\"\n if (isAccented && isClosed) {\n const syllableSeparator = schema[\"SYLLABLE_SEPARATOR\"] || \"\";\n const vowelRealization = determinePatachRealization(vowel);\n return noMaterText.replace(\n vowel,\n `${vowelRealization + lengthMarker + syllableSeparator + vowelRealization}`\n );\n }\n\n // https://github.com/charlesLoder/hebrew-transliteration/issues/45#issuecomment-1747967050\n const longerVowels = [\"HOLAM\", \"TSERE\", \"QAMATS\"];\n if (!isAccented && isClosed && !syllable.isFinal && longerVowels.includes(vowelName)) {\n const syllableSeparator = schema[\"SYLLABLE_SEPARATOR\"] || \"\";\n const vowelRealization = determinePatachRealization(vowel);\n return noMaterText.replace(\n vowel,\n `${vowelRealization + lengthMarker + syllableSeparator + vowelRealization}`\n );\n }\n\n // TPT \u00A71.2.2.1 p268\n // Vowels represented by basic vowel signs are long when they are either\n // (i) in a stressed syllable or (ii) in an unstressed open syllable.\n if (isAccented || (!isAccented && !isClosed)) {\n return noMaterText.replace(vowel, `${determinePatachRealization(vowel) + lengthMarker}`);\n }\n\n if (!hasMaters && !isClosed && !isAccented) {\n return noMaterText.replace(vowel, `${determinePatachRealization(vowel)}`);\n }\n\n return syllable.text.replace(vowel, `${determinePatachRealization(vowel)}`);\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /[\\u{05B1}-\\u{05B3}]/u,\n TRANSLITERATION: (syllable) => {\n // this features matches any syllable that has a hataf vowel character\n const vowelName = syllable.vowelNames[0];\n const vowel = syllable.vowels[0];\n\n if (!vowel || !vowelName) {\n return syllable.text;\n }\n\n if (vowelName === \"SHEVA\") {\n throw new Error(`Syllable ${syllable.text} has a sheva as vowel, should not have matched`);\n }\n\n const hasNonHalfVowels = syllable.clusters.map((c) => c.hasShortVowel || c.hasLongVowel).includes(true);\n if (hasNonHalfVowels) {\n throw new Error(`Syllable ${syllable.text} does not have a hataf vowel, should not have matched`);\n }\n\n const [onset, _nuclues, coda] = syllable.structure(true);\n /**\n * Determines the realization of a patach\n *\n * @param vowelChar the hebrew vowel character\n * @returns the back unrounded patach realization of the vowel or the original vowel if not patach\n */\n function determinePatachRealization(vowelChar: string) {\n // exit early if not hataf patach\n if (vowelName !== \"HATAF_PATAH\") {\n return vowelChar;\n }\n\n // by this point, the resh has already been pharyngealized in the transliteration\n // but only for the current syllable\n const pharyngealized = /r\u02C1|\u05D8|\u05E6|\u05E5/;\n if (pharyngealized.test(onset) || pharyngealized.test(coda)) {\n return \"\u0251\";\n }\n\n // the resh of the next syllable has not been transliterated yet\n // check if the next syllable has a resh in the onset\n // and if the current syllable's coda is an alveolar\n const nextSyllable = syllable.next?.value;\n const nextOnset = nextSyllable?.onset;\n const alveolars = /[\u05D3\u05D6\u05E6\u05EA\u05D8\u05E1\u05DC\u05E0]|\u05E9\u05C2/;\n if (nextOnset === \"\u05E8\" && alveolars.test(coda)) {\n return \"\u0251\";\n }\n\n // check for the \"environment of pharyngealized consonants\"\n // https://www.tiberianhebrew.com/patah\n if (nextOnset && /[\u05E6\u05E5\u05D8]/.test(nextOnset)) {\n return \"\u0251\";\n }\n\n return vowelChar;\n }\n\n return syllable.text.replace(vowel, `${determinePatachRealization(vowel)}`);\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /(?<!.*([\\u{05B4}-\\u{05BB}\\u{05C7}]|\\u{05D5}\\u{05BC}).*)\\u{05B0}/u,\n TRANSLITERATION: (syllable, _hebrew, schema) => {\n // matches any syllable that contains a sheva that is not preceded by a full vowel character [\\u{05B4}-\\u{05BB}\\u{05C7}]\n // or shureq \\u{5D5}\\u{5BC}\n const nextSyllable = syllable.next?.value;\n if (!nextSyllable) return syllable.text;\n\n const nextSylFirstCluster = nextSyllable.clusters[0].text;\n if (!nextSylFirstCluster) return syllable.text;\n\n const [onset, _, coda] = syllable.structure(true);\n\n function isBackUnrounded() {\n // see comment for explanation: https://github.com/charlesLoder/hebrew-transliteration/issues/45#issuecomment-1712186201\n // by this point, the resh has already been pharyngealized in the transliteration\n const pharyngealized = /r\u02C1|\u05D8|\u05E6|\u05E5/;\n if (pharyngealized.test(onset) || pharyngealized.test(coda)) {\n return true;\n }\n\n const nextSyllable = syllable.next?.value;\n if (!nextSyllable) {\n return false;\n }\n\n const nextOnset = nextSyllable.onset;\n if (pharyngealized.test(nextOnset)) {\n return true;\n }\n\n return false;\n }\n\n function transliterateShevaAsVowel(vowel: string) {\n const hasMeteg = syllable.clusters.map((c) => c.hasMeteg).includes(true);\n const secondaryAccent = hasMeteg ? \"\u02CC\" : \"\";\n const halfLengthMarker = hasMeteg ? \"\u02D1\" : \"\";\n const newVowel = vowel.replace(\"\u02D0\", \"\") + halfLengthMarker;\n\n return secondaryAccent + syllable.text.replace(/\\u{05B0}/u, newVowel);\n }\n\n const isGuttural = /[\u05D0\u05D4\u05D7\u05E2]/.test(nextSylFirstCluster);\n if (!isGuttural) {\n return transliterateShevaAsVowel(isBackUnrounded() ? \"\u0251\" : schema[\"PATAH\"]);\n }\n\n const nextVowel = nextSyllable.vowelNames[0];\n if (!nextVowel) {\n throw new Error(\n `Syllable ${syllable.text} has a sheva as a vowel, but the next syllable ${nextSylFirstCluster} does not have a vowel`\n );\n }\n\n if (nextVowel === \"SHEVA\") {\n throw new Error(\n `Syllable ${syllable.text} has a sheva as a vowel, but the next syllable ${nextSylFirstCluster} also has a sheva as a vowel`\n );\n }\n\n return transliterateShevaAsVowel(schema[nextVowel]);\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /\\u{5B4}\u05DD/u,\n TRANSLITERATION: (syl, heb) => {\n // a hiriq preceding a final mem only occurs in Jerusalem\n return syl.text.replace(heb, \"jim\");\n }\n },\n {\n FEATURE: \"word\",\n HEBREW: /(\u05D5\u05B0)?\u05D9\u05B4\u05E9\u05C2\u05BC\u05B8\u05E9\u05DB\u05B8\u05E8/,\n PASS_THROUGH: true,\n TRANSLITERATION: (word, heb) => {\n // matches the name Issachar\n const taamim = /[\\u{0590}-\\u{05AF}\\u{05BD}\\u{05BF}]/gu;\n const text = word.text.replace(taamim, \"\");\n const match = text.match(heb);\n const vav = match && match[1] ? match[1] : \"\";\n const issachar = \"jiss\u0254\u02D0\u02C8\u03C7\u0254\u02D0\u0254\u0280\u031F\";\n return `${vav}${issachar}`;\n }\n }\n ],\n allowNoNiqqud: false,\n article: false,\n holemHaser: \"remove\",\n longVowels: false,\n qametsQatan: true,\n shevaAfterMeteg: false,\n shevaWithMeteg: true,\n sqnmlvy: false,\n strict: true,\n wawShureq: false\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Schema } from \"../schema\";\n\nexport const tiberian: Schema = {\n VOCAL_SHEVA: \"a\",\n HATAF_SEGOL: \"\u025B\",\n HATAF_PATAH: \"a\",\n HATAF_QAMATS: \"\u0254\",\n HIRIQ: \"i\",\n TSERE: \"e\",\n SEGOL: \"\u025B\",\n PATAH: \"a\",\n QAMATS: \"\u0254\",\n HOLAM: \"o\",\n HOLAM_HASER: \"o\",\n QUBUTS: \"u\",\n DAGESH: \"\",\n DAGESH_CHAZAQ: true,\n MAQAF: \"-\",\n PASEQ: \"\",\n SOF_PASUQ: \"\",\n QAMATS_QATAN: \"\u0254\",\n FURTIVE_PATAH: \"a\",\n HIRIQ_YOD: \"i\u02D0\",\n TSERE_YOD: \"e\u02D0\",\n SEGOL_YOD: \"\u025B\u02D0\",\n SHUREQ: \"u\u02D0\",\n HOLAM_VAV: \"o\u02D0\",\n QAMATS_HE: \"\u0254\u02D0\",\n SEGOL_HE: \"\u025B\u02D0\",\n TSERE_HE: \"e\u02D0\",\n MS_SUFX: \"\u0254w\",\n ALEF: \"\u0294\",\n BET: \"v\",\n BET_DAGESH: \"b\",\n GIMEL: \"\u0281\",\n GIMEL_DAGESH: \"g\",\n DALET: \"\u00F0\",\n DALET_DAGESH: \"d\",\n HE: \"h\",\n VAV: \"v\",\n ZAYIN: \"z\",\n HET: \"\u0127\",\n TET: \"t\u02C1\",\n YOD: \"j\",\n FINAL_KAF: \"\u03C7\",\n KAF: \"\u03C7\",\n KAF_DAGESH: \"k\u02B0\",\n LAMED: \"l\",\n FINAL_MEM: \"m\",\n MEM: \"m\",\n FINAL_NUN: \"n\",\n NUN: \"n\",\n SAMEKH: \"s\",\n AYIN: \"\u0295\",\n FINAL_PE: \"f\",\n PE: \"f\",\n PE_DAGESH: \"p\u02B0\",\n FINAL_TSADI: \"s\u02C1\",\n TSADI: \"s\u02C1\",\n QOF: \"q\u031F\",\n RESH: \"\u0280\u031F\",\n SHIN: \"\u0283\",\n SIN: \"s\",\n TAV: \"\u03B8\",\n TAV_DAGESH: \"t\u02B0\",\n DIVINE_NAME: \"\u0294a\u00F0o\u02D0\u02C8n\u0254\u02D0\u0254j\",\n DIVINE_NAME_ELOHIM: \"\u0294\u025Blo\u02D0\u02C8hi\u02D0im\",\n STRESS_MARKER: { location: \"before-syllable\", mark: \"\u02C8\" },\n ADDITIONAL_FEATURES: [\n {\n FEATURE: \"cluster\",\n HEBREW: \"\\u{05D9}\\u{05BC}\",\n TRANSLITERATION: (cluster, hebrew) => {\n return cluster.text.replace(hebrew, \"\u025F\u025F\");\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /\u05EA\u05BC(?!\\u{05B0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // if there is a dagesh, but it is the beginning of the word\n // we can return the text, as the character w/ the dagesh will not be doubled\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n // if there is a dagesh, it may be that it is a dagesh qal (i.e. lene)\n // if it is a dagesh lene, then like the beginning of the word,\n // the character w/ the dagesh will not be doubled\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05EA\")) {\n return cluster.text;\n }\n\n // because the *_DAGESH value is a digraph, we need to replace the first character\n // or it will be doubled in rules.ts as \"t\u02B0t\u02B0\"\n const noAspiration = schema[\"TAV_DAGESH\"]?.replace(\"\u02B0\", \"\") ?? \"\";\n return cluster.text.replace(\"\u05EA\u05BC\", `${noAspiration + schema[\"TAV_DAGESH\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /\u05E4(?!\\u{05b0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // /\u05EA(?!\\u{05b0})/u rule for explanation\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05E4\")) {\n return cluster.text;\n }\n\n const noAspiration = schema[\"PE_DAGESH\"]?.replace(\"\u02B0\", \"\") ?? \"\";\n return cluster.text.replace(\"\u05E4\u05BC\", `${noAspiration + schema[\"PE_DAGESH\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /\u05D8\u05BC(?!\\u{05b0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // /\u05EA(?!\\u{05b0})/u rule for explanation\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05D8\")) {\n return cluster.text;\n }\n\n const noPharyngealization = schema[\"TET\"]?.replace(\"\u02C1\", \"\") ?? \"\";\n return cluster.text.replace(\"\u05D8\", `${noPharyngealization + schema[\"TET\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /\u05E6\u05BC(?!\\u{05b0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // /\u05EA(?!\\u{05b0})/u rule for explanation\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05E6\")) {\n return cluster.text;\n }\n\n const noPharyngealization = schema[\"TSADI\"]?.replace(\"\u02C1\", \"\") ?? \"\";\n return cluster.text.replace(\"\u05E6\", `${noPharyngealization + schema[\"TSADI\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: /(\u05DB\u05BC|\u05DA\u05BC)(?!\\u{05b0})/u,\n TRANSLITERATION: (cluster, _, schema) => {\n // /\u05EA\u05BC[\\u{05B4}-\\u{05BB}]/u rule for explanation\n if (!cluster.prev || cluster.prev.value?.isNotHebrew) {\n return cluster.text;\n }\n\n const prevCoda = cluster.syllable?.prev?.value?.codaWithGemination;\n if (!prevCoda?.includes(\"\u05DB\") && !prevCoda?.includes(\"\u05DA\")) {\n return cluster.text;\n }\n\n const noAspiration = schema[\"KAF_DAGESH\"]?.replace(\"\u02B0\", \"\") ?? \"\";\n return cluster.text.replace(/\u05DB\u05BC|\u05DA\u05BC/u, `${noAspiration + schema[\"KAF_DAGESH\"]}`);\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: \"\\u{05D0}(?![\\u{05B1}-\\u{05BB}\\u{05C7}])\",\n TRANSLITERATION: (cluster) => {\n const next = cluster.next?.value;\n if (next && next.isShureq) {\n return cluster.text;\n }\n\n return \"\";\n }\n },\n {\n FEATURE: \"cluster\",\n HEBREW: \"\\u{05D0}\\u{05BC}\",\n TRANSLITERATION: (cluster) => {\n // remove the dagesh\n return cluster.text.replace(\"\\u{05BC}\", \"\");\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /\u05E8/u,\n TRANSLITERATION: (syllable) => {\n // see TPT 229 for a summary if the pharyngealized resh\n const alveolars = /[\u05D3\u05D6\u05E6\u05EA\u05D8\u05E1\u05DC\u05E0]|\u05E9\u05C2/;\n\n // find cluster containing resh\n const cluster = syllable.clusters.filter((c) => c.text.includes(\"\u05E8\"))[0];\n const prevCluster = cluster.prev?.value;\n const currentSyllable = cluster?.syllable;\n const [onset, _, coda] = currentSyllable ? currentSyllable.structure(true) : [\"\", \"\", \"\"];\n\n if (prevCluster && alveolars.test(prevCluster.text)) {\n if (onset.includes(\"\u05E8\") && !prevCluster.hasVowel) {\n return syllable.text.replace(\"\u05E8\", \"r\u02C1\");\n }\n\n if (coda.includes(\"\u05E8\") && prevCluster.hasVowel) {\n return syllable.text.replace(\"\u05E8\", \"r\u02C1\");\n }\n }\n\n const nextCluster = cluster.next?.value;\n const lamedAndNun = /[\u05DC\u05E0\u05DF]/;\n if (nextCluster && lamedAndNun.test(nextCluster.text)) {\n if (onset.includes(\"\u05E8\") && !cluster.hasVowel) {\n return syllable.text.replace(\"\u05E8\", \"r\u02C1\");\n }\n\n if (coda.includes(\"\u05E8\") && cluster.hasSheva) {\n return syllable.text.replace(\"\u05E8\", \"r\u02C1\");\n }\n }\n\n // default\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: \"\u05D7\\u{05B7}\\u{05C3}?$\",\n PASS_THROUGH: true,\n TRANSLITERATION: (syllable, _hebrew, schema) => {\n // furtive patach before het preceded by vav or yod\n const prevText = syllable.prev?.value?.text || \"\";\n // see Khan 497-98 for examples involving length and the meteg\n // make sure to adjust other rules\n if (syllable.isFinal && prevText) {\n if (/[\u05D9\u05D5]/.test(prevText)) {\n const glide = /\u05D5/.test(prevText) ? \"w\" : \"j\";\n return glide + schema[\"PATAH\"] + schema[\"HET\"];\n }\n return schema[\"PATAH\"] + schema[\"HET\"];\n }\n\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: \"\u05E2\\u{05B7}\\u{05C3}?$\",\n PASS_THROUGH: true,\n TRANSLITERATION: (syllable, _hebrew, schema) => {\n // furtive patach before ayin preceded by vav or yod\n const prevText = syllable.prev?.value?.text;\n\n if (syllable.isFinal && prevText) {\n if (/[\u05D9\u05D5]/.test(prevText)) {\n const glide = /\u05D5/.test(prevText) ? \"w\" : \"j\";\n return glide + schema[\"PATAH\"] + schema[\"AYIN\"];\n }\n return schema[\"PATAH\"] + schema[\"AYIN\"];\n }\n\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: \"\u05D4\\u{05BC}\\u{05B7}\\u{05C3}?$\",\n PASS_THROUGH: true,\n TRANSLITERATION: (syllable, _hebrew, schema) => {\n // furtive patach before he preceded by vav or yod\n const prevText = syllable.prev?.value?.text;\n\n if (syllable.isFinal && prevText) {\n if (/[\u05D9\u05D5]/.test(prevText)) {\n const glide = /\u05D5/.test(prevText) ? \"w\" : \"j\";\n return glide + schema[\"PATAH\"] + schema[\"HE\"];\n }\n return schema[\"PATAH\"] + schema[\"HE\"];\n }\n\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /\u05D5\u05BC(?![\\u{05B4}-\\u{05BB}])/u,\n TRANSLITERATION: (syllable, _, schema) => {\n // finds a vav with a dagesh not followed by a vowel character\n // if the syllable is the first syllable, replace with wu\u02D0\n // syllable.clusters[0].isShureq is not totally necessary, but it's a good check\n if (!syllable.prev && syllable.clusters[0].isShureq) {\n const text = syllable.text;\n const hasMeteg = syllable.clusters.map((c) => c.hasMeteg).includes(true); // also called gaya marking half long vowel length (\u00A71.2.8.2.2)\n const secondaryAccent = hasMeteg ? \"\u02CC\" : \"\";\n const halfLengthMarker = hasMeteg ? \"\u02D1\" : \"\";\n return text.replace(\"\u05D5\u05BC\", `${secondaryAccent}wu${halfLengthMarker}`);\n }\n\n if (syllable.isAccented && syllable.isClosed) {\n const noLength = schema[\"SHUREQ\"].replace(\"\u02D0\", \"\");\n return syllable.text.replace(\"\u05D5\u05BC\", schema[\"SHUREQ\"] + noLength);\n }\n\n return syllable.text;\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /[\\u{05B4}-\\u{05BB}\\u{05C7}]/u,\n TRANSLITERATION: (syllable, _, schema) => {\n // this features matches any syllable that has a full vowel character (i.e. not sheva)\n const vowelName = syllable.vowelNames[0];\n const vowel = syllable.vowels[0];\n\n if (!vowel || !vowelName) {\n return syllable.text;\n }\n\n if (vowelName === \"SHEVA\") {\n throw new Error(`Syllable ${syllable.text} has a sheva as vowel, should not have matched`);\n }\n\n // half vowels do not have length; exit early\n const hasHalfVowel = syllable.clusters.map((c) => c.hasHalfVowel).includes(true);\n if (hasHalfVowel) {\n throw new Error(`Syllable ${syllable.text} has a hataf as vowel, should not have matched`);\n }\n\n const [onset, _nuclues, coda] = syllable.structure(true);\n /**\n * Determines the realization of a patach\n *\n * @param vowelChar the hebrew vowel character\n * @returns the back unrounded patach realization of the vowel or the original vowel if not patach\n */\n function determinePatachRealization(vowelChar: string) {\n // see comment for explanation: https://github.com/charlesLoder/hebrew-transliteration/issues/45#issuecomment-1712186201\n // exit early if not patach\n if (vowelName !== \"PATAH\" && vowelName !== \"HATAF_PATAH\") {\n return vowelChar;\n }\n\n // by this point, the resh has already been pharyngealized\n // but only for the current syllable\n const pharyngealized = /r\u02C1|\u05D8|\u05E6|\u05E5/;\n if (pharyngealized.test(onset) || pharyngealized.test(coda)) {\n return \"\u0251\";\n }\n\n // the resh of the next syllable has not been transliterated yet\n // check if the next syllable has a resh in the onset\n // and if the current syllable's coda is an alveolar\n const nextSyllable = syllable.next?.value;\n const nextOnset = nextSyllable?.onset;\n const alveolars = /[\u05D3\u05D6\u05E6\u05EA\u05D8\u05E1\u05DC\u05E0]|\u05E9\u05C2/;\n if (nextOnset === \"\u05E8\" && alveolars.test(coda)) {\n return \"\u0251\";\n }\n\n return vowelChar;\n }\n\n const noMaterText = syllable.clusters\n .filter((c) => !c.isMater)\n .map((c) => c.text)\n .join(\"\")\n // a holem followed by a he without a mappiq is not a mater\n // but b/c the he is not pronounced, we need to remove the final he\n .replace(/(\\u{05B9}.{1})\\u{05D4}(?!\\u{05BC})/u, \"$1\");\n\n const hasMaters = syllable.clusters.map((c) => c.isMater).includes(true);\n const lengthMarker = \"\u02D0\";\n const halfLengthMarker = \"\u02D1\";\n\n // See TPT \u00A71.2.10 concering meteg/gaya\n const hasMeteg = syllable.clusters.map((c) => c.hasMeteg).includes(true);\n if (hasMeteg) {\n const hasLongVowel = syllable.clusters.map((c) => c.hasLongVowel).includes(true);\n // when a meteg is present, the syllable implicitly has secondary stress\n // and the vowel is extended if it is not already long\n const firstConsonant = noMaterText[0];\n return noMaterText\n .replace(firstConsonant, `\u02CC${firstConsonant}`)\n .replace(vowel, `${determinePatachRealization(vowel)}${hasLongVowel ? lengthMarker : halfLengthMarker}`);\n }\n\n const isClosed = syllable.isClosed;\n const isAccented = syllable.isAccented;\n\n // TPT \u00A71.2.4, p288\n // When long vowels with the main stress occur in closed syllables,\n // there is evidence that an epenthetic with the same quality as that of the long vowel\n // occurred before the final consonant in its phonetic realization\"\n if (isAccented && isClosed) {\n const syllableSeparator = schema[\"SYLLABLE_SEPARATOR\"] || \"\";\n const vowelRealization = determinePatachRealization(vowel);\n return noMaterText.replace(\n vowel,\n `${vowelRealization + lengthMarker + syllableSeparator + vowelRealization}`\n );\n }\n\n // https://github.com/charlesLoder/hebrew-transliteration/issues/45#issuecomment-1747967050\n const longerVowels = [\"HOLAM\", \"TSERE\", \"QAMATS\"];\n if (!isAccented && isClosed && !syllable.isFinal && longerVowels.includes(vowelName)) {\n const syllableSeparator = schema[\"SYLLABLE_SEPARATOR\"] || \"\";\n const vowelRealization = determinePatachRealization(vowel);\n return noMaterText.replace(\n vowel,\n `${vowelRealization + lengthMarker + syllableSeparator + vowelRealization}`\n );\n }\n\n // TPT \u00A71.2.2.1 p268\n // Vowels represented by basic vowel signs are long when they are either\n // (i) in a stressed syllable or (ii) in an unstressed open syllable.\n if (isAccented || (!isAccented && !isClosed)) {\n return noMaterText.replace(vowel, `${determinePatachRealization(vowel) + lengthMarker}`);\n }\n\n if (!hasMaters && !isClosed && !isAccented) {\n return noMaterText.replace(vowel, `${determinePatachRealization(vowel)}`);\n }\n\n return syllable.text.replace(vowel, `${determinePatachRealization(vowel)}`);\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /[\\u{05B1}-\\u{05B3}]/u,\n TRANSLITERATION: (syllable) => {\n // this features matches any syllable that has a hataf vowel character\n const vowelName = syllable.vowelNames[0];\n const vowel = syllable.vowels[0];\n\n if (!vowel || !vowelName) {\n return syllable.text;\n }\n\n if (vowelName === \"SHEVA\") {\n throw new Error(`Syllable ${syllable.text} has a sheva as vowel, should not have matched`);\n }\n\n const hasNonHalfVowels = syllable.clusters.map((c) => c.hasShortVowel || c.hasLongVowel).includes(true);\n if (hasNonHalfVowels) {\n throw new Error(`Syllable ${syllable.text} does not have a hataf vowel, should not have matched`);\n }\n\n const [onset, _nuclues, coda] = syllable.structure(true);\n /**\n * Determines the realization of a patach\n *\n * @param vowelChar the hebrew vowel character\n * @returns the back unrounded patach realization of the vowel or the original vowel if not patach\n */\n function determinePatachRealization(vowelChar: string) {\n // exit early if not hataf patach\n if (vowelName !== \"HATAF_PATAH\") {\n return vowelChar;\n }\n\n // by this point, the resh has already been pharyngealized in the transliteration\n // but only for the current syllable\n const pharyngealized = /r\u02C1|\u05D8|\u05E6|\u05E5/;\n if (pharyngealized.test(onset) || pharyngealized.test(coda)) {\n return \"\u0251\";\n }\n\n // the resh of the next syllable has not been transliterated yet\n // check if the next syllable has a resh in the onset\n // and if the current syllable's coda is an alveolar\n const nextSyllable = syllable.next?.value;\n const nextOnset = nextSyllable?.onset;\n const alveolars = /[\u05D3\u05D6\u05E6\u05EA\u05D8\u05E1\u05DC\u05E0]|\u05E9\u05C2/;\n if (nextOnset === \"\u05E8\" && alveolars.test(coda)) {\n return \"\u0251\";\n }\n\n // check for the \"environment of pharyngealized consonants\"\n // https://www.tiberianhebrew.com/patah\n if (nextOnset && /[\u05E6\u05E5\u05D8]/.test(nextOnset)) {\n return \"\u0251\";\n }\n\n return vowelChar;\n }\n\n return syllable.text.replace(vowel, `${determinePatachRealization(vowel)}`);\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /(?<!.*([\\u{05B4}-\\u{05BB}\\u{05C7}]|\\u{05D5}\\u{05BC}).*)\\u{05B0}/u,\n TRANSLITERATION: (syllable, _hebrew, schema) => {\n // matches any syllable that contains a sheva that is not preceded by a full vowel character [\\u{05B4}-\\u{05BB}\\u{05C7}]\n // or shureq \\u{5D5}\\u{5BC}\n const nextSyllable = syllable.next?.value;\n if (!nextSyllable) return syllable.text;\n\n const nextSylFirstCluster = nextSyllable.clusters[0].text;\n if (!nextSylFirstCluster) return syllable.text;\n\n const [onset, _, coda] = syllable.structure(true);\n\n function isBackUnrounded() {\n // see comment for explanation: https://github.com/charlesLoder/hebrew-transliteration/issues/45#issuecomment-1712186201\n // by this point, the resh has already been pharyngealized in the transliteration\n const pharyngealized = /r\u02C1|\u05D8|\u05E6|\u05E5/;\n if (pharyngealized.test(onset) || pharyngealized.test(coda)) {\n return true;\n }\n\n const nextSyllable = syllable.next?.value;\n if (!nextSyllable) {\n return false;\n }\n\n const nextOnset = nextSyllable.onset;\n if (pharyngealized.test(nextOnset)) {\n return true;\n }\n\n return false;\n }\n\n function transliterateShevaAsVowel(vowel: string) {\n const hasMeteg = syllable.clusters.map((c) => c.hasMeteg).includes(true);\n const secondaryAccent = hasMeteg ? \"\u02CC\" : \"\";\n const halfLengthMarker = hasMeteg ? \"\u02D1\" : \"\";\n const newVowel = vowel.replace(\"\u02D0\", \"\") + halfLengthMarker;\n\n return secondaryAccent + syllable.text.replace(/\\u{05B0}/u, newVowel);\n }\n\n const isGuttural = /[\u05D0\u05D4\u05D7\u05E2]/.test(nextSylFirstCluster);\n if (!isGuttural) {\n return transliterateShevaAsVowel(isBackUnrounded() ? \"\u0251\" : schema[\"PATAH\"]);\n }\n\n const nextVowel = nextSyllable.vowelNames[0];\n if (!nextVowel) {\n throw new Error(\n `Syllable ${syllable.text} has a sheva as a vowel, but the next syllable ${nextSylFirstCluster} does not have a vowel`\n );\n }\n\n if (nextVowel === \"SHEVA\") {\n throw new Error(\n `Syllable ${syllable.text} has a sheva as a vowel, but the next syllable ${nextSylFirstCluster} also has a sheva as a vowel`\n );\n }\n\n return transliterateShevaAsVowel(schema[nextVowel]);\n }\n },\n {\n FEATURE: \"syllable\",\n HEBREW: /\\u{5B4}\u05DD/u,\n TRANSLITERATION: (syl, heb) => {\n // a hiriq preceding a final mem only occurs in Jerusalem\n return syl.text.replace(heb, \"jim\");\n }\n },\n {\n FEATURE: \"word\",\n HEBREW: /(\u05D5\u05B0)?\u05D9\u05B4\u05E9\u05C2\u05BC\u05B8\u05E9\u05DB\u05B8\u05E8/,\n PASS_THROUGH: true,\n TRANSLITERATION: (word, heb) => {\n // matches the name Issachar\n const taamim = /[\\u{0590}-\\u{05AF}\\u{05BD}\\u{05BF}]/gu;\n const text = word.text.replace(taamim, \"\");\n const match = text.match(heb);\n const vav = match && match[1] ? match[1] : \"\";\n const issachar = \"jiss\u0254\u02D0\u02C8\u03C7\u0254\u02D0\u0254\u0280\u031F\";\n return `${vav}${issachar}`;\n }\n }\n ],\n allowNoNiqqud: false,\n article: false,\n holemHaser: \"remove\",\n ketivQeres: [\n {\n input: \"\u05D4\u05B4\u05D5\u05D0\",\n output: \"\u05D4\u05B4\u05D9\u05D0\",\n captureTaamim: true,\n ignoreTaamim: true\n }\n ],\n longVowels: false,\n qametsQatan: true,\n shevaAfterMeteg: false,\n shevaWithMeteg: true,\n sqnmlvy: false,\n strict: true,\n wawShureq: false\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["_a", "nextSyllable"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/sequence.ts"],
4
- "sourcesContent": ["import { Text } from \"havarotjs\";\n\nexport const vowels = /[\\u{05B0}-\\u{05BC}\\u{05C7}]/u;\n\n/**\n * sequences Hebrew charactes according to the [SBL Hebrew Font Manual](https://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf)\n *\n * @param text - a string of Hebrew character\n * @param qametsQatan - option to convert regular qamets characters to qamets qatan\n * @returns a sequenced string of text\n * @remarks\n * seqeuncing follows the pattern of: consonant - dagesh - vowel - ta'am as defined in the {@link https://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf | SBL Hebrew Font Manual}\n *\n * @example\n *\n * ```ts\n * heb.sequence(\"\\u{5D1}\\u{5B0}\\u{5BC}\\u{5E8}\\u{5B5}\\u{5D0}\\u{5E9}\\u{5B4}\\u{5C1}\\u{596}\\u{5D9}\\u{5EA}\");\n * \"\\u{5D1}\\u{5BC}\\u{5B0}\\u{5E8}\\u{5B5}\\u{5D0}\\u{5E9}\\u{5C1}\\u{5B4}\\u{596}\\u{5D9}\\u{5EA}\";\n * ```\n */\nexport const sequence = (text: string, qametsQatan = false): string => {\n return vowels.test(text) ? new Text(text, { qametsQatan }).text : text;\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;;uBAAqB;AAEd,MAAM,SAAS;AAkBf,MAAM,WAAW,CAAC,MAAc,cAAc,UAAiB;AACpE,SAAO,OAAO,KAAK,IAAI,IAAI,IAAI,sBAAK,MAAM,EAAE,YAAW,CAAE,EAAE,OAAO;AACpE;",
4
+ "sourcesContent": ["import { Text } from \"havarotjs\";\n\nexport const vowels = /[\\u{05B0}-\\u{05BC}\\u{05C7}]/u;\n\n/**\n * Sequences Hebrew charactes according to the [SBL Hebrew Font Manual](https://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf)\n *\n * @param text - a string of Hebrew character\n * @param qametsQatan - convert qamets to qamets qatan\n * @returns a sequenced string of text\n *\n * @example\n * ```js\n * import { sequence } from \"hebrew-transliteration\";\n *\n * sequence(\"\\u{5D1}\\u{5B0}\\u{5BC}\\u{5E8}\\u{5B5}\\u{5D0}\\u{5E9}\\u{5B4}\\u{5C1}\\u{596}\\u{5D9}\\u{5EA}\");\n * // \"\\u{5D1}\\u{5BC}\\u{5B0}\\u{5E8}\\u{5B5}\\u{5D0}\\u{5E9}\\u{5C1}\\u{5B4}\\u{596}\\u{5D9}\\u{5EA}\";\n * ```\n *\n * @remarks\n * Seqeuncing follows the pattern of: consonant - dagesh - vowel - ta'am as defined in the {@link https://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf | SBL Hebrew Font Manual}\n */\nexport const sequence = (text: string, qametsQatan = false): string => {\n return vowels.test(text) ? new Text(text, { qametsQatan }).text : text;\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;;uBAAqB;AAEd,MAAM,SAAS;AAoBf,MAAM,WAAW,CAAC,MAAc,cAAc,UAAiB;AACpE,SAAO,OAAO,KAAK,IAAI,IAAI,IAAI,sBAAK,MAAM,EAAE,YAAW,CAAE,EAAE,OAAO;AACpE;",
6
6
  "names": []
7
7
  }
@@ -20,10 +20,10 @@ __export(transliterate_exports, {
20
20
  transliterate: () => transliterate
21
21
  });
22
22
  module.exports = __toCommonJS(transliterate_exports);
23
- var import_rules = require("./rules.js");
24
- var import_schema = require("./schema.js");
25
23
  var import_havarotjs = require("havarotjs");
26
24
  var import_word = require("havarotjs/word");
25
+ var import_rules = require("./rules.js");
26
+ var import_schema = require("./schema.js");
27
27
  const getSylOpts = (schema) => {
28
28
  const options = {};
29
29
  if ("longVowels" in schema)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/transliterate.ts"],
4
- "sourcesContent": ["import { sylRules, wordRules } from \"./rules\";\nimport { SBL, Schema } from \"./schema\";\nimport { Text } from \"havarotjs\";\nimport { Word } from \"havarotjs/word\";\nimport { SylOpts } from \"havarotjs/text\";\n\n/**\n *\n * @param schema\n * @returns syllable options passed into havarotjs\n * @description sanitizes the SylOpts of the schema so as to not pass in undefined\n */\nconst getSylOpts = (schema: Partial<SylOpts>) => {\n const options: SylOpts = {};\n if (\"longVowels\" in schema) options.longVowels = schema.longVowels;\n if (\"qametsQatan\" in schema) options.qametsQatan = schema.qametsQatan;\n if (\"sqnmlvy\" in schema) options.shevaAfterMeteg = schema.shevaAfterMeteg;\n if (\"sqnmlvy\" in schema) options.sqnmlvy = schema.sqnmlvy;\n if (\"wawShureq\" in schema) options.wawShureq = schema.wawShureq;\n if (\"article\" in schema) options.article = schema.article;\n if (\"allowNoNiqqud\" in schema) options.allowNoNiqqud = schema.allowNoNiqqud;\n if (\"strict\" in schema) options.strict = schema.strict;\n return options;\n};\n\n/**\n * transliterates Hebrew text\n *\n * @param text - a string or {@link https://charlesloder.github.io/havarot/classes/text.Text.html | Text} of Hebrew characters\n * @param schema - a {@link Schema} for transliterating the text\n * @returns a transliterated text\n *\n * @example Default\n * ```ts\n * import { transliterate } from \"hebrew-transliteration\";\n *\n * transliterate(\"\u05D0\u05B1\u05DC\u05B9\u05D4\u05B4\u05D9\u05DD\");\n * // \"\u02BE\u0115l\u014Dh\u00EEm\";\n * ```\n *\n * ---\n *\n * @remarks\n *\n * If no {@link Schema} is passed, then the package defaults to SBL's academic style\n *\n * You can pass in a partial schema that will modify SBL's academic style:\n *\n * ```ts\n * transliterate(\"\u05E9\u05C1\u05B8\u05DC\u05D5\u05B9\u05DD\", { SHIN: \"sh\" })\n * // sh\u0101l\u00F4m\n * ```\n *\n * ---\n *\n * If you need a fully custom schema, it is best to use the {@link Schema} constructor:\n *\n * ```ts\n * import { transliterate, Schema } from \"hebrew-transliteration\";\n *\n * const schema = new Schema({ ALEF: \"'\", BET: \"B\", ... QAMETS: \"A\", ... }) // truncated for brevity\n *\n * transliterate(\"\u05D0\u05B8\u05A3\u05D1\", schema)\n * // 'AB\n * ```\n *\n */\nexport const transliterate = (text: string | Text, schema?: Partial<Schema> | Schema) => {\n const transSchema = schema instanceof Schema ? schema : new SBL(schema ?? {});\n const newText = text instanceof Text ? text : new Text(text, getSylOpts(transSchema ?? {}));\n return newText.words\n .map((word) => {\n let transliteration = wordRules(word, transSchema);\n if (transliteration instanceof Word) {\n transliteration = transliteration.syllables\n .map((s) => sylRules(s, transSchema))\n .join(transSchema.SYLLABLE_SEPARATOR ?? \"\");\n }\n return `${transliteration}${word.whiteSpaceAfter ?? \"\"}`;\n })\n .join(\"\");\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;mBAAoC;AACpC,oBAA4B;AAC5B,uBAAqB;AACrB,kBAAqB;AASrB,MAAM,aAAa,CAAC,WAA4B;AAC9C,QAAM,UAAmB,CAAA;AACzB,MAAI,gBAAgB;AAAQ,YAAQ,aAAa,OAAO;AACxD,MAAI,iBAAiB;AAAQ,YAAQ,cAAc,OAAO;AAC1D,MAAI,aAAa;AAAQ,YAAQ,kBAAkB,OAAO;AAC1D,MAAI,aAAa;AAAQ,YAAQ,UAAU,OAAO;AAClD,MAAI,eAAe;AAAQ,YAAQ,YAAY,OAAO;AACtD,MAAI,aAAa;AAAQ,YAAQ,UAAU,OAAO;AAClD,MAAI,mBAAmB;AAAQ,YAAQ,gBAAgB,OAAO;AAC9D,MAAI,YAAY;AAAQ,YAAQ,SAAS,OAAO;AAChD,SAAO;AACT;AA4CO,MAAM,gBAAgB,CAAC,MAAqB,WAAqC;AACtF,QAAM,cAAc,kBAAkB,uBAAS,SAAS,IAAI,kBAAI,0BAAU,CAAA,CAAE;AAC5E,QAAM,UAAU,gBAAgB,wBAAO,OAAO,IAAI,sBAAK,MAAM,WAAW,oCAAe,CAAA,CAAE,CAAC;AAC1F,SAAO,QAAQ,MACZ,IAAI,CAAC,SAAQ;AAvElB;AAwEM,QAAI,sBAAkB,wBAAU,MAAM,WAAW;AACjD,QAAI,2BAA2B,kBAAM;AACnC,wBAAkB,gBAAgB,UAC/B,IAAI,CAAC,UAAM,uBAAS,GAAG,WAAW,CAAC,EACnC,MAAK,iBAAY,uBAAZ,YAAkC,EAAE;IAC9C;AACA,WAAO,GAAG,mBAAkB,UAAK,oBAAL,YAAwB;EACtD,CAAC,EACA,KAAK,EAAE;AACZ;",
4
+ "sourcesContent": ["import { Text } from \"havarotjs\";\nimport { SylOpts } from \"havarotjs/text\";\nimport { Word } from \"havarotjs/word\";\nimport { sylRules, wordRules } from \"./rules\";\nimport { SBL, Schema } from \"./schema\";\n\n/**\n * Gets the syllable options from a partial schema\n *\n * @private\n * @param schema\n * @returns syllable options passed into havarotjs\n *\n * @remarks\n * Sanitizes the SylOpts of the schema so as to not pass in undefined\n */\nconst getSylOpts = (schema: Partial<Schema>) => {\n const options: SylOpts = {};\n if (\"longVowels\" in schema) options.longVowels = schema.longVowels;\n if (\"qametsQatan\" in schema) options.qametsQatan = schema.qametsQatan;\n if (\"sqnmlvy\" in schema) options.shevaAfterMeteg = schema.shevaAfterMeteg;\n if (\"sqnmlvy\" in schema) options.sqnmlvy = schema.sqnmlvy;\n if (\"wawShureq\" in schema) options.wawShureq = schema.wawShureq;\n if (\"article\" in schema) options.article = schema.article;\n if (\"allowNoNiqqud\" in schema) options.allowNoNiqqud = schema.allowNoNiqqud;\n if (\"strict\" in schema) options.strict = schema.strict;\n return options;\n};\n\n/**\n * Transliterates Hebrew text according to a given schema\n *\n * @param text - a string or {@link https://charlesloder.github.io/havarotjs/classes/text.Text.html | Text} of Hebrew characters\n * @param schema - a {@link Schema} for transliterating the text\n * @returns a transliterated text\n *\n * @example\n * Default\n * ```ts\n * import { transliterate } from \"hebrew-transliteration\";\n *\n * transliterate(\"\u05D0\u05B1\u05DC\u05B9\u05D4\u05B4\u05D9\u05DD\");\n * // \"\u02BE\u0115l\u014Dh\u00EEm\";\n * ```\n *\n * @example\n * Using `Partial<Schema>`\n * ```ts\n * import { transliterate } from \"hebrew-transliteration\";\n *\n * transliterate(\"\u05E9\u05C1\u05B8\u05DC\u05D5\u05B9\u05DD\", { SHIN: \"sh\" })\n * // sh\u0101l\u00F4m\n * ```\n *\n * @example\n * Using a custom `Schema`\n * ```ts\n * import { transliterate, Schema } from \"hebrew-transliteration\";\n *\n * const schema = new Schema({ ALEF: \"'\", BET: \"B\", ... QAMETS: \"A\", ... }) // truncated for brevity\n *\n * transliterate(\"\u05D0\u05B8\u05A3\u05D1\", schema)\n * // 'AB\n * ```\n *\n * @remarks\n * If no {@link Schema} is passed, then the package defaults to SBL's academic style. You can pass in a partial schema that will modify SBL's academic style.\n * If you need a fully custom schema, it is best to use the {@link Schema} constructor.\n *\n */\nexport const transliterate = (text: string | Text, schema?: Partial<Schema> | Schema) => {\n const transSchema = schema instanceof Schema ? schema : new SBL(schema ?? {});\n const newText = text instanceof Text ? text : new Text(text, getSylOpts(transSchema ?? {}));\n return newText.words\n .map((word) => {\n let transliteration = wordRules(word, transSchema);\n if (transliteration instanceof Word) {\n transliteration = transliteration.syllables\n .map((s) => sylRules(s, transSchema))\n .join(transSchema.SYLLABLE_SEPARATOR ?? \"\");\n }\n return `${transliteration}${word.whiteSpaceAfter ?? \"\"}`;\n })\n .join(\"\");\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;uBAAqB;AAErB,kBAAqB;AACrB,mBAAoC;AACpC,oBAA4B;AAY5B,MAAM,aAAa,CAAC,WAA2B;AAC7C,QAAM,UAAmB,CAAA;AACzB,MAAI,gBAAgB;AAAQ,YAAQ,aAAa,OAAO;AACxD,MAAI,iBAAiB;AAAQ,YAAQ,cAAc,OAAO;AAC1D,MAAI,aAAa;AAAQ,YAAQ,kBAAkB,OAAO;AAC1D,MAAI,aAAa;AAAQ,YAAQ,UAAU,OAAO;AAClD,MAAI,eAAe;AAAQ,YAAQ,YAAY,OAAO;AACtD,MAAI,aAAa;AAAQ,YAAQ,UAAU,OAAO;AAClD,MAAI,mBAAmB;AAAQ,YAAQ,gBAAgB,OAAO;AAC9D,MAAI,YAAY;AAAQ,YAAQ,SAAS,OAAO;AAChD,SAAO;AACT;AA2CO,MAAM,gBAAgB,CAAC,MAAqB,WAAqC;AACtF,QAAM,cAAc,kBAAkB,uBAAS,SAAS,IAAI,kBAAI,0BAAU,CAAA,CAAE;AAC5E,QAAM,UAAU,gBAAgB,wBAAO,OAAO,IAAI,sBAAK,MAAM,WAAW,oCAAe,CAAA,CAAE,CAAC;AAC1F,SAAO,QAAQ,MACZ,IAAI,CAAC,SAAQ;AA1ElB;AA2EM,QAAI,sBAAkB,wBAAU,MAAM,WAAW;AACjD,QAAI,2BAA2B,kBAAM;AACnC,wBAAkB,gBAAgB,UAC/B,IAAI,CAAC,UAAM,uBAAS,GAAG,WAAW,CAAC,EACnC,MAAK,iBAAY,uBAAZ,YAAkC,EAAE;IAC9C;AACA,WAAO,GAAG,mBAAkB,UAAK,oBAAL,YAAwB;EACtD,CAAC,EACA,KAAK,EAAE;AACZ;",
6
6
  "names": []
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,11 +1,7 @@
1
1
  import { Text } from "havarotjs";
2
- import { transliterate } from "./transliterate.js";
3
- import { sequence } from "./sequence.js";
4
2
  import { remove } from "./remove.js";
5
- import { Schema } from "./schema.js";
6
- /**
7
- * I accidentally published a canary version without a tag, making it "latest".
8
- * Just adding this comment and creating a new version to make it latest
9
- */
10
- export { remove, Schema, sequence, Text, transliterate };
3
+ import { SBL, Schema } from "./schema.js";
4
+ import { sequence } from "./sequence.js";
5
+ import { transliterate } from "./transliterate.js";
6
+ export { remove, SBL, Schema, sequence, Text, transliterate };
11
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AACjD,OAAO,EAKL,GAAG,EACH,MAAM,EAMP,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { sequence } from "./sequence.js";
2
2
  const removeMap = {
3
- // accents //
4
3
  ETNAHTA: "\u{0591}", // U+0591 HEBREW ACCENT ETNAHTA
5
4
  SEGOLTA: "\u{0592}", // U+0592 HEBREW ACCENT SEGOL
6
5
  SHALSHELET: "\u{0593}", // U+0593 HEBREW ACCENT SHALSHELET
@@ -31,7 +30,6 @@ const removeMap = {
31
30
  ILUY: "\u{05AC}", // U+05AC HEBREW ACCENT ILUY
32
31
  DEHI: "\u{05AD}", // U+05AD HEBREW ACCENT DEHI
33
32
  ZINOR: "\u{05AE}", // U+05AE HEBREW ACCENT ZINOR
34
- // points //
35
33
  SHEVA: "\u{05B0}", // HEBREW POINT SHEVA
36
34
  HATAF_SEGOL: "\u{05B1}", // HEBREW POINT HATAF SEGOL
37
35
  HATAF_PATAH: "\u{05B2}", // HEBREW POINT HATAF PATAH
@@ -55,7 +53,6 @@ const removeMap = {
55
53
  PASEQ: "\u{05C0}", // HEBREW PUNCTUATION PASEQ
56
54
  SOF_PASUQ: "\u{05C3}", // HEBREW PUNCTUATION SOF_PASUQ
57
55
  NUN_HAFUKHA: "\u{05C6}", // HEBREW PUNCTUATION NUN_HAFUKHA
58
- // the punctuation geresh/gereshayim is different then the accent ones
59
56
  PUNC_GERESH: "\u{05F3}", // HEBREW PUNCTUATION GERESH
60
57
  PUNC_GERSHAYIM: "\u{05F4}", // HEBREW PUNCTUATION GERSHAYIM
61
58
  MASORA_CIRCLE: "\u{05AF}", // U+MASORA CIRCLE HEBREW MARK 05AF,
@@ -167,31 +164,31 @@ export const all = {
167
164
  ...marks
168
165
  };
169
166
  /**
170
- * removes niqqud from Hebrew text
167
+ * Removes niqqud from Hebrew text
171
168
  *
172
169
  * @param text - a string of Hebrew characters
173
170
  * @param options
174
171
  * @returns Hebrew characters with accents and niqqud optionally removed
175
172
  *
176
- * @example Default
177
- *
173
+ * @example
174
+ * Default
178
175
  * ```ts
179
176
  * // by default removes all accents and metheg and rafe
180
177
  * remove("שָׂרַ֣י אִשְׁתְּךָ֔, וַֽיִּמְצְא֗וּ");
181
178
  * // שָׂרַי אִשְׁתְּךָ, וַיִּמְצְאוּ
182
179
  * ```
183
180
  *
184
- * @example Remove accents and vowels, but not shin/sin dots
185
- *
181
+ * @example
182
+ * Remove accents and vowels, but not shin/sin dots
186
183
  * ```ts
187
- * import { accents, vowelsl } from "hebrew-transliteration/removeOptions";
184
+ * import { accents, vowels } from "hebrew-transliteration/removeOptions";
188
185
  *
189
186
  * remove("שָׂרַ֣י אִשְׁתְּךָ֔, וַֽיִּמְצְא֗וּ", { ...accents, ...vowels, METEG: true });
190
187
  * // שׂרי אשׁתך, וימצאו
191
188
  * ```
192
189
  *
193
- * @example Remove all
194
- *
190
+ * @example
191
+ * Remove all
195
192
  * ```ts
196
193
  * import { all } from "hebrew-transliteration/removeOptions";
197
194
  *
@@ -206,7 +203,9 @@ export const remove = (text, options = { ...accents, METEG: true, RAFE: true })
206
203
  return keys.reduce((a, c) => {
207
204
  const key = removeMap[c] ?? null;
208
205
  if (key) {
209
- return a.replace(new RegExp(key, "gu"), "");
206
+ // if it is a MAQAF, replace it with a space
207
+ const replacement = key === "\u{05BE}" ? " " : "";
208
+ return a.replace(new RegExp(key, "gu"), replacement);
210
209
  }
211
210
  return a;
212
211
  }, sequenced);
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/remove.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/remove.ts"],"names":[],"mappings":"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"}