@hebcal/leyning 6.2.4 → 7.0.0
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 +53 -23
- package/dist/bundle.js +99 -62
- package/dist/bundle.min.js +2 -2
- package/dist/index.js +99 -61
- package/dist/index.mjs +99 -62
- package/leyning.d.ts +14 -6
- package/package.json +6 -13
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! @hebcal/leyning
|
|
2
|
-
import { flags, months, HDate, HebrewCalendar,
|
|
1
|
+
/*! @hebcal/leyning v7.0.0 */
|
|
2
|
+
import { flags, months, HDate, HebrewCalendar, Locale, ParshaEvent, Event } from '@hebcal/core';
|
|
3
3
|
|
|
4
4
|
const Genesis=[0,31,25,24,26,32,22,24,22,29,32,32,20,18,24,21,16,27,33,38,18,34,24,20,67,34,35,46,22,35,43,54,33,20,31,29,43,36,30,23,23,57,38,34,34,28,34,31,22,33,26];const Exodus=[0,22,25,22,31,23,30,29,28,35,29,10,51,22,31,27,36,16,27,25,26,37,30,33,18,40,37,21,43,46,38,18,35,23,35,35,38,29,31,43,38];const Leviticus=[0,17,16,17,35,26,23,38,36,24,20,47,8,59,57,33,34,16,30,37,27,24,33,44,23,55,46,34];const Numbers=[0,54,34,51,49,31,27,89,26,23,36,35,16,33,45,41,35,28,32,22,29,35,41,30,25,19,65,23,31,39,17,54,42,56,29,34,13];const Deuteronomy=[0,46,37,29,49,30,25,26,20,29,22,32,31,19,29,23,22,20,22,21,20,23,29,26,22,19,19,26,69,28,20,30,52,29,12];const Joshua=[0,18,24,17,24,15,27,26,35,27,43,23,24,33,15,63,10,18,28,51,9,45,34,16,33];const Judges=[0,36,23,31,24,31,40,25,35,57,18,40,15,25,20,20,31,13,31,30,48,25];const Ruth=[0,22,23,18,22];const Isaiah=[0,31,22,26,6,30,13,25,23,20,34,16,6,22,32,9,14,14,7,25,6,17,25,18,23,12,21,13,29,24,33,9,20,24,17,10,22,38,22,8,31,29,25,28,28,25,13,15,22,26,11,23,15,12,17,13,12,21,14,21,22,11,12,19,11,25,24];const Jeremiah=[0,19,37,25,31,31,30,34,23,25,25,23,17,27,22,21,21,27,23,15,18,14,30,40,10,38,24,22,17,32,24,40,44,26,22,19,32,21,28,18,16,18,22,13,30,5,28,7,47,39,46,64,34];const Lamentations=[0,22,22,66,22,22];const Baruch=[0,22,35,38,37,9,72];const Ezekiel=[0,28,10,27,17,17,14,27,18,11,22,25,28,23,23,8,63,24,32,14,44,37,31,49,27,17,21,36,26,21,26,18,32,33,31,15,38,28,23,29,49,26,20,27,31,25,24,23,35];const Daniel=[0,21,49,100,34,30,29,28,27,27,21,45,13,64,42];const Hosea=[0,9,25,5,19,15,11,16,14,17,15,11,15,15,10];const Joel=[0,20,27,5,21];const Amos=[0,15,16,15,13,27,14,17,14,15];const Obadiah=[0,21];const Jonah=[0,16,11,10,11];const Micah=[0,16,13,12,14,14,16,20];const Nachum=[0,14,14,19];const Habakkuk=[0,17,20,19];const Zephaniah=[0,18,15,20];const Haggai=[0,15,23];const Zechariah=[0,17,17,10,14,11,15,14,23,17,12,17,14,9,21];const Malachi=[0,14,17,24];var numverses = {Genesis:Genesis,Exodus:Exodus,Leviticus:Leviticus,Numbers:Numbers,Deuteronomy:Deuteronomy,Joshua:Joshua,Judges:Judges,Ruth:Ruth,"I Samuel":[0,28,36,21,22,12,21,17,22,27,27,15,25,23,52,35,23,58,30,24,42,16,23,28,23,43,25,12,25,11,31,13],"II Samuel":[0,27,32,39,12,25,23,29,18,13,19,27,31,39,33,37,23,29,32,44,26,22,51,39,25],"I Kings":[0,53,46,28,20,32,38,51,66,28,29,43,33,34,31,34,34,24,46,21,43,29,54],"II Kings":[0,18,25,27,44,27,33,20,29,37,36,20,22,25,29,38,20,41,37,37,21,26,20,37,20,30],Isaiah:Isaiah,Jeremiah:Jeremiah,Lamentations:Lamentations,Baruch:Baruch,Ezekiel:Ezekiel,Daniel:Daniel,Hosea:Hosea,Joel:Joel,Amos:Amos,Obadiah:Obadiah,Jonah:Jonah,Micah:Micah,Nachum:Nachum,Habakkuk:Habakkuk,Zephaniah:Zephaniah,Haggai:Haggai,Zechariah:Zechariah,Malachi:Malachi};
|
|
5
5
|
|
|
@@ -12,10 +12,15 @@ const BOOK = ['', 'Genesis', 'Exodus', 'Leviticus', 'Numbers', 'Deuteronomy'];
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Formats parsha as a string
|
|
15
|
-
* @param {string[]} parsha
|
|
15
|
+
* @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
|
|
16
16
|
* @return {string}
|
|
17
17
|
*/
|
|
18
18
|
function parshaToString(parsha) {
|
|
19
|
+
if (typeof parsha === 'string') {
|
|
20
|
+
return parsha;
|
|
21
|
+
} else if (!Array.isArray(parsha) || parsha.length === 0 || parsha.length > 2) {
|
|
22
|
+
throw new TypeError(`Bad parsha argument: ${parsha}`);
|
|
23
|
+
}
|
|
19
24
|
let s = parsha[0];
|
|
20
25
|
if (parsha.length == 2) {
|
|
21
26
|
s += '-' + parsha[1];
|
|
@@ -268,6 +273,9 @@ const HOLIDAY_IGNORE_MASK = flags.DAF_YOMI | flags.OMER_COUNT | flags.SHABBAT_ME
|
|
|
268
273
|
* @return {string} key to look up in holiday-reading.json
|
|
269
274
|
*/
|
|
270
275
|
function getLeyningKeyForEvent(ev, il = false) {
|
|
276
|
+
if (typeof ev.eventTime !== 'undefined') {
|
|
277
|
+
return undefined;
|
|
278
|
+
}
|
|
271
279
|
const mask = ev.getFlags();
|
|
272
280
|
if (mask & HOLIDAY_IGNORE_MASK) {
|
|
273
281
|
return undefined;
|
|
@@ -377,6 +385,16 @@ function getLeyningKeyForEvent(ev, il = false) {
|
|
|
377
385
|
return undefined;
|
|
378
386
|
}
|
|
379
387
|
|
|
388
|
+
/**
|
|
389
|
+
* Leyning for a parsha hashavua or holiday
|
|
390
|
+
* @typedef {Object} SpecialReading
|
|
391
|
+
* @property {Object<string,Aliyah>} aliyot - Map of aliyot `1` through `7` plus `M` for maftir
|
|
392
|
+
* @property {Object<string,string>} [reason] - Explanations for special readings,
|
|
393
|
+
* keyed by aliyah number, `M` for maftir or `haftara` for Haftarah
|
|
394
|
+
* @property {Aliyah|Aliyah[]} haft - Haftarah object(s)
|
|
395
|
+
* @property {Aliyah|Aliyah[]} seph - Haftarah object(s)
|
|
396
|
+
*/
|
|
397
|
+
|
|
380
398
|
/**
|
|
381
399
|
* @private
|
|
382
400
|
* @param {Object<string,Aliyah>} aliyot
|
|
@@ -420,24 +438,23 @@ function mergeAliyotWithSpecial(aliyot, special) {
|
|
|
420
438
|
* a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh
|
|
421
439
|
* Chodesh or Machar Chodesh, etc.).
|
|
422
440
|
*
|
|
423
|
-
*
|
|
424
|
-
*
|
|
441
|
+
* This function does not modify `aliyot`. Instead, it returns a deep copy
|
|
442
|
+
* with `aliyot['M']` replaced and sets `reason.M`
|
|
443
|
+
* (and in some cases the 6th and 7th aliyah, setting `reason['7']`).
|
|
425
444
|
*
|
|
426
|
-
* If a special Haftarah applies,
|
|
427
|
-
*
|
|
445
|
+
* If a special Haftarah applies, the result will have a `haft` property
|
|
446
|
+
* pointing to Haftarah object and sets `reason.haftara`.
|
|
447
|
+
* @param {string[]} parsha
|
|
428
448
|
* @param {HDate} hd
|
|
429
449
|
* @param {boolean} il
|
|
430
450
|
* @param {Object<string,Aliyah>} aliyot
|
|
431
|
-
* @
|
|
432
|
-
* @param {string[]} parsha
|
|
433
|
-
* @param {boolean} [wantSeph]
|
|
434
|
-
* @return {Aliyah | Aliyah[]}
|
|
451
|
+
* @return {SpecialReading}
|
|
435
452
|
*/
|
|
436
|
-
function
|
|
453
|
+
function specialReadings2(parsha, hd, il, aliyot) {
|
|
437
454
|
let haft;
|
|
438
455
|
let seph;
|
|
439
456
|
let specialHaft = false;
|
|
440
|
-
const
|
|
457
|
+
const reason = {};
|
|
441
458
|
|
|
442
459
|
// eslint-disable-next-line require-jsdoc
|
|
443
460
|
function handleSpecial(key) {
|
|
@@ -455,14 +472,17 @@ function specialReadings(hd, il, aliyot, reason, parsha, wantSeph = false) {
|
|
|
455
472
|
}
|
|
456
473
|
}
|
|
457
474
|
if (special.fullkriyah) {
|
|
458
|
-
|
|
475
|
+
const aliyotMap = clone(aliyot);
|
|
476
|
+
mergeAliyotWithSpecial(aliyotMap, special.fullkriyah);
|
|
459
477
|
Object.keys(special.fullkriyah).map(k => reason[k] = key);
|
|
478
|
+
aliyot = aliyotMap;
|
|
460
479
|
}
|
|
461
480
|
}
|
|
481
|
+
const parshaName = parshaToString(parsha);
|
|
462
482
|
const events0 = HebrewCalendar.getHolidaysOnDate(hd, il) || [];
|
|
463
483
|
const events = events0.filter(ev => !(ev.getFlags() & flags.ROSH_CHODESH));
|
|
464
484
|
events.forEach(ev => {
|
|
465
|
-
if (ev.getDesc() === 'Shabbat Shuva'
|
|
485
|
+
if (ev.getDesc() === 'Shabbat Shuva') {
|
|
466
486
|
handleSpecial(`Shabbat Shuva (with ${parshaName})`);
|
|
467
487
|
} else {
|
|
468
488
|
const key = getLeyningKeyForEvent(ev, il);
|
|
@@ -487,14 +507,12 @@ function specialReadings(hd, il, aliyot, reason, parsha, wantSeph = false) {
|
|
|
487
507
|
}
|
|
488
508
|
}
|
|
489
509
|
}
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
}
|
|
496
|
-
return haft;
|
|
497
|
-
}
|
|
510
|
+
return {
|
|
511
|
+
aliyot,
|
|
512
|
+
reason,
|
|
513
|
+
haft,
|
|
514
|
+
seph
|
|
515
|
+
};
|
|
498
516
|
}
|
|
499
517
|
|
|
500
518
|
const Bereshit={num:1,hebrew:"בְּרֵאשִׁית",book:1,haft:{k:"Isaiah",b:"42:5",e:"43:10"},seph:{k:"Isaiah",b:"42:5",e:"42:21"},fullkriyah:{"1":["1:1","2:3"],"2":["2:4","2:19"],"3":["2:20","3:21"],"4":["3:22","4:18"],"5":["4:19","4:22"],"6":["4:23","5:24"],"7":["5:25","6:8"],M:["6:5","6:8"]},weekday:{"1":["1:1","1:5"],"2":["1:6","1:8"],"3":["1:9","1:13"]}};const Noach={num:2,hebrew:"נֹחַ",book:1,haft:{k:"Isaiah",b:"54:1",e:"55:5"},seph:{k:"Isaiah",b:"54:1",e:"54:10"},fullkriyah:{"1":["6:9","6:22"],"2":["7:1","7:16"],"3":["7:17","8:14"],"4":["8:15","9:7"],"5":["9:8","9:17"],"6":["9:18","10:32"],"7":["11:1","11:32"],M:["11:29","11:32"]},weekday:{"1":["6:9","6:16"],"2":["6:17","6:19"],"3":["6:20","6:22"]}};const Vayera={num:4,hebrew:"וַיֵּרָא",book:1,haft:{k:"II Kings",b:"4:1",e:"4:37"},seph:{k:"II Kings",b:"4:1",e:"4:23"},fullkriyah:{"1":["18:1","18:14"],"2":["18:15","18:33"],"3":["19:1","19:20"],"4":["19:21","21:4"],"5":["21:5","21:21"],"6":["21:22","21:34"],"7":["22:1","22:24"],M:["22:20","22:24"]},weekday:{"1":["18:1","18:5"],"2":["18:6","18:8"],"3":["18:9","18:14"]}};const Toldot={num:6,hebrew:"תּוֹלְדוֹת",book:1,haft:{k:"Malachi",b:"1:1",e:"2:7"},fullkriyah:{"1":["25:19","26:5"],"2":["26:6","26:12"],"3":["26:13","26:22"],"4":["26:23","26:29"],"5":["26:30","27:27"],"6":["27:28","28:4"],"7":["28:5","28:9"],M:["28:7","28:9"]},weekday:{"1":["25:19","25:22"],"2":["25:23","25:26"],"3":["25:27","26:5"]}};const Vayetzei={num:7,hebrew:"וַיֵּצֵא",book:1,haft:{k:"Hosea",b:"12:13",e:"14:10"},seph:{k:"Hosea",b:"11:7",e:"12:12"},fullkriyah:{"1":["28:10","28:22"],"2":["29:1","29:17"],"3":["29:18","30:13"],"4":["30:14","30:27"],"5":["30:28","31:16"],"6":["31:17","31:42"],"7":["31:43","32:3"],M:["32:1","32:3"]},weekday:{"1":["28:10","28:12"],"2":["28:13","28:17"],"3":["28:18","28:22"]}};const Vayishlach={num:8,hebrew:"וַיִּשְׁלַח",book:1,haft:{k:"Obadiah",b:"1:1",e:"1:21"},fullkriyah:{"1":["32:4","32:13"],"2":["32:14","32:30"],"3":["32:31","33:5"],"4":["33:6","33:20"],"5":["34:1","35:11"],"6":["35:12","36:19"],"7":["36:20","36:43"],M:["36:40","36:43"]},weekday:{"1":["32:4","32:6"],"2":["32:7","32:9"],"3":["32:10","32:13"]}};const Vayeshev={num:9,hebrew:"וַיֵּשֶׁב",book:1,haft:{k:"Amos",b:"2:6",e:"3:8"},fullkriyah:{"1":["37:1","37:11"],"2":["37:12","37:22"],"3":["37:23","37:36"],"4":["38:1","38:30"],"5":["39:1","39:6"],"6":["39:7","39:23"],"7":["40:1","40:23"],M:["40:20","40:23"]},weekday:{"1":["37:1","37:3"],"2":["37:4","37:7"],"3":["37:8","37:11"]}};const Miketz={num:10,hebrew:"מִקֵּץ",book:1,haft:{k:"I Kings",b:"3:15",e:"4:1"},fullkriyah:{"1":["41:1","41:14"],"2":["41:15","41:38"],"3":["41:39","41:52"],"4":["41:53","42:18"],"5":["42:19","43:15"],"6":["43:16","43:29"],"7":["43:30","44:17"],M:["44:14","44:17"]},weekday:{"1":["41:1","41:4"],"2":["41:5","41:7"],"3":["41:8","41:14"]}};const Vayigash={num:11,hebrew:"וַיִּגַּשׁ",book:1,haft:{k:"Ezekiel",b:"37:15",e:"37:28"},fullkriyah:{"1":["44:18","44:30"],"2":["44:31","45:7"],"3":["45:8","45:18"],"4":["45:19","45:27"],"5":["45:28","46:27"],"6":["46:28","47:10"],"7":["47:11","47:27"],M:["47:25","47:27"]},weekday:{"1":["44:18","44:20"],"2":["44:21","44:24"],"3":["44:25","44:30"]}};const Vayechi={num:12,hebrew:"וַיְחִי",book:1,haft:{k:"I Kings",b:"2:1",e:"2:12"},fullkriyah:{"1":["47:28","48:9"],"2":["48:10","48:16"],"3":["48:17","48:22"],"4":["49:1","49:18"],"5":["49:19","49:26"],"6":["49:27","50:20"],"7":["50:21","50:26"],M:["50:23","50:26"]},weekday:{"1":["47:28","47:31"],"2":["48:1","48:3"],"3":["48:4","48:9"]}};const Shemot={num:13,hebrew:"שְׁמוֹת",book:2,haft:[{k:"Isaiah",b:"27:6",e:"28:13"},{k:"Isaiah",b:"29:22",e:"29:23"}],seph:{k:"Jeremiah",b:"1:1",e:"2:3"},fullkriyah:{"1":["1:1","1:17"],"2":["1:18","2:10"],"3":["2:11","2:25"],"4":["3:1","3:15"],"5":["3:16","4:17"],"6":["4:18","4:31"],"7":["5:1","6:1"],M:["5:22","6:1"]},weekday:{"1":["1:1","1:7"],"2":["1:8","1:12"],"3":["1:13","1:17"]}};const Vaera={num:14,hebrew:"וָאֵרָא",book:2,haft:{k:"Ezekiel",b:"28:25",e:"29:21"},fullkriyah:{"1":["6:2","6:13"],"2":["6:14","6:28"],"3":["6:29","7:7"],"4":["7:8","8:6"],"5":["8:7","8:18"],"6":["8:19","9:16"],"7":["9:17","9:35"],M:["9:33","9:35"]},weekday:{"1":["6:2","6:5"],"2":["6:6","6:9"],"3":["6:10","6:13"]}};const Bo={num:15,hebrew:"בֹּא",book:2,haft:{k:"Jeremiah",b:"46:13",e:"46:28"},fullkriyah:{"1":["10:1","10:11"],"2":["10:12","10:23"],"3":["10:24","11:3"],"4":["11:4","12:20"],"5":["12:21","12:28"],"6":["12:29","12:51"],"7":["13:1","13:16"],M:["13:14","13:16"]},weekday:{"1":["10:1","10:3"],"2":["10:4","10:6"],"3":["10:7","10:11"]}};const Beshalach={num:16,hebrew:"בְּשַׁלַּח",book:2,haft:{k:"Judges",b:"4:4",e:"5:31"},seph:{k:"Judges",b:"5:1",e:"5:31"},fullkriyah:{"1":["13:17","14:8"],"2":["14:9","14:14"],"3":["14:15","14:25"],"4":["14:26","15:26"],"5":["15:27","16:10"],"6":["16:11","16:36"],"7":["17:1","17:16"],M:["17:14","17:16"]},weekday:{"1":["13:17","13:22"],"2":["14:1","14:4"],"3":["14:5","14:8"]}};const Yitro={num:17,hebrew:"יִתְרוֹ",book:2,haft:[{k:"Isaiah",b:"6:1",e:"7:6"},{k:"Isaiah",b:"9:5",e:"9:6"}],seph:{k:"Isaiah",b:"6:1",e:"6:13"},fullkriyah:{"1":["18:1","18:12"],"2":["18:13","18:23"],"3":["18:24","18:27"],"4":["19:1","19:6"],"5":["19:7","19:19"],"6":["19:20","20:14"],"7":["20:15","20:23"],M:["20:19","20:23"]},weekday:{"1":["18:1","18:4"],"2":["18:5","18:8"],"3":["18:9","18:12"]}};const Mishpatim={num:18,hebrew:"מִּשְׁפָּטִים",book:2,haft:[{k:"Jeremiah",b:"34:8",e:"34:22"},{k:"Jeremiah",b:"33:25",e:"33:26"}],fullkriyah:{"1":["21:1","21:19"],"2":["21:20","22:3"],"3":["22:4","22:26"],"4":["22:27","23:5"],"5":["23:6","23:19"],"6":["23:20","23:25"],"7":["23:26","24:18"],M:["24:15","24:18"]},weekday:{"1":["21:1","21:6"],"2":["21:7","21:11"],"3":["21:12","21:19"]}};const Terumah={num:19,hebrew:"תְּרוּמָה",book:2,haft:{k:"I Kings",b:"5:26",e:"6:13"},fullkriyah:{"1":["25:1","25:16"],"2":["25:17","25:30"],"3":["25:31","26:14"],"4":["26:15","26:30"],"5":["26:31","26:37"],"6":["27:1","27:8"],"7":["27:9","27:19"],M:["27:17","27:19"]},weekday:{"1":["25:1","25:5"],"2":["25:6","25:9"],"3":["25:10","25:16"]}};const Tetzaveh={num:20,hebrew:"תְּצַוֶּה",book:2,haft:{k:"Ezekiel",b:"43:10",e:"43:27"},fullkriyah:{"1":["27:20","28:12"],"2":["28:13","28:30"],"3":["28:31","28:43"],"4":["29:1","29:18"],"5":["29:19","29:37"],"6":["29:38","29:46"],"7":["30:1","30:10"],M:["30:8","30:10"]},weekday:{"1":["27:20","28:5"],"2":["28:6","28:9"],"3":["28:10","28:12"]}};const Vayakhel={num:22,hebrew:"וַיַּקְהֵל",book:2,haft:{k:"I Kings",b:"7:40",e:"7:50"},seph:{k:"I Kings",b:"7:13",e:"7:26"},fullkriyah:{"1":["35:1","35:20"],"2":["35:21","35:29"],"3":["35:30","36:7"],"4":["36:8","36:19"],"5":["36:20","37:16"],"6":["37:17","37:29"],"7":["38:1","38:20"],M:["38:18","38:20"]},weekday:{"1":["35:1","35:3"],"2":["35:4","35:10"],"3":["35:11","35:20"]}};const Pekudei={num:23,hebrew:"פְקוּדֵי",book:2,haft:{k:"I Kings",b:"7:51",e:"8:21"},seph:{k:"I Kings",b:"7:40",e:"7:50"},fullkriyah:{"1":["38:21","39:1"],"2":["39:2","39:21"],"3":["39:22","39:32"],"4":["39:33","39:43"],"5":["40:1","40:16"],"6":["40:17","40:27"],"7":["40:28","40:38"],M:["40:34","40:38"]},weekday:{"1":["38:21","38:23"],"2":["38:24","38:27"],"3":["38:28","39:1"]}};const Vayikra={num:24,hebrew:"וַיִּקְרָא",book:3,haft:{k:"Isaiah",b:"43:21",e:"44:23"},fullkriyah:{"1":["1:1","1:13"],"2":["1:14","2:6"],"3":["2:7","2:16"],"4":["3:1","3:17"],"5":["4:1","4:26"],"6":["4:27","5:10"],"7":["5:11","5:26"],M:["5:24","5:26"]},weekday:{"1":["1:1","1:4"],"2":["1:5","1:9"],"3":["1:10","1:13"]}};const Tzav={num:25,hebrew:"צַו",book:3,haft:[{k:"Jeremiah",b:"7:21",e:"8:3"},{k:"Jeremiah",b:"9:22",e:"9:23"}],fullkriyah:{"1":["6:1","6:11"],"2":["6:12","7:10"],"3":["7:11","7:38"],"4":["8:1","8:13"],"5":["8:14","8:21"],"6":["8:22","8:29"],"7":["8:30","8:36"],M:["8:33","8:36"]},weekday:{"1":["6:1","6:3"],"2":["6:4","6:6"],"3":["6:7","6:11"]}};const Shmini={num:26,hebrew:"שְּׁמִינִי",book:3,haft:{k:"II Samuel",b:"6:1",e:"7:17"},seph:{k:"II Samuel",b:"6:1",e:"6:19"},fullkriyah:{"1":["9:1","9:16"],"2":["9:17","9:23"],"3":["9:24","10:11"],"4":["10:12","10:15"],"5":["10:16","10:20"],"6":["11:1","11:32"],"7":["11:33","11:47"],M:["11:45","11:47"]},weekday:{"1":["9:1","9:6"],"2":["9:7","9:10"],"3":["9:11","9:16"]}};const Tazria={num:27,hebrew:"תַזְרִיעַ",book:3,haft:{k:"II Kings",b:"4:42",e:"5:19"},fullkriyah:{"1":["12:1","13:5"],"2":["13:6","13:17"],"3":["13:18","13:23"],"4":["13:24","13:28"],"5":["13:29","13:39"],"6":["13:40","13:54"],"7":["13:55","13:59"],M:["13:57","13:59"]},weekday:{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"]}};const Metzora={num:28,hebrew:"מְּצֹרָע",book:3,haft:{k:"II Kings",b:"7:3",e:"7:20"},fullkriyah:{"1":["14:1","14:12"],"2":["14:13","14:20"],"3":["14:21","14:32"],"4":["14:33","14:53"],"5":["14:54","15:15"],"6":["15:16","15:28"],"7":["15:29","15:33"],M:["15:31","15:33"]},weekday:{"1":["14:1","14:5"],"2":["14:6","14:9"],"3":["14:10","14:12"]}};const Kedoshim={num:30,hebrew:"קְדשִׁים",book:3,haft:{k:"Amos",b:"9:7",e:"9:15"},seph:{k:"Ezekiel",b:"20:2",e:"20:20"},fullkriyah:{"1":["19:1","19:14"],"2":["19:15","19:22"],"3":["19:23","19:32"],"4":["19:33","19:37"],"5":["20:1","20:7"],"6":["20:8","20:22"],"7":["20:23","20:27"],M:["20:25","20:27"]},weekday:{"1":["19:1","19:4"],"2":["19:5","19:10"],"3":["19:11","19:14"]}};const Emor={num:31,hebrew:"אֱמוֹר",book:3,haft:{k:"Ezekiel",b:"44:15",e:"44:31"},fullkriyah:{"1":["21:1","21:15"],"2":["21:16","22:16"],"3":["22:17","22:33"],"4":["23:1","23:22"],"5":["23:23","23:32"],"6":["23:33","23:44"],"7":["24:1","24:23"],M:["24:21","24:23"]},weekday:{"1":["21:1","21:6"],"2":["21:7","21:12"],"3":["21:13","21:15"]}};const Behar={num:32,hebrew:"בְּהַר",book:3,haft:{k:"Jeremiah",b:"32:6",e:"32:27"},fullkriyah:{"1":["25:1","25:13"],"2":["25:14","25:18"],"3":["25:19","25:24"],"4":["25:25","25:28"],"5":["25:29","25:38"],"6":["25:39","25:46"],"7":["25:47","26:2"],M:["25:55","26:2"]},weekday:{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:13"]}};const Bechukotai={num:33,hebrew:"בְּחֻקֹּתַי",book:3,haft:{k:"Jeremiah",b:"16:19",e:"17:14"},fullkriyah:{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:46"],"4":["27:1","27:15"],"5":["27:16","27:21"],"6":["27:22","27:28"],"7":["27:29","27:34"],M:["27:32","27:34"]},weekday:{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:13"]}};const Bamidbar={num:34,hebrew:"בְּמִדְבַּר",book:4,haft:{k:"Hosea",b:"2:1",e:"2:22"},fullkriyah:{"1":["1:1","1:19"],"2":["1:20","1:54"],"3":["2:1","2:34"],"4":["3:1","3:13"],"5":["3:14","3:39"],"6":["3:40","3:51"],"7":["4:1","4:20"],M:["4:17","4:20"]},weekday:{"1":["1:1","1:4"],"2":["1:5","1:16"],"3":["1:17","1:19"]}};const Nasso={num:35,hebrew:"נָשׂא",book:4,haft:{k:"Judges",b:"13:2",e:"13:25"},fullkriyah:{"1":["4:21","4:37"],"2":["4:38","4:49"],"3":["5:1","5:10"],"4":["5:11","6:27"],"5":["7:1","7:41"],"6":["7:42","7:71"],"7":["7:72","7:89"],M:["7:87","7:89"]},weekday:{"1":["4:21","4:24"],"2":["4:25","4:28"],"3":["4:29","4:33"]}};const Korach={num:38,hebrew:"קוֹרַח",book:4,haft:{k:"I Samuel",b:"11:14",e:"12:22"},fullkriyah:{"1":["16:1","16:13"],"2":["16:14","16:19"],"3":["16:20","17:8"],"4":["17:9","17:15"],"5":["17:16","17:24"],"6":["17:25","18:20"],"7":["18:21","18:32"],M:["18:30","18:32"]},weekday:{"1":["16:1","16:3"],"2":["16:4","16:7"],"3":["16:8","16:13"]}};const Chukat={num:39,hebrew:"חֻקַּת",book:4,haft:{k:"Judges",b:"11:1",e:"11:33"},fullkriyah:{"1":["19:1","19:17"],"2":["19:18","20:6"],"3":["20:7","20:13"],"4":["20:14","20:21"],"5":["20:22","21:9"],"6":["21:10","21:20"],"7":["21:21","22:1"],M:["21:34","22:1"]},weekday:{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:17"]}};const Balak={num:40,hebrew:"בָּלָק",book:4,haft:{k:"Micah",b:"5:6",e:"6:8"},fullkriyah:{"1":["22:2","22:12"],"2":["22:13","22:20"],"3":["22:21","22:38"],"4":["22:39","23:12"],"5":["23:13","23:26"],"6":["23:27","24:13"],"7":["24:14","25:9"],M:["25:7","25:9"]},weekday:{"1":["22:2","22:4"],"2":["22:5","22:7"],"3":["22:8","22:12"]}};const Pinchas={num:41,hebrew:"פִּינְחָס",book:4,haft:{k:"I Kings",b:"18:46",e:"19:21"},fullkriyah:{"1":["25:10","26:4"],"2":["26:5","26:51"],"3":["26:52","27:5"],"4":["27:6","27:23"],"5":["28:1","28:15"],"6":["28:16","29:11"],"7":["29:12","30:1"],M:["29:35","30:1"]},weekday:{"1":["25:10","25:12"],"2":["25:13","25:15"],"3":["25:16","26:4"]}};const Matot={num:42,hebrew:"מַּטּוֹת",book:4,haft:{k:"Jeremiah",b:"1:1",e:"2:3"},fullkriyah:{"1":["30:2","30:17"],"2":["31:1","31:12"],"3":["31:13","31:24"],"4":["31:25","31:41"],"5":["31:42","31:54"],"6":["32:1","32:19"],"7":["32:20","32:42"],M:["32:39","32:42"]},weekday:{"1":["30:2","30:9"],"2":["30:10","30:13"],"3":["30:14","30:17"]}};const Masei={num:43,hebrew:"מַסְעֵי",book:4,haft:[{k:"Jeremiah",b:"2:4",e:"2:28"},{k:"Jeremiah",b:"3:4",e:"3:4"}],seph:[{k:"Jeremiah",b:"2:4",e:"2:28"},{k:"Jeremiah",b:"4:1",e:"4:2"}],fullkriyah:{"1":["33:1","33:10"],"2":["33:11","33:49"],"3":["33:50","34:15"],"4":["34:16","34:29"],"5":["35:1","35:8"],"6":["35:9","35:34"],"7":["36:1","36:13"],M:["36:11","36:13"]},weekday:{"1":["33:1","33:3"],"2":["33:4","33:6"],"3":["33:7","33:10"]}};const Devarim={num:44,hebrew:"דְּבָרִים",book:5,haft:{k:"Isaiah",b:"1:1",e:"1:27"},fullkriyah:{"1":["1:1","1:10"],"2":["1:11","1:21"],"3":["1:22","1:38"],"4":["1:39","2:1"],"5":["2:2","2:30"],"6":["2:31","3:14"],"7":["3:15","3:22"],M:["3:20","3:22"]},weekday:{"1":["1:1","1:3"],"2":["1:4","1:7"],"3":["1:8","1:11"]}};const Vaetchanan={num:45,hebrew:"וָאֶתְחַנַּן",book:5,haft:{k:"Isaiah",b:"40:1",e:"40:26"},fullkriyah:{"1":["3:23","4:4"],"2":["4:5","4:40"],"3":["4:41","4:49"],"4":["5:1","5:18"],"5":["5:19","6:3"],"6":["6:4","6:25"],"7":["7:1","7:11"],M:["7:9","7:11"]},weekday:{"1":["3:23","3:25"],"2":["3:26","4:4"],"3":["4:5","4:8"]}};const Eikev={num:46,hebrew:"עֵקֶב",book:5,haft:{k:"Isaiah",b:"49:14",e:"51:3"},fullkriyah:{"1":["7:12","8:10"],"2":["8:11","9:3"],"3":["9:4","9:29"],"4":["10:1","10:11"],"5":["10:12","11:9"],"6":["11:10","11:21"],"7":["11:22","11:25"],M:["11:22","11:25"]},weekday:{"1":["7:12","7:21"],"2":["7:22","8:3"],"3":["8:4","8:10"]}};const Shoftim={num:48,hebrew:"שׁוֹפְטִים",book:5,haft:{k:"Isaiah",b:"51:12",e:"52:12"},fullkriyah:{"1":["16:18","17:13"],"2":["17:14","17:20"],"3":["18:1","18:5"],"4":["18:6","18:13"],"5":["18:14","19:13"],"6":["19:14","20:9"],"7":["20:10","21:9"],M:["21:7","21:9"]},weekday:{"1":["16:18","16:20"],"2":["16:21","17:10"],"3":["17:11","17:13"]}};const Nitzavim={num:51,hebrew:"נִצָּבִים",book:5,haft:{k:"Isaiah",b:"61:10",e:"63:9"},fullkriyah:{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"],"4":["30:1","30:6"],"5":["30:7","30:10"],"6":["30:11","30:14"],"7":["30:15","30:20"],M:["30:15","30:20"]},weekday:{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"]}};const Vayeilech={num:52,hebrew:"וַיֵּלֶךְ",book:5,haft:{k:"Isaiah",b:"55:6",e:"56:8"},fullkriyah:{"1":["31:1","31:3"],"2":["31:4","31:6"],"3":["31:7","31:9"],"4":["31:10","31:13"],"5":["31:14","31:19"],"6":["31:20","31:24"],"7":["31:25","31:30"],M:["31:28","31:30"]},weekday:{"1":["31:1","31:3"],"2":["31:4","31:6"],"3":["31:7","31:13"]}};var parshiyotObj = {Bereshit:Bereshit,Noach:Noach,"Lech-Lecha":{num:3,hebrew:"לֶךְ־לְךָ",book:1,haft:{k:"Isaiah",b:"40:27",e:"41:16"},fullkriyah:{"1":["12:1","12:13"],"2":["12:14","13:4"],"3":["13:5","13:18"],"4":["14:1","14:20"],"5":["14:21","15:6"],"6":["15:7","17:6"],"7":["17:7","17:27"],M:["17:24","17:27"]},weekday:{"1":["12:1","12:3"],"2":["12:4","12:9"],"3":["12:10","12:13"]}},Vayera:Vayera,"Chayei Sara":{num:5,hebrew:"חַיֵּי שָֹרָה",book:1,haft:{k:"I Kings",b:"1:1",e:"1:31"},fullkriyah:{"1":["23:1","23:16"],"2":["23:17","24:9"],"3":["24:10","24:26"],"4":["24:27","24:52"],"5":["24:53","24:67"],"6":["25:1","25:11"],"7":["25:12","25:18"],M:["25:16","25:18"]},weekday:{"1":["23:1","23:7"],"2":["23:8","23:12"],"3":["23:13","23:16"]}},Toldot:Toldot,Vayetzei:Vayetzei,Vayishlach:Vayishlach,Vayeshev:Vayeshev,Miketz:Miketz,Vayigash:Vayigash,Vayechi:Vayechi,Shemot:Shemot,Vaera:Vaera,Bo:Bo,Beshalach:Beshalach,Yitro:Yitro,Mishpatim:Mishpatim,Terumah:Terumah,Tetzaveh:Tetzaveh,"Ki Tisa":{num:21,hebrew:"כִּי תִשָּׂא",book:2,haft:{k:"I Kings",b:"18:1",e:"18:39"},seph:{k:"I Kings",b:"18:20",e:"18:39"},fullkriyah:{"1":["30:11","31:17"],"2":["31:18","33:11"],"3":["33:12","33:16"],"4":["33:17","33:23"],"5":["34:1","34:9"],"6":["34:10","34:26"],"7":["34:27","34:35"],M:["34:33","34:35"]},weekday:{"1":["30:11","30:13"],"2":["30:14","30:16"],"3":["30:17","30:21"]}},Vayakhel:Vayakhel,Pekudei:Pekudei,Vayikra:Vayikra,Tzav:Tzav,Shmini:Shmini,Tazria:Tazria,Metzora:Metzora,"Achrei Mot":{num:29,hebrew:"אַחֲרֵי מוֹת",book:3,haft:{k:"Ezekiel",b:"22:1",e:"22:19"},seph:{k:"Ezekiel",b:"22:1",e:"22:16"},fullkriyah:{"1":["16:1","16:17"],"2":["16:18","16:24"],"3":["16:25","16:34"],"4":["17:1","17:7"],"5":["17:8","18:5"],"6":["18:6","18:21"],"7":["18:22","18:30"],M:["18:28","18:30"]},weekday:{"1":["16:1","16:6"],"2":["16:7","16:11"],"3":["16:12","16:17"]}},Kedoshim:Kedoshim,Emor:Emor,Behar:Behar,Bechukotai:Bechukotai,Bamidbar:Bamidbar,Nasso:Nasso,"Beha'alotcha":{num:36,hebrew:"בְּהַעֲלֹתְךָ",book:4,haft:{k:"Zechariah",b:"2:14",e:"4:7"},fullkriyah:{"1":["8:1","8:14"],"2":["8:15","8:26"],"3":["9:1","9:14"],"4":["9:15","10:10"],"5":["10:11","10:34"],"6":["10:35","11:29"],"7":["11:30","12:16"],M:["12:14","12:16"]},weekday:{"1":["8:1","8:4"],"2":["8:5","8:9"],"3":["8:10","8:14"]}},"Sh'lach":{num:37,hebrew:"שְׁלַח־לְךָ",book:4,haft:{k:"Joshua",b:"2:1",e:"2:24"},fullkriyah:{"1":["13:1","13:20"],"2":["13:21","14:7"],"3":["14:8","14:25"],"4":["14:26","15:7"],"5":["15:8","15:16"],"6":["15:17","15:26"],"7":["15:27","15:41"],M:["15:37","15:41"]},weekday:{"1":["13:1","13:3"],"2":["13:4","13:16"],"3":["13:17","13:20"]}},Korach:Korach,Chukat:Chukat,Balak:Balak,Pinchas:Pinchas,Matot:Matot,Masei:Masei,Devarim:Devarim,Vaetchanan:Vaetchanan,Eikev:Eikev,"Re'eh":{num:47,hebrew:"רְאֵה",book:5,haft:{k:"Isaiah",b:"54:11",e:"55:5"},fullkriyah:{"1":["11:26","12:10"],"2":["12:11","12:28"],"3":["12:29","13:19"],"4":["14:1","14:21"],"5":["14:22","14:29"],"6":["15:1","15:18"],"7":["15:19","16:17"],M:["16:13","16:17"]},weekday:{"1":["11:26","11:31"],"2":["11:32","12:5"],"3":["12:6","12:10"]}},Shoftim:Shoftim,"Ki Teitzei":{num:49,hebrew:"כִּי־תֵצֵא",book:5,haft:{k:"Isaiah",b:"54:1",e:"54:10"},fullkriyah:{"1":["21:10","21:21"],"2":["21:22","22:7"],"3":["22:8","23:7"],"4":["23:8","23:24"],"5":["23:25","24:4"],"6":["24:5","24:13"],"7":["24:14","25:19"],M:["25:17","25:19"]},weekday:{"1":["21:10","21:14"],"2":["21:15","21:17"],"3":["21:18","21:21"]}},"Ki Tavo":{num:50,hebrew:"כִּי־תָבוֹא",book:5,haft:{k:"Isaiah",b:"60:1",e:"60:22"},fullkriyah:{"1":["26:1","26:11"],"2":["26:12","26:15"],"3":["26:16","26:19"],"4":["27:1","27:10"],"5":["27:11","28:6"],"6":["28:7","28:69"],"7":["29:1","29:8"],M:["29:6","29:8"]},weekday:{"1":["26:1","26:3"],"2":["26:4","26:11"],"3":["26:12","26:15"]}},Nitzavim:Nitzavim,Vayeilech:Vayeilech,"Ha'Azinu":{num:53,hebrew:"הַאֲזִינוּ",book:5,haft:{k:"II Samuel",b:"22:1",e:"22:51"},fullkriyah:{"1":["32:1","32:6"],"2":["32:7","32:12"],"3":["32:13","32:18"],"4":["32:19","32:28"],"5":["32:29","32:39"],"6":["32:40","32:43"],"7":["32:44","32:52"],M:["32:48","32:52"]},weekday:{"1":["32:1","32:3"],"2":["32:4","32:6"],"3":["32:7","32:12"]}},"Vezot Haberakhah":{num:54,hebrew:"וְזֹאת הַבְּרָכָה",book:5,haft:{k:"Joshua",b:"1:1",e:"1:18"},seph:{k:"Joshua",b:"1:1",e:"1:9"},fullkriyah:{"1":["33:1","33:7"],"2":["33:8","33:12"],"3":["33:13","33:17"],"4":["33:18","33:21"],"5":["33:22","33:26"],"6":["33:27","33:29"],"7":["34:1","34:12"]},weekday:{"1":["33:1","33:7"],"2":["33:8","33:12"],"3":["33:13","33:17"]}},"Vayakhel-Pekudei":{num:101,combined:true,p1:"Vayakhel",p2:"Pekudei",num1:22,num2:23,book:2,fullkriyah:{"1":["35:1","35:29"],"2":["35:30","37:16"],"3":["37:17","37:29"],"4":["38:1","39:1"],"5":["39:2","39:21"],"6":["39:22","39:43"],"7":["40:1","40:38"],M:["40:34","40:38"]}},"Tazria-Metzora":{num:102,combined:true,p1:"Tazria",p2:"Metzora",num1:27,num2:28,book:3,fullkriyah:{"1":["12:1","13:23"],"2":["13:24","13:39"],"3":["13:40","13:54"],"4":["13:55","14:20"],"5":["14:21","14:32"],"6":["14:33","15:15"],"7":["15:16","15:33"],M:["15:31","15:33"]}},"Achrei Mot-Kedoshim":{num:103,combined:true,p1:"Achrei Mot",p2:"Kedoshim",num1:29,num2:30,book:3,fullkriyah:{"1":["16:1","16:24"],"2":["16:25","17:7"],"3":["17:8","18:21"],"4":["18:22","19:14"],"5":["19:15","19:32"],"6":["19:33","20:7"],"7":["20:8","20:27"],M:["20:25","20:27"]}},"Behar-Bechukotai":{num:104,combined:true,p1:"Behar",p2:"Bechukotai",num1:32,num2:33,book:3,fullkriyah:{"1":["25:1","25:18"],"2":["25:19","25:28"],"3":["25:29","25:38"],"4":["25:39","26:9"],"5":["26:10","26:46"],"6":["27:1","27:15"],"7":["27:16","27:34"],M:["27:32","27:34"]}},"Chukat-Balak":{num:105,combined:true,p1:"Chukat",p2:"Balak",num1:39,num2:40,book:4,fullkriyah:{"1":["19:1","20:6"],"2":["20:7","20:21"],"3":["20:22","21:20"],"4":["21:21","22:12"],"5":["22:13","22:38"],"6":["22:39","23:26"],"7":["23:27","25:9"],M:["25:7","25:9"]}},"Matot-Masei":{num:106,combined:true,p1:"Matot",p2:"Masei",num1:42,num2:43,book:4,fullkriyah:{"1":["30:2","31:12"],"2":["31:13","31:54"],"3":["32:1","32:19"],"4":["32:20","33:49"],"5":["33:50","34:15"],"6":["34:16","35:8"],"7":["35:9","36:13"],M:["36:11","36:13"]}},"Nitzavim-Vayeilech":{num:107,combined:true,p1:"Nitzavim",p2:"Vayeilech",num1:51,num2:52,book:5,fullkriyah:{"1":["29:9","29:28"],"2":["30:1","30:6"],"3":["30:7","30:14"],"4":["30:15","31:6"],"5":["31:7","31:13"],"6":["31:14","31:19"],"7":["31:20","31:30"],M:["31:28","31:30"]}}};
|
|
@@ -546,8 +564,10 @@ const Bereshit={num:1,hebrew:"בְּרֵאשִׁית",book:1,haft:{k:"Isaiah",b:
|
|
|
546
564
|
* @return {Leyning} map of aliyot
|
|
547
565
|
*/
|
|
548
566
|
function getLeyningForHoliday(ev, il = false) {
|
|
549
|
-
if (typeof ev !== 'object' ||
|
|
567
|
+
if (typeof ev !== 'object' || typeof ev.getFlags !== 'function') {
|
|
550
568
|
throw new TypeError(`Bad event argument: ${ev}`);
|
|
569
|
+
} else if (typeof ev.eventTime !== 'undefined') {
|
|
570
|
+
return undefined;
|
|
551
571
|
} else if (ev.getFlags() & flags.PARSHA_HASHAVUA) {
|
|
552
572
|
throw new TypeError(`Event should be a holiday: ${ev.getDesc()}`);
|
|
553
573
|
} else if (ev.getFlags() & HOLIDAY_IGNORE_MASK) {
|
|
@@ -627,16 +647,12 @@ function getHaftaraKey(parsha) {
|
|
|
627
647
|
|
|
628
648
|
/**
|
|
629
649
|
* Looks up regular leyning for a weekly parsha with no special readings
|
|
650
|
+
* @private
|
|
630
651
|
* @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
|
|
631
652
|
* @return {Leyning} map of aliyot
|
|
632
653
|
*/
|
|
633
|
-
function
|
|
634
|
-
const
|
|
635
|
-
if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
|
|
636
|
-
throw new TypeError(`Bad parsha argument: ${parsha}`);
|
|
637
|
-
}
|
|
638
|
-
const name = isParshaString ? parsha : parshaToString(parsha);
|
|
639
|
-
const raw = parshiyotObj[name];
|
|
654
|
+
function getLeyningForParshaShabbatOnly(parsha) {
|
|
655
|
+
const raw = lookupParsha(parsha);
|
|
640
656
|
const fullkriyah = {};
|
|
641
657
|
const book = BOOK[raw.book];
|
|
642
658
|
Object.keys(raw.fullkriyah).forEach(num => {
|
|
@@ -649,7 +665,8 @@ function getLeyningForParsha(parsha) {
|
|
|
649
665
|
fullkriyah[num] = reading;
|
|
650
666
|
});
|
|
651
667
|
Object.values(fullkriyah).map(aliyah => calculateNumVerses(aliyah));
|
|
652
|
-
const
|
|
668
|
+
const name = parshaToString(parsha);
|
|
669
|
+
const parshaNameArray = raw.combined ? [raw.p1, raw.p2] : [name];
|
|
653
670
|
const parts = makeLeyningParts(fullkriyah);
|
|
654
671
|
const summary = makeSummaryFromParts(parts);
|
|
655
672
|
/** @type {Leyning} */
|
|
@@ -678,20 +695,45 @@ function getLeyningForParsha(parsha) {
|
|
|
678
695
|
result.sephardic = makeSummaryFromParts(seph);
|
|
679
696
|
result.sephardicNumV = sumVerses(seph);
|
|
680
697
|
}
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
698
|
+
return result;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* Looks up Monday/Thursday aliyot for a regular parsha
|
|
703
|
+
* @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
|
|
704
|
+
* @return {Object<string,Aliyah>} map of aliyot
|
|
705
|
+
*/
|
|
706
|
+
function getWeekdayReading(parsha) {
|
|
707
|
+
const raw = lookupParsha(parsha);
|
|
708
|
+
const parshaMeta = raw.combined ? lookupParsha(raw.p1) : raw;
|
|
709
|
+
const aliyot = parshaMeta.weekday;
|
|
710
|
+
if (!aliyot) {
|
|
711
|
+
throw new Error(`Parsha missing weekday: ${parsha}`);
|
|
712
|
+
}
|
|
713
|
+
const book = BOOK[raw.book];
|
|
714
|
+
const weekday = {};
|
|
715
|
+
for (let i = 1; i <= 3; i++) {
|
|
716
|
+
const num = '' + i;
|
|
717
|
+
const src = aliyot[num];
|
|
718
|
+
const aliyah = {
|
|
719
|
+
k: book,
|
|
720
|
+
b: src[0],
|
|
721
|
+
e: src[1]
|
|
722
|
+
};
|
|
723
|
+
calculateNumVerses(aliyah);
|
|
724
|
+
weekday[num] = aliyah;
|
|
694
725
|
}
|
|
726
|
+
return weekday;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
/**
|
|
730
|
+
* Looks up regular leyning for a weekly parsha with no special readings
|
|
731
|
+
* @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
|
|
732
|
+
* @return {Leyning} map of aliyot
|
|
733
|
+
*/
|
|
734
|
+
function getLeyningForParsha(parsha) {
|
|
735
|
+
const result = getLeyningForParshaShabbatOnly(parsha);
|
|
736
|
+
result.weekday = getWeekdayReading(parsha);
|
|
695
737
|
return result;
|
|
696
738
|
}
|
|
697
739
|
|
|
@@ -703,29 +745,30 @@ function getLeyningForParsha(parsha) {
|
|
|
703
745
|
* @return {Leyning} map of aliyot
|
|
704
746
|
*/
|
|
705
747
|
function getLeyningForParshaHaShavua(ev, il = false) {
|
|
706
|
-
if (
|
|
748
|
+
if (typeof ev !== 'object' || typeof ev.getFlags !== 'function') {
|
|
707
749
|
throw new TypeError(`Bad event argument: ${ev}`);
|
|
708
750
|
} else if (ev.getFlags() != flags.PARSHA_HASHAVUA) {
|
|
709
751
|
throw new TypeError(`Event must be parsha hashavua: ${ev.getDesc()}`);
|
|
710
752
|
}
|
|
711
753
|
// first, collect the default aliyot and haftara
|
|
712
754
|
const parsha = ev.parsha;
|
|
713
|
-
const result =
|
|
714
|
-
const reason = {};
|
|
755
|
+
const result = getLeyningForParshaShabbatOnly(parsha);
|
|
715
756
|
const hd = ev.getDate();
|
|
716
757
|
// Now, check for special maftir or haftara on same date
|
|
717
|
-
const
|
|
718
|
-
|
|
719
|
-
|
|
758
|
+
const special = specialReadings2(parsha, hd, il, result.fullkriyah);
|
|
759
|
+
const reason = special.reason;
|
|
760
|
+
if (special.haft) {
|
|
761
|
+
const haft = result.haft = cloneHaftara(special.haft);
|
|
720
762
|
result.haftara = makeSummaryFromParts(haft);
|
|
721
763
|
result.haftaraNumV = sumVerses(haft);
|
|
722
|
-
if (
|
|
723
|
-
const seph = result.seph = cloneHaftara(
|
|
764
|
+
if (special.seph) {
|
|
765
|
+
const seph = result.seph = cloneHaftara(special.seph);
|
|
724
766
|
result.sephardic = makeSummaryFromParts(seph);
|
|
725
767
|
result.sephardicNumV = sumVerses(seph);
|
|
726
768
|
}
|
|
727
769
|
}
|
|
728
770
|
if (reason['7'] || reason['M']) {
|
|
771
|
+
result.fullkriyah = special.aliyot;
|
|
729
772
|
const parts = makeLeyningParts(result.fullkriyah);
|
|
730
773
|
result.summary = makeSummaryFromParts(parts);
|
|
731
774
|
result.summaryParts = parts;
|
|
@@ -746,8 +789,6 @@ function getLeyningForParshaHaShavua(ev, il = false) {
|
|
|
746
789
|
}
|
|
747
790
|
});
|
|
748
791
|
}
|
|
749
|
-
// to avoid confusion, don't include Saturday mincha reading here
|
|
750
|
-
delete result.weekday;
|
|
751
792
|
return result;
|
|
752
793
|
}
|
|
753
794
|
|
|
@@ -842,15 +883,11 @@ function findParshaHaShavua(saturday, il) {
|
|
|
842
883
|
|
|
843
884
|
/**
|
|
844
885
|
* Returns the parsha metadata
|
|
845
|
-
* @param {string|string[]} parsha
|
|
886
|
+
* @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
|
|
846
887
|
* @return {ParshaMeta}
|
|
847
888
|
*/
|
|
848
889
|
function lookupParsha(parsha) {
|
|
849
|
-
const
|
|
850
|
-
if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
|
|
851
|
-
throw new TypeError(`Bad parsha argument: ${parsha}`);
|
|
852
|
-
}
|
|
853
|
-
const name = isParshaString ? parsha : parshaToString(parsha);
|
|
890
|
+
const name = parshaToString(parsha);
|
|
854
891
|
const raw = parshiyotObj[name];
|
|
855
892
|
if (typeof raw !== 'object') {
|
|
856
893
|
throw new TypeError(`Bad parsha argument: ${parsha}`);
|
|
@@ -1029,4 +1066,4 @@ function getFullKriyahLines(reading) {
|
|
|
1029
1066
|
return lines;
|
|
1030
1067
|
}
|
|
1031
1068
|
|
|
1032
|
-
export { BOOK, calculateNumVerses, clone, cloneHaftara, formatAliyahShort, formatAliyahWithBook, getLeyningForHoliday, getLeyningForHolidayKey, getLeyningForParsha, getLeyningForParshaHaShavua, getLeyningKeyForEvent, getLeyningOnDate, getParshaDates, hasFestival, lookupFestival, lookupParsha, makeLeyningParts, makeLeyningSummary, makeSummaryFromParts, parshaToString,
|
|
1069
|
+
export { BOOK, calculateNumVerses, clone, cloneHaftara, formatAliyahShort, formatAliyahWithBook, getLeyningForHoliday, getLeyningForHolidayKey, getLeyningForParsha, getLeyningForParshaHaShavua, getLeyningKeyForEvent, getLeyningOnDate, getParshaDates, getWeekdayReading, hasFestival, lookupFestival, lookupParsha, makeLeyningParts, makeLeyningSummary, makeSummaryFromParts, parshaToString, specialReadings2, sumVerses, writeCsvLines, writeFullKriyahCsv, writeHolidayMincha };
|
package/leyning.d.ts
CHANGED
|
@@ -65,11 +65,6 @@ declare module '@hebcal/leyning' {
|
|
|
65
65
|
reason?: StringMap;
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
export type HaftaraAshkSeph = {
|
|
69
|
-
haft: Aliyah | Aliyah[];
|
|
70
|
-
seph?: Aliyah | Aliyah[];
|
|
71
|
-
};
|
|
72
|
-
|
|
73
68
|
/**
|
|
74
69
|
* Formats parsha as a string
|
|
75
70
|
*/
|
|
@@ -101,6 +96,12 @@ declare module '@hebcal/leyning' {
|
|
|
101
96
|
* e.g. `Genesis 21:1-34; Numbers 29:1-6`.
|
|
102
97
|
*/
|
|
103
98
|
export function makeSummaryFromParts(parts: Aliyah | Aliyah[]): string;
|
|
99
|
+
export type SpecialReading = {
|
|
100
|
+
aliyot: AliyotMap;
|
|
101
|
+
reason: StringMap;
|
|
102
|
+
haft: Aliyah | Aliyah[];
|
|
103
|
+
seph?: Aliyah | Aliyah[];
|
|
104
|
+
};
|
|
104
105
|
/**
|
|
105
106
|
* Determines if the regular parashat haShavua coincides with an event that requires
|
|
106
107
|
* a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh
|
|
@@ -112,7 +113,7 @@ declare module '@hebcal/leyning' {
|
|
|
112
113
|
* If a special Haftarah applies, returns the Haftarah object and sets `reason.haftara`.
|
|
113
114
|
* If no special Haftarah, returns `undefined`
|
|
114
115
|
*/
|
|
115
|
-
export function
|
|
116
|
+
export function specialReadings2(parsha: string[], hd: HDate, il: boolean, aliyot: AliyotMap): SpecialReading;
|
|
116
117
|
/**
|
|
117
118
|
* Looks up leyning for a regular Shabbat, Monday/Thursday weekday or holiday.
|
|
118
119
|
*
|
|
@@ -178,6 +179,13 @@ declare module '@hebcal/leyning' {
|
|
|
178
179
|
*/
|
|
179
180
|
export function getLeyningForParsha(parsha: string|string[]): Leyning;
|
|
180
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Looks up Monday/Thursday aliyot for a regular parsha
|
|
184
|
+
* @param parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
|
|
185
|
+
* @returns map of aliyot
|
|
186
|
+
*/
|
|
187
|
+
export function getWeekdayReading(parsha: string|string[]): AliyotMap;
|
|
188
|
+
|
|
181
189
|
/**
|
|
182
190
|
* Formats an aliyah object like "Numbers 28:9 - 28:15"
|
|
183
191
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hebcal/leyning",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"author": "Michael J. Radwin (https://github.com/mjradwin)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hebcal",
|
|
@@ -46,30 +46,23 @@
|
|
|
46
46
|
},
|
|
47
47
|
"license": "BSD-2-Clause",
|
|
48
48
|
"ava": {
|
|
49
|
-
"
|
|
50
|
-
"src/**/*.spec.js"
|
|
51
|
-
],
|
|
52
|
-
"require": [
|
|
53
|
-
"@babel/register"
|
|
54
|
-
],
|
|
55
|
-
"inherit": true,
|
|
56
|
-
"verbose": true
|
|
49
|
+
"require": ["@babel/register"]
|
|
57
50
|
},
|
|
58
51
|
"devDependencies": {
|
|
59
52
|
"@babel/core": "^7.20.5",
|
|
60
53
|
"@babel/preset-env": "^7.20.2",
|
|
61
54
|
"@babel/register": "^7.18.9",
|
|
62
55
|
"@rollup/plugin-babel": "^6.0.3",
|
|
63
|
-
"@rollup/plugin-commonjs": "^23.0.
|
|
64
|
-
"@rollup/plugin-json": "^
|
|
56
|
+
"@rollup/plugin-commonjs": "^23.0.7",
|
|
57
|
+
"@rollup/plugin-json": "^6.0.0",
|
|
65
58
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
66
59
|
"@rollup/plugin-terser": "^0.2.0",
|
|
67
60
|
"ava": "^5.1.0",
|
|
68
61
|
"core-js": "^3.26.1",
|
|
69
|
-
"eslint": "^8.
|
|
62
|
+
"eslint": "^8.30.0",
|
|
70
63
|
"eslint-config-google": "^0.14.0",
|
|
71
64
|
"jsdoc": "^4.0.0",
|
|
72
65
|
"jsdoc-to-markdown": "^8.0.0",
|
|
73
|
-
"rollup": "^3.7.
|
|
66
|
+
"rollup": "^3.7.5"
|
|
74
67
|
}
|
|
75
68
|
}
|