@hebcal/leyning 6.2.3 → 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 +418 -448
- package/dist/bundle.min.js +2 -2
- package/dist/index.js +102 -61
- package/dist/index.mjs +102 -62
- package/leyning.d.ts +14 -6
- package/package.json +15 -18
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;
|
|
@@ -330,6 +338,9 @@ function getLeyningKeyForEvent(ev, il = false) {
|
|
|
330
338
|
} else if (il && desc == 'Shmini Atzeret') {
|
|
331
339
|
return 'Simchat Torah';
|
|
332
340
|
}
|
|
341
|
+
if (desc === 'Chag HaBanot') {
|
|
342
|
+
return undefined;
|
|
343
|
+
}
|
|
333
344
|
if (isShabbat && 'Shabbat' != desc.substring(0, 7)) {
|
|
334
345
|
if (isRoshChodesh) {
|
|
335
346
|
if (desc === 'Rosh Chodesh Tevet') {
|
|
@@ -374,6 +385,16 @@ function getLeyningKeyForEvent(ev, il = false) {
|
|
|
374
385
|
return undefined;
|
|
375
386
|
}
|
|
376
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
|
+
|
|
377
398
|
/**
|
|
378
399
|
* @private
|
|
379
400
|
* @param {Object<string,Aliyah>} aliyot
|
|
@@ -417,24 +438,23 @@ function mergeAliyotWithSpecial(aliyot, special) {
|
|
|
417
438
|
* a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh
|
|
418
439
|
* Chodesh or Machar Chodesh, etc.).
|
|
419
440
|
*
|
|
420
|
-
*
|
|
421
|
-
*
|
|
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']`).
|
|
422
444
|
*
|
|
423
|
-
* If a special Haftarah applies,
|
|
424
|
-
*
|
|
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
|
|
425
448
|
* @param {HDate} hd
|
|
426
449
|
* @param {boolean} il
|
|
427
450
|
* @param {Object<string,Aliyah>} aliyot
|
|
428
|
-
* @
|
|
429
|
-
* @param {string[]} parsha
|
|
430
|
-
* @param {boolean} [wantSeph]
|
|
431
|
-
* @return {Aliyah | Aliyah[]}
|
|
451
|
+
* @return {SpecialReading}
|
|
432
452
|
*/
|
|
433
|
-
function
|
|
453
|
+
function specialReadings2(parsha, hd, il, aliyot) {
|
|
434
454
|
let haft;
|
|
435
455
|
let seph;
|
|
436
456
|
let specialHaft = false;
|
|
437
|
-
const
|
|
457
|
+
const reason = {};
|
|
438
458
|
|
|
439
459
|
// eslint-disable-next-line require-jsdoc
|
|
440
460
|
function handleSpecial(key) {
|
|
@@ -452,14 +472,17 @@ function specialReadings(hd, il, aliyot, reason, parsha, wantSeph = false) {
|
|
|
452
472
|
}
|
|
453
473
|
}
|
|
454
474
|
if (special.fullkriyah) {
|
|
455
|
-
|
|
475
|
+
const aliyotMap = clone(aliyot);
|
|
476
|
+
mergeAliyotWithSpecial(aliyotMap, special.fullkriyah);
|
|
456
477
|
Object.keys(special.fullkriyah).map(k => reason[k] = key);
|
|
478
|
+
aliyot = aliyotMap;
|
|
457
479
|
}
|
|
458
480
|
}
|
|
481
|
+
const parshaName = parshaToString(parsha);
|
|
459
482
|
const events0 = HebrewCalendar.getHolidaysOnDate(hd, il) || [];
|
|
460
483
|
const events = events0.filter(ev => !(ev.getFlags() & flags.ROSH_CHODESH));
|
|
461
484
|
events.forEach(ev => {
|
|
462
|
-
if (ev.getDesc() === 'Shabbat Shuva'
|
|
485
|
+
if (ev.getDesc() === 'Shabbat Shuva') {
|
|
463
486
|
handleSpecial(`Shabbat Shuva (with ${parshaName})`);
|
|
464
487
|
} else {
|
|
465
488
|
const key = getLeyningKeyForEvent(ev, il);
|
|
@@ -484,14 +507,12 @@ function specialReadings(hd, il, aliyot, reason, parsha, wantSeph = false) {
|
|
|
484
507
|
}
|
|
485
508
|
}
|
|
486
509
|
}
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
}
|
|
493
|
-
return haft;
|
|
494
|
-
}
|
|
510
|
+
return {
|
|
511
|
+
aliyot,
|
|
512
|
+
reason,
|
|
513
|
+
haft,
|
|
514
|
+
seph
|
|
515
|
+
};
|
|
495
516
|
}
|
|
496
517
|
|
|
497
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"]}}};
|
|
@@ -543,8 +564,10 @@ const Bereshit={num:1,hebrew:"בְּרֵאשִׁית",book:1,haft:{k:"Isaiah",b:
|
|
|
543
564
|
* @return {Leyning} map of aliyot
|
|
544
565
|
*/
|
|
545
566
|
function getLeyningForHoliday(ev, il = false) {
|
|
546
|
-
if (typeof ev !== 'object' ||
|
|
567
|
+
if (typeof ev !== 'object' || typeof ev.getFlags !== 'function') {
|
|
547
568
|
throw new TypeError(`Bad event argument: ${ev}`);
|
|
569
|
+
} else if (typeof ev.eventTime !== 'undefined') {
|
|
570
|
+
return undefined;
|
|
548
571
|
} else if (ev.getFlags() & flags.PARSHA_HASHAVUA) {
|
|
549
572
|
throw new TypeError(`Event should be a holiday: ${ev.getDesc()}`);
|
|
550
573
|
} else if (ev.getFlags() & HOLIDAY_IGNORE_MASK) {
|
|
@@ -624,16 +647,12 @@ function getHaftaraKey(parsha) {
|
|
|
624
647
|
|
|
625
648
|
/**
|
|
626
649
|
* Looks up regular leyning for a weekly parsha with no special readings
|
|
650
|
+
* @private
|
|
627
651
|
* @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
|
|
628
652
|
* @return {Leyning} map of aliyot
|
|
629
653
|
*/
|
|
630
|
-
function
|
|
631
|
-
const
|
|
632
|
-
if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
|
|
633
|
-
throw new TypeError(`Bad parsha argument: ${parsha}`);
|
|
634
|
-
}
|
|
635
|
-
const name = isParshaString ? parsha : parshaToString(parsha);
|
|
636
|
-
const raw = parshiyotObj[name];
|
|
654
|
+
function getLeyningForParshaShabbatOnly(parsha) {
|
|
655
|
+
const raw = lookupParsha(parsha);
|
|
637
656
|
const fullkriyah = {};
|
|
638
657
|
const book = BOOK[raw.book];
|
|
639
658
|
Object.keys(raw.fullkriyah).forEach(num => {
|
|
@@ -646,7 +665,8 @@ function getLeyningForParsha(parsha) {
|
|
|
646
665
|
fullkriyah[num] = reading;
|
|
647
666
|
});
|
|
648
667
|
Object.values(fullkriyah).map(aliyah => calculateNumVerses(aliyah));
|
|
649
|
-
const
|
|
668
|
+
const name = parshaToString(parsha);
|
|
669
|
+
const parshaNameArray = raw.combined ? [raw.p1, raw.p2] : [name];
|
|
650
670
|
const parts = makeLeyningParts(fullkriyah);
|
|
651
671
|
const summary = makeSummaryFromParts(parts);
|
|
652
672
|
/** @type {Leyning} */
|
|
@@ -675,20 +695,45 @@ function getLeyningForParsha(parsha) {
|
|
|
675
695
|
result.sephardic = makeSummaryFromParts(seph);
|
|
676
696
|
result.sephardicNumV = sumVerses(seph);
|
|
677
697
|
}
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
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}`);
|
|
691
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;
|
|
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);
|
|
692
737
|
return result;
|
|
693
738
|
}
|
|
694
739
|
|
|
@@ -700,29 +745,30 @@ function getLeyningForParsha(parsha) {
|
|
|
700
745
|
* @return {Leyning} map of aliyot
|
|
701
746
|
*/
|
|
702
747
|
function getLeyningForParshaHaShavua(ev, il = false) {
|
|
703
|
-
if (
|
|
748
|
+
if (typeof ev !== 'object' || typeof ev.getFlags !== 'function') {
|
|
704
749
|
throw new TypeError(`Bad event argument: ${ev}`);
|
|
705
750
|
} else if (ev.getFlags() != flags.PARSHA_HASHAVUA) {
|
|
706
751
|
throw new TypeError(`Event must be parsha hashavua: ${ev.getDesc()}`);
|
|
707
752
|
}
|
|
708
753
|
// first, collect the default aliyot and haftara
|
|
709
754
|
const parsha = ev.parsha;
|
|
710
|
-
const result =
|
|
711
|
-
const reason = {};
|
|
755
|
+
const result = getLeyningForParshaShabbatOnly(parsha);
|
|
712
756
|
const hd = ev.getDate();
|
|
713
757
|
// Now, check for special maftir or haftara on same date
|
|
714
|
-
const
|
|
715
|
-
|
|
716
|
-
|
|
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);
|
|
717
762
|
result.haftara = makeSummaryFromParts(haft);
|
|
718
763
|
result.haftaraNumV = sumVerses(haft);
|
|
719
|
-
if (
|
|
720
|
-
const seph = result.seph = cloneHaftara(
|
|
764
|
+
if (special.seph) {
|
|
765
|
+
const seph = result.seph = cloneHaftara(special.seph);
|
|
721
766
|
result.sephardic = makeSummaryFromParts(seph);
|
|
722
767
|
result.sephardicNumV = sumVerses(seph);
|
|
723
768
|
}
|
|
724
769
|
}
|
|
725
770
|
if (reason['7'] || reason['M']) {
|
|
771
|
+
result.fullkriyah = special.aliyot;
|
|
726
772
|
const parts = makeLeyningParts(result.fullkriyah);
|
|
727
773
|
result.summary = makeSummaryFromParts(parts);
|
|
728
774
|
result.summaryParts = parts;
|
|
@@ -743,8 +789,6 @@ function getLeyningForParshaHaShavua(ev, il = false) {
|
|
|
743
789
|
}
|
|
744
790
|
});
|
|
745
791
|
}
|
|
746
|
-
// to avoid confusion, don't include Saturday mincha reading here
|
|
747
|
-
delete result.weekday;
|
|
748
792
|
return result;
|
|
749
793
|
}
|
|
750
794
|
|
|
@@ -839,15 +883,11 @@ function findParshaHaShavua(saturday, il) {
|
|
|
839
883
|
|
|
840
884
|
/**
|
|
841
885
|
* Returns the parsha metadata
|
|
842
|
-
* @param {string|string[]} parsha
|
|
886
|
+
* @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
|
|
843
887
|
* @return {ParshaMeta}
|
|
844
888
|
*/
|
|
845
889
|
function lookupParsha(parsha) {
|
|
846
|
-
const
|
|
847
|
-
if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
|
|
848
|
-
throw new TypeError(`Bad parsha argument: ${parsha}`);
|
|
849
|
-
}
|
|
850
|
-
const name = isParshaString ? parsha : parshaToString(parsha);
|
|
890
|
+
const name = parshaToString(parsha);
|
|
851
891
|
const raw = parshiyotObj[name];
|
|
852
892
|
if (typeof raw !== 'object') {
|
|
853
893
|
throw new TypeError(`Bad parsha argument: ${parsha}`);
|
|
@@ -1026,4 +1066,4 @@ function getFullKriyahLines(reading) {
|
|
|
1026
1066
|
return lines;
|
|
1027
1067
|
}
|
|
1028
1068
|
|
|
1029
|
-
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",
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
"description": "Torah Reading API for Parashat HaShavua and holidays",
|
|
15
15
|
"main": "./dist/index.js",
|
|
16
16
|
"module": "./dist/index.mjs",
|
|
17
|
+
"exports": {
|
|
18
|
+
"import": "./dist/index.mjs",
|
|
19
|
+
"require": "./dist/index.js"
|
|
20
|
+
},
|
|
17
21
|
"repository": {
|
|
18
22
|
"type": "git",
|
|
19
23
|
"url": "https://github.com/hebcal/hebcal-leyning.git"
|
|
@@ -31,7 +35,7 @@
|
|
|
31
35
|
"leyning-csv": "bin/leyning-csv"
|
|
32
36
|
},
|
|
33
37
|
"dependencies": {
|
|
34
|
-
"@hebcal/core": "^3.
|
|
38
|
+
"@hebcal/core": "^3.47.1"
|
|
35
39
|
},
|
|
36
40
|
"scripts": {
|
|
37
41
|
"build": "rollup -c",
|
|
@@ -42,30 +46,23 @@
|
|
|
42
46
|
},
|
|
43
47
|
"license": "BSD-2-Clause",
|
|
44
48
|
"ava": {
|
|
45
|
-
"
|
|
46
|
-
"src/**/*.spec.js"
|
|
47
|
-
],
|
|
48
|
-
"require": [
|
|
49
|
-
"@babel/register"
|
|
50
|
-
],
|
|
51
|
-
"inherit": true,
|
|
52
|
-
"verbose": true
|
|
49
|
+
"require": ["@babel/register"]
|
|
53
50
|
},
|
|
54
51
|
"devDependencies": {
|
|
55
|
-
"@babel/core": "^7.20.
|
|
52
|
+
"@babel/core": "^7.20.5",
|
|
56
53
|
"@babel/preset-env": "^7.20.2",
|
|
57
54
|
"@babel/register": "^7.18.9",
|
|
58
|
-
"@rollup/plugin-babel": "^6.0.
|
|
59
|
-
"@rollup/plugin-commonjs": "^23.0.
|
|
60
|
-
"@rollup/plugin-json": "^
|
|
55
|
+
"@rollup/plugin-babel": "^6.0.3",
|
|
56
|
+
"@rollup/plugin-commonjs": "^23.0.7",
|
|
57
|
+
"@rollup/plugin-json": "^6.0.0",
|
|
61
58
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
62
|
-
"@rollup/plugin-terser": "^0.
|
|
59
|
+
"@rollup/plugin-terser": "^0.2.0",
|
|
63
60
|
"ava": "^5.1.0",
|
|
64
61
|
"core-js": "^3.26.1",
|
|
65
|
-
"eslint": "^8.
|
|
62
|
+
"eslint": "^8.30.0",
|
|
66
63
|
"eslint-config-google": "^0.14.0",
|
|
67
64
|
"jsdoc": "^4.0.0",
|
|
68
|
-
"jsdoc-to-markdown": "^
|
|
69
|
-
"rollup": "^3.
|
|
65
|
+
"jsdoc-to-markdown": "^8.0.0",
|
|
66
|
+
"rollup": "^3.7.5"
|
|
70
67
|
}
|
|
71
68
|
}
|