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 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, dagesh, isChazaq) => {
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.repeat(2);
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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);
@@ -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": "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",
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
- return transliteration.syllables.map((s) => (0, import_rules.sylRules)(s, transSchema)).reduce((acc, curr, i) => {
57
- var _a2, _b2;
58
- if (i === 0) {
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
- const [first, second, ...rest] = curr;
62
- if (first === second) {
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
- return `${acc}${(_b2 = schema == null ? void 0 : schema.SYLLABLE_SEPARATOR) != null ? _b2 : ""}${curr}`;
66
- }, "") + ((_b = word.whiteSpaceAfter) != null ? _b : "");
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 return (\n transliteration.syllables\n .map((s) => sylRules(s, transSchema))\n .reduce((acc, curr, i) => {\n // skip the first syllable\n if (i === 0) {\n return `${acc}${curr}`;\n }\n\n // if the first two letters are the same, add a separator between them\n const [first, second, ...rest] = curr;\n if (first === second) {\n return `${acc}${first}${schema?.SYLLABLE_SEPARATOR ?? \"\"}${second}${rest.join(\"\")}`;\n }\n\n // else, just add the syllable\n return `${acc}${schema?.SYLLABLE_SEPARATOR ?? \"\"}${curr}`;\n }, \"\") + (word.whiteSpaceAfter ?? \"\")\n );\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,WACE,gBAAgB,UACb,IAAI,CAAC,UAAM,uBAAS,GAAG,WAAW,CAAC,EACnC,OAAO,CAAC,KAAK,MAAM,MAAK;AApFnC,UAAAA,KAAAC;AAsFY,UAAI,MAAM,GAAG;AACX,eAAO,GAAG,MAAM;MAClB;AAGA,YAAM,CAAC,OAAO,WAAW,IAAI,IAAI;AACjC,UAAI,UAAU,QAAQ;AACpB,eAAO,GAAG,MAAM,SAAQD,MAAA,iCAAQ,uBAAR,OAAAA,MAA8B,KAAK,SAAS,KAAK,KAAK,EAAE;MAClF;AAGA,aAAO,GAAG,OAAMC,MAAA,iCAAQ,uBAAR,OAAAA,MAA8B,KAAK;IACrD,GAAG,EAAE,MAAK,UAAK,oBAAL,YAAwB;EAExC,CAAC,EACA,KAAK,EAAE;AACZ;",
6
- "names": ["_a", "_b"]
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, dagesh, isChazaq) => {
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.repeat(2);
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
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.DAGESH_CHAZAQ, isDageshChazq));
318
+ return replaceWithRegex(clusterText, consonantDagesh, getDageshChazaqVal(consonant, schema, isDageshChazq));
317
319
  }
318
320
  if (cluster.isShureq) {
319
321
  return clusterText.replace("וּ", schema.SHUREQ);
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"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"}
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,MAAc,EAAE,QAAiB,EAAE,EAAE;IAC9E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACvC,MAAM,iBAAiB,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IAE7D,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,GAAG,iBAAiB,GAAG,KAAK,CAAC;IAC3C,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,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACrH,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACrH,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAClH,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7G,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC5G,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,CAAC,WAAW,EAAE,eAAe,EAAE,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9G,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"}
@@ -82,21 +82,21 @@ export const transliterate = (text, schema) => {
82
82
  if (!(transliteration instanceof Word)) {
83
83
  return `${transliteration}${word.whiteSpaceAfter ?? ""}`;
84
84
  }
85
- return (transliteration.syllables
85
+ const syllableTransliteration = transliteration.syllables
86
86
  .map((s) => sylRules(s, transSchema))
87
- .reduce((acc, curr, i) => {
88
- // skip the first syllable
89
- if (i === 0) {
90
- return `${acc}${curr}`;
87
+ .reduce((a, c, i) => {
88
+ if (!i) {
89
+ return a + c;
91
90
  }
92
- // if the first two letters are the same, add a separator between them
93
- const [first, second, ...rest] = curr;
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
- // else, just add the syllable
98
- return `${acc}${schema?.SYLLABLE_SEPARATOR ?? ""}${curr}`;
99
- }, "") + (word.whiteSpaceAfter ?? ""));
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":"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"}
1
+ {"version":3,"file":"transliterate.js","sourceRoot":"","sources":["../../src/transliterate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hebrew-transliteration",
3
- "version": "2.8.3",
3
+ "version": "2.8.4",
4
4
  "description": "a package for transliterating Hebrew",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",