hebrew-transliteration 2.8.3 → 2.8.4
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/dist/cjs/rules.js +15 -12
- package/dist/cjs/rules.js.map +2 -2
- package/dist/cjs/transliterate.js +11 -9
- package/dist/cjs/transliterate.js.map +3 -3
- package/dist/esm/rules.js +14 -12
- package/dist/esm/rules.js.map +1 -1
- package/dist/esm/transliterate.js +12 -12
- package/dist/esm/transliterate.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/rules.js
CHANGED
|
@@ -60,12 +60,15 @@ const copySyllable = (newText, old) => {
|
|
|
60
60
|
newSyl.word = old.word;
|
|
61
61
|
return newSyl;
|
|
62
62
|
};
|
|
63
|
-
const getDageshChazaqVal = (input,
|
|
63
|
+
const getDageshChazaqVal = (input, schema, isChazaq) => {
|
|
64
|
+
var _a;
|
|
64
65
|
if (!isChazaq) {
|
|
65
66
|
return input;
|
|
66
67
|
}
|
|
68
|
+
const dagesh = schema["DAGESH_CHAZAQ"];
|
|
69
|
+
const syllableSeparator = (_a = schema["SYLLABLE_SEPARATOR"]) != null ? _a : "";
|
|
67
70
|
if (typeof dagesh === "boolean") {
|
|
68
|
-
return input
|
|
71
|
+
return input + syllableSeparator + input;
|
|
69
72
|
}
|
|
70
73
|
return input + dagesh;
|
|
71
74
|
};
|
|
@@ -250,36 +253,36 @@ const cluterRules = (cluster, schema) => {
|
|
|
250
253
|
}
|
|
251
254
|
const isDageshChazq = isDageshChazaq(cluster, schema);
|
|
252
255
|
if (schema.BET_DAGESH && /ב\u{05BC}/u.test(clusterText)) {
|
|
253
|
-
return replaceWithRegex(clusterText, /ב\u{05BC}/u, getDageshChazaqVal(schema.BET_DAGESH, schema
|
|
256
|
+
return replaceWithRegex(clusterText, /ב\u{05BC}/u, getDageshChazaqVal(schema.BET_DAGESH, schema, isDageshChazq));
|
|
254
257
|
}
|
|
255
258
|
if (schema.GIMEL_DAGESH && /ג\u{05BC}/u.test(clusterText)) {
|
|
256
|
-
return replaceWithRegex(clusterText, /ג\u{05BC}/u, getDageshChazaqVal(schema.GIMEL_DAGESH, schema
|
|
259
|
+
return replaceWithRegex(clusterText, /ג\u{05BC}/u, getDageshChazaqVal(schema.GIMEL_DAGESH, schema, isDageshChazq));
|
|
257
260
|
}
|
|
258
261
|
if (schema.DALET_DAGESH && /ד\u{05BC}/u.test(clusterText)) {
|
|
259
|
-
return replaceWithRegex(clusterText, /ד\u{05BC}/u, getDageshChazaqVal(schema.DALET_DAGESH, schema
|
|
262
|
+
return replaceWithRegex(clusterText, /ד\u{05BC}/u, getDageshChazaqVal(schema.DALET_DAGESH, schema, isDageshChazq));
|
|
260
263
|
}
|
|
261
264
|
if (schema.KAF_DAGESH && /כ\u{05BC}/u.test(clusterText)) {
|
|
262
|
-
return replaceWithRegex(clusterText, /כ\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema
|
|
265
|
+
return replaceWithRegex(clusterText, /כ\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema, isDageshChazq));
|
|
263
266
|
}
|
|
264
267
|
if (schema.KAF_DAGESH && /ך\u{05BC}/u.test(clusterText)) {
|
|
265
|
-
return replaceWithRegex(clusterText, /ך\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema
|
|
268
|
+
return replaceWithRegex(clusterText, /ך\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema, isDageshChazq));
|
|
266
269
|
}
|
|
267
270
|
if (schema.PE_DAGESH && /פ\u{05BC}/u.test(clusterText)) {
|
|
268
|
-
return replaceWithRegex(clusterText, /פ\u{05BC}/u, getDageshChazaqVal(schema.PE_DAGESH, schema
|
|
271
|
+
return replaceWithRegex(clusterText, /פ\u{05BC}/u, getDageshChazaqVal(schema.PE_DAGESH, schema, isDageshChazq));
|
|
269
272
|
}
|
|
270
273
|
if (schema.TAV_DAGESH && /ת\u{05BC}/u.test(clusterText)) {
|
|
271
|
-
return replaceWithRegex(clusterText, /ת\u{05BC}/u, getDageshChazaqVal(schema.TAV_DAGESH, schema
|
|
274
|
+
return replaceWithRegex(clusterText, /ת\u{05BC}/u, getDageshChazaqVal(schema.TAV_DAGESH, schema, isDageshChazq));
|
|
272
275
|
}
|
|
273
276
|
if (/ש\u{05C1}/u.test(clusterText)) {
|
|
274
|
-
return replaceWithRegex(clusterText, /ש\u{05C1}/u, getDageshChazaqVal(schema.SHIN, schema
|
|
277
|
+
return replaceWithRegex(clusterText, /ש\u{05C1}/u, getDageshChazaqVal(schema.SHIN, schema, isDageshChazq));
|
|
275
278
|
}
|
|
276
279
|
if (/ש\u{05C2}/u.test(clusterText)) {
|
|
277
|
-
return replaceWithRegex(clusterText, /ש\u{05C2}/u, getDageshChazaqVal(schema.SIN, schema
|
|
280
|
+
return replaceWithRegex(clusterText, /ש\u{05C2}/u, getDageshChazaqVal(schema.SIN, schema, isDageshChazq));
|
|
278
281
|
}
|
|
279
282
|
if (isDageshChazq) {
|
|
280
283
|
const consonant = cluster.chars[0].text;
|
|
281
284
|
const consonantDagesh = new RegExp(consonant + "\u05BC", "u");
|
|
282
|
-
return replaceWithRegex(clusterText, consonantDagesh, getDageshChazaqVal(consonant, schema
|
|
285
|
+
return replaceWithRegex(clusterText, consonantDagesh, getDageshChazaqVal(consonant, schema, isDageshChazq));
|
|
283
286
|
}
|
|
284
287
|
if (cluster.isShureq) {
|
|
285
288
|
return clusterText.replace("\u05D5\u05BC", schema.SHUREQ);
|
package/dist/cjs/rules.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/rules.ts"],
|
|
4
|
-
"sourcesContent": ["import { Cluster } from \"havarotjs/cluster\";\nimport { Syllable } from \"havarotjs/syllable\";\nimport { clusterSplitGroup, hebChars } from \"havarotjs/utils/regularExpressions\";\nimport { Word } from \"havarotjs/word\";\nimport { transliterateMap as map } from \"./hebCharsTrans\";\nimport { Schema } from \"./schema\";\n\nconst taamim = /[\\u{0590}-\\u{05AF}\\u{05BD}\\u{05BF}]/gu;\n\nconst copySyllable = (newText: string, old: Syllable) => {\n const newClusters = newText.split(clusterSplitGroup).map((clusterString) => new Cluster(clusterString, true));\n const oldClusters = old.clusters;\n\n // set prev and next based on old syllable\n if (newClusters.length === oldClusters.length) {\n newClusters.forEach((c, i) => ((c.prev = oldClusters[i]?.prev ?? null), (c.next = oldClusters[i]?.next ?? null)));\n } else {\n for (let i = 0; i < newClusters.length; i++) {\n const c = newClusters[i];\n if (oldClusters[i]?.text[0] === c?.text[0]) {\n c.prev = oldClusters[i]?.prev ?? null;\n c.next = oldClusters[i]?.next ?? null;\n } else {\n c.prev = oldClusters[i]?.prev ?? null;\n c.next = oldClusters[i + 1]?.next ?? null;\n i++;\n }\n }\n }\n\n const newSyl = new Syllable(newClusters, {\n isClosed: old.isClosed,\n isAccented: old.isAccented,\n isFinal: old.isFinal\n });\n\n newClusters.forEach((c) => (c.syllable = newSyl));\n\n newSyl.prev = old.prev;\n newSyl.next = old.next;\n newSyl.word = old.word;\n\n return newSyl;\n};\n\nconst getDageshChazaqVal = (input: string, dagesh: Schema[\"DAGESH_CHAZAQ\"], isChazaq: boolean) => {\n if (!isChazaq) {\n return input;\n }\n\n if (typeof dagesh === \"boolean\") {\n return input.repeat(2);\n }\n\n return input + dagesh;\n};\n\n/**\n * Formats the Divine Name with any Latin chars\n *\n * @param str word text\n * @param schema\n * @returns the Divine Name with any pre or proceding Latin chars\n */\nconst getDivineName = (str: string, schema: Schema): string => {\n const begn = str[0];\n const end = str[str.length - 1];\n // if DN is pointed with a hiriq, then it is read as 'elohim\n const divineName =\n schema.DIVINE_NAME_ELOHIM && /\\u{05B4}/u.test(str) ? schema.DIVINE_NAME_ELOHIM : schema.DIVINE_NAME;\n return `${hebChars.test(begn) ? \"\" : begn}${divineName}${hebChars.test(end) ? \"\" : end}`;\n};\n\nconst isDageshChazaq = (cluster: Cluster, schema: Schema) => {\n // if there is no dagesh chazaq in the schema, then return false\n if (!schema.DAGESH_CHAZAQ) {\n return false;\n }\n\n // a shureq could potentially match because of dagesh\n if (cluster.isShureq) {\n return false;\n }\n\n // if there is no dagesh in the text, then return false\n if (!/\\u{05BC}/u.test(cluster.text)) {\n return false;\n }\n\n const prevWord = cluster.syllable?.word?.prev?.value;\n if (prevWord && prevWord?.isInConstruct && !prevWord.syllables[prevWord.syllables.length - 1].isClosed) {\n return true;\n }\n\n // this could be a code smell, b/c the copySyllable function results are not the most predictable\n const prevSyllable = cluster.syllable?.prev;\n if (!prevSyllable) {\n return false;\n }\n\n const prevCoda = prevSyllable.value?.codaWithGemination;\n if (!prevCoda) {\n return false;\n }\n\n return prevCoda === cluster.syllable?.onset;\n};\n\nconst joinSyllableChars = (syl: Syllable, sylChars: string[], schema: Schema): string => {\n const isInConstruct = syl.word?.isInConstruct;\n\n if (isInConstruct) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n if (!syl.isAccented) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n // if syllable is only punctuation (e.g. a paseq), it should not receive a stress marker\n const isOnlyPunctuation = syl.clusters.map((c) => c.isPunctuation).every((c) => c);\n if (isOnlyPunctuation) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n if (schema.STRESS_MARKER) {\n const exclude = schema.STRESS_MARKER?.exclude ?? \"never\";\n\n if (exclude === \"single\" && !syl.prev && !syl.next) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n if (exclude === \"final\" && !syl.next) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n const location = schema.STRESS_MARKER.location;\n const mark = schema.STRESS_MARKER.mark;\n\n // if the stress marker is already present, no need to add it again\n if (syl.text.includes(mark)) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n if (location === \"before-syllable\") {\n const isDoubled = syl.clusters.map((c) => isDageshChazaq(c, schema)).includes(true);\n if (isDoubled) {\n const chars = sylChars.map(mapChars(schema)).join(\"\");\n const [first, ...rest] = chars;\n return `${first}${mark}${rest.join(\"\")}`;\n }\n\n return `${mark}${sylChars.map(mapChars(schema)).join(\"\")}`;\n }\n\n if (location === \"after-syllable\") {\n return `${sylChars.map(mapChars(schema)).join(\"\")}${mark}`;\n }\n\n const vowels = [\n schema.PATAH,\n schema.HATAF_PATAH,\n schema.QAMATS,\n schema.HATAF_QAMATS,\n schema.SEGOL,\n schema.HATAF_SEGOL,\n schema.TSERE,\n schema.HIRIQ,\n schema.HOLAM,\n schema.QAMATS_QATAN,\n schema.QUBUTS,\n schema.QAMATS_HE,\n schema.SEGOL_HE,\n schema.TSERE_HE,\n schema.HIRIQ_YOD,\n schema.TSERE_YOD,\n schema.SEGOL_YOD,\n schema.HOLAM_VAV,\n schema.SHUREQ\n ]\n .filter((v) => typeof v === \"string\")\n .sort((a, b) => b.length - a.length);\n const vowelRgx = new RegExp(`${vowels.join(\"|\")}`);\n const str = sylChars.map(mapChars(schema)).join(\"\");\n const match = str.match(vowelRgx);\n\n if (location === \"before-vowel\") {\n return match?.length ? str.replace(match[0], `${mark}${match[0]}`) : str;\n }\n\n // after-vowel\n return match?.length ? str.replace(match[0], `${match[0]}${mark}`) : str;\n }\n\n return sylChars.map(mapChars(schema)).join(\"\");\n};\n\n/**\n * Maps Hebrew characters to schema\n *\n * @param input - text to be transliterated\n * @param schema - a {@link Schema} for transliterating the input\n * @returns transliteration of characters\n *\n */\nconst mapChars = (schema: Schema) => (input: string) => {\n return [...input].map((char: string) => (char in map ? schema[map[char]] : char)).join(\"\");\n};\n\nconst materFeatures = (syl: Syllable, schema: Schema) => {\n const mater = syl.clusters.filter((c) => c.isMater)[0];\n const prev = mater.prev instanceof Cluster ? mater.prev : null;\n const materText = mater.text;\n const prevText = (prev?.text || \"\").replace(taamim, \"\");\n // string comprised of all non-mater clusters in a syl with a mater\n let noMaterText = syl.clusters\n .filter((c) => !c.isMater)\n .map((c) => cluterRules(c, schema))\n .join(\"\");\n\n // workaround for maqaf\n const hasMaqaf = mater.text.includes(\"\u05BE\");\n noMaterText = hasMaqaf ? noMaterText.concat(\"\u05BE\") : noMaterText;\n\n if (/\u05D9/.test(materText)) {\n // hiriq\n if (/\\u{05B4}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B4}/u, schema.HIRIQ_YOD);\n }\n // tsere\n if (/\\u{05B5}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B5}/u, schema.TSERE_YOD);\n }\n // segol\n if (/\\u{05B6}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B6}/u, schema.SEGOL_YOD);\n }\n }\n\n if (/\u05D5/u.test(materText)) {\n // holam\n if (/\\u{05B9}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B9}/u, schema.HOLAM_VAV);\n }\n }\n\n if (/\u05D4/.test(materText)) {\n // qamets\n if (/\\u{05B8}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B8}/u, schema.QAMATS_HE);\n }\n }\n\n return materText;\n};\n\nconst removeTaamim = (input: string) => input.replace(taamim, \"\");\n\n/**\n * Replaces part of a string and transliterates the remaining characters according to the schema\n *\n * @example\n * ```ts\n * // replaces \u05D1\u05B8 as VA, but only when matching the regex sequence\n * const betAndQamats = /\\u{05D1}\\u{05B8}/u\n * replaceAndTransliterate(\"\u05D3\u05BC\u05B8\u05D1\u05B8\u05E8\", betAndQamats, \"VA\", schema);\n * // d\u0101VAr\n * ```\n *\n * @param input the text to be transliterated\n * @param regex the regex used as the search value\n * @param replaceValue the string to replace the regex\n * @param schema the Schema\n */\nconst replaceAndTransliterate = (input: string, regex: RegExp, replaceValue: string, schema: Schema) => {\n const sylSeq = replaceWithRegex(input, regex, replaceValue);\n return [...sylSeq].map(mapChars(schema)).join(\"\");\n};\n\n/**\n * Wrapper around `String.replace()` to constrain to a RegExp\n *\n * @param input the string to be modified\n * @param regex the regex to be used as the search value\n * @param replaceValue the string to replace the regex\n */\nconst replaceWithRegex = (input: string, regex: RegExp, replaceValue: string) => input.replace(regex, replaceValue);\n\n// MAIN RULES\n\nconst cluterRules = (cluster: Cluster, schema: Schema) => {\n let clusterText = removeTaamim(cluster.text);\n const clusterFeatures = schema.ADDITIONAL_FEATURES?.filter((seq) => seq.FEATURE === \"cluster\");\n if (clusterFeatures) {\n for (const feature of clusterFeatures) {\n const heb = new RegExp(feature.HEBREW, \"u\");\n if (feature.FEATURE === \"cluster\" && heb.test(clusterText)) {\n const transliteration = feature.TRANSLITERATION;\n const passThrough = feature.PASS_THROUGH ?? true;\n\n if (typeof transliteration === \"string\") {\n return replaceAndTransliterate(clusterText, heb, transliteration, schema);\n }\n\n if (!passThrough) {\n return transliteration(cluster, feature.HEBREW, schema);\n }\n\n clusterText = transliteration(cluster, feature.HEBREW, schema);\n }\n }\n }\n\n const syl = cluster.syllable;\n clusterText = cluster.hasSheva && syl?.isClosed ? clusterText.replace(/\\u{05B0}/u, \"\") : clusterText;\n\n // mappiq he\n if (/\u05D4\\u{05BC}$/mu.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05D4\\u{05BC}/u, schema.HE);\n }\n\n if (syl?.isFinal && !syl?.isClosed) {\n const furtiveChet = /\\u{05D7}\\u{05B7}$/mu;\n if (furtiveChet.test(clusterText)) {\n return replaceWithRegex(clusterText, furtiveChet, \"\\u{05B7}\\u{05D7}\");\n }\n\n const furtiveAyin = /\\u{05E2}\\u{05B7}$/mu;\n if (furtiveAyin.test(clusterText)) {\n return replaceWithRegex(clusterText, furtiveAyin, \"\\u{05B7}\\u{05E2}\");\n }\n\n const furtiveHe = /\\u{05D4}\\u{05BC}\\u{05B7}$/mu;\n if (furtiveHe.test(clusterText)) {\n return replaceWithRegex(clusterText, furtiveHe, \"\\u{05B7}\\u{05D4}\\u{05BC}\");\n }\n }\n\n // dagesh chazaq\n const isDageshChazq = isDageshChazaq(cluster, schema);\n\n if (schema.BET_DAGESH && /\u05D1\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(\n clusterText,\n /\u05D1\\u{05BC}/u,\n getDageshChazaqVal(schema.BET_DAGESH, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (schema.GIMEL_DAGESH && /\u05D2\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(\n clusterText,\n /\u05D2\\u{05BC}/u,\n getDageshChazaqVal(schema.GIMEL_DAGESH, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (schema.DALET_DAGESH && /\u05D3\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(\n clusterText,\n /\u05D3\\u{05BC}/u,\n getDageshChazaqVal(schema.DALET_DAGESH, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (schema.KAF_DAGESH && /\u05DB\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(\n clusterText,\n /\u05DB\\u{05BC}/u,\n getDageshChazaqVal(schema.KAF_DAGESH, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (schema.KAF_DAGESH && /\u05DA\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(\n clusterText,\n /\u05DA\\u{05BC}/u,\n getDageshChazaqVal(schema.KAF_DAGESH, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (schema.PE_DAGESH && /\u05E4\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(\n clusterText,\n /\u05E4\\u{05BC}/u,\n getDageshChazaqVal(schema.PE_DAGESH, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (schema.TAV_DAGESH && /\u05EA\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(\n clusterText,\n /\u05EA\\u{05BC}/u,\n getDageshChazaqVal(schema.TAV_DAGESH, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (/\u05E9\\u{05C1}/u.test(clusterText)) {\n return replaceWithRegex(\n clusterText,\n /\u05E9\\u{05C1}/u,\n getDageshChazaqVal(schema.SHIN, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (/\u05E9\\u{05C2}/u.test(clusterText)) {\n return replaceWithRegex(\n clusterText,\n /\u05E9\\u{05C2}/u,\n getDageshChazaqVal(schema.SIN, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (isDageshChazq) {\n const consonant = cluster.chars[0].text;\n const consonantDagesh = new RegExp(consonant + \"\\u{05BC}\", \"u\");\n return replaceWithRegex(\n clusterText,\n consonantDagesh,\n getDageshChazaqVal(consonant, schema.DAGESH_CHAZAQ, isDageshChazq)\n );\n }\n\n if (cluster.isShureq) {\n return clusterText.replace(\"\u05D5\u05BC\", schema.SHUREQ);\n }\n\n return clusterText;\n};\n\nexport const sylRules = (syl: Syllable, schema: Schema): string => {\n const sylTxt = syl.text.replace(taamim, \"\");\n\n const syllableFeatures = schema.ADDITIONAL_FEATURES?.filter((seq) => seq.FEATURE === \"syllable\");\n if (syllableFeatures) {\n for (const feature of syllableFeatures) {\n const heb = new RegExp(feature.HEBREW, \"u\");\n if (feature.FEATURE === \"syllable\" && heb.test(sylTxt)) {\n const transliteration = feature.TRANSLITERATION;\n const passThrough = feature.PASS_THROUGH ?? true;\n\n if (typeof transliteration === \"string\") {\n return replaceAndTransliterate(sylTxt, heb, transliteration, schema);\n }\n\n if (!passThrough) {\n return transliteration(syl, feature.HEBREW, schema);\n }\n\n const newText = transliteration(syl, feature.HEBREW, schema);\n\n // if the transliteration just returns the syllable.text, then no need to copy the syllable\n if (newText !== sylTxt) {\n syl = copySyllable(newText, syl);\n }\n }\n }\n }\n\n // syllable is 3ms sufx\n const mSSuffix = /\\u{05B8}\\u{05D9}\\u{05D5}/u;\n if (syl.isFinal && mSSuffix.test(sylTxt)) {\n const sufxSyl = replaceWithRegex(sylTxt, mSSuffix, schema.MS_SUFX);\n return joinSyllableChars(syl, [...sufxSyl], schema);\n }\n\n // syllable has a mater\n const hasMater = syl.clusters.map((c) => c.isMater).includes(true);\n if (hasMater) {\n const materSyl = materFeatures(syl, schema);\n return joinSyllableChars(syl, [...materSyl], schema);\n }\n\n if (schema.SEGOL_HE && /\\u{05B6}\\u{05D4}/u.test(sylTxt)) {\n const returnTxt = syl.clusters.map((cluster) => cluterRules(cluster, schema));\n const joined = joinSyllableChars(syl, returnTxt, schema).replace(taamim, \"\");\n return joined.replace(schema[\"SEGOL\"] + schema[\"HE\"], schema.SEGOL_HE);\n }\n\n // tsere\n if (schema.TSERE_HE && /\\u{05B5}\\u{05D4}/u.test(sylTxt)) {\n const returnTxt = syl.clusters.map((cluster) => cluterRules(cluster, schema));\n const joined = joinSyllableChars(syl, returnTxt, schema).replace(taamim, \"\");\n return joined.replace(schema[\"TSERE\"] + schema[\"HE\"], schema.TSERE_HE);\n }\n\n // regular syllables\n const returnTxt = syl.clusters.map((cluster) => cluterRules(cluster, schema));\n\n // there may be taamim still in the text, so remove them\n return joinSyllableChars(syl, returnTxt, schema).replace(taamim, \"\");\n};\n\nexport const wordRules = (word: Word, schema: Schema): string | Word => {\n if (word.isDivineName) {\n return getDivineName(word.text, schema);\n }\n\n if (word.hasDivineName) {\n return `${sylRules(word.syllables[0], schema)}-${getDivineName(word.text, schema)}`;\n }\n\n if (word.isNotHebrew) {\n return word.text;\n }\n\n const wordFeatures = schema.ADDITIONAL_FEATURES?.filter((seq) => seq.FEATURE === \"word\");\n if (wordFeatures) {\n const text = word.text.replace(taamim, \"\");\n for (const feature of wordFeatures) {\n const heb = new RegExp(feature.HEBREW, \"u\");\n if (heb.test(text)) {\n const transliteration = feature.TRANSLITERATION;\n const passThrough = feature.PASS_THROUGH ?? true;\n\n if (typeof transliteration === \"string\") {\n return replaceAndTransliterate(text, heb, transliteration, schema);\n }\n\n if (!passThrough) {\n return transliteration(word, feature.HEBREW, schema);\n }\n\n return new Word(transliteration(word, feature.HEBREW, schema), schema);\n }\n }\n return word;\n }\n\n return word;\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;;qBAAwB;AACxB,sBAAyB;AACzB,gCAA4C;AAC5C,kBAAqB;AACrB,2BAAwC;AAGxC,MAAM,SAAS;AAEf,MAAM,eAAe,CAAC,SAAiB,QAAiB;AATxD;AAUE,QAAM,cAAc,QAAQ,MAAM,2CAAiB,EAAE,IAAI,CAAC,kBAAkB,IAAI,uBAAQ,eAAe,IAAI,CAAC;AAC5G,QAAM,cAAc,IAAI;AAGxB,MAAI,YAAY,WAAW,YAAY,QAAQ;AAC7C,gBAAY,QAAQ,CAAC,GAAG,MAAG;AAf/B,UAAAA,KAAAC,KAAAC,KAAAC;AAeoC,eAAE,QAAOF,OAAAD,MAAA,YAAY,OAAZ,gBAAAA,IAAgB,SAAhB,OAAAC,MAAwB,MAAQ,EAAE,QAAOE,OAAAD,MAAA,YAAY,OAAZ,gBAAAA,IAAgB,SAAhB,OAAAC,MAAwB;KAAM;EAClH,OAAO;AACL,aAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAC3C,YAAM,IAAI,YAAY;AACtB,YAAI,iBAAY,OAAZ,mBAAgB,KAAK,SAAO,uBAAG,KAAK,KAAI;AAC1C,UAAE,QAAO,uBAAY,OAAZ,mBAAgB,SAAhB,YAAwB;AACjC,UAAE,QAAO,uBAAY,OAAZ,mBAAgB,SAAhB,YAAwB;MACnC,OAAO;AACL,UAAE,QAAO,uBAAY,OAAZ,mBAAgB,SAAhB,YAAwB;AACjC,UAAE,QAAO,uBAAY,IAAI,OAAhB,mBAAoB,SAApB,YAA4B;AACrC;MACF;IACF;EACF;AAEA,QAAM,SAAS,IAAI,yBAAS,aAAa;IACvC,UAAU,IAAI;IACd,YAAY,IAAI;IAChB,SAAS,IAAI;GACd;AAED,cAAY,QAAQ,CAAC,MAAO,EAAE,WAAW,MAAO;AAEhD,SAAO,OAAO,IAAI;AAClB,SAAO,OAAO,IAAI;AAClB,SAAO,OAAO,IAAI;AAElB,SAAO;AACT;AAEA,MAAM,qBAAqB,CAAC,OAAe,
|
|
4
|
+
"sourcesContent": ["import { Cluster } from \"havarotjs/cluster\";\nimport { Syllable } from \"havarotjs/syllable\";\nimport { clusterSplitGroup, hebChars } from \"havarotjs/utils/regularExpressions\";\nimport { Word } from \"havarotjs/word\";\nimport { transliterateMap as map } from \"./hebCharsTrans\";\nimport { Schema } from \"./schema\";\n\nconst taamim = /[\\u{0590}-\\u{05AF}\\u{05BD}\\u{05BF}]/gu;\n\nconst copySyllable = (newText: string, old: Syllable) => {\n const newClusters = newText.split(clusterSplitGroup).map((clusterString) => new Cluster(clusterString, true));\n const oldClusters = old.clusters;\n\n // set prev and next based on old syllable\n if (newClusters.length === oldClusters.length) {\n newClusters.forEach((c, i) => ((c.prev = oldClusters[i]?.prev ?? null), (c.next = oldClusters[i]?.next ?? null)));\n } else {\n for (let i = 0; i < newClusters.length; i++) {\n const c = newClusters[i];\n if (oldClusters[i]?.text[0] === c?.text[0]) {\n c.prev = oldClusters[i]?.prev ?? null;\n c.next = oldClusters[i]?.next ?? null;\n } else {\n c.prev = oldClusters[i]?.prev ?? null;\n c.next = oldClusters[i + 1]?.next ?? null;\n i++;\n }\n }\n }\n\n const newSyl = new Syllable(newClusters, {\n isClosed: old.isClosed,\n isAccented: old.isAccented,\n isFinal: old.isFinal\n });\n\n newClusters.forEach((c) => (c.syllable = newSyl));\n\n newSyl.prev = old.prev;\n newSyl.next = old.next;\n newSyl.word = old.word;\n\n return newSyl;\n};\n\nconst getDageshChazaqVal = (input: string, schema: Schema, isChazaq: boolean) => {\n if (!isChazaq) {\n return input;\n }\n\n const dagesh = schema[\"DAGESH_CHAZAQ\"];\n const syllableSeparator = schema[\"SYLLABLE_SEPARATOR\"] ?? \"\";\n\n if (typeof dagesh === \"boolean\") {\n return input + syllableSeparator + input;\n }\n\n return input + dagesh;\n};\n\n/**\n * Formats the Divine Name with any Latin chars\n *\n * @param str word text\n * @param schema\n * @returns the Divine Name with any pre or proceding Latin chars\n */\nconst getDivineName = (str: string, schema: Schema): string => {\n const begn = str[0];\n const end = str[str.length - 1];\n // if DN is pointed with a hiriq, then it is read as 'elohim\n const divineName =\n schema.DIVINE_NAME_ELOHIM && /\\u{05B4}/u.test(str) ? schema.DIVINE_NAME_ELOHIM : schema.DIVINE_NAME;\n return `${hebChars.test(begn) ? \"\" : begn}${divineName}${hebChars.test(end) ? \"\" : end}`;\n};\n\nconst isDageshChazaq = (cluster: Cluster, schema: Schema) => {\n // if there is no dagesh chazaq in the schema, then return false\n if (!schema.DAGESH_CHAZAQ) {\n return false;\n }\n\n // a shureq could potentially match because of dagesh\n if (cluster.isShureq) {\n return false;\n }\n\n // if there is no dagesh in the text, then return false\n if (!/\\u{05BC}/u.test(cluster.text)) {\n return false;\n }\n\n const prevWord = cluster.syllable?.word?.prev?.value;\n if (prevWord && prevWord?.isInConstruct && !prevWord.syllables[prevWord.syllables.length - 1].isClosed) {\n return true;\n }\n\n // this could be a code smell, b/c the copySyllable function results are not the most predictable\n const prevSyllable = cluster.syllable?.prev;\n if (!prevSyllable) {\n return false;\n }\n\n const prevCoda = prevSyllable.value?.codaWithGemination;\n if (!prevCoda) {\n return false;\n }\n\n return prevCoda === cluster.syllable?.onset;\n};\n\nconst joinSyllableChars = (syl: Syllable, sylChars: string[], schema: Schema): string => {\n const isInConstruct = syl.word?.isInConstruct;\n\n if (isInConstruct) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n if (!syl.isAccented) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n // if syllable is only punctuation (e.g. a paseq), it should not receive a stress marker\n const isOnlyPunctuation = syl.clusters.map((c) => c.isPunctuation).every((c) => c);\n if (isOnlyPunctuation) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n if (schema.STRESS_MARKER) {\n const exclude = schema.STRESS_MARKER?.exclude ?? \"never\";\n\n if (exclude === \"single\" && !syl.prev && !syl.next) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n if (exclude === \"final\" && !syl.next) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n const location = schema.STRESS_MARKER.location;\n const mark = schema.STRESS_MARKER.mark;\n\n // if the stress marker is already present, no need to add it again\n if (syl.text.includes(mark)) {\n return sylChars.map(mapChars(schema)).join(\"\");\n }\n\n if (location === \"before-syllable\") {\n const isDoubled = syl.clusters.map((c) => isDageshChazaq(c, schema)).includes(true);\n if (isDoubled) {\n const chars = sylChars.map(mapChars(schema)).join(\"\");\n const [first, ...rest] = chars;\n return `${first}${mark}${rest.join(\"\")}`;\n }\n\n return `${mark}${sylChars.map(mapChars(schema)).join(\"\")}`;\n }\n\n if (location === \"after-syllable\") {\n return `${sylChars.map(mapChars(schema)).join(\"\")}${mark}`;\n }\n\n const vowels = [\n schema.PATAH,\n schema.HATAF_PATAH,\n schema.QAMATS,\n schema.HATAF_QAMATS,\n schema.SEGOL,\n schema.HATAF_SEGOL,\n schema.TSERE,\n schema.HIRIQ,\n schema.HOLAM,\n schema.QAMATS_QATAN,\n schema.QUBUTS,\n schema.QAMATS_HE,\n schema.SEGOL_HE,\n schema.TSERE_HE,\n schema.HIRIQ_YOD,\n schema.TSERE_YOD,\n schema.SEGOL_YOD,\n schema.HOLAM_VAV,\n schema.SHUREQ\n ]\n .filter((v) => typeof v === \"string\")\n .sort((a, b) => b.length - a.length);\n const vowelRgx = new RegExp(`${vowels.join(\"|\")}`);\n const str = sylChars.map(mapChars(schema)).join(\"\");\n const match = str.match(vowelRgx);\n\n if (location === \"before-vowel\") {\n return match?.length ? str.replace(match[0], `${mark}${match[0]}`) : str;\n }\n\n // after-vowel\n return match?.length ? str.replace(match[0], `${match[0]}${mark}`) : str;\n }\n\n return sylChars.map(mapChars(schema)).join(\"\");\n};\n\n/**\n * Maps Hebrew characters to schema\n *\n * @param input - text to be transliterated\n * @param schema - a {@link Schema} for transliterating the input\n * @returns transliteration of characters\n *\n */\nconst mapChars = (schema: Schema) => (input: string) => {\n return [...input].map((char: string) => (char in map ? schema[map[char]] : char)).join(\"\");\n};\n\nconst materFeatures = (syl: Syllable, schema: Schema) => {\n const mater = syl.clusters.filter((c) => c.isMater)[0];\n const prev = mater.prev instanceof Cluster ? mater.prev : null;\n const materText = mater.text;\n const prevText = (prev?.text || \"\").replace(taamim, \"\");\n // string comprised of all non-mater clusters in a syl with a mater\n let noMaterText = syl.clusters\n .filter((c) => !c.isMater)\n .map((c) => cluterRules(c, schema))\n .join(\"\");\n\n // workaround for maqaf\n const hasMaqaf = mater.text.includes(\"\u05BE\");\n noMaterText = hasMaqaf ? noMaterText.concat(\"\u05BE\") : noMaterText;\n\n if (/\u05D9/.test(materText)) {\n // hiriq\n if (/\\u{05B4}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B4}/u, schema.HIRIQ_YOD);\n }\n // tsere\n if (/\\u{05B5}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B5}/u, schema.TSERE_YOD);\n }\n // segol\n if (/\\u{05B6}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B6}/u, schema.SEGOL_YOD);\n }\n }\n\n if (/\u05D5/u.test(materText)) {\n // holam\n if (/\\u{05B9}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B9}/u, schema.HOLAM_VAV);\n }\n }\n\n if (/\u05D4/.test(materText)) {\n // qamets\n if (/\\u{05B8}/u.test(prevText)) {\n return replaceWithRegex(noMaterText, /\\u{05B8}/u, schema.QAMATS_HE);\n }\n }\n\n return materText;\n};\n\nconst removeTaamim = (input: string) => input.replace(taamim, \"\");\n\n/**\n * Replaces part of a string and transliterates the remaining characters according to the schema\n *\n * @example\n * ```ts\n * // replaces \u05D1\u05B8 as VA, but only when matching the regex sequence\n * const betAndQamats = /\\u{05D1}\\u{05B8}/u\n * replaceAndTransliterate(\"\u05D3\u05BC\u05B8\u05D1\u05B8\u05E8\", betAndQamats, \"VA\", schema);\n * // d\u0101VAr\n * ```\n *\n * @param input the text to be transliterated\n * @param regex the regex used as the search value\n * @param replaceValue the string to replace the regex\n * @param schema the Schema\n */\nconst replaceAndTransliterate = (input: string, regex: RegExp, replaceValue: string, schema: Schema) => {\n const sylSeq = replaceWithRegex(input, regex, replaceValue);\n return [...sylSeq].map(mapChars(schema)).join(\"\");\n};\n\n/**\n * Wrapper around `String.replace()` to constrain to a RegExp\n *\n * @param input the string to be modified\n * @param regex the regex to be used as the search value\n * @param replaceValue the string to replace the regex\n */\nconst replaceWithRegex = (input: string, regex: RegExp, replaceValue: string) => input.replace(regex, replaceValue);\n\n// MAIN RULES\n\nconst cluterRules = (cluster: Cluster, schema: Schema) => {\n let clusterText = removeTaamim(cluster.text);\n const clusterFeatures = schema.ADDITIONAL_FEATURES?.filter((seq) => seq.FEATURE === \"cluster\");\n if (clusterFeatures) {\n for (const feature of clusterFeatures) {\n const heb = new RegExp(feature.HEBREW, \"u\");\n if (feature.FEATURE === \"cluster\" && heb.test(clusterText)) {\n const transliteration = feature.TRANSLITERATION;\n const passThrough = feature.PASS_THROUGH ?? true;\n\n if (typeof transliteration === \"string\") {\n return replaceAndTransliterate(clusterText, heb, transliteration, schema);\n }\n\n if (!passThrough) {\n return transliteration(cluster, feature.HEBREW, schema);\n }\n\n clusterText = transliteration(cluster, feature.HEBREW, schema);\n }\n }\n }\n\n const syl = cluster.syllable;\n clusterText = cluster.hasSheva && syl?.isClosed ? clusterText.replace(/\\u{05B0}/u, \"\") : clusterText;\n\n // mappiq he\n if (/\u05D4\\u{05BC}$/mu.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05D4\\u{05BC}/u, schema.HE);\n }\n\n if (syl?.isFinal && !syl?.isClosed) {\n const furtiveChet = /\\u{05D7}\\u{05B7}$/mu;\n if (furtiveChet.test(clusterText)) {\n return replaceWithRegex(clusterText, furtiveChet, \"\\u{05B7}\\u{05D7}\");\n }\n\n const furtiveAyin = /\\u{05E2}\\u{05B7}$/mu;\n if (furtiveAyin.test(clusterText)) {\n return replaceWithRegex(clusterText, furtiveAyin, \"\\u{05B7}\\u{05E2}\");\n }\n\n const furtiveHe = /\\u{05D4}\\u{05BC}\\u{05B7}$/mu;\n if (furtiveHe.test(clusterText)) {\n return replaceWithRegex(clusterText, furtiveHe, \"\\u{05B7}\\u{05D4}\\u{05BC}\");\n }\n }\n\n // dagesh chazaq\n const isDageshChazq = isDageshChazaq(cluster, schema);\n\n if (schema.BET_DAGESH && /\u05D1\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05D1\\u{05BC}/u, getDageshChazaqVal(schema.BET_DAGESH, schema, isDageshChazq));\n }\n\n if (schema.GIMEL_DAGESH && /\u05D2\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05D2\\u{05BC}/u, getDageshChazaqVal(schema.GIMEL_DAGESH, schema, isDageshChazq));\n }\n\n if (schema.DALET_DAGESH && /\u05D3\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05D3\\u{05BC}/u, getDageshChazaqVal(schema.DALET_DAGESH, schema, isDageshChazq));\n }\n\n if (schema.KAF_DAGESH && /\u05DB\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05DB\\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema, isDageshChazq));\n }\n\n if (schema.KAF_DAGESH && /\u05DA\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05DA\\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema, isDageshChazq));\n }\n\n if (schema.PE_DAGESH && /\u05E4\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05E4\\u{05BC}/u, getDageshChazaqVal(schema.PE_DAGESH, schema, isDageshChazq));\n }\n\n if (schema.TAV_DAGESH && /\u05EA\\u{05BC}/u.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05EA\\u{05BC}/u, getDageshChazaqVal(schema.TAV_DAGESH, schema, isDageshChazq));\n }\n\n if (/\u05E9\\u{05C1}/u.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05E9\\u{05C1}/u, getDageshChazaqVal(schema.SHIN, schema, isDageshChazq));\n }\n\n if (/\u05E9\\u{05C2}/u.test(clusterText)) {\n return replaceWithRegex(clusterText, /\u05E9\\u{05C2}/u, getDageshChazaqVal(schema.SIN, schema, isDageshChazq));\n }\n\n if (isDageshChazq) {\n const consonant = cluster.chars[0].text;\n const consonantDagesh = new RegExp(consonant + \"\\u{05BC}\", \"u\");\n return replaceWithRegex(clusterText, consonantDagesh, getDageshChazaqVal(consonant, schema, isDageshChazq));\n }\n\n if (cluster.isShureq) {\n return clusterText.replace(\"\u05D5\u05BC\", schema.SHUREQ);\n }\n\n return clusterText;\n};\n\nexport const sylRules = (syl: Syllable, schema: Schema): string => {\n const sylTxt = syl.text.replace(taamim, \"\");\n\n const syllableFeatures = schema.ADDITIONAL_FEATURES?.filter((seq) => seq.FEATURE === \"syllable\");\n if (syllableFeatures) {\n for (const feature of syllableFeatures) {\n const heb = new RegExp(feature.HEBREW, \"u\");\n if (feature.FEATURE === \"syllable\" && heb.test(sylTxt)) {\n const transliteration = feature.TRANSLITERATION;\n const passThrough = feature.PASS_THROUGH ?? true;\n\n if (typeof transliteration === \"string\") {\n return replaceAndTransliterate(sylTxt, heb, transliteration, schema);\n }\n\n if (!passThrough) {\n return transliteration(syl, feature.HEBREW, schema);\n }\n\n const newText = transliteration(syl, feature.HEBREW, schema);\n\n // if the transliteration just returns the syllable.text, then no need to copy the syllable\n if (newText !== sylTxt) {\n syl = copySyllable(newText, syl);\n }\n }\n }\n }\n\n // syllable is 3ms sufx\n const mSSuffix = /\\u{05B8}\\u{05D9}\\u{05D5}/u;\n if (syl.isFinal && mSSuffix.test(sylTxt)) {\n const sufxSyl = replaceWithRegex(sylTxt, mSSuffix, schema.MS_SUFX);\n return joinSyllableChars(syl, [...sufxSyl], schema);\n }\n\n // syllable has a mater\n const hasMater = syl.clusters.map((c) => c.isMater).includes(true);\n if (hasMater) {\n const materSyl = materFeatures(syl, schema);\n return joinSyllableChars(syl, [...materSyl], schema);\n }\n\n if (schema.SEGOL_HE && /\\u{05B6}\\u{05D4}/u.test(sylTxt)) {\n const returnTxt = syl.clusters.map((cluster) => cluterRules(cluster, schema));\n const joined = joinSyllableChars(syl, returnTxt, schema).replace(taamim, \"\");\n return joined.replace(schema[\"SEGOL\"] + schema[\"HE\"], schema.SEGOL_HE);\n }\n\n // tsere\n if (schema.TSERE_HE && /\\u{05B5}\\u{05D4}/u.test(sylTxt)) {\n const returnTxt = syl.clusters.map((cluster) => cluterRules(cluster, schema));\n const joined = joinSyllableChars(syl, returnTxt, schema).replace(taamim, \"\");\n return joined.replace(schema[\"TSERE\"] + schema[\"HE\"], schema.TSERE_HE);\n }\n\n // regular syllables\n const returnTxt = syl.clusters.map((cluster) => cluterRules(cluster, schema));\n\n // there may be taamim still in the text, so remove them\n return joinSyllableChars(syl, returnTxt, schema).replace(taamim, \"\");\n};\n\nexport const wordRules = (word: Word, schema: Schema): string | Word => {\n if (word.isDivineName) {\n return getDivineName(word.text, schema);\n }\n\n if (word.hasDivineName) {\n return `${sylRules(word.syllables[0], schema)}-${getDivineName(word.text, schema)}`;\n }\n\n if (word.isNotHebrew) {\n return word.text;\n }\n\n const wordFeatures = schema.ADDITIONAL_FEATURES?.filter((seq) => seq.FEATURE === \"word\");\n if (wordFeatures) {\n const text = word.text.replace(taamim, \"\");\n for (const feature of wordFeatures) {\n const heb = new RegExp(feature.HEBREW, \"u\");\n if (heb.test(text)) {\n const transliteration = feature.TRANSLITERATION;\n const passThrough = feature.PASS_THROUGH ?? true;\n\n if (typeof transliteration === \"string\") {\n return replaceAndTransliterate(text, heb, transliteration, schema);\n }\n\n if (!passThrough) {\n return transliteration(word, feature.HEBREW, schema);\n }\n\n return new Word(transliteration(word, feature.HEBREW, schema), schema);\n }\n }\n return word;\n }\n\n return word;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["_a", "_b", "_c", "_d", "map", "returnTxt"]
|
|
7
7
|
}
|
|
@@ -53,17 +53,19 @@ const transliterate = (text, schema) => {
|
|
|
53
53
|
if (!(transliteration instanceof import_word.Word)) {
|
|
54
54
|
return `${transliteration}${(_a = word.whiteSpaceAfter) != null ? _a : ""}`;
|
|
55
55
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return `${acc}${curr}`;
|
|
56
|
+
const syllableTransliteration = transliteration.syllables.map((s) => (0, import_rules.sylRules)(s, transSchema)).reduce((a, c, i) => {
|
|
57
|
+
if (!i) {
|
|
58
|
+
return a + c;
|
|
60
59
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return `${acc}${first}${(_a2 = schema == null ? void 0 : schema.SYLLABLE_SEPARATOR) != null ? _a2 : ""}${second}${rest.join("")}`;
|
|
60
|
+
if (!transSchema.SYLLABLE_SEPARATOR) {
|
|
61
|
+
return a + c;
|
|
64
62
|
}
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
if (c.includes(transSchema.SYLLABLE_SEPARATOR)) {
|
|
64
|
+
return a + c;
|
|
65
|
+
}
|
|
66
|
+
return a + transSchema.SYLLABLE_SEPARATOR + c;
|
|
67
|
+
}, "");
|
|
68
|
+
return `${syllableTransliteration}${(_b = word.whiteSpaceAfter) != null ? _b : ""}`;
|
|
67
69
|
}).join("");
|
|
68
70
|
};
|
|
69
71
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/transliterate.ts"],
|
|
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 const transliteration = wordRules(word, transSchema);\n\n if (!(transliteration instanceof Word)) {\n return `${transliteration}${word.whiteSpaceAfter ?? \"\"}`;\n }\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,UAAM,sBAAkB,wBAAU,MAAM,WAAW;AAEnD,QAAI,EAAE,2BAA2B,mBAAO;AACtC,aAAO,GAAG,mBAAkB,UAAK,oBAAL,YAAwB;IACtD;AAEA,
|
|
6
|
-
"names": [
|
|
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 const transliteration = wordRules(word, transSchema);\n\n if (!(transliteration instanceof Word)) {\n return `${transliteration}${word.whiteSpaceAfter ?? \"\"}`;\n }\n\n const syllableTransliteration = transliteration.syllables\n .map((s) => sylRules(s, transSchema))\n .reduce((a, c, i) => {\n if (!i) {\n return a + c;\n }\n\n if (!transSchema.SYLLABLE_SEPARATOR) {\n return a + c;\n }\n\n if (c.includes(transSchema.SYLLABLE_SEPARATOR)) {\n return a + c;\n }\n\n return a + transSchema.SYLLABLE_SEPARATOR + c;\n }, \"\");\n\n return `${syllableTransliteration}${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,UAAM,sBAAkB,wBAAU,MAAM,WAAW;AAEnD,QAAI,EAAE,2BAA2B,mBAAO;AACtC,aAAO,GAAG,mBAAkB,UAAK,oBAAL,YAAwB;IACtD;AAEA,UAAM,0BAA0B,gBAAgB,UAC7C,IAAI,CAAC,UAAM,uBAAS,GAAG,WAAW,CAAC,EACnC,OAAO,CAAC,GAAG,GAAG,MAAK;AAClB,UAAI,CAAC,GAAG;AACN,eAAO,IAAI;MACb;AAEA,UAAI,CAAC,YAAY,oBAAoB;AACnC,eAAO,IAAI;MACb;AAEA,UAAI,EAAE,SAAS,YAAY,kBAAkB,GAAG;AAC9C,eAAO,IAAI;MACb;AAEA,aAAO,IAAI,YAAY,qBAAqB;IAC9C,GAAG,EAAE;AAEP,WAAO,GAAG,2BAA0B,UAAK,oBAAL,YAAwB;EAC9D,CAAC,EACA,KAAK,EAAE;AACZ;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
package/dist/esm/rules.js
CHANGED
|
@@ -36,12 +36,14 @@ const copySyllable = (newText, old) => {
|
|
|
36
36
|
newSyl.word = old.word;
|
|
37
37
|
return newSyl;
|
|
38
38
|
};
|
|
39
|
-
const getDageshChazaqVal = (input,
|
|
39
|
+
const getDageshChazaqVal = (input, schema, isChazaq) => {
|
|
40
40
|
if (!isChazaq) {
|
|
41
41
|
return input;
|
|
42
42
|
}
|
|
43
|
+
const dagesh = schema["DAGESH_CHAZAQ"];
|
|
44
|
+
const syllableSeparator = schema["SYLLABLE_SEPARATOR"] ?? "";
|
|
43
45
|
if (typeof dagesh === "boolean") {
|
|
44
|
-
return input
|
|
46
|
+
return input + syllableSeparator + input;
|
|
45
47
|
}
|
|
46
48
|
return input + dagesh;
|
|
47
49
|
};
|
|
@@ -284,36 +286,36 @@ const cluterRules = (cluster, schema) => {
|
|
|
284
286
|
// dagesh chazaq
|
|
285
287
|
const isDageshChazq = isDageshChazaq(cluster, schema);
|
|
286
288
|
if (schema.BET_DAGESH && /ב\u{05BC}/u.test(clusterText)) {
|
|
287
|
-
return replaceWithRegex(clusterText, /ב\u{05BC}/u, getDageshChazaqVal(schema.BET_DAGESH, schema
|
|
289
|
+
return replaceWithRegex(clusterText, /ב\u{05BC}/u, getDageshChazaqVal(schema.BET_DAGESH, schema, isDageshChazq));
|
|
288
290
|
}
|
|
289
291
|
if (schema.GIMEL_DAGESH && /ג\u{05BC}/u.test(clusterText)) {
|
|
290
|
-
return replaceWithRegex(clusterText, /ג\u{05BC}/u, getDageshChazaqVal(schema.GIMEL_DAGESH, schema
|
|
292
|
+
return replaceWithRegex(clusterText, /ג\u{05BC}/u, getDageshChazaqVal(schema.GIMEL_DAGESH, schema, isDageshChazq));
|
|
291
293
|
}
|
|
292
294
|
if (schema.DALET_DAGESH && /ד\u{05BC}/u.test(clusterText)) {
|
|
293
|
-
return replaceWithRegex(clusterText, /ד\u{05BC}/u, getDageshChazaqVal(schema.DALET_DAGESH, schema
|
|
295
|
+
return replaceWithRegex(clusterText, /ד\u{05BC}/u, getDageshChazaqVal(schema.DALET_DAGESH, schema, isDageshChazq));
|
|
294
296
|
}
|
|
295
297
|
if (schema.KAF_DAGESH && /כ\u{05BC}/u.test(clusterText)) {
|
|
296
|
-
return replaceWithRegex(clusterText, /כ\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema
|
|
298
|
+
return replaceWithRegex(clusterText, /כ\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema, isDageshChazq));
|
|
297
299
|
}
|
|
298
300
|
if (schema.KAF_DAGESH && /ך\u{05BC}/u.test(clusterText)) {
|
|
299
|
-
return replaceWithRegex(clusterText, /ך\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema
|
|
301
|
+
return replaceWithRegex(clusterText, /ך\u{05BC}/u, getDageshChazaqVal(schema.KAF_DAGESH, schema, isDageshChazq));
|
|
300
302
|
}
|
|
301
303
|
if (schema.PE_DAGESH && /פ\u{05BC}/u.test(clusterText)) {
|
|
302
|
-
return replaceWithRegex(clusterText, /פ\u{05BC}/u, getDageshChazaqVal(schema.PE_DAGESH, schema
|
|
304
|
+
return replaceWithRegex(clusterText, /פ\u{05BC}/u, getDageshChazaqVal(schema.PE_DAGESH, schema, isDageshChazq));
|
|
303
305
|
}
|
|
304
306
|
if (schema.TAV_DAGESH && /ת\u{05BC}/u.test(clusterText)) {
|
|
305
|
-
return replaceWithRegex(clusterText, /ת\u{05BC}/u, getDageshChazaqVal(schema.TAV_DAGESH, schema
|
|
307
|
+
return replaceWithRegex(clusterText, /ת\u{05BC}/u, getDageshChazaqVal(schema.TAV_DAGESH, schema, isDageshChazq));
|
|
306
308
|
}
|
|
307
309
|
if (/ש\u{05C1}/u.test(clusterText)) {
|
|
308
|
-
return replaceWithRegex(clusterText, /ש\u{05C1}/u, getDageshChazaqVal(schema.SHIN, schema
|
|
310
|
+
return replaceWithRegex(clusterText, /ש\u{05C1}/u, getDageshChazaqVal(schema.SHIN, schema, isDageshChazq));
|
|
309
311
|
}
|
|
310
312
|
if (/ש\u{05C2}/u.test(clusterText)) {
|
|
311
|
-
return replaceWithRegex(clusterText, /ש\u{05C2}/u, getDageshChazaqVal(schema.SIN, schema
|
|
313
|
+
return replaceWithRegex(clusterText, /ש\u{05C2}/u, getDageshChazaqVal(schema.SIN, schema, isDageshChazq));
|
|
312
314
|
}
|
|
313
315
|
if (isDageshChazq) {
|
|
314
316
|
const consonant = cluster.chars[0].text;
|
|
315
317
|
const consonantDagesh = new RegExp(consonant + "\u{05BC}", "u");
|
|
316
|
-
return replaceWithRegex(clusterText, consonantDagesh, getDageshChazaqVal(consonant, schema
|
|
318
|
+
return replaceWithRegex(clusterText, consonantDagesh, getDageshChazaqVal(consonant, schema, isDageshChazq));
|
|
317
319
|
}
|
|
318
320
|
if (cluster.isShureq) {
|
|
319
321
|
return clusterText.replace("וּ", schema.SHUREQ);
|
package/dist/esm/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,gBAAgB,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAG1D,MAAM,MAAM,GAAG,uCAAuC,CAAC;AAEvD,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,GAAa,EAAE,EAAE;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9G,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC;IAEjC,0CAA0C;IAC1C,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC9C,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;gBACtC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;gBACtC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;gBAC1C,CAAC,EAAE,CAAC;YACN,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACvC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC,CAAC;IAEH,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;IAElD,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACvB,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACvB,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEvB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,MAA+B,EAAE,QAAiB,EAAE,EAAE;IAC/F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,GAAG,MAAM,CAAC;AACxB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,MAAc,EAAU,EAAE;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChC,4DAA4D;IAC5D,MAAM,UAAU,GACd,MAAM,CAAC,kBAAkB,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IACtG,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,MAAc,EAAE,EAAE;IAC1D,gEAAgE;IAChE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qDAAqD;IACrD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IACrD,IAAI,QAAQ,IAAI,QAAQ,EAAE,aAAa,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iGAAiG;IACjG,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,GAAa,EAAE,QAAkB,EAAE,MAAc,EAAU,EAAE;IACtF,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC;IAE9C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,wFAAwF;IACxF,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,OAAO,IAAI,OAAO,CAAC;QAEzD,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACnD,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;QAEvC,mEAAmE;QACnE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;gBAC/B,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3C,CAAC;YAED,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YAClC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;QAC7D,CAAC;QAED,MAAM,MAAM,GAAG;YACb,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,QAAQ;YACf,MAAM,CAAC,QAAQ;YACf,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,MAAM;SACd;aACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;aACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3E,CAAC;QAED,cAAc;QACd,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE;IACrD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,GAAa,EAAE,MAAc,EAAE,EAAE;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxD,mEAAmE;IACnE,IAAI,WAAW,GAAG,GAAG,CAAC,QAAQ;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SAClC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,uBAAuB;IACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1C,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAE/D,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,QAAQ;QACR,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ;QACR,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ;QACR,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,QAAQ;QACR,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,SAAS;QACT,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,YAAoB,EAAE,MAAc,EAAE,EAAE;IACrG,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,YAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAEpH,aAAa;AAEb,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAE,MAAc,EAAE,EAAE;IACvD,IAAI,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;IAC/F,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;gBAChD,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;gBAEjD,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACxC,OAAO,uBAAuB,CAAC,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC5E,CAAC;gBAED,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1D,CAAC;gBAED,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC7B,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAErG,YAAY;IACZ,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,GAAG,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,qBAAqB,CAAC;QAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,WAAW,GAAG,qBAAqB,CAAC;QAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,SAAS,GAAG,6BAA6B,CAAC;QAChD,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,0BAA0B,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtD,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CACpE,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,SAAS,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC;QAChE,OAAO,gBAAgB,CACrB,WAAW,EACX,eAAe,EACf,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAa,EAAE,MAAc,EAAU,EAAE;IAChE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAE5C,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;IACjG,IAAI,gBAAgB,EAAE,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;gBAChD,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;gBAEjD,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACxC,OAAO,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;gBACvE,CAAC;gBAED,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtD,CAAC;gBAED,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAE7D,2FAA2F;gBAC3F,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;oBACvB,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,2BAA2B,CAAC;IAC7C,IAAI,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ;IACR,IAAI,MAAM,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,oBAAoB;IACpB,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9E,wDAAwD;IACxD,OAAO,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,MAAc,EAAiB,EAAE;IACrE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;IACtF,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IACzF,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;gBAChD,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;gBAEjD,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACxC,OAAO,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;gBACrE,CAAC;gBAED,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACvD,CAAC;gBAED,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,21 +82,21 @@ export const transliterate = (text, schema) => {
|
|
|
82
82
|
if (!(transliteration instanceof Word)) {
|
|
83
83
|
return `${transliteration}${word.whiteSpaceAfter ?? ""}`;
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
const syllableTransliteration = transliteration.syllables
|
|
86
86
|
.map((s) => sylRules(s, transSchema))
|
|
87
|
-
.reduce((
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return `${acc}${curr}`;
|
|
87
|
+
.reduce((a, c, i) => {
|
|
88
|
+
if (!i) {
|
|
89
|
+
return a + c;
|
|
91
90
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (first === second) {
|
|
95
|
-
return `${acc}${first}${schema?.SYLLABLE_SEPARATOR ?? ""}${second}${rest.join("")}`;
|
|
91
|
+
if (!transSchema.SYLLABLE_SEPARATOR) {
|
|
92
|
+
return a + c;
|
|
96
93
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
94
|
+
if (c.includes(transSchema.SYLLABLE_SEPARATOR)) {
|
|
95
|
+
return a + c;
|
|
96
|
+
}
|
|
97
|
+
return a + transSchema.SYLLABLE_SEPARATOR + c;
|
|
98
|
+
}, "");
|
|
99
|
+
return `${syllableTransliteration}${word.whiteSpaceAfter ?? ""}`;
|
|
100
100
|
})
|
|
101
101
|
.join("");
|
|
102
102
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transliterate.js","sourceRoot":"","sources":["../../src/transliterate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG,CAAC,MAAuB,EAAE,EAAE;IAC7C,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,IAAI,YAAY,IAAI,MAAM;QAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnE,IAAI,aAAa,IAAI,MAAM;QAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACtE,IAAI,SAAS,IAAI,MAAM;QAAE,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC1E,IAAI,SAAS,IAAI,MAAM;QAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1D,IAAI,WAAW,IAAI,MAAM;QAAE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAChE,IAAI,SAAS,IAAI,MAAM;QAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1D,IAAI,eAAe,IAAI,MAAM;QAAE,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC5E,IAAI,QAAQ,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACvD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAmB,EAAE,MAAiC,EAAE,EAAE;IACtF,MAAM,WAAW,GAAG,MAAM,YAAY,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5F,OAAO,OAAO,CAAC,KAAK;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAErD,IAAI,CAAC,CAAC,eAAe,YAAY,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO,GAAG,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;QAC3D,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"transliterate.js","sourceRoot":"","sources":["../../src/transliterate.ts"],"names":[],"mappings":"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"}
|