hebrew-transliteration 2.1.2 → 2.2.1
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/README.md +17 -0
- package/dist/hebCharsTrans.d.ts +6 -0
- package/dist/hebCharsTrans.js +56 -0
- package/dist/index.d.ts +6 -659
- package/dist/index.js +12 -434
- package/dist/mapChars.d.ts +10 -0
- package/dist/mapChars.js +14 -0
- package/dist/remove.d.ts +65 -0
- package/dist/remove.js +45 -0
- package/dist/rules.d.ts +5 -0
- package/dist/rules.js +242 -0
- package/dist/schema.d.ts +476 -0
- package/dist/schema.js +161 -0
- package/dist/schemas/brillAcademic.d.ts +2 -0
- package/dist/schemas/brillAcademic.js +74 -0
- package/dist/schemas/brillSimple.d.ts +2 -0
- package/dist/schemas/brillSimple.js +73 -0
- package/dist/schemas/index.d.ts +5 -0
- package/dist/schemas/index.js +11 -0
- package/dist/schemas/michiganClaremont.d.ts +2 -0
- package/dist/schemas/michiganClaremont.js +67 -0
- package/dist/schemas/sblAcademicSpirantization.d.ts +2 -0
- package/dist/schemas/sblAcademicSpirantization.js +73 -0
- package/dist/schemas/sblSimple.d.ts +2 -0
- package/dist/schemas/sblSimple.js +70 -0
- package/dist/sequence.d.ts +18 -0
- package/dist/sequence.js +25 -0
- package/dist/transliterate.d.ts +45 -0
- package/dist/transliterate.js +88 -0
- package/package.json +21 -3
- package/dist/index.esm.js +0 -406
package/dist/rules.js
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wordRules = exports.sylRules = void 0;
|
|
4
|
+
const cluster_1 = require("havarotjs/dist/cluster");
|
|
5
|
+
const regularExpressions_1 = require("havarotjs/dist/utils/regularExpressions");
|
|
6
|
+
const mapChars_1 = require("./mapChars");
|
|
7
|
+
const taamim = /[\u{0590}-\u{05AF}\u{05BD}\u{05BF}]/u;
|
|
8
|
+
const changeElementSplit = (input, split, join) => input.split(split).join(join);
|
|
9
|
+
const consonantFeatures = (clusterText, syl, cluster, schema) => {
|
|
10
|
+
var _a;
|
|
11
|
+
if ((_a = schema.ADDITIONAL_FEATURES) === null || _a === void 0 ? void 0 : _a.length) {
|
|
12
|
+
const clusterSeqs = schema.ADDITIONAL_FEATURES.filter((s) => s.FEATURE === "cluster");
|
|
13
|
+
for (const seq of clusterSeqs) {
|
|
14
|
+
const heb = new RegExp(seq.HEBREW, "u");
|
|
15
|
+
if (heb.test(clusterText)) {
|
|
16
|
+
const sylSeq = changeElementSplit(clusterText, heb, seq.TRANSLITERATION);
|
|
17
|
+
return [...sylSeq].map((char) => (0, mapChars_1.mapChars)(char, schema)).join("");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
clusterText = cluster.hasShewa && syl.isClosed ? clusterText.replace(/\u{05B0}/u, "") : clusterText;
|
|
22
|
+
// mappiq he
|
|
23
|
+
if (/ה\u{05BC}$/mu.test(clusterText)) {
|
|
24
|
+
return changeElementSplit(clusterText, /ה\u{05BC}/u, schema.HE);
|
|
25
|
+
}
|
|
26
|
+
if (syl.isFinal && !syl.isClosed) {
|
|
27
|
+
const furtiveChet = /\u{05D7}\u{05B7}$/mu;
|
|
28
|
+
if (furtiveChet.test(clusterText)) {
|
|
29
|
+
return changeElementSplit(clusterText, furtiveChet, "\u{05B7}\u{05D7}");
|
|
30
|
+
}
|
|
31
|
+
const furtiveAyin = /\u{05E2}\u{05B7}$/mu;
|
|
32
|
+
if (furtiveAyin.test(clusterText)) {
|
|
33
|
+
return changeElementSplit(clusterText, furtiveAyin, "\u{05B7}\u{05E2}");
|
|
34
|
+
}
|
|
35
|
+
const furtiveHe = /\u{05D4}\u{05BC}\u{05B7}$/mu;
|
|
36
|
+
if (furtiveHe.test(clusterText)) {
|
|
37
|
+
return changeElementSplit(clusterText, furtiveHe, "\u{05B7}\u{05D4}\u{05BC}");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// dagesh chazaq
|
|
41
|
+
const prevHasVowel = cluster.prev instanceof cluster_1.Cluster ? cluster.prev.hasVowel : false;
|
|
42
|
+
const isDoubled = schema.DAGESH_CHAZAQ && prevHasVowel && /\u{05BC}/u.test(clusterText);
|
|
43
|
+
if (schema.BET_DAGESH && /ב\u{05BC}/u.test(clusterText)) {
|
|
44
|
+
return changeElementSplit(clusterText, /ב\u{05BC}/u, schema.BET_DAGESH.repeat(isDoubled ? 2 : 1));
|
|
45
|
+
}
|
|
46
|
+
if (schema.GIMEL_DAGESH && /ג\u{05BC}/u.test(clusterText)) {
|
|
47
|
+
return changeElementSplit(clusterText, /ג\u{05BC}/u, schema.GIMEL_DAGESH.repeat(isDoubled ? 2 : 1));
|
|
48
|
+
}
|
|
49
|
+
if (schema.DALET_DAGESH && /ד\u{05BC}/u.test(clusterText)) {
|
|
50
|
+
return changeElementSplit(clusterText, /ד\u{05BC}/u, schema.DALET_DAGESH.repeat(isDoubled ? 2 : 1));
|
|
51
|
+
}
|
|
52
|
+
if (schema.KAF_DAGESH && /כ\u{05BC}/u.test(clusterText)) {
|
|
53
|
+
return changeElementSplit(clusterText, /כ\u{05BC}/u, schema.KAF_DAGESH.repeat(isDoubled ? 2 : 1));
|
|
54
|
+
}
|
|
55
|
+
if (schema.KAF_DAGESH && /ך\u{05BC}/u.test(clusterText)) {
|
|
56
|
+
return changeElementSplit(clusterText, /ך\u{05BC}/u, schema.KAF_DAGESH.repeat(isDoubled ? 2 : 1));
|
|
57
|
+
}
|
|
58
|
+
if (schema.PE_DAGESH && /פ\u{05BC}/u.test(clusterText)) {
|
|
59
|
+
return changeElementSplit(clusterText, /פ\u{05BC}/u, schema.PE_DAGESH.repeat(isDoubled ? 2 : 1));
|
|
60
|
+
}
|
|
61
|
+
if (schema.TAV_DAGESH && /ת\u{05BC}/u.test(clusterText)) {
|
|
62
|
+
return changeElementSplit(clusterText, /ת\u{05BC}/u, schema.TAV_DAGESH.repeat(isDoubled ? 2 : 1));
|
|
63
|
+
}
|
|
64
|
+
if (/ש\u{05C1}/u.test(clusterText)) {
|
|
65
|
+
return changeElementSplit(clusterText, /ש\u{05C1}/u, schema.SHIN.repeat(isDoubled ? 2 : 1));
|
|
66
|
+
}
|
|
67
|
+
if (/ש\u{05C2}/u.test(clusterText)) {
|
|
68
|
+
return changeElementSplit(clusterText, /ש\u{05C2}/u, schema.SIN.repeat(isDoubled ? 2 : 1));
|
|
69
|
+
}
|
|
70
|
+
if (isDoubled) {
|
|
71
|
+
const consonant = cluster.chars[0].text;
|
|
72
|
+
const consonantDagesh = new RegExp(consonant + "\u{05BC}", "u");
|
|
73
|
+
return changeElementSplit(clusterText, consonantDagesh, `${consonant + consonant}`);
|
|
74
|
+
}
|
|
75
|
+
if (cluster.isShureq) {
|
|
76
|
+
return schema.SHUREQ;
|
|
77
|
+
}
|
|
78
|
+
return clusterText;
|
|
79
|
+
};
|
|
80
|
+
const materFeatures = (syl, schema) => {
|
|
81
|
+
const mater = syl.clusters.filter((c) => c.isMater)[0];
|
|
82
|
+
const prev = mater.prev instanceof cluster_1.Cluster ? mater.prev : null;
|
|
83
|
+
const materText = mater.text;
|
|
84
|
+
const prevText = ((prev === null || prev === void 0 ? void 0 : prev.text) || "").replace(taamim, "");
|
|
85
|
+
// string comprised of all non-mater clusters in a syl with a mater
|
|
86
|
+
let noMaterText = syl.clusters
|
|
87
|
+
.filter((c) => !c.isMater)
|
|
88
|
+
.map((c) => consonantFeatures(c.text.replace(taamim, ""), syl, c, schema))
|
|
89
|
+
.join("");
|
|
90
|
+
// workaround for maqaf
|
|
91
|
+
const hasMaqaf = mater.text.includes("־");
|
|
92
|
+
noMaterText = hasMaqaf ? noMaterText.concat("־") : noMaterText;
|
|
93
|
+
if (/י/.test(materText)) {
|
|
94
|
+
// hiriq
|
|
95
|
+
if (/\u{05B4}/u.test(prevText)) {
|
|
96
|
+
return changeElementSplit(noMaterText, /\u{05B4}/u, schema.HIRIQ_YOD);
|
|
97
|
+
}
|
|
98
|
+
// tsere
|
|
99
|
+
if (/\u{05B5}/u.test(prevText)) {
|
|
100
|
+
return changeElementSplit(noMaterText, /\u{05B5}/u, schema.TSERE_YOD);
|
|
101
|
+
}
|
|
102
|
+
// segol
|
|
103
|
+
if (/\u{05B6}/u.test(prevText)) {
|
|
104
|
+
return changeElementSplit(noMaterText, /\u{05B6}/u, schema.SEGOL_YOD);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (/ו/u.test(materText)) {
|
|
108
|
+
// holam
|
|
109
|
+
if (/\u{05B9}/u.test(prevText)) {
|
|
110
|
+
return changeElementSplit(noMaterText, /\u{05B9}/u, schema.HOLAM_VAV);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (/ה/.test(materText)) {
|
|
114
|
+
// qamets
|
|
115
|
+
if (/\u{05B8}/u.test(prevText)) {
|
|
116
|
+
return changeElementSplit(noMaterText, /\u{05B8}/u, schema.QAMATS_HE);
|
|
117
|
+
}
|
|
118
|
+
// seghol
|
|
119
|
+
if (/\u{05B6}/u.test(prevText)) {
|
|
120
|
+
return changeElementSplit(noMaterText, /\u{05B6}/u, schema.SEGOL_HE);
|
|
121
|
+
}
|
|
122
|
+
// tsere
|
|
123
|
+
if (/\u{05B5}/u.test(prevText)) {
|
|
124
|
+
return changeElementSplit(noMaterText, /\u{05B5}/u, schema.SEGOL_HE);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return materText;
|
|
128
|
+
};
|
|
129
|
+
const joinChars = (isAccented, sylChars, schema) => {
|
|
130
|
+
if (!isAccented) {
|
|
131
|
+
return sylChars.map((char) => (0, mapChars_1.mapChars)(char, schema)).join("");
|
|
132
|
+
}
|
|
133
|
+
if (schema.STRESS_MARKER) {
|
|
134
|
+
const location = schema.STRESS_MARKER.location;
|
|
135
|
+
const mark = schema.STRESS_MARKER.mark;
|
|
136
|
+
if (location === "before-syllable") {
|
|
137
|
+
return `${mark}${sylChars.map((char) => (0, mapChars_1.mapChars)(char, schema)).join("")}`;
|
|
138
|
+
}
|
|
139
|
+
if (location === "after-syllable") {
|
|
140
|
+
return `${sylChars.map((char) => (0, mapChars_1.mapChars)(char, schema)).join("")}${mark}`;
|
|
141
|
+
}
|
|
142
|
+
const vowels = [
|
|
143
|
+
schema.PATAH,
|
|
144
|
+
schema.HATAF_PATAH,
|
|
145
|
+
schema.QAMATS,
|
|
146
|
+
schema.HATAF_QAMATS,
|
|
147
|
+
schema.SEGOL,
|
|
148
|
+
schema.HATAF_SEGOL,
|
|
149
|
+
schema.TSERE,
|
|
150
|
+
schema.HIRIQ,
|
|
151
|
+
schema.HOLAM,
|
|
152
|
+
schema.QAMATS_QATAN,
|
|
153
|
+
schema.QUBUTS,
|
|
154
|
+
schema.QAMATS_HE,
|
|
155
|
+
schema.SEGOL_HE,
|
|
156
|
+
schema.TSERE_HE,
|
|
157
|
+
schema.HIRIQ_YOD,
|
|
158
|
+
schema.TSERE_YOD,
|
|
159
|
+
schema.SEGOL_YOD,
|
|
160
|
+
schema.HOLAM_VAV,
|
|
161
|
+
schema.SHUREQ
|
|
162
|
+
].sort((a, b) => b.length - a.length);
|
|
163
|
+
const vowelRgx = new RegExp(`${vowels.join("|")}`);
|
|
164
|
+
const str = sylChars.map((char) => (0, mapChars_1.mapChars)(char, schema)).join("");
|
|
165
|
+
const match = str.match(vowelRgx);
|
|
166
|
+
if (location === "before-vowel") {
|
|
167
|
+
return (match === null || match === void 0 ? void 0 : match.length) ? str.replace(match[0], `${mark}${match[0]}`) : str;
|
|
168
|
+
}
|
|
169
|
+
// after-vowel
|
|
170
|
+
return (match === null || match === void 0 ? void 0 : match.length) ? str.replace(match[0], `${match[0]}${mark}`) : str;
|
|
171
|
+
}
|
|
172
|
+
return sylChars.map((char) => (0, mapChars_1.mapChars)(char, schema)).join("");
|
|
173
|
+
};
|
|
174
|
+
const sylRules = (syl, schema) => {
|
|
175
|
+
var _a;
|
|
176
|
+
const sylTxt = syl.text.replace(taamim, "");
|
|
177
|
+
if ((_a = schema.ADDITIONAL_FEATURES) === null || _a === void 0 ? void 0 : _a.length) {
|
|
178
|
+
const sylSeqs = schema.ADDITIONAL_FEATURES.filter((s) => s.FEATURE === "syllable");
|
|
179
|
+
for (const seq of sylSeqs) {
|
|
180
|
+
const heb = new RegExp(seq.HEBREW, "u");
|
|
181
|
+
if (heb.test(sylTxt)) {
|
|
182
|
+
const wordSeq = changeElementSplit(sylTxt, heb, seq.TRANSLITERATION);
|
|
183
|
+
return joinChars(syl.isAccented, [...wordSeq], schema);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// syllable is 3ms sufx
|
|
188
|
+
const mSSuffix = /\u{05B8}\u{05D9}\u{05D5}/u;
|
|
189
|
+
if (syl.isFinal && mSSuffix.test(sylTxt)) {
|
|
190
|
+
const sufxSyl = changeElementSplit(sylTxt, mSSuffix, schema.MS_SUFX);
|
|
191
|
+
return joinChars(syl.isAccented, [...sufxSyl], schema);
|
|
192
|
+
}
|
|
193
|
+
// syllable has a mater
|
|
194
|
+
// unsure why eslint throwing error here, but not other places...
|
|
195
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
|
|
196
|
+
const hasMater = syl.clusters.map((c) => c.isMater).includes(true);
|
|
197
|
+
if (hasMater) {
|
|
198
|
+
const materSyl = materFeatures(syl, schema);
|
|
199
|
+
return joinChars(syl.isAccented, [...materSyl], schema);
|
|
200
|
+
}
|
|
201
|
+
// regular syllables
|
|
202
|
+
const returnTxt = syl.clusters.map((cluster) => {
|
|
203
|
+
const clusterText = cluster.text.replace(taamim, "");
|
|
204
|
+
return consonantFeatures(clusterText, syl, cluster, schema);
|
|
205
|
+
});
|
|
206
|
+
return joinChars(syl.isAccented, returnTxt, schema);
|
|
207
|
+
};
|
|
208
|
+
exports.sylRules = sylRules;
|
|
209
|
+
/**
|
|
210
|
+
* formats the Divine Name with any Latin chars
|
|
211
|
+
*
|
|
212
|
+
* @param str word text
|
|
213
|
+
* @param schema
|
|
214
|
+
* @returns the Divine Name with any pre or proceding Latin chars
|
|
215
|
+
*/
|
|
216
|
+
const getDivineName = (str, schema) => {
|
|
217
|
+
const begn = str[0];
|
|
218
|
+
const end = str[str.length - 1];
|
|
219
|
+
return `${regularExpressions_1.hebChars.test(begn) ? "" : begn}${schema.DIVINE_NAME}${regularExpressions_1.hebChars.test(end) ? "" : end}`;
|
|
220
|
+
};
|
|
221
|
+
const wordRules = (word, schema) => {
|
|
222
|
+
var _a;
|
|
223
|
+
if (word.isDivineName)
|
|
224
|
+
return getDivineName(word.text, schema);
|
|
225
|
+
if (word.hasDivineName)
|
|
226
|
+
return `${(0, exports.sylRules)(word.syllables[0], schema)}-${getDivineName(word.text, schema)}`;
|
|
227
|
+
if (word.isNotHebrew)
|
|
228
|
+
return word.text;
|
|
229
|
+
if ((_a = schema.ADDITIONAL_FEATURES) === null || _a === void 0 ? void 0 : _a.length) {
|
|
230
|
+
const wordSeqs = schema.ADDITIONAL_FEATURES.filter((s) => s.FEATURE === "word");
|
|
231
|
+
for (const seq of wordSeqs) {
|
|
232
|
+
const heb = new RegExp(seq.HEBREW, "u");
|
|
233
|
+
const wordText = word.text.replace(taamim, "");
|
|
234
|
+
if (heb.test(wordText)) {
|
|
235
|
+
const wordSeq = changeElementSplit(wordText, heb, seq.TRANSLITERATION);
|
|
236
|
+
return [...wordSeq].map((char) => (0, mapChars_1.mapChars)(char, schema)).join("");
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return word;
|
|
241
|
+
};
|
|
242
|
+
exports.wordRules = wordRules;
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
import { SylOpts } from "havarotjs/dist/text";
|
|
2
|
+
/**
|
|
3
|
+
* class for defining a schema for transliteration
|
|
4
|
+
*/
|
|
5
|
+
export declare class Schema implements SylOpts {
|
|
6
|
+
/**
|
|
7
|
+
* HEBREW POINT SHEVA (U+05B0) ְ◌
|
|
8
|
+
* @example
|
|
9
|
+
* 'ǝ'
|
|
10
|
+
*/
|
|
11
|
+
VOCAL_SHEVA: string;
|
|
12
|
+
/**
|
|
13
|
+
* HEBREW POINT HATAF SEGOL (U+05B1) ֱ◌
|
|
14
|
+
* @example
|
|
15
|
+
* 'ĕ'
|
|
16
|
+
*/
|
|
17
|
+
HATAF_SEGOL: string;
|
|
18
|
+
/**
|
|
19
|
+
* HEBREW POINT HATAF PATAH (U+05B2) ֲ◌
|
|
20
|
+
* @example
|
|
21
|
+
* 'ă'
|
|
22
|
+
*/
|
|
23
|
+
HATAF_PATAH: string;
|
|
24
|
+
/**
|
|
25
|
+
* HEBREW POINT HATAF QAMATS (U+05B3) ֳ◌
|
|
26
|
+
* @example
|
|
27
|
+
* 'ŏ'
|
|
28
|
+
*/
|
|
29
|
+
HATAF_QAMATS: string;
|
|
30
|
+
/**
|
|
31
|
+
* HEBREW POINT HIRIQ (U+05B4) ִ◌
|
|
32
|
+
* @example
|
|
33
|
+
* 'i'
|
|
34
|
+
*/
|
|
35
|
+
HIRIQ: string;
|
|
36
|
+
/**
|
|
37
|
+
* HEBREW POINT TSERE (U+05B5) ֵ◌
|
|
38
|
+
* @example
|
|
39
|
+
* 'ē'
|
|
40
|
+
*/
|
|
41
|
+
TSERE: string;
|
|
42
|
+
/**
|
|
43
|
+
* HEBREW POINT SEGOL (U+05B6) ֶ◌
|
|
44
|
+
* @example
|
|
45
|
+
* 'e'
|
|
46
|
+
*/
|
|
47
|
+
SEGOL: string;
|
|
48
|
+
/**
|
|
49
|
+
* HEBREW POINT PATAH (U+05B7) ַ◌
|
|
50
|
+
* @example
|
|
51
|
+
* 'a'
|
|
52
|
+
*/
|
|
53
|
+
PATAH: string;
|
|
54
|
+
/**
|
|
55
|
+
* HEBREW POINT QAMATS (U+05B8) ָ◌
|
|
56
|
+
* @example
|
|
57
|
+
* 'ā'
|
|
58
|
+
*/
|
|
59
|
+
QAMATS: string;
|
|
60
|
+
/**
|
|
61
|
+
* HEBREW POINT HOLAM (U+05B9) ֹ◌
|
|
62
|
+
* @example
|
|
63
|
+
* 'ō'
|
|
64
|
+
*/
|
|
65
|
+
HOLAM: string;
|
|
66
|
+
/**
|
|
67
|
+
* HEBREW POINT QUBUTS (U+05BB) ֻ◌
|
|
68
|
+
* @example
|
|
69
|
+
* 'u'
|
|
70
|
+
*/
|
|
71
|
+
QUBUTS: string;
|
|
72
|
+
/**
|
|
73
|
+
* HEBREW POINT DAGESH OR MAPIQ (U+05BC) ּ◌
|
|
74
|
+
* @description typically, this will be a blank string
|
|
75
|
+
* @example
|
|
76
|
+
* ''
|
|
77
|
+
*/
|
|
78
|
+
DAGESH: string;
|
|
79
|
+
/**
|
|
80
|
+
* HEBREW POINT DAGESH OR MAPIQ (U+05BC) ּ◌
|
|
81
|
+
* @description if true, repeats the consonant with the dagesh
|
|
82
|
+
* @example
|
|
83
|
+
* ```js
|
|
84
|
+
* transliterate('שַׁבָּת', { DAGESH_CHAZAQ: true });
|
|
85
|
+
* // 'shabbat'
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
DAGESH_CHAZAQ: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* HEBREW PUNCTUATION MAQAF (U+05BE) ־◌
|
|
91
|
+
* @example
|
|
92
|
+
* '-'
|
|
93
|
+
*/
|
|
94
|
+
MAQAF: string;
|
|
95
|
+
/**
|
|
96
|
+
* HEBREW PUNCTUATION PASEQ (U+05C0) ׀ ◌
|
|
97
|
+
* @description if a blank string, two spaces will occur between words
|
|
98
|
+
* @example
|
|
99
|
+
* '|' or ''
|
|
100
|
+
* @example
|
|
101
|
+
* ```js
|
|
102
|
+
* transliterate('כְּשֶׁ֣בֶת ׀ הַמֶּ֣לֶךְ', { PASEQ: '' });
|
|
103
|
+
* // 'kǝšebet hammelek'
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
PASEQ: string;
|
|
107
|
+
/**
|
|
108
|
+
* HEBREW PUNCTUATION SOF PASUQ (U+05C3) ׃◌
|
|
109
|
+
* @example
|
|
110
|
+
* '' or '.'
|
|
111
|
+
*/
|
|
112
|
+
SOF_PASUQ: string;
|
|
113
|
+
/**
|
|
114
|
+
* HEBREW POINT QAMATS QATAN (U+05C7) ׇ◌
|
|
115
|
+
* @example
|
|
116
|
+
* 'o'
|
|
117
|
+
*/
|
|
118
|
+
QAMATS_QATAN: string;
|
|
119
|
+
/**
|
|
120
|
+
* HEBREW POINT PATAH (U+05B7) ◌ַ
|
|
121
|
+
* @example
|
|
122
|
+
* 'a'
|
|
123
|
+
*/
|
|
124
|
+
FURTIVE_PATAH: string;
|
|
125
|
+
/**
|
|
126
|
+
* HEBREW POINT HIRIQ (U+05B4) and YOD (U+05D9) י◌ִ
|
|
127
|
+
* @example
|
|
128
|
+
* 'î'
|
|
129
|
+
*/
|
|
130
|
+
HIRIQ_YOD: string;
|
|
131
|
+
/**
|
|
132
|
+
* HEBREW POINT TSERE (U+05B5) and YOD (U+05D9) י◌ֵ
|
|
133
|
+
* @example
|
|
134
|
+
* 'ê'
|
|
135
|
+
*/
|
|
136
|
+
TSERE_YOD: string;
|
|
137
|
+
/**
|
|
138
|
+
* HEBREW POINT SEGOL (U+05B6) and YOD (U+05D9) י◌ֶ
|
|
139
|
+
* @example
|
|
140
|
+
* 'ê'
|
|
141
|
+
*/
|
|
142
|
+
SEGOL_YOD: string;
|
|
143
|
+
/**
|
|
144
|
+
* HEBREW LETTER VAV (U+05D5) and DAGESH (U+05BC) וּ
|
|
145
|
+
* @example
|
|
146
|
+
* 'û'
|
|
147
|
+
*/
|
|
148
|
+
SHUREQ: string;
|
|
149
|
+
/**
|
|
150
|
+
* HEBREW LETTER HOLAM (U+05B9) and VAV (U+05D5) ֹו◌
|
|
151
|
+
* @example
|
|
152
|
+
* 'ô'
|
|
153
|
+
*/
|
|
154
|
+
HOLAM_VAV: string;
|
|
155
|
+
/**
|
|
156
|
+
* HEBREW POINT QAMATS (U+05B8) and HE (U+05D4) ה◌ָ
|
|
157
|
+
* @example
|
|
158
|
+
* 'â'
|
|
159
|
+
*/
|
|
160
|
+
QAMATS_HE: string;
|
|
161
|
+
/**
|
|
162
|
+
* HEBREW POINT SEGOL (U+05B6) and HE (U+05D4) ה◌ֶ
|
|
163
|
+
* @example
|
|
164
|
+
* 'ê'
|
|
165
|
+
*/
|
|
166
|
+
SEGOL_HE: string;
|
|
167
|
+
/**
|
|
168
|
+
* HEBREW POINT TSERE (U+05B5) and HE (U+05D4) ה◌ֵ
|
|
169
|
+
* @example
|
|
170
|
+
* 'ê'
|
|
171
|
+
*/
|
|
172
|
+
TSERE_HE: string;
|
|
173
|
+
/**
|
|
174
|
+
* HEBREW LETTER QAMATS (U+05B8) and YOD (U+05D9) and VAV (U+05D5) יו◌ָ
|
|
175
|
+
* @example
|
|
176
|
+
* 'āyw'
|
|
177
|
+
*/
|
|
178
|
+
MS_SUFX: string;
|
|
179
|
+
/**
|
|
180
|
+
* HEBREW LETTER ALEF (U+05D0) א
|
|
181
|
+
* @example
|
|
182
|
+
* 'ʾ'
|
|
183
|
+
*/
|
|
184
|
+
ALEF: string;
|
|
185
|
+
/**
|
|
186
|
+
* HEBREW LETTER BET (U+05D1) ב
|
|
187
|
+
* @example
|
|
188
|
+
* 'b' or 'v'
|
|
189
|
+
*/
|
|
190
|
+
BET: string;
|
|
191
|
+
/**
|
|
192
|
+
* HEBREW LETTER BET (U+05D1) and DAGESH (U+05BC) ּב
|
|
193
|
+
* @description
|
|
194
|
+
* the letter bet with a dagesh kal
|
|
195
|
+
* @description
|
|
196
|
+
* use when need to distinguish between spirantized forms
|
|
197
|
+
* @example
|
|
198
|
+
* 'b'
|
|
199
|
+
*/
|
|
200
|
+
BET_DAGESH?: string;
|
|
201
|
+
/**
|
|
202
|
+
* HEBREW LETTER GIMEL (U+05D2) ג
|
|
203
|
+
* @example
|
|
204
|
+
* 'g'
|
|
205
|
+
*/
|
|
206
|
+
GIMEL: string;
|
|
207
|
+
/**
|
|
208
|
+
* HEBREW LETTER GIMEL (U+05D2) and DAGESH (U+05BC) גּ
|
|
209
|
+
* @description
|
|
210
|
+
* the letter gimel with a dagesh kal
|
|
211
|
+
* @description
|
|
212
|
+
* use when need to distinguish between spirantized forms
|
|
213
|
+
* @example
|
|
214
|
+
* 'g'
|
|
215
|
+
*/
|
|
216
|
+
GIMEL_DAGESH?: string;
|
|
217
|
+
/**
|
|
218
|
+
* HEBREW LETTER DALET (U+05D3) ד
|
|
219
|
+
* @example
|
|
220
|
+
* 'd'
|
|
221
|
+
*/
|
|
222
|
+
DALET: string;
|
|
223
|
+
/**
|
|
224
|
+
* HEBREW LETTER DALET (U+05D3) and DAGESH (U+05BC) דּ
|
|
225
|
+
* @description
|
|
226
|
+
* the letter dalet with a dagesh kal
|
|
227
|
+
* @description
|
|
228
|
+
* use when need to distinguish between spirantized forms
|
|
229
|
+
* @example
|
|
230
|
+
* 'd'
|
|
231
|
+
*/
|
|
232
|
+
DALET_DAGESH?: string;
|
|
233
|
+
/**
|
|
234
|
+
* HEBREW LETTER HE (U+05D4) ה
|
|
235
|
+
* @example
|
|
236
|
+
* 'h'
|
|
237
|
+
*/
|
|
238
|
+
HE: string;
|
|
239
|
+
/**
|
|
240
|
+
* HEBREW LETTER VAV (U+05D5) ו
|
|
241
|
+
* @example
|
|
242
|
+
* 'w'
|
|
243
|
+
*/
|
|
244
|
+
VAV: string;
|
|
245
|
+
/**
|
|
246
|
+
* HEBREW LETTER ZAYIN (U+05D6) ז
|
|
247
|
+
* @example
|
|
248
|
+
* 'z'
|
|
249
|
+
*/
|
|
250
|
+
ZAYIN: string;
|
|
251
|
+
/**
|
|
252
|
+
* HEBREW LETTER HET (U+05D7) ח
|
|
253
|
+
* @example
|
|
254
|
+
* 'ḥ'
|
|
255
|
+
*/
|
|
256
|
+
HET: string;
|
|
257
|
+
/**
|
|
258
|
+
* HEBREW LETTER TET (U+05D8) ט
|
|
259
|
+
* @example
|
|
260
|
+
* 'ṭ'
|
|
261
|
+
*/
|
|
262
|
+
TET: string;
|
|
263
|
+
/**
|
|
264
|
+
* HEBREW LETTER YOD (U+05D9) י
|
|
265
|
+
* @example
|
|
266
|
+
* 'y'
|
|
267
|
+
*/
|
|
268
|
+
YOD: string;
|
|
269
|
+
/**
|
|
270
|
+
* HEBREW LETTER FINAL KAF (U+05DA) ך
|
|
271
|
+
* @example
|
|
272
|
+
* 'k' or 'kh'
|
|
273
|
+
*/
|
|
274
|
+
FINAL_KAF: string;
|
|
275
|
+
/**
|
|
276
|
+
* HEBREW LETTER KAF (U+05DB) כ
|
|
277
|
+
* @example
|
|
278
|
+
* 'k' or 'kh'
|
|
279
|
+
*/
|
|
280
|
+
KAF: string;
|
|
281
|
+
/**
|
|
282
|
+
* HEBREW LETTER KAF (U+05DB) and DAGESH (U+05BC) כּ
|
|
283
|
+
* @description
|
|
284
|
+
* the letter kaf with a dagesh kal
|
|
285
|
+
* @description
|
|
286
|
+
* use when need to distinguish between spirantized forms
|
|
287
|
+
* @example
|
|
288
|
+
* 'k'
|
|
289
|
+
*/
|
|
290
|
+
KAF_DAGESH?: string;
|
|
291
|
+
/**
|
|
292
|
+
* HEBREW LETTER LAMED (U+05DC) ל
|
|
293
|
+
* @example
|
|
294
|
+
* 'l'
|
|
295
|
+
*/
|
|
296
|
+
LAMED: string;
|
|
297
|
+
/**
|
|
298
|
+
* HEBREW LETTER FINAL MEM (U+05DD) ם
|
|
299
|
+
* @example
|
|
300
|
+
* 'm'
|
|
301
|
+
*/
|
|
302
|
+
FINAL_MEM: string;
|
|
303
|
+
/**
|
|
304
|
+
* HEBREW LETTER MEM (U+05DE) מ
|
|
305
|
+
* @example
|
|
306
|
+
* 'm'
|
|
307
|
+
*/
|
|
308
|
+
MEM: string;
|
|
309
|
+
/**
|
|
310
|
+
* HEBREW LETTER FINAL NUN (U+05DF) ן
|
|
311
|
+
* @example
|
|
312
|
+
* 'n'
|
|
313
|
+
*/
|
|
314
|
+
FINAL_NUN: string;
|
|
315
|
+
/**
|
|
316
|
+
* HEBREW LETTER NUN (U+05E0) נ
|
|
317
|
+
* @example
|
|
318
|
+
* 'n'
|
|
319
|
+
*/
|
|
320
|
+
NUN: string;
|
|
321
|
+
/**
|
|
322
|
+
* HEBREW LETTER SAMEKH (U+05E1) ס
|
|
323
|
+
* @example
|
|
324
|
+
* 's'
|
|
325
|
+
*/
|
|
326
|
+
SAMEKH: string;
|
|
327
|
+
/**
|
|
328
|
+
* HEBREW LETTER AYIN (U+05E2) ע
|
|
329
|
+
* @example
|
|
330
|
+
* 'ʿ'
|
|
331
|
+
*/
|
|
332
|
+
AYIN: string;
|
|
333
|
+
/**
|
|
334
|
+
* HEBREW LETTER FINAL PE (U+05E3) ף
|
|
335
|
+
* @example
|
|
336
|
+
* 'p' or 'f'
|
|
337
|
+
*/
|
|
338
|
+
FINAL_PE: string;
|
|
339
|
+
/**
|
|
340
|
+
* HEBREW LETTER PE (U+05E4) פ
|
|
341
|
+
* @example
|
|
342
|
+
* 'p' or 'f'
|
|
343
|
+
*/
|
|
344
|
+
PE: string;
|
|
345
|
+
/**
|
|
346
|
+
* HEBREW LETTER PE (U+05E4) and DAGESH (U+05BC) פּ
|
|
347
|
+
* @description
|
|
348
|
+
* the letter pe with a dagesh kal
|
|
349
|
+
* @description
|
|
350
|
+
* use when need to distinguish between spirantized forms
|
|
351
|
+
* @example
|
|
352
|
+
* 'p'
|
|
353
|
+
*/
|
|
354
|
+
PE_DAGESH?: string;
|
|
355
|
+
/**
|
|
356
|
+
* HEBREW LETTER FINAL TSADI (U+05E5) ץ
|
|
357
|
+
* @example
|
|
358
|
+
* 'ṣ'
|
|
359
|
+
*/
|
|
360
|
+
FINAL_TSADI: string;
|
|
361
|
+
/**
|
|
362
|
+
* HEBREW LETTER TSADI (U+05E6) צ
|
|
363
|
+
* @example
|
|
364
|
+
* 'ṣ'
|
|
365
|
+
*/
|
|
366
|
+
TSADI: string;
|
|
367
|
+
/**
|
|
368
|
+
* HEBREW LETTER QOF (U+05E7) ק
|
|
369
|
+
* @example
|
|
370
|
+
* 'q'
|
|
371
|
+
*/
|
|
372
|
+
QOF: string;
|
|
373
|
+
/**
|
|
374
|
+
* HEBREW LETTER RESH (U+05E8) ר
|
|
375
|
+
* @example
|
|
376
|
+
* 'r'
|
|
377
|
+
*/
|
|
378
|
+
RESH: string;
|
|
379
|
+
/**
|
|
380
|
+
* HEBREW LETTER SHIN (U+05E9) and SHIN DOT (U+05C1) שׁ
|
|
381
|
+
* @example
|
|
382
|
+
* 'š'
|
|
383
|
+
*/
|
|
384
|
+
SHIN: string;
|
|
385
|
+
/**
|
|
386
|
+
* HEBREW LETTER SHIN (U+05E9) and SIN DOT (U+05C2) שׁ
|
|
387
|
+
* @example
|
|
388
|
+
* 'ś'
|
|
389
|
+
*/
|
|
390
|
+
SIN: string;
|
|
391
|
+
/**
|
|
392
|
+
* HEBREW LETTER TAV (U+05EA) ת
|
|
393
|
+
* @example
|
|
394
|
+
* 't' or 'th'
|
|
395
|
+
*/
|
|
396
|
+
TAV: string;
|
|
397
|
+
/**
|
|
398
|
+
* HEBREW LETTER TAV (U+05EA) and DAGESH (U+05BC) תּ
|
|
399
|
+
* @description
|
|
400
|
+
* the letter tav with a dagesh kal
|
|
401
|
+
* @description
|
|
402
|
+
* use when need to distinguish between spirantized forms
|
|
403
|
+
* @example
|
|
404
|
+
* 't'
|
|
405
|
+
*/
|
|
406
|
+
TAV_DAGESH?: string;
|
|
407
|
+
/**
|
|
408
|
+
* define additional sequences of characters
|
|
409
|
+
*
|
|
410
|
+
* ⚠️ there may be unpredictable results
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* [{
|
|
414
|
+
* FEATURE: 'cluster',
|
|
415
|
+
* HEBREW: 'זּ',
|
|
416
|
+
* TRANSLITERATION: 'tz'
|
|
417
|
+
* }]
|
|
418
|
+
*/
|
|
419
|
+
ADDITIONAL_FEATURES?: {
|
|
420
|
+
/**
|
|
421
|
+
* additional orthographic feature
|
|
422
|
+
*
|
|
423
|
+
* - `"cluster"` is any combination of a single character and optionally a _dagesh_ and vowel.
|
|
424
|
+
* - `"syllable"` is any combination of a multiple characters and a single vowel and optionally a _dagesh_
|
|
425
|
+
* - `"word"` covers everything else
|
|
426
|
+
*/
|
|
427
|
+
FEATURE: "word" | "syllable" | "cluster";
|
|
428
|
+
/** use consonants and vowels; do not use taamim */
|
|
429
|
+
HEBREW: string;
|
|
430
|
+
TRANSLITERATION: string;
|
|
431
|
+
}[];
|
|
432
|
+
/**
|
|
433
|
+
* the full form of the divine name - יהוה
|
|
434
|
+
* @example
|
|
435
|
+
* 'yhwh'
|
|
436
|
+
*/
|
|
437
|
+
DIVINE_NAME: string;
|
|
438
|
+
/**
|
|
439
|
+
* a syllable separator, usually an empty string
|
|
440
|
+
* @example
|
|
441
|
+
* '' or '-'
|
|
442
|
+
* @example
|
|
443
|
+
* ```js
|
|
444
|
+
* transliterate('הָאָֽרֶץ', { SYLLABLE_SEPARATOR: '-' });
|
|
445
|
+
* // 'hā-ʾā-reṣ'
|
|
446
|
+
* ```
|
|
447
|
+
*/
|
|
448
|
+
SYLLABLE_SEPARATOR?: string;
|
|
449
|
+
/**
|
|
450
|
+
* a mark for indentifying the stressed syllable
|
|
451
|
+
*
|
|
452
|
+
* @description
|
|
453
|
+
* taamim are needed in the Hebrew text to correctly identify stress
|
|
454
|
+
* @example
|
|
455
|
+
* 'ˈ' or '\u0341'
|
|
456
|
+
* @example
|
|
457
|
+
* ```js
|
|
458
|
+
* transliterate('מֶ֣לֶךְ', { STRESS_MARKER: { location: 'after-vowel', mark: '\u0301' } });
|
|
459
|
+
* // 'mélek'
|
|
460
|
+
* ```
|
|
461
|
+
*/
|
|
462
|
+
STRESS_MARKER?: {
|
|
463
|
+
location: "before-syllable" | "after-syllable" | "before-vowel" | "after-vowel";
|
|
464
|
+
mark: string;
|
|
465
|
+
};
|
|
466
|
+
longVowels: SylOpts["longVowels"];
|
|
467
|
+
qametsQatan: SylOpts["qametsQatan"];
|
|
468
|
+
sqnmlvy: SylOpts["sqnmlvy"];
|
|
469
|
+
wawShureq: SylOpts["wawShureq"];
|
|
470
|
+
article: SylOpts["article"];
|
|
471
|
+
allowNoNiqqud: SylOpts["allowNoNiqqud"];
|
|
472
|
+
constructor(schema: Schema);
|
|
473
|
+
}
|
|
474
|
+
export declare class SBL extends Schema {
|
|
475
|
+
constructor(schema: Partial<Schema>);
|
|
476
|
+
}
|