hebrew-transliteration 2.0.0 → 2.0.3

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/testEach.js DELETED
@@ -1,272 +0,0 @@
1
- "use strict";
2
- // import { TransOptions } from "./interfaces";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.testEach = void 0;
5
- const changeElementSplit = (input, split, join) => input.split(split).join(join);
6
- const changeElementSubstr = (input, index, join) => input.substring(0, index) + join + input.substring(index + 1);
7
- const academicRules = (array, { isSimple = false } = {}) => {
8
- return array.map((element) => {
9
- if (element === " " || !element) {
10
- return element;
11
- }
12
- // Tests for shin non-ligatures
13
- // if (/\u{05C1}/u.test(element)) {
14
- // element = changeElementSplit(element, /\u{05C1}/u, "");
15
- // }
16
- // Tests for sin non-ligatures
17
- if (/š\u{05C2}/u.test(element)) {
18
- element = changeElementSplit(element, /š\u{05C2}/u, "ś");
19
- }
20
- // remove metheg that is left in for checking qamets qatan vs gadol
21
- if (/\u{05BD}/u.test(element)) {
22
- element = changeElementSplit(element, /\u{05BD}/u, "");
23
- }
24
- // Tests for hiriq-yod mater
25
- if (/iy(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|ō|u|\u{05BC})/u.test(element)) {
26
- element = changeElementSplit(element, /iy(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|ō|u|\u05BC)/, "î");
27
- }
28
- // Tests for tsere-yod mater
29
- if (/ēy(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|ō|u|\u{05BC})/u.test(element)) {
30
- element = changeElementSplit(element, /ēy(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|ō|u|\u05BC)/, "ê");
31
- }
32
- // Tests for seghol-yod mater
33
- if (/ey(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|ō|u|\u{05BC})/u.test(element)) {
34
- element = changeElementSplit(element, /ey(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|ō|u|\u05BC)/, "ê");
35
- }
36
- // Tests for waw as a holem-mater
37
- if (/wō/.test(element)) {
38
- // this is a workaround for lack of lookbehind support
39
- let rev = [...element].reverse().reduce((a, c) => a + c);
40
- if (/ōw(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|u)/.test(rev)) {
41
- rev = changeElementSplit(rev, /ōw(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|u)/, "ô");
42
- }
43
- element = [...rev].reverse().reduce((a, c) => a + c);
44
- }
45
- // Tests for waw as a holem-mater
46
- // this will catch a waw as a consonant like - C+ō+w+V+C > CōwVC
47
- if (/ōw(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|u|\u{05BC})/u.test(element)) {
48
- element = changeElementSplit(element, /ōw(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|u|\u05BC)/, "ô");
49
- }
50
- // Tests for waw as a shureq-mater
51
- if (/w\u{05BC}(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|â|o|ô|u|û)/u.test(element)) {
52
- element = changeElementSplit(element, /w\u05BC(?!ǝ|ĕ|ă|ŏ|i|ē|e|a|ā|â|o|ô|u|û)/, "û");
53
- }
54
- // Tests for He as a final mater
55
- /* if using simple version, ēh remains so that it is passed into simpleRules
56
- if not, then there would be now way to distinguish between ê from tsere-yod vs he-mater */
57
- if (!isSimple) {
58
- if (/āh(?=$|-)/m.test(element)) {
59
- element = changeElementSplit(element, /āh(?=$|-)/m, "â");
60
- }
61
- else if (/ēh(?=$|-)/m.test(element)) {
62
- element = changeElementSplit(element, /ēh(?=$|-)/m, "ê");
63
- }
64
- else if (/eh(?=$|-)/m.test(element)) {
65
- element = changeElementSplit(element, /eh(?=$|-)/m, "ê");
66
- }
67
- }
68
- // tests for he with mappiq or furtive patach
69
- if (/h\u{05BC}$/mu.test(element)) {
70
- element = changeElementSplit(element, /h\u{05BC}$/mu, "h");
71
- }
72
- else if (/h\u{05BC}a$/mu.test(element)) {
73
- element = changeElementSplit(element, /h\u{05BC}a$/mu, "ah");
74
- }
75
- else if (/ḥa$/m.test(element)) {
76
- element = changeElementSplit(element, /ḥa$/m, "aḥ");
77
- }
78
- else if (/ʿa$/m.test(element)) {
79
- element = changeElementSplit(element, /ʿa$/m, "aʿ");
80
- }
81
- // Tests if a shewa exists in the element
82
- if (/ǝ/.test(element)) {
83
- let pos = element.indexOf("ǝ");
84
- while (pos !== -1) {
85
- // shewa at the end of a word
86
- if (element.charAt(element.length - 1) === "ǝ") {
87
- element = changeElementSubstr(element, element.length - 1, "");
88
- }
89
- // if the shewa is preceded by a short vowel
90
- if (/ǝ|a|e|i|u|o/.test(element.charAt(pos - 2))) {
91
- // if it SQeNeM LeVY letters in wayyiqtol forms
92
- if (/s|ṣ|š|ś|q|n|m|l|w|y/.test(element.charAt(pos - 1)) && /w/.test(element.charAt(pos - 3))) {
93
- element = element;
94
- }
95
- else {
96
- element = changeElementSubstr(element, pos, "");
97
- }
98
- }
99
- pos = element.indexOf("ǝ", pos + 1);
100
- }
101
- element = element;
102
- }
103
- // tests for a doubling dagesh
104
- if (/\u{05BC}/u.test(element)) {
105
- const elArray = element.split("");
106
- elArray.forEach((e, i) => {
107
- if (e === "\u05BC" && /a|ā|e|ē|i|î|u|û|o|ō|ô/.test(elArray[i - 2]) && Boolean(elArray[i - 2])) {
108
- elArray[i] = elArray[i - 1];
109
- }
110
- });
111
- element = elArray.join("");
112
- }
113
- // tests for yhwh
114
- if (element === "yǝhwâ") {
115
- element = "yhwh";
116
- }
117
- else if (element.includes("yǝhwâ")) {
118
- element = changeElementSplit(element, /yǝhwâ/, "yhwh");
119
- }
120
- else if (element.includes("yhwâ")) {
121
- element = changeElementSplit(element, /yhwâ/, "yhwh");
122
- }
123
- // removes any remaining dageshes
124
- if (/\u{05BC}/u.test(element)) {
125
- element = changeElementSplit(element, /\u{05BC}/u, "");
126
- }
127
- return element;
128
- }); // map
129
- };
130
- const simpleRules = (array) => {
131
- return array.map((element) => {
132
- if (element === " " || !element) {
133
- return element;
134
- }
135
- // remove aleph half-ring
136
- if (/ʾ/.test(element)) {
137
- element = changeElementSplit(element, /ʾ/, "");
138
- }
139
- // remove ayin half-ring
140
- if (/ʿ/.test(element)) {
141
- element = changeElementSplit(element, /ʿ/, "");
142
- }
143
- // simplify he-mater
144
- if (/āh$/m.test(element)) {
145
- element = changeElementSplit(element, /āh$/m, "ah");
146
- }
147
- else if (/ēh$/.test(element)) {
148
- element = changeElementSplit(element, /ēh$/m, "eh");
149
- }
150
- // simplify hiriq-yod
151
- if (/î/.test(element)) {
152
- element = changeElementSplit(element, /î/, "i");
153
- }
154
- // simplify tsere-yod / seghol-yod
155
- if (/ê/.test(element)) {
156
- element = changeElementSplit(element, /ê/, "e");
157
- }
158
- // simplify holem-waw
159
- if (/ô/.test(element)) {
160
- element = changeElementSplit(element, /ô/, "o");
161
- }
162
- // simplify shureq
163
- if (/û/.test(element)) {
164
- element = changeElementSplit(element, /û/, "u");
165
- }
166
- // remove doubling of shin
167
- if (/šš/.test(element)) {
168
- element = changeElementSplit(element, /šš/, "š");
169
- }
170
- // remove doubling of tsade
171
- if (/ṣṣ/.test(element)) {
172
- element = changeElementSplit(element, /ṣṣ/, "ṣ");
173
- }
174
- // simplify long-a
175
- if (/ā/.test(element)) {
176
- element = changeElementSplit(element, /ā/, "a");
177
- }
178
- // simplify short-a
179
- if (/ă/.test(element)) {
180
- element = changeElementSplit(element, /ă/, "a");
181
- }
182
- // simplify long-e
183
- if (/ē/.test(element)) {
184
- element = changeElementSplit(element, /ē/, "e");
185
- }
186
- // simplify short-e
187
- if (/ĕ/.test(element)) {
188
- element = changeElementSplit(element, /ĕ/, "e");
189
- }
190
- // simplify long-i
191
- if (/ī/.test(element)) {
192
- element = changeElementSplit(element, /ī/, "i");
193
- }
194
- // simplify long-o
195
- if (/ō/.test(element)) {
196
- element = changeElementSplit(element, /ō/, "o");
197
- }
198
- // simplify short-o
199
- if (/ŏ/.test(element)) {
200
- element = changeElementSplit(element, /ŏ/, "o");
201
- }
202
- // simplify long-u
203
- if (/ū/.test(element)) {
204
- element = changeElementSplit(element, /ū/, "u");
205
- }
206
- // simplify shewa
207
- if (/ǝ/.test(element)) {
208
- element = changeElementSplit(element, /ǝ/, "e");
209
- }
210
- // spirantized cons
211
- /* Since the negative lookbehind regex is not well supported,
212
- the string is reversed and then the regex searches the pattern of
213
- the consonant that is followed by a vowel (which preceded it in the original direction)
214
- */
215
- let rev = [...element].reverse().reduce((a, c) => a + c, "");
216
- // change b > v
217
- if (/b/.test(element) && !/bb/.test(element)) {
218
- if (/b(?=[aeiou])/.test(rev)) {
219
- rev = changeElementSplit(rev, /b(?=[aeiou])/, "v");
220
- }
221
- }
222
- // change p > f
223
- if (/p/.test(element) && !/pp/.test(element)) {
224
- if (/p(?=[aeiou])/.test(rev)) {
225
- rev = changeElementSplit(rev, /p(?=[aeiou])/, "f");
226
- }
227
- }
228
- // change k > kh
229
- if (/k/.test(element) && !/kk/.test(element)) {
230
- if (/k(?=[aeiou])/.test(rev)) {
231
- // when the string is reversed back 'hk' > 'kh'
232
- rev = changeElementSplit(rev, /k(?=[aeiou])/, "hk");
233
- }
234
- }
235
- element = [...rev].reverse().reduce((a, c) => a + c, "");
236
- // simplify ṭet
237
- if (/ṭ/.test(element)) {
238
- element = changeElementSplit(element, /ṭ/, "t");
239
- }
240
- // simplify tsade
241
- if (/ṣ/.test(element)) {
242
- element = changeElementSplit(element, /ṣ/, "ts");
243
- }
244
- // simplify shin
245
- if (/š/.test(element)) {
246
- element = changeElementSplit(element, /š/, "sh");
247
- }
248
- // simplify sin
249
- if (/ś/.test(element)) {
250
- element = changeElementSplit(element, /ś/, "s");
251
- }
252
- // simplify ḥet
253
- if (/ḥ/.test(element)) {
254
- element = changeElementSplit(element, /ḥ/, "kh");
255
- }
256
- // simplify waw
257
- if (/w/.test(element)) {
258
- element = changeElementSplit(element, /w/, "v");
259
- }
260
- // tests for yhwh
261
- if (element === "yehvah") {
262
- element = "yhwh";
263
- }
264
- return element;
265
- }); // map
266
- };
267
- const testEach = (array, { qametsQatan = false, isSimple = false } = {}) => {
268
- const academic = academicRules(array, { qametsQatan, isSimple });
269
- return !isSimple ? academic : simpleRules(academic);
270
- };
271
- exports.testEach = testEach;
272
- //# sourceMappingURL=testEach.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testEach.js","sourceRoot":"","sources":["../src/testEach.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Schema } from "./interfaces";
2
- export declare const titForTat: (text: string, schema: Schema) => string;
package/dist/titForTat.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.titForTat = void 0;
4
- const hebCharsTrans_1 = require("./hebCharsTrans");
5
- const titForTat = (text, schema) => [...text].map((char) => (char in hebCharsTrans_1.transliterateMap ? schema[hebCharsTrans_1.transliterateMap[char]] : char)).join("");
6
- exports.titForTat = titForTat;
7
- //# sourceMappingURL=titForTat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"titForTat.js","sourceRoot":"","sources":["../src/titForTat.ts"],"names":[],"mappings":";;;AAAA,mDAA0D;AAGnD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE,CACxD,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,gCAAG,CAAC,CAAC,CAAC,MAAM,CAAC,gCAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AADxE,QAAA,SAAS,aAC+D"}
@@ -1,45 +0,0 @@
1
- import { Schema } from "./schema";
2
- import { Text } from "havarotjs";
3
- /**
4
- * transliterates Hebrew text
5
- *
6
- * @param text - a string or {@link https://charlesloder.github.io/havarot/classes/text.Text.html | Text} of Hebrew characters
7
- * @param schema - a {@link Schema} for transliterating the text
8
- * @returns a transliterated text
9
- *
10
- * @example Default
11
- * ```ts
12
- * import { transliterate } from "hebrew-transliteration";
13
- *
14
- * transliterate("אֱלֹהִים");
15
- * // "ʾĕlōhîm";
16
- * ```
17
- *
18
- * ---
19
- *
20
- * @remarks
21
- *
22
- * If no {@link Schema} is passed, then the package defaults to SBL's academic style
23
- *
24
- * You can pass in a partial schema that will modify SBL's academic style:
25
- *
26
- * ```ts
27
- * transliterate("שָׁלוֹם", { SHIN: "sh" })
28
- * // shālôm
29
- * ```
30
- *
31
- * ---
32
- *
33
- * If you need a fully custom schema, it is best to use the {@link Schema} constructor:
34
- *
35
- * ```ts
36
- * import { transliterate, Schema } from "hebrew-transliteration";
37
- *
38
- * const schema = new Schema({ ALEF: "'", BET: "B", ... QAMETS: "A", ... }) // truncated for brevity
39
- *
40
- * transliterate("אָ֣ב", schema)
41
- * // 'AB
42
- * ```
43
- *
44
- */
45
- export declare const transliterate: (text: string | Text, schema?: Schema | Partial<Schema> | undefined) => string;
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transliterate = void 0;
4
- const sequence_1 = require("./sequence");
5
- const rules_1 = require("./rules");
6
- const mapChars_1 = require("./mapChars");
7
- const schema_1 = require("./schema");
8
- const havarotjs_1 = require("havarotjs");
9
- const word_1 = require("havarotjs/dist/word");
10
- /**
11
- *
12
- * @param schema
13
- * @returns syllable options passed into havarotjs
14
- * @description sanitizes the SylOpts of the schema so as to not pass in undefined
15
- */
16
- const getSylOpts = (schema) => {
17
- const options = {};
18
- if ("longVowels" in schema)
19
- options.longVowels = schema.longVowels;
20
- if ("qametsQatan" in schema)
21
- options.qametsQatan = schema.qametsQatan;
22
- if ("sqnmlvy" in schema)
23
- options.sqnmlvy = schema.sqnmlvy;
24
- if ("wawShureq" in schema)
25
- options.wawShureq = schema.wawShureq;
26
- if ("article" in schema)
27
- options.article = schema.article;
28
- return options;
29
- };
30
- /**
31
- * transliterates Hebrew text
32
- *
33
- * @param text - a string or {@link https://charlesloder.github.io/havarot/classes/text.Text.html | Text} of Hebrew characters
34
- * @param schema - a {@link Schema} for transliterating the text
35
- * @returns a transliterated text
36
- *
37
- * @example Default
38
- * ```ts
39
- * import { transliterate } from "hebrew-transliteration";
40
- *
41
- * transliterate("אֱלֹהִים");
42
- * // "ʾĕlōhîm";
43
- * ```
44
- *
45
- * ---
46
- *
47
- * @remarks
48
- *
49
- * If no {@link Schema} is passed, then the package defaults to SBL's academic style
50
- *
51
- * You can pass in a partial schema that will modify SBL's academic style:
52
- *
53
- * ```ts
54
- * transliterate("שָׁלוֹם", { SHIN: "sh" })
55
- * // shālôm
56
- * ```
57
- *
58
- * ---
59
- *
60
- * If you need a fully custom schema, it is best to use the {@link Schema} constructor:
61
- *
62
- * ```ts
63
- * import { transliterate, Schema } from "hebrew-transliteration";
64
- *
65
- * const schema = new Schema({ ALEF: "'", BET: "B", ... QAMETS: "A", ... }) // truncated for brevity
66
- *
67
- * transliterate("אָ֣ב", schema)
68
- * // 'AB
69
- * ```
70
- *
71
- */
72
- const transliterate = (text, schema) => {
73
- const transSchema = schema instanceof schema_1.Schema ? schema : new schema_1.SBL(schema !== null && schema !== void 0 ? schema : {});
74
- const isText = text instanceof havarotjs_1.Text;
75
- // prevents Text from throwing error when no vowels
76
- if (!isText && !sequence_1.vowels.test(text))
77
- return (0, mapChars_1.mapChars)(text, transSchema);
78
- const sylOptions = getSylOpts(transSchema !== null && transSchema !== void 0 ? transSchema : {});
79
- const newText = isText ? text : new havarotjs_1.Text(text, sylOptions);
80
- return newText.words
81
- .map((word) => {
82
- var _a, _b;
83
- let transliteration = (0, rules_1.wordRules)(word, transSchema);
84
- if (transliteration instanceof word_1.Word) {
85
- transliteration = word.syllables
86
- .map((s) => (0, rules_1.sylRules)(s, transSchema))
87
- .join((_a = transSchema.SYLLABLE_SEPARATOR) !== null && _a !== void 0 ? _a : "");
88
- }
89
- return `${transliteration}${(_b = word.whiteSpaceAfter) !== null && _b !== void 0 ? _b : ""}`;
90
- })
91
- .join("");
92
- };
93
- exports.transliterate = transliterate;
94
- //# sourceMappingURL=transliterate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transliterate.js","sourceRoot":"","sources":["../src/transliterate.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,mCAA8C;AAC9C,yCAAsC;AACtC,qCAAuC;AACvC,yCAAiC;AACjC,8CAA2C;AAG3C;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAE,EAAE;IAC9C,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,IAAI,YAAY,IAAI,MAAM;QAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACnE,IAAI,aAAa,IAAI,MAAM;QAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACtE,IAAI,SAAS,IAAI,MAAM;QAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1D,IAAI,WAAW,IAAI,MAAM;QAAE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAChE,IAAI,SAAS,IAAI,MAAM;QAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1D,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACI,MAAM,aAAa,GAAG,CAAC,IAAmB,EAAE,MAAiC,EAAE,EAAE;IACtF,MAAM,WAAW,GAAG,MAAM,YAAY,eAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAG,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,IAAI,YAAY,gBAAI,CAAC;IACpC,mDAAmD;IACnD,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAA,mBAAQ,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,gBAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,KAAK;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;QACZ,IAAI,eAAe,GAAG,IAAA,iBAAS,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,eAAe,YAAY,WAAI,EAAE;YACnC,eAAe,GAAG,IAAI,CAAC,SAAS;iBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,CAAC,EAAE,WAAW,CAAC,CAAC;iBACpC,IAAI,CAAC,MAAA,WAAW,CAAC,kBAAkB,mCAAI,EAAE,CAAC,CAAC;SAC/C;QACD,OAAO,GAAG,eAAe,GAAG,MAAA,IAAI,CAAC,eAAe,mCAAI,EAAE,EAAE,CAAC;IAC3D,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC;AAlBW,QAAA,aAAa,iBAkBxB"}