hebrew-transliteration 2.6.0 → 2.6.2
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/hebCharsTrans.js +73 -0
- package/dist/cjs/hebCharsTrans.js.map +7 -0
- package/dist/cjs/index.js +40 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/remove.js +195 -0
- package/dist/cjs/remove.js.map +7 -0
- package/dist/cjs/rules.js +367 -0
- package/dist/cjs/rules.js.map +7 -0
- package/dist/cjs/schema.js +200 -0
- package/dist/cjs/schema.js.map +7 -0
- package/dist/cjs/schemas/brillAcademic.js +102 -0
- package/dist/cjs/schemas/brillAcademic.js.map +7 -0
- package/dist/cjs/schemas/brillSimple.js +101 -0
- package/dist/cjs/schemas/brillSimple.js.map +7 -0
- package/dist/cjs/schemas/index.js +49 -0
- package/dist/cjs/schemas/index.js.map +7 -0
- package/dist/cjs/schemas/jss.js +115 -0
- package/dist/cjs/schemas/jss.js.map +7 -0
- package/dist/cjs/schemas/michiganClaremont.js +95 -0
- package/dist/cjs/schemas/michiganClaremont.js.map +7 -0
- package/dist/cjs/schemas/romaniote.js +186 -0
- package/dist/cjs/schemas/romaniote.js.map +7 -0
- package/dist/cjs/schemas/sblAcademicSpirantization.js +101 -0
- package/dist/cjs/schemas/sblAcademicSpirantization.js.map +7 -0
- package/dist/cjs/schemas/sblSimple.js +110 -0
- package/dist/cjs/schemas/sblSimple.js.map +7 -0
- package/dist/cjs/schemas/tiberian.js +467 -0
- package/dist/cjs/schemas/tiberian.js.map +7 -0
- package/dist/cjs/sequence.js +34 -0
- package/dist/cjs/sequence.js.map +7 -0
- package/dist/cjs/transliterate.js +63 -0
- package/dist/cjs/transliterate.js.map +7 -0
- package/dist/{hebCharsTrans.js → esm/hebCharsTrans.js} +1 -4
- package/dist/esm/hebCharsTrans.js.map +1 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/{remove.js → esm/remove.js} +15 -15
- package/dist/esm/remove.js.map +1 -0
- package/dist/{rules.js → esm/rules.js} +40 -52
- package/dist/esm/rules.js.map +1 -0
- package/dist/esm/schema.js +659 -0
- package/dist/esm/schema.js.map +1 -0
- package/dist/{schemas → esm/schemas}/brillAcademic.js +1 -4
- package/dist/esm/schemas/brillAcademic.js.map +1 -0
- package/dist/{schemas → esm/schemas}/brillSimple.js +1 -4
- package/dist/esm/schemas/brillSimple.js.map +1 -0
- package/dist/esm/schemas/index.js +10 -0
- package/dist/esm/schemas/index.js.map +1 -0
- package/dist/{schemas → esm/schemas}/jss.js +2 -6
- package/dist/esm/schemas/jss.js.map +1 -0
- package/dist/{schemas → esm/schemas}/michiganClaremont.js +1 -4
- package/dist/esm/schemas/michiganClaremont.js.map +1 -0
- package/dist/{schemas → esm/schemas}/romaniote.js +4 -7
- package/dist/esm/schemas/romaniote.js.map +1 -0
- package/dist/{schemas → esm/schemas}/sblAcademicSpirantization.js +1 -4
- package/dist/esm/schemas/sblAcademicSpirantization.js.map +1 -0
- package/dist/{schemas → esm/schemas}/sblSimple.js +1 -4
- package/dist/esm/schemas/sblSimple.js.map +1 -0
- package/dist/{schemas → esm/schemas}/tiberian.js +34 -51
- package/dist/esm/schemas/tiberian.js.map +1 -0
- package/dist/{sequence.js → esm/sequence.js} +4 -8
- package/dist/esm/sequence.js.map +1 -0
- package/dist/{transliterate.js → esm/transliterate.js} +12 -17
- package/dist/esm/transliterate.js.map +1 -0
- package/package.json +26 -22
- package/dist/hebCharsTrans.js.map +0 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +0 -1
- package/dist/remove.js.map +0 -1
- package/dist/rules.js.map +0 -1
- package/dist/schema.js +0 -174
- package/dist/schema.js.map +0 -1
- package/dist/schemas/brillAcademic.js.map +0 -1
- package/dist/schemas/brillSimple.js.map +0 -1
- package/dist/schemas/index.js +0 -20
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/jss.js.map +0 -1
- package/dist/schemas/michiganClaremont.js.map +0 -1
- package/dist/schemas/romaniote.js.map +0 -1
- package/dist/schemas/sblAcademicSpirantization.js.map +0 -1
- package/dist/schemas/sblSimple.js.map +0 -1
- package/dist/schemas/tiberian.js.map +0 -1
- package/dist/sequence.js.map +0 -1
- package/dist/transliterate.js.map +0 -1
- /package/dist/{hebCharsTrans.d.ts → types/hebCharsTrans.d.ts} +0 -0
- /package/dist/{index.d.ts → types/index.d.ts} +0 -0
- /package/dist/{remove.d.ts → types/remove.d.ts} +0 -0
- /package/dist/{rules.d.ts → types/rules.d.ts} +0 -0
- /package/dist/{schema.d.ts → types/schema.d.ts} +0 -0
- /package/dist/{schemas → types/schemas}/brillAcademic.d.ts +0 -0
- /package/dist/{schemas → types/schemas}/brillSimple.d.ts +0 -0
- /package/dist/{schemas → types/schemas}/index.d.ts +0 -0
- /package/dist/{schemas → types/schemas}/jss.d.ts +0 -0
- /package/dist/{schemas → types/schemas}/michiganClaremont.d.ts +0 -0
- /package/dist/{schemas → types/schemas}/romaniote.d.ts +0 -0
- /package/dist/{schemas → types/schemas}/sblAcademicSpirantization.d.ts +0 -0
- /package/dist/{schemas → types/schemas}/sblSimple.d.ts +0 -0
- /package/dist/{schemas → types/schemas}/tiberian.d.ts +0 -0
- /package/dist/{sequence.d.ts → types/sequence.d.ts} +0 -0
- /package/dist/{transliterate.d.ts → types/transliterate.d.ts} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/transliterate.ts"],
|
|
4
|
+
"sourcesContent": ["import { sylRules, wordRules } from \"./rules\";\nimport { SBL, Schema } from \"./schema\";\nimport { Text } from \"havarotjs\";\nimport { Word } from \"havarotjs/word\";\nimport { SylOpts } from \"havarotjs/text\";\n\n/**\n *\n * @param schema\n * @returns syllable options passed into havarotjs\n * @description sanitizes the SylOpts of the schema so as to not pass in undefined\n */\nconst getSylOpts = (schema: Partial<SylOpts>) => {\n const options: SylOpts = {};\n if (\"longVowels\" in schema) options.longVowels = schema.longVowels;\n if (\"qametsQatan\" in schema) options.qametsQatan = schema.qametsQatan;\n if (\"sqnmlvy\" in schema) options.shevaAfterMeteg = schema.shevaAfterMeteg;\n if (\"sqnmlvy\" in schema) options.sqnmlvy = schema.sqnmlvy;\n if (\"wawShureq\" in schema) options.wawShureq = schema.wawShureq;\n if (\"article\" in schema) options.article = schema.article;\n if (\"allowNoNiqqud\" in schema) options.allowNoNiqqud = schema.allowNoNiqqud;\n if (\"strict\" in schema) options.strict = schema.strict;\n return options;\n};\n\n/**\n * transliterates Hebrew text\n *\n * @param text - a string or {@link https://charlesloder.github.io/havarot/classes/text.Text.html | Text} of Hebrew characters\n * @param schema - a {@link Schema} for transliterating the text\n * @returns a transliterated text\n *\n * @example Default\n * ```ts\n * import { transliterate } from \"hebrew-transliteration\";\n *\n * transliterate(\"\u05D0\u05B1\u05DC\u05B9\u05D4\u05B4\u05D9\u05DD\");\n * // \"\u02BE\u0115l\u014Dh\u00EEm\";\n * ```\n *\n * ---\n *\n * @remarks\n *\n * If no {@link Schema} is passed, then the package defaults to SBL's academic style\n *\n * You can pass in a partial schema that will modify SBL's academic style:\n *\n * ```ts\n * transliterate(\"\u05E9\u05C1\u05B8\u05DC\u05D5\u05B9\u05DD\", { SHIN: \"sh\" })\n * // sh\u0101l\u00F4m\n * ```\n *\n * ---\n *\n * If you need a fully custom schema, it is best to use the {@link Schema} constructor:\n *\n * ```ts\n * import { transliterate, Schema } from \"hebrew-transliteration\";\n *\n * const schema = new Schema({ ALEF: \"'\", BET: \"B\", ... QAMETS: \"A\", ... }) // truncated for brevity\n *\n * transliterate(\"\u05D0\u05B8\u05A3\u05D1\", schema)\n * // 'AB\n * ```\n *\n */\nexport const transliterate = (text: string | Text, schema?: Partial<Schema> | Schema) => {\n const transSchema = schema instanceof Schema ? schema : new SBL(schema ?? {});\n const newText = text instanceof Text ? text : new Text(text, getSylOpts(transSchema ?? {}));\n return newText.words\n .map((word) => {\n let transliteration = wordRules(word, transSchema);\n if (transliteration instanceof Word) {\n transliteration = transliteration.syllables\n .map((s) => sylRules(s, transSchema))\n .join(transSchema.SYLLABLE_SEPARATOR ?? \"\");\n }\n return `${transliteration}${word.whiteSpaceAfter ?? \"\"}`;\n })\n .join(\"\");\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;mBAAoC;AACpC,oBAA4B;AAC5B,uBAAqB;AACrB,kBAAqB;AASrB,MAAM,aAAa,CAAC,WAA4B;AAC9C,QAAM,UAAmB,CAAA;AACzB,MAAI,gBAAgB;AAAQ,YAAQ,aAAa,OAAO;AACxD,MAAI,iBAAiB;AAAQ,YAAQ,cAAc,OAAO;AAC1D,MAAI,aAAa;AAAQ,YAAQ,kBAAkB,OAAO;AAC1D,MAAI,aAAa;AAAQ,YAAQ,UAAU,OAAO;AAClD,MAAI,eAAe;AAAQ,YAAQ,YAAY,OAAO;AACtD,MAAI,aAAa;AAAQ,YAAQ,UAAU,OAAO;AAClD,MAAI,mBAAmB;AAAQ,YAAQ,gBAAgB,OAAO;AAC9D,MAAI,YAAY;AAAQ,YAAQ,SAAS,OAAO;AAChD,SAAO;AACT;AA4CO,MAAM,gBAAgB,CAAC,MAAqB,WAAqC;AACtF,QAAM,cAAc,kBAAkB,uBAAS,SAAS,IAAI,kBAAI,0BAAU,CAAA,CAAE;AAC5E,QAAM,UAAU,gBAAgB,wBAAO,OAAO,IAAI,sBAAK,MAAM,WAAW,oCAAe,CAAA,CAAE,CAAC;AAC1F,SAAO,QAAQ,MACZ,IAAI,CAAC,SAAQ;AAvElB;AAwEM,QAAI,sBAAkB,wBAAU,MAAM,WAAW;AACjD,QAAI,2BAA2B,kBAAM;AACnC,wBAAkB,gBAAgB,UAC/B,IAAI,CAAC,UAAM,uBAAS,GAAG,WAAW,CAAC,EACnC,MAAK,iBAAY,uBAAZ,YAAkC,EAAE;IAC9C;AACA,WAAO,GAAG,mBAAkB,UAAK,oBAAL,YAAwB;EACtD,CAAC,EACA,KAAK,EAAE;AACZ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transliterateMap = void 0;
|
|
4
|
-
exports.transliterateMap = {
|
|
1
|
+
export const transliterateMap = {
|
|
5
2
|
// niqqud
|
|
6
3
|
"\u{05B0}": "VOCAL_SHEVA", // HEBREW POINT SHEVA (U+05B0)
|
|
7
4
|
"\u{05B1}": "HATAF_SEGOL", // HEBREW POINT HATAF SEGOL (U+05B1)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hebCharsTrans.js","sourceRoot":"","sources":["../../src/hebCharsTrans.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,gBAAgB,GAAQ;IACnC,WAAW;IACX,UAAU,EAAE,aAAa,EAAE,8BAA8B;IACzD,UAAU,EAAE,aAAa,EAAE,oCAAoC;IAC/D,UAAU,EAAE,aAAa,EAAE,oCAAoC;IAC/D,UAAU,EAAE,cAAc,EAAE,qCAAqC;IACjE,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,QAAQ,EAAE,+BAA+B;IACrD,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,OAAO,EAAE,4CAA4C;IACjE,UAAU,EAAE,QAAQ,EAAE,+BAA+B;IACrD,UAAU,EAAE,QAAQ,EAAE,wCAAwC;IAC9D,kDAAkD;IAClD,UAAU,EAAE,OAAO,EAAE,oCAAoC;IACzD,UAAU,EAAE,OAAO,EAAE,oCAAoC;IACzD,UAAU,EAAE,WAAW,EAAE,wCAAwC;IACjE,UAAU,EAAE,cAAc,EAAE,qCAAqC;IACjE,eAAe;IACf,CAAC,EAAE,MAAM,EAAE,8BAA8B;IACzC,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,IAAI,EAAE,4BAA4B;IACrC,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,WAAW,EAAE,mCAAmC;IACnD,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,WAAW,EAAE,mCAAmC;IACnD,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,WAAW,EAAE,mCAAmC;IACnD,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,QAAQ,EAAE,gCAAgC;IAC7C,CAAC,EAAE,MAAM,EAAE,8BAA8B;IACzC,CAAC,EAAE,UAAU,EAAE,kCAAkC;IACjD,CAAC,EAAE,IAAI,EAAE,4BAA4B;IACrC,CAAC,EAAE,aAAa,EAAE,qCAAqC;IACvD,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,MAAM,EAAE,8BAA8B;IACzC,CAAC,EAAE,MAAM,EAAE,8BAA8B;IACzC,CAAC,EAAE,KAAK,CAAC,6BAA6B;IACtC,kDAAkD;IAClD,wDAAwD;IACxD,qDAAqD;IACrD,uDAAuD;CACxD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Text } from "havarotjs";
|
|
2
|
+
import { transliterate } from "./transliterate.js";
|
|
3
|
+
import { sequence } from "./sequence.js";
|
|
4
|
+
import { remove } from "./remove.js";
|
|
5
|
+
import { Schema } from "./schema.js";
|
|
6
|
+
/**
|
|
7
|
+
* I accidentally published a canary version without a tag, making it "latest".
|
|
8
|
+
* Just adding this comment and creating a new version to make it latest
|
|
9
|
+
*/
|
|
10
|
+
export { remove, Schema, sequence, Text, transliterate };
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.remove = exports.all = exports.marks = exports.punctuation = exports.vowels = exports.points = exports.accents = void 0;
|
|
4
|
-
const sequence_1 = require("./sequence");
|
|
1
|
+
import { sequence } from "./sequence.js";
|
|
5
2
|
const removeMap = {
|
|
6
3
|
// accents //
|
|
7
4
|
ETNAHTA: "\u{0591}", // U+0591 HEBREW ACCENT ETNAHTA
|
|
@@ -68,7 +65,7 @@ const removeMap = {
|
|
|
68
65
|
/**
|
|
69
66
|
* removes all chars called HEBREW ACCENT (U+0591-05AF)
|
|
70
67
|
*/
|
|
71
|
-
|
|
68
|
+
export const accents = {
|
|
72
69
|
ETNAHTA: true,
|
|
73
70
|
SEGOLTA: true,
|
|
74
71
|
SHALSHELET: true,
|
|
@@ -103,7 +100,7 @@ exports.accents = {
|
|
|
103
100
|
/**
|
|
104
101
|
* removes all chars called HEBREW POINT (U+05B0-05BD, U+05BF, U+05C1-05C2 and U+05C7)
|
|
105
102
|
*/
|
|
106
|
-
|
|
103
|
+
export const points = {
|
|
107
104
|
SHEVA: true,
|
|
108
105
|
HATAF_SEGOL: true,
|
|
109
106
|
HATAF_PATAH: true,
|
|
@@ -129,7 +126,7 @@ exports.points = {
|
|
|
129
126
|
* - METEG
|
|
130
127
|
* - RAFE
|
|
131
128
|
*/
|
|
132
|
-
|
|
129
|
+
export const vowels = {
|
|
133
130
|
SHEVA: true,
|
|
134
131
|
HATAF_SEGOL: true,
|
|
135
132
|
HATAF_PATAH: true,
|
|
@@ -147,7 +144,7 @@ exports.vowels = {
|
|
|
147
144
|
/**
|
|
148
145
|
* removes all chars called HEBREW PUNCTUATION (U+05BE, U+05C0, U+05C3, and U+05C6)
|
|
149
146
|
*/
|
|
150
|
-
|
|
147
|
+
export const punctuation = {
|
|
151
148
|
MAQAF: true,
|
|
152
149
|
PASEQ: true,
|
|
153
150
|
SOF_PASUQ: true,
|
|
@@ -158,12 +155,17 @@ exports.punctuation = {
|
|
|
158
155
|
/**
|
|
159
156
|
* removes all chars called HEBREW MARK (U+05AF, U+05C4, and U+05C5)
|
|
160
157
|
*/
|
|
161
|
-
|
|
158
|
+
export const marks = {
|
|
162
159
|
MASORA_CIRCLE: true,
|
|
163
160
|
UPPER_DOT: true,
|
|
164
161
|
LOWER_DOT: true
|
|
165
162
|
};
|
|
166
|
-
|
|
163
|
+
export const all = {
|
|
164
|
+
...accents,
|
|
165
|
+
...points,
|
|
166
|
+
...punctuation,
|
|
167
|
+
...marks
|
|
168
|
+
};
|
|
167
169
|
/**
|
|
168
170
|
* removes niqqud from Hebrew text
|
|
169
171
|
*
|
|
@@ -197,18 +199,16 @@ exports.all = Object.assign(Object.assign(Object.assign(Object.assign({}, export
|
|
|
197
199
|
* // שרי אשתך, וימצאו
|
|
198
200
|
* ```
|
|
199
201
|
*/
|
|
200
|
-
const remove = (text, options =
|
|
202
|
+
export const remove = (text, options = { ...accents, METEG: true, RAFE: true }) => {
|
|
201
203
|
/** all the keys of options that are to be removed */
|
|
202
204
|
const keys = Object.keys(options).filter((k) => (k in options ? options[k] : false));
|
|
203
|
-
const sequenced =
|
|
205
|
+
const sequenced = sequence(text);
|
|
204
206
|
return keys.reduce((a, c) => {
|
|
205
|
-
|
|
206
|
-
const key = (_a = removeMap[c]) !== null && _a !== void 0 ? _a : null;
|
|
207
|
+
const key = removeMap[c] ?? null;
|
|
207
208
|
if (key) {
|
|
208
209
|
return a.replace(new RegExp(key, "gu"), "");
|
|
209
210
|
}
|
|
210
211
|
return a;
|
|
211
212
|
}, sequenced);
|
|
212
213
|
};
|
|
213
|
-
exports.remove = remove;
|
|
214
214
|
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const word_1 = require("havarotjs/word");
|
|
7
|
-
const regularExpressions_1 = require("havarotjs/utils/regularExpressions");
|
|
8
|
-
const hebCharsTrans_1 = require("./hebCharsTrans");
|
|
1
|
+
import { Cluster } from "havarotjs/cluster";
|
|
2
|
+
import { Syllable } from "havarotjs/syllable";
|
|
3
|
+
import { Word } from "havarotjs/word";
|
|
4
|
+
import { hebChars, clusterSplitGroup } from "havarotjs/utils/regularExpressions";
|
|
5
|
+
import { transliterateMap as map } from "./hebCharsTrans.js";
|
|
9
6
|
const taamim = /[\u{0590}-\u{05AF}\u{05BD}\u{05BF}]/gu;
|
|
10
7
|
/**
|
|
11
8
|
* maps Hebrew characters to schema
|
|
@@ -16,7 +13,7 @@ const taamim = /[\u{0590}-\u{05AF}\u{05BD}\u{05BF}]/gu;
|
|
|
16
13
|
*
|
|
17
14
|
*/
|
|
18
15
|
const mapChars = (schema) => (input) => {
|
|
19
|
-
return [...input].map((char) => (char in
|
|
16
|
+
return [...input].map((char) => (char in map ? schema[map[char]] : char)).join("");
|
|
20
17
|
};
|
|
21
18
|
/**
|
|
22
19
|
* a wrapper around String.replace() to constrain to a RegExp
|
|
@@ -44,13 +41,11 @@ const replaceWithRegex = (input, regex, replaceValue) => input.replace(regex, re
|
|
|
44
41
|
* @param schema the Schema
|
|
45
42
|
* @returns
|
|
46
43
|
*/
|
|
47
|
-
const replaceAndTransliterate = (input, regex, replaceValue, schema) => {
|
|
44
|
+
export const replaceAndTransliterate = (input, regex, replaceValue, schema) => {
|
|
48
45
|
const sylSeq = replaceWithRegex(input, regex, replaceValue);
|
|
49
46
|
return [...sylSeq].map(mapChars(schema)).join("");
|
|
50
47
|
};
|
|
51
|
-
exports.replaceAndTransliterate = replaceAndTransliterate;
|
|
52
48
|
const isDageshChazaq = (cluster, schema) => {
|
|
53
|
-
var _a, _b, _c, _d, _e, _f;
|
|
54
49
|
// if there is no dagesh chazaq in the schema, then return false
|
|
55
50
|
if (!schema.DAGESH_CHAZAQ) {
|
|
56
51
|
return false;
|
|
@@ -63,20 +58,20 @@ const isDageshChazaq = (cluster, schema) => {
|
|
|
63
58
|
if (!/\u{05BC}/u.test(cluster.text)) {
|
|
64
59
|
return false;
|
|
65
60
|
}
|
|
66
|
-
const prevWord =
|
|
67
|
-
if (prevWord &&
|
|
61
|
+
const prevWord = cluster.syllable?.word?.prev?.value;
|
|
62
|
+
if (prevWord && prevWord?.isInConstruct && !prevWord.syllables[prevWord.syllables.length - 1].isClosed) {
|
|
68
63
|
return true;
|
|
69
64
|
}
|
|
70
65
|
// this could be a code smell, b/c the copySyllable function results are not the most predictable
|
|
71
|
-
const prevSyllable =
|
|
66
|
+
const prevSyllable = cluster.syllable?.prev;
|
|
72
67
|
if (!prevSyllable) {
|
|
73
68
|
return false;
|
|
74
69
|
}
|
|
75
|
-
const prevCoda =
|
|
70
|
+
const prevCoda = prevSyllable.value?.codaWithGemination;
|
|
76
71
|
if (!prevCoda) {
|
|
77
72
|
return false;
|
|
78
73
|
}
|
|
79
|
-
return prevCoda ===
|
|
74
|
+
return prevCoda === cluster.syllable?.onset;
|
|
80
75
|
};
|
|
81
76
|
const getDageshChazaqVal = (input, dagesh, isChazaq) => {
|
|
82
77
|
if (!isChazaq) {
|
|
@@ -99,13 +94,13 @@ const getDivineName = (str, schema) => {
|
|
|
99
94
|
const end = str[str.length - 1];
|
|
100
95
|
// if DN is pointed with a hiriq, then it is read as 'elohim
|
|
101
96
|
const divineName = schema.DIVINE_NAME_ELOHIM && /\u{05B4}/u.test(str) ? schema.DIVINE_NAME_ELOHIM : schema.DIVINE_NAME;
|
|
102
|
-
return `${
|
|
97
|
+
return `${hebChars.test(begn) ? "" : begn}${divineName}${hebChars.test(end) ? "" : end}`;
|
|
103
98
|
};
|
|
104
99
|
const materFeatures = (syl, schema) => {
|
|
105
100
|
const mater = syl.clusters.filter((c) => c.isMater)[0];
|
|
106
|
-
const prev = mater.prev instanceof
|
|
101
|
+
const prev = mater.prev instanceof Cluster ? mater.prev : null;
|
|
107
102
|
const materText = mater.text;
|
|
108
|
-
const prevText = (
|
|
103
|
+
const prevText = (prev?.text || "").replace(taamim, "");
|
|
109
104
|
// string comprised of all non-mater clusters in a syl with a mater
|
|
110
105
|
let noMaterText = syl.clusters
|
|
111
106
|
.filter((c) => !c.isMater)
|
|
@@ -151,8 +146,7 @@ const materFeatures = (syl, schema) => {
|
|
|
151
146
|
return materText;
|
|
152
147
|
};
|
|
153
148
|
const joinSyllableChars = (syl, sylChars, schema) => {
|
|
154
|
-
|
|
155
|
-
const isInConstruct = (_a = syl.word) === null || _a === void 0 ? void 0 : _a.isInConstruct;
|
|
149
|
+
const isInConstruct = syl.word?.isInConstruct;
|
|
156
150
|
if (isInConstruct) {
|
|
157
151
|
return sylChars.map(mapChars(schema)).join("");
|
|
158
152
|
}
|
|
@@ -165,7 +159,7 @@ const joinSyllableChars = (syl, sylChars, schema) => {
|
|
|
165
159
|
return sylChars.map(mapChars(schema)).join("");
|
|
166
160
|
}
|
|
167
161
|
if (schema.STRESS_MARKER) {
|
|
168
|
-
const exclude =
|
|
162
|
+
const exclude = schema.STRESS_MARKER?.exclude ?? "never";
|
|
169
163
|
if (exclude === "single" && !syl.prev && !syl.next) {
|
|
170
164
|
return sylChars.map(mapChars(schema)).join("");
|
|
171
165
|
}
|
|
@@ -215,24 +209,23 @@ const joinSyllableChars = (syl, sylChars, schema) => {
|
|
|
215
209
|
const str = sylChars.map(mapChars(schema)).join("");
|
|
216
210
|
const match = str.match(vowelRgx);
|
|
217
211
|
if (location === "before-vowel") {
|
|
218
|
-
return
|
|
212
|
+
return match?.length ? str.replace(match[0], `${mark}${match[0]}`) : str;
|
|
219
213
|
}
|
|
220
214
|
// after-vowel
|
|
221
|
-
return
|
|
215
|
+
return match?.length ? str.replace(match[0], `${match[0]}${mark}`) : str;
|
|
222
216
|
}
|
|
223
217
|
return sylChars.map(mapChars(schema)).join("");
|
|
224
218
|
};
|
|
225
219
|
const consonantFeatures = (clusterText, syl, cluster, schema) => {
|
|
226
|
-
|
|
227
|
-
if ((_a = schema.ADDITIONAL_FEATURES) === null || _a === void 0 ? void 0 : _a.length) {
|
|
220
|
+
if (schema.ADDITIONAL_FEATURES?.length) {
|
|
228
221
|
const seqs = schema.ADDITIONAL_FEATURES;
|
|
229
222
|
for (const seq of seqs) {
|
|
230
223
|
const heb = new RegExp(seq.HEBREW, "u");
|
|
231
224
|
if (seq.FEATURE === "cluster" && heb.test(clusterText)) {
|
|
232
225
|
const transliteration = seq.TRANSLITERATION;
|
|
233
|
-
const passThrough =
|
|
226
|
+
const passThrough = seq.PASS_THROUGH ?? true;
|
|
234
227
|
if (typeof transliteration === "string") {
|
|
235
|
-
return
|
|
228
|
+
return replaceAndTransliterate(clusterText, heb, transliteration, schema);
|
|
236
229
|
}
|
|
237
230
|
if (!passThrough) {
|
|
238
231
|
return transliteration(cluster, seq.HEBREW, schema);
|
|
@@ -300,28 +293,27 @@ const consonantFeatures = (clusterText, syl, cluster, schema) => {
|
|
|
300
293
|
return clusterText;
|
|
301
294
|
};
|
|
302
295
|
const copySyllable = (newText, old) => {
|
|
303
|
-
|
|
304
|
-
const newClusters = newText.split(regularExpressions_1.clusterSplitGroup).map((clusterString) => new cluster_1.Cluster(clusterString, true));
|
|
296
|
+
const newClusters = newText.split(clusterSplitGroup).map((clusterString) => new Cluster(clusterString, true));
|
|
305
297
|
const oldClusters = old.clusters;
|
|
306
298
|
// set prev and next based on old syllable
|
|
307
299
|
if (newClusters.length === oldClusters.length) {
|
|
308
|
-
newClusters.forEach((c, i) =>
|
|
300
|
+
newClusters.forEach((c, i) => ((c.prev = oldClusters[i]?.prev ?? null), (c.next = oldClusters[i]?.next ?? null)));
|
|
309
301
|
}
|
|
310
302
|
else {
|
|
311
303
|
for (let i = 0; i < newClusters.length; i++) {
|
|
312
304
|
const c = newClusters[i];
|
|
313
|
-
if (
|
|
314
|
-
c.prev =
|
|
315
|
-
c.next =
|
|
305
|
+
if (oldClusters[i]?.text[0] === c?.text[0]) {
|
|
306
|
+
c.prev = oldClusters[i]?.prev ?? null;
|
|
307
|
+
c.next = oldClusters[i]?.next ?? null;
|
|
316
308
|
}
|
|
317
309
|
else {
|
|
318
|
-
c.prev =
|
|
319
|
-
c.next =
|
|
310
|
+
c.prev = oldClusters[i]?.prev ?? null;
|
|
311
|
+
c.next = oldClusters[i + 1]?.next ?? null;
|
|
320
312
|
i++;
|
|
321
313
|
}
|
|
322
314
|
}
|
|
323
315
|
}
|
|
324
|
-
const newSyl = new
|
|
316
|
+
const newSyl = new Syllable(newClusters, {
|
|
325
317
|
isClosed: old.isClosed,
|
|
326
318
|
isAccented: old.isAccented,
|
|
327
319
|
isFinal: old.isFinal
|
|
@@ -332,19 +324,18 @@ const copySyllable = (newText, old) => {
|
|
|
332
324
|
newSyl.word = old.word;
|
|
333
325
|
return newSyl;
|
|
334
326
|
};
|
|
335
|
-
const sylRules = (syl, schema) => {
|
|
336
|
-
var _a, _b;
|
|
327
|
+
export const sylRules = (syl, schema) => {
|
|
337
328
|
const sylTxt = syl.text.replace(taamim, "");
|
|
338
|
-
if (
|
|
329
|
+
if (schema.ADDITIONAL_FEATURES?.length) {
|
|
339
330
|
const seqs = schema.ADDITIONAL_FEATURES;
|
|
340
331
|
for (const seq of seqs) {
|
|
341
332
|
const heb = new RegExp(seq.HEBREW, "u");
|
|
342
333
|
if (seq.FEATURE === "syllable" && heb.test(sylTxt)) {
|
|
343
334
|
const transliteration = seq.TRANSLITERATION;
|
|
344
|
-
const passThrough =
|
|
335
|
+
const passThrough = seq.PASS_THROUGH ?? true;
|
|
345
336
|
// if transliteration is a string, then replace
|
|
346
337
|
if (typeof transliteration === "string") {
|
|
347
|
-
return
|
|
338
|
+
return replaceAndTransliterate(sylTxt, heb, transliteration, schema);
|
|
348
339
|
}
|
|
349
340
|
// if transliteration is a function and passThrough is false, then transliterate and exit
|
|
350
341
|
if (!passThrough) {
|
|
@@ -378,35 +369,32 @@ const sylRules = (syl, schema) => {
|
|
|
378
369
|
// there may be taamim still in the text, so remove them
|
|
379
370
|
return joinSyllableChars(syl, returnTxt, schema).replace(taamim, "");
|
|
380
371
|
};
|
|
381
|
-
|
|
382
|
-
const wordRules = (word, schema) => {
|
|
383
|
-
var _a, _b;
|
|
372
|
+
export const wordRules = (word, schema) => {
|
|
384
373
|
if (word.isDivineName)
|
|
385
374
|
return getDivineName(word.text, schema);
|
|
386
375
|
if (word.hasDivineName)
|
|
387
|
-
return `${
|
|
376
|
+
return `${sylRules(word.syllables[0], schema)}-${getDivineName(word.text, schema)}`;
|
|
388
377
|
if (word.isNotHebrew)
|
|
389
378
|
return word.text;
|
|
390
|
-
if (
|
|
379
|
+
if (schema.ADDITIONAL_FEATURES?.length) {
|
|
391
380
|
const seqs = schema.ADDITIONAL_FEATURES;
|
|
392
381
|
for (const seq of seqs) {
|
|
393
382
|
const heb = new RegExp(seq.HEBREW, "u");
|
|
394
383
|
const text = word.text.replace(taamim, "");
|
|
395
384
|
if (seq.FEATURE === "word" && heb.test(text)) {
|
|
396
385
|
const transliteration = seq.TRANSLITERATION;
|
|
397
|
-
const passThrough =
|
|
386
|
+
const passThrough = seq.PASS_THROUGH ?? true;
|
|
398
387
|
if (typeof transliteration === "string") {
|
|
399
|
-
return
|
|
388
|
+
return replaceAndTransliterate(text, heb, transliteration, schema);
|
|
400
389
|
}
|
|
401
390
|
if (!passThrough) {
|
|
402
391
|
return transliteration(word, seq.HEBREW, schema);
|
|
403
392
|
}
|
|
404
|
-
return new
|
|
393
|
+
return new Word(transliteration(word, seq.HEBREW, schema), schema);
|
|
405
394
|
}
|
|
406
395
|
}
|
|
407
396
|
return word;
|
|
408
397
|
}
|
|
409
398
|
return word;
|
|
410
399
|
};
|
|
411
|
-
exports.wordRules = wordRules;
|
|
412
400
|
//# sourceMappingURL=rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"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"}
|