@hebcal/leyning 4.14.6 → 4.15.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/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/leyning v4.14.6 */
1
+ /*! @hebcal/leyning v4.15.0 */
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -982,7 +982,7 @@ function specialReadings(hd, il, aliyot, reason) {
982
982
  return haft;
983
983
  }
984
984
 
985
- var Bereshit={"1":{k:"Isaiah",b:"42:5",e:"42:21",note:"God identified as the creator // Creation"},"2":{k:"Isaiah",b:"40:25",e:"40:31",note:"God created, called by name // Eden"},"3":{k:"II Kings",b:"2:1",e:"2:13",note:"Elijah taken // Hanokh"}};var Noach={"1":{k:"Isaiah",b:"54:11",e:"55:5",note:"Storm tossed boat // Ark"},"2":{k:"Isaiah",b:"54:1",e:"54:10",note:"waters of Noah no more"},"3":{k:"Zephaniah",b:"3:9",e:"3:20",note:"one language // babel"}};var Vayera={"1":{k:"II Kings",b:"4:8",e:"4:17",note:"birth of promised child // promise to Sarah"},"2":{k:"II Kings",b:"6:8",e:"6:23",note:"blinding episode // Sodom"},"3":{k:"II Kings",b:"4:18",e:"4:36",note:"saving of child // akedah"}};var Toldot={"1":{k:"Malachi",b:"1:1",e:"1:14",note:"Jacob / Esau"},"2":{k:"II Samuel",b:"19:32",e:"19:40",note:"Barzilay infirm in old age // Isaac"},"3":[{k:"Judges",b:"3:15",e:"3:27",note:"Ehud's ploy // Jacob's ploy"},{k:"Judges",b:"3:30",e:"3:30"}]};var Vayetzei={"1":{k:"Hosea",b:"12:3",e:"12:14",note:"Jacob story"},"2":{k:"Zekhariah",b:"1:7",e:"1:17",note:"striped horses //streaked sheep"},"3":{k:"I Samuel",b:"19:11",e:"19:18",note:"deceit / terafim / female wiles // Rachel hides terafim"}};var Vayishlach={"1":[{k:"Ovadiah",b:"1:10",e:"1:18",note:"Jacob defeats Edom (Babylon) // Jacob meets Esau"},{k:"Ovadiah",b:"1:21",e:"1:21"}],"2":{k:"Jeremiah",b:"30:10",e:"30:22",note:"Jacob will return, settle // Jacob's early settling in Shechem and Bet El"},"3":[{k:"Amos",b:"1:1",e:"1:1",note:"prophecy against Edom // genealogy of Edom"},{k:"Amos",b:"1:11",e:"2:3"}]};var Vayeshev={"1":[{k:"Amos",b:"2:6",e:"3:2",note:"reference to sale of righteous // sale of Joseph"},{k:"Amos",b:"3:7",e:"3:8"}],"2":{k:"I Samuel",b:"24:2",e:"24:15",note:"recognition of significant object David to Saul // Tamar to Judah"},"3":{k:"Judges",b:"7:9",e:"7:20",note:"Gideon dream interpretation // Joseph's in jail"}};var Miketz={"1":{k:"I Kings",b:"3:5",e:"3:15",note:"Solomon's dream // Pharaoh's dream"},"2":{k:"I Kings",b:"3:16",e:"4:1",note:"Solomon's wisdom // Joseph's"},"3":{k:"I Kings",b:"10:1",e:"10:9",note:"Solomon's wisdom and household // Joseph's"}};var Vayigash={"1":{k:"Ezekiel",b:"37:15",e:"37:28",note:"Judah and Joseph united"},"2":{k:"Zekhariah",b:"10:3",e:"10:12",note:"Judah and Joseph, return from Egypt // J & J, brothers return to Jacob"},"3":{k:"Isaiah",b:"41:1",e:"41:10",note:"brother helps / Jacob not fear // Joseph settles his family in Goshen"}};var Vayechi={"1":{k:"Amos",b:"5:4",e:"5:15",note:"prophecy to remnants of Joseph // Joseph and kids"},"2":{k:"I Kings",b:"2:1",e:"2:12",note:"David's // Jacob's last speech"},"3":[{k:"II Samuel",b:"1:12",e:"1:12",note:"(lament over) deaths of Saul and Jonathan // deaths of Jacob, Joseph"},{k:"II Samuel",b:"1:17",e:"1:27"}]};var Shemot={"1":[{k:"Isaiah",b:"27:6",e:"27:13",note:"growth of Jacob / Israel // Israel in Egypt"},{k:"Isaiah",b:"29:22",e:"29:23"}],"2":[{k:"Joshua",b:"5:13",e:"6:5",note:"Joshua shoes off // burning bush"},{k:"Joshua",b:"6:15",e:"6:16"}],"3":[{k:"I Samuel",b:"9:15",e:"9:21",note:"anointing of Saul // Moses"},{k:"I Samuel",b:"9:27",e:"10:1"}]};var Vaera={"1":[{k:"Jeremiah",b:"1:1",e:"1:10",note:"appointment of Jeremiah // Moses"},{k:"Jeremiah",b:"1:8",e:"1:8"}],"2":[{k:"Ezekiel",b:"28:25",e:"29:12",note:"Speak to Pharaoh, show Egypt, strike Nile"},{k:"Ezekiel",b:"29:21",e:"29:21"}],"3":[{k:"Isaiah",b:"10:12",e:"10:12",note:"smite Assyria as Egypt"},{k:"Isaiah",b:"10:15",e:"10:26"},{k:"Isaiah",b:"10:32",e:"10:33"}]};var Bo={"1":{k:"Jeremiah",b:"10:1",e:"10:10",note:"goyim will fear signs from heaven // plagues"},"2":{k:"Jeremiah",b:"46:13",e:"46:28",note:"Egypt's fall / Israel's redemption // Exodus"},"3":{k:"II Samuel",b:"7:18",e:"7:29",note:"David recalls Exodus"}};var Beshalach={"1":{k:"Judges",b:"4:4",e:"4:24",note:"defeat of Sisera // defeat of Pharaoh"},"2":{k:"Judges",b:"5:1",e:"5:31",note:"Deborah's song // Moses' song of sea"},"3":[{k:"Joshua",b:"3:9",e:"3:17",note:"splitting Jordan, crossing on dry land // splitting Red Sea"},{k:"Joshua",b:"4:19",e:"4:24"}]};var Yitro={"1":{k:"Isaiah",b:"6:1",e:"6:13",note:"Isaiah's revelation of God // Moses' revelation at Sinai"},"2":{k:"Isaiah",b:"44:9",e:"44:23",note:"making idols to false god // you shall have no other Gods"},"3":{k:"Ezekiel",b:"16:4",e:"16:14",note:"Israel's birth / covenant / marriage(?) // revelation at Sinai"}};var Mishpatim={"1":[{k:"Jeremiah",b:"34:12",e:"34:22",note:"Jeremiah refers to the law that followed the covenant // Mishpatim"},{k:"Jeremiah",b:"33:25",e:"33:26"}],"2":{k:"I Samuel",b:"18:20",e:"18:28",note:"Michal's bride price // a law of Mishpatim"},"3":{k:"Joshua",b:"24:16",e:"24:28",note:"Joshua's covenant // na'aseh v'nishma"}};var Terumah={"1":{k:"Zekhariah",b:"2:5",e:"2:17",note:"God's presence in Israelvshakhanti b'tokhekh"},"2":{k:"I Kings",b:"6:1",e:"6:13",note:"Temple // Tabernacle"},"3":{k:"II Samuel",b:"7:1",e:"7:16",note:"Temple // Tabernacle"}};var Tetzaveh={"1":{k:"Ezekiel",b:"43:10",e:"43:17",note:"Temple // Tabernacle"},"2":{k:"Haggai",b:"1:1",e:"1:12",note:"T / T"},"3":{k:"Haggai",b:"2:1",e:"2:9",note:"T / T"}};var Vayakhel={"1":{k:"I Kings",b:"7:40",e:"7:50",note:"T / T"},"2":{k:"I Kings",b:"7:13",e:"7:26",note:"T / T"},"3":{k:"Ezekiel",b:"43:1",e:"43:9",note:"T / T"}};var Pekudei={"1":{k:"I Kings",b:"8:1",e:"8:11",note:"T / T"},"2":{k:"I Kings",b:"8:10",e:"8:21",note:"T / T"},"3":{k:"I Kings",b:"8:22",e:"8:39",note:"T / T"}};var Vayikra={"1":{k:"Isaiah",b:"43:21",e:"44:8",note:"sacrifices"},"2":{k:"I Samuel",b:"2:13",e:"2:26",note:"misbehaving kohanim // if a priest sins"},"3":{k:"Malachi",b:"2:13",e:"3:4",note:"sinfulness ruins offering // sin offerings"}};var Tzav={"1":[{k:"Jeremiah",b:"7:21",e:"7:28",note:"justice over sacrifices // sacrifices at Tabernacle"},{k:"Jeremiah",b:"9:22",e:"9:23"}],"2":{k:"Jeremiah",b:"33:14",e:"33:22",note:"priests offer sacrifices // sacrifices at Tabernacle"},"3":{k:"Ezekiel",b:"42:13",e:"42:20",note:"priestly precincts / clothes // priestly vestments"}};var Shmini={"1":{k:"II Samuel",b:"6:1",e:"6:15",note:"Uzza struck down // Nadav and Avihu"},"2":{k:"Ezekiel",b:"43:18",e:"43:27",note:"8th day sacrifices"},"3":{k:"Hosea",b:"9:1",e:"9:9",note:"Israel has eaten non-kosher // kashrut rules"}};var Tazria={"1":{k:"Isaiah",b:"46:3",e:"46:13",note:"since birth // birth"},"2":{k:"Jeremiah",b:"30:1",e:"30:9",note:"im yoled zakhar // v'yaldah zakhar"}};var Metzora={"1":{k:"II Kings",b:"5:1",e:"5:14",note:"Healing of a leper"},"2":{k:"II Kings",b:"7:3",e:"7:16",note:"4 lepers discover Aram's flight"},"3":{k:"II Kings",b:"5:20",e:"5:27",note:"Gechazi gets leprosy"}};var Kedoshim={"1":{k:"Isaiah",b:"61:1",e:"61:9",note:"you shall be called Priests // kedoshim"},"2":{k:"Amos",b:"9:7",e:"9:15",note:"opposite of chosenness"},"3":{k:"Hosea",b:"4:1",e:"4:15",note:"opposite of holiness / niuf // kedoshim, arayot"}};var Emor={"1":{k:"Ezekiel",b:"44:15",e:"44:24",note:"the conduct of kohanim"},"2":[{k:"Malachi",b:"2:1",e:"2:10",note:"conduct of kohanim / chillul hashem // particularly vs. 22:31-32"},{k:"Malachi",b:"2:7",e:"2:7"}],"3":[{k:"Nachum",b:"1:1",e:"1:7",note:"Judah shall observe its festivals // complete festival calendar"},{k:"Nachum",b:"2:1",e:"2:3"},{k:"Nachum",b:"2:2b",e:"2:3a"}]};var Behar={"1":{k:"Jeremiah",b:"32:6",e:"32:15",note:"land redemption // shmittah"},"2":{k:"Jeremiah",b:"32:16",e:"32:27",note:"prayerwill Israel ever redeem its land // shmittah"}};var Bechukotai={"1":{k:"Jeremiah",b:"17:1",e:"17:14",note:"blessings and curses // tokhechah"},"2":[{k:"Jeremiah",b:"16:9",e:"16:15",note:"desolation and redemption // tokhechah"},{k:"Jeremiah",b:"16:19",e:"16:21"}],"3":{k:"Malachi",b:"3:5",e:"3:12",note:"curses and blessings // tokhechah"}};var Bamidbar={"1":[{k:"Hosea",b:"2:1",e:"2:7",note:"number, lead thru desert as after Egypt // census, desert wanderings"},{k:"Hosea",b:"2:16",e:"2:22"}],"2":{k:"Isaiah",b:"63:7",e:"63:16",note:"God carries us as in desert // desert wanderings"},"3":[{k:"Joshua",b:"8:30",e:"8:35",note:"kohanim who carried the ark // korachites"},{k:"Joshua",b:"8:33",e:"8:33"}]};var Nasso={"1":[{k:"Joshua",b:"6:5",e:"6:14",note:"kohanim carrying ark // gershunites and merarites"},{k:"Joshua",b:"6:12",e:"6:12"}],"2":[{k:"Judges",b:"13:2",e:"13:14",note:"Samson // nazirite rules"},{k:"Judges",b:"13:24",e:"13:25"}],"3":[{k:"Joel",b:"1:8",e:"1:13",note:"end of sacrifices, hope for restart // dedication of Tabernacle"},{k:"Joel",b:"2:12",e:"2:14"}]};var Korach={"1":{k:"I Samuel",b:"12:1",e:"12:13",note:"Samuel's apologia references Moses leadership // Moses'"},"2":{k:"I Samuel",b:"12:13",e:"12:22",note:"appointing non-prophet as leader // Korach's rebellion"},"3":{k:"Ezekiel",b:"45:1",e:"45:15",note:"portion of kohen and levi"}};var Chukat={"1":{k:"Judges",b:"15:9",e:"15:20",note:"Samson gets miraculous water from split ground // splitting rock"},"2":{k:"Judges",b:"11:12",e:"11:27",note:"journey across Moav recalled"},"3":[{k:"II Kings",b:"18:1",e:"18:13",note:"Hezekiah destroys nachash n'choshet // Moses builds nachash n'choshet"},{k:"II Kings",b:"19:15",e:"19:19"}]};var Balak={"1":{k:"Micah",b:"6:1",e:"6:8",note:"events of Balak recalled"},"2":{k:"Micah",b:"5:1",e:"5:8",note:"she'erit Yaakov described // Bila'am's blessing"},"3":{k:"Joshua",b:"24:1",e:"24:14",note:"history mentions Balak"}};var Pinchas={"1":{k:"I Kings",b:"19:1",e:"19:16",note:"Elijah's zeal // Pinchas"},"2":[{k:"Joshua",b:"17:1",e:"17:6",note:"Bnot Tzlofhad"},{k:"Joshua",b:"17:17",e:"17:18"}],"3":{k:"Ezekiel",b:"46:1",e:"46:11",note:"sacrifices on Shabbat and holidays // detailed festival sacrifices"}};var Matot={"1":{k:"Jeremiah",b:"1:11",e:"2:3",note:"miztafon tipatach hara'ah"},"2":{k:"II Kings",b:"22:8",e:"22:19",note:"hinneni mevi ra'ah (Hezekiah's discovered book of Torah)"},"3":{k:"Jeremiah",b:"14:11",e:"14:22",note:"ki yatzumu, eineni shomea"}};var Masei={"1":[{k:"Jeremiah",b:"2:4",e:"2:13",note:"shtayim ra'ot asah ami"},{k:"Jeremiah",b:"4:1",e:"4:2"}],"2":[{k:"Jeremiah",b:"2:14",e:"2:28",note:"ra vamar ozvekh"},{k:"Jeremiah",b:"3:4",e:"3:4"}],"3":[{k:"I Kings",b:"9:2",e:"9:9",note:"l'mashal v'lishninah"},{k:"I Kings",b:"9:4",e:"9:5a"}]};var Eikev={"1":{k:"Isaiah",b:"49:14",e:"49:26",note:"ani moshiekh"},"2":{k:"Isaiah",b:"50:1",e:"51:3",note:"sason v'simcha yimatze"},"3":{k:"Zekhariah",b:"8:1",e:"8:8",note:"be'emet u-vitzdakah"}};var Shoftim={"1":[{k:"Isaiah",b:"51:12",e:"51:23",note:"anokhi anokhi"},{k:"Isaiah",b:"51:22",e:"51:22"}],"2":{k:"Isaiah",b:"52:1",e:"52:12",note:"uri uri"},"3":{k:"Isaiah",b:"44:24",e:"45:7",note:"l'ma'an avdi"}};var Nitzavim={"1":{k:"Isaiah",b:"61:10",e:"62:12",note:"sos asis"},"2":{k:"Isaiah",b:"63:1",e:"63:9",note:"tzaratam lo tzar"},"3":{k:"Isaiah",b:"65:16",e:"65:25",note:"terem yikrau ani e'eneh"}};var Vayeilech={"1":{k:"Isaiah",b:"61:10",e:"62:12",note:"sos asis"},"2":{k:"Isaiah",b:"63:1",e:"63:9",note:"tzaratam lo tzar"},"3":{k:"Isaiah",b:"65:16",e:"65:25",note:"terem yikrau ani e'eneh"}};var triennialHaft = {Bereshit:Bereshit,Noach:Noach,"Lech-Lecha":{"1":{k:"Judges",b:"6:24",e:"6:32",note:"Gideon smashes dad's idol // Abraham and Terach's idols (midrash)"},"2":{k:"Joshua",b:"10:1",e:"10:14",note:"battle of Giveon // battle of 4/5 kings"},"3":{k:"Isaiah",b:"41:8",e:"41:16",note:"Israel, Abraham's progeny // promise to Abraham"}},Vayera:Vayera,"Chayei Sara":{"1":{k:"Isaiah",b:"51:1",e:"51:11",note:"Sarah and Abraham as models"},"2":{k:"I Samuel",b:"14:1",e:"14:12",note:"Jonathan's sign // Eliezer's sign"},"3":{k:"I Kings",b:"1:11",e:"1:31",note:"David's old age // Abraham's"}},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":{"1":[{k:"Jeremiah",b:"17:19",e:"17:27",note:"re observance of Shabbat"},{k:"Jeremiah",b:"17:24",e:"17:25"}],"2":{k:"I Kings",b:"18:20",e:"18:39",note:"Elijah on Carmel // Golden Calf"},"3":{k:"Isaiah",b:"63:17",e:"64:8",note:"seeking forgiveness // Moses after Golden Calf"}},Vayakhel:Vayakhel,Pekudei:Pekudei,Vayikra:Vayikra,Tzav:Tzav,Shmini:Shmini,Tazria:Tazria,Metzora:Metzora,"Achrei Mot":{"1":{k:"Ezekiel",b:"22:1",e:"22:16",note:"abominations // arayot"},"2":{k:"Ezekiel",b:"20:2",e:"20:20",note:"abominations of Egypt // arayot"}},Kedoshim:Kedoshim,Emor:Emor,Behar:Behar,Bechukotai:Bechukotai,Bamidbar:Bamidbar,Nasso:Nasso,"Beha'alotcha":{"1":[{k:"Zekhariah",b:"3:1",e:"3:5",note:"Purifying kohen, Menorah // Menorah, purifying leviim"},{k:"Zekhariah",b:"4:1",e:"4:7"}],"2":[{k:"Joshua",b:"3:3",e:"3:8",note:"Ark leads in travel"},{k:"Joshua",b:"3:17",e:" 4:7"}],"3":{k:"II Kings",b:"20:1",e:"20:11",note:"Hezekiah healed thru prayer // Miriam"}},"Sh'lach":{"1":{k:"Joshua",b:"2:1",e:"2:11",note:"spies"},"2":{k:"Joshua",b:"14:6",e:"14:15",note:"Calev's reward"},"3":{k:"I Kings",b:"17:1",e:"17:16",note:"mkosheshet etzim // mkoshesh etzim"}},Korach:Korach,Chukat:Chukat,Balak:Balak,Pinchas:Pinchas,Matot:Matot,Masei:Masei,"Devarim - Isaiah 1:1-27, same as full kriyah":false,"Vaetchanan - Isaiah 40:1-26, same as full kriyah":false,Eikev:Eikev,"Re'eh":{"1":{k:"Isaiah",b:"54:11",e:"55:5**",note:"aniya soarah"},"2":{k:"Isaiah",b:"43:1",e:"43:10",note:"al tira ki g'altikha"},"3":{k:"Isaiah",b:"43:11",e:"43:20",note:"ami v'chiri"}},Shoftim:Shoftim,"Ki Teitzei":{"1":{k:"Isaiah",b:"54:1",e:"54:10",note:"roni akarah"},"2":{k:"Jeremiah",b:"33:1",e:"33:11",note:"kol sason v'kol simchah"},"3":[{k:"Isaiah",b:"48:12",e:"48:21",note:"goalekh k'dosh yisrael"},{k:"Isaiah",b:"4:20",e:"4:20"}]},"Ki Tavo":{"1":{k:"Isaiah",b:"60:1",e:"60:9",note:"kumi ori"},"2":{k:"Isaiah",b:"60:13",e:"60:22",note:"amekh kulam tzadikim"},"3":{k:"Zekhariah",b:"8:11",e:"8:22",note:"emet umishpat shalom"}},Nitzavim:Nitzavim,Vayeilech:Vayeilech,"Ha'Azinu":{"1":[{k:"II Samuel",b:"22:1",e:"22:1",note:"David // Moses' song"},{k:"II Samuel",b:"22:31",e:"22:51"}],"2":[{k:"II Samuel",b:"22:1",e:"22:1",note:"David //Moses' song"},{k:"II Samuel",b:"22:19",e:"22:31"}],"3":{k:"Joshua",b:"23:1",e:"23:11",note:"Joshua's farewell"}}};
985
+ var Bereshit={"1":{k:"Isaiah",b:"42:5",e:"42:21",note:"God identified as the creator // Creation"},"2":{k:"Isaiah",b:"40:25",e:"40:31",note:"God created, called by name // Eden"},"3":{k:"II Kings",b:"2:1",e:"2:13",note:"Elijah taken // Hanokh"}};var Noach={"1":{k:"Isaiah",b:"54:11",e:"55:5",note:"Storm tossed boat // Ark"},"2":{k:"Isaiah",b:"54:1",e:"54:10",note:"waters of Noah no more"},"3":{k:"Zephaniah",b:"3:9",e:"3:20",note:"one language // babel"}};var Vayera={"1":{k:"II Kings",b:"4:8",e:"4:17",note:"birth of promised child // promise to Sarah"},"2":{k:"II Kings",b:"6:8",e:"6:23",note:"blinding episode // Sodom"},"3":{k:"II Kings",b:"4:18",e:"4:36",note:"saving of child // akedah"}};var Toldot={"1":{k:"Malachi",b:"1:1",e:"1:14",note:"Jacob / Esau"},"2":{k:"II Samuel",b:"19:32",e:"19:40",note:"Barzilay infirm in old age // Isaac"},"3":[{k:"Judges",b:"3:15",e:"3:27",note:"Ehud's ploy // Jacob's ploy"},{k:"Judges",b:"3:30",e:"3:30"}]};var Vayetzei={"1":{k:"Hosea",b:"12:3",e:"12:14",note:"Jacob story"},"2":{k:"Zechariah",b:"1:7",e:"1:17",note:"striped horses //streaked sheep"},"3":{k:"I Samuel",b:"19:11",e:"19:18",note:"deceit / terafim / female wiles // Rachel hides terafim"}};var Vayishlach={"1":[{k:"Obadiah",b:"1:10",e:"1:18",note:"Jacob defeats Edom (Babylon) // Jacob meets Esau"},{k:"Obadiah",b:"1:21",e:"1:21"}],"2":{k:"Jeremiah",b:"30:10",e:"30:22",note:"Jacob will return, settle // Jacob's early settling in Shechem and Bet El"},"3":[{k:"Amos",b:"1:1",e:"1:1",note:"prophecy against Edom // genealogy of Edom"},{k:"Amos",b:"1:11",e:"2:3"}]};var Vayeshev={"1":[{k:"Amos",b:"2:6",e:"3:2",note:"reference to sale of righteous // sale of Joseph"},{k:"Amos",b:"3:7",e:"3:8"}],"2":{k:"I Samuel",b:"24:2",e:"24:15",note:"recognition of significant object David to Saul // Tamar to Judah"},"3":{k:"Judges",b:"7:9",e:"7:20",note:"Gideon dream interpretation // Joseph's in jail"}};var Miketz={"1":{k:"I Kings",b:"3:5",e:"3:15",note:"Solomon's dream // Pharaoh's dream"},"2":{k:"I Kings",b:"3:16",e:"4:1",note:"Solomon's wisdom // Joseph's"},"3":{k:"I Kings",b:"10:1",e:"10:9",note:"Solomon's wisdom and household // Joseph's"}};var Vayigash={"1":{k:"Ezekiel",b:"37:15",e:"37:28",note:"Judah and Joseph united"},"2":{k:"Zechariah",b:"10:3",e:"10:12",note:"Judah and Joseph, return from Egypt // J & J, brothers return to Jacob"},"3":{k:"Isaiah",b:"41:1",e:"41:10",note:"brother helps / Jacob not fear // Joseph settles his family in Goshen"}};var Vayechi={"1":{k:"Amos",b:"5:4",e:"5:15",note:"prophecy to remnants of Joseph // Joseph and kids"},"2":{k:"I Kings",b:"2:1",e:"2:12",note:"David's // Jacob's last speech"},"3":[{k:"II Samuel",b:"1:12",e:"1:12",note:"(lament over) deaths of Saul and Jonathan // deaths of Jacob, Joseph"},{k:"II Samuel",b:"1:17",e:"1:27"}]};var Shemot={"1":[{k:"Isaiah",b:"27:6",e:"27:13",note:"growth of Jacob / Israel // Israel in Egypt"},{k:"Isaiah",b:"29:22",e:"29:23"}],"2":[{k:"Joshua",b:"5:13",e:"6:5",note:"Joshua shoes off // burning bush"},{k:"Joshua",b:"6:15",e:"6:16"}],"3":[{k:"I Samuel",b:"9:15",e:"9:21",note:"anointing of Saul // Moses"},{k:"I Samuel",b:"9:27",e:"10:1"}]};var Vaera={"1":[{k:"Jeremiah",b:"1:1",e:"1:10",note:"appointment of Jeremiah // Moses"},{k:"Jeremiah",b:"1:8",e:"1:8"}],"2":[{k:"Ezekiel",b:"28:25",e:"29:12",note:"Speak to Pharaoh, show Egypt, strike Nile"},{k:"Ezekiel",b:"29:21",e:"29:21"}],"3":[{k:"Isaiah",b:"10:12",e:"10:12",note:"smite Assyria as Egypt"},{k:"Isaiah",b:"10:15",e:"10:26"},{k:"Isaiah",b:"10:32",e:"10:33"}]};var Bo={"1":{k:"Jeremiah",b:"10:1",e:"10:10",note:"goyim will fear signs from heaven // plagues"},"2":{k:"Jeremiah",b:"46:13",e:"46:28",note:"Egypt's fall / Israel's redemption // Exodus"},"3":{k:"II Samuel",b:"7:18",e:"7:29",note:"David recalls Exodus"}};var Beshalach={"1":{k:"Judges",b:"4:4",e:"4:24",note:"defeat of Sisera // defeat of Pharaoh"},"2":{k:"Judges",b:"5:1",e:"5:31",note:"Deborah's song // Moses' song of sea"},"3":[{k:"Joshua",b:"3:9",e:"3:17",note:"splitting Jordan, crossing on dry land // splitting Red Sea"},{k:"Joshua",b:"4:19",e:"4:24"}]};var Yitro={"1":{k:"Isaiah",b:"6:1",e:"6:13",note:"Isaiah's revelation of God // Moses' revelation at Sinai"},"2":{k:"Isaiah",b:"44:9",e:"44:23",note:"making idols to false god // you shall have no other Gods"},"3":{k:"Ezekiel",b:"16:4",e:"16:14",note:"Israel's birth / covenant / marriage(?) // revelation at Sinai"}};var Mishpatim={"1":[{k:"Jeremiah",b:"34:12",e:"34:22",note:"Jeremiah refers to the law that followed the covenant // Mishpatim"},{k:"Jeremiah",b:"33:25",e:"33:26"}],"2":{k:"I Samuel",b:"18:20",e:"18:28",note:"Michal's bride price // a law of Mishpatim"},"3":{k:"Joshua",b:"24:16",e:"24:28",note:"Joshua's covenant // na'aseh v'nishma"}};var Terumah={"1":{k:"Zechariah",b:"2:5",e:"2:17",note:"God's presence in Israelvshakhanti b'tokhekh"},"2":{k:"I Kings",b:"6:1",e:"6:13",note:"Temple // Tabernacle"},"3":{k:"II Samuel",b:"7:1",e:"7:16",note:"Temple // Tabernacle"}};var Tetzaveh={"1":{k:"Ezekiel",b:"43:10",e:"43:17",note:"Temple // Tabernacle"},"2":{k:"Haggai",b:"1:1",e:"1:12",note:"T / T"},"3":{k:"Haggai",b:"2:1",e:"2:9",note:"T / T"}};var Vayakhel={"1":{k:"I Kings",b:"7:40",e:"7:50",note:"T / T"},"2":{k:"I Kings",b:"7:13",e:"7:26",note:"T / T"},"3":{k:"Ezekiel",b:"43:1",e:"43:9",note:"T / T"}};var Pekudei={"1":{k:"I Kings",b:"8:1",e:"8:11",note:"T / T"},"2":{k:"I Kings",b:"8:10",e:"8:21",note:"T / T"},"3":{k:"I Kings",b:"8:22",e:"8:39",note:"T / T"}};var Vayikra={"1":{k:"Isaiah",b:"43:21",e:"44:8",note:"sacrifices"},"2":{k:"I Samuel",b:"2:13",e:"2:26",note:"misbehaving kohanim // if a priest sins"},"3":{k:"Malachi",b:"2:13",e:"3:4",note:"sinfulness ruins offering // sin offerings"}};var Tzav={"1":[{k:"Jeremiah",b:"7:21",e:"7:28",note:"justice over sacrifices // sacrifices at Tabernacle"},{k:"Jeremiah",b:"9:22",e:"9:23"}],"2":{k:"Jeremiah",b:"33:14",e:"33:22",note:"priests offer sacrifices // sacrifices at Tabernacle"},"3":{k:"Ezekiel",b:"42:13",e:"42:20",note:"priestly precincts / clothes // priestly vestments"}};var Shmini={"1":{k:"II Samuel",b:"6:1",e:"6:15",note:"Uzza struck down // Nadav and Avihu"},"2":{k:"Ezekiel",b:"43:18",e:"43:27",note:"8th day sacrifices"},"3":{k:"Hosea",b:"9:1",e:"9:9",note:"Israel has eaten non-kosher // kashrut rules"}};var Tazria={"1":{k:"Isaiah",b:"46:3",e:"46:13",note:"since birth // birth"},"2":{k:"Jeremiah",b:"30:1",e:"30:9",note:"im yoled zakhar // v'yaldah zakhar"}};var Metzora={"1":{k:"II Kings",b:"5:1",e:"5:14",note:"Healing of a leper"},"2":{k:"II Kings",b:"7:3",e:"7:16",note:"4 lepers discover Aram's flight"},"3":{k:"II Kings",b:"5:20",e:"5:27",note:"Gechazi gets leprosy"}};var Kedoshim={"1":{k:"Isaiah",b:"61:1",e:"61:9",note:"you shall be called Priests // kedoshim"},"2":{k:"Amos",b:"9:7",e:"9:15",note:"opposite of chosenness"},"3":{k:"Hosea",b:"4:1",e:"4:15",note:"opposite of holiness / niuf // kedoshim, arayot"}};var Emor={"1":{k:"Ezekiel",b:"44:15",e:"44:24",note:"the conduct of kohanim"},"2":[{k:"Malachi",b:"2:1",e:"2:10",note:"conduct of kohanim / chillul hashem // particularly vs. 22:31-32"},{k:"Malachi",b:"2:7",e:"2:7"}],"3":[{k:"Nachum",b:"1:1",e:"1:7",note:"Judah shall observe its festivals // complete festival calendar"},{k:"Nachum",b:"2:1",e:"2:3"},{k:"Nachum",b:"2:2b",e:"2:3a"}]};var Behar={"1":{k:"Jeremiah",b:"32:6",e:"32:15",note:"land redemption // shmittah"},"2":{k:"Jeremiah",b:"32:16",e:"32:27",note:"prayerwill Israel ever redeem its land // shmittah"}};var Bechukotai={"1":{k:"Jeremiah",b:"17:1",e:"17:14",note:"blessings and curses // tokhechah"},"2":[{k:"Jeremiah",b:"16:9",e:"16:15",note:"desolation and redemption // tokhechah"},{k:"Jeremiah",b:"16:19",e:"16:21"}],"3":{k:"Malachi",b:"3:5",e:"3:12",note:"curses and blessings // tokhechah"}};var Bamidbar={"1":[{k:"Hosea",b:"2:1",e:"2:7",note:"number, lead thru desert as after Egypt // census, desert wanderings"},{k:"Hosea",b:"2:16",e:"2:22"}],"2":{k:"Isaiah",b:"63:7",e:"63:16",note:"God carries us as in desert // desert wanderings"},"3":[{k:"Joshua",b:"8:30",e:"8:35",note:"kohanim who carried the ark // korachites"},{k:"Joshua",b:"8:33",e:"8:33"}]};var Nasso={"1":[{k:"Joshua",b:"6:5",e:"6:14",note:"kohanim carrying ark // gershunites and merarites"},{k:"Joshua",b:"6:12",e:"6:12"}],"2":[{k:"Judges",b:"13:2",e:"13:14",note:"Samson // nazirite rules"},{k:"Judges",b:"13:24",e:"13:25"}],"3":[{k:"Joel",b:"1:8",e:"1:13",note:"end of sacrifices, hope for restart // dedication of Tabernacle"},{k:"Joel",b:"2:12",e:"2:14"}]};var Korach={"1":{k:"I Samuel",b:"12:1",e:"12:13",note:"Samuel's apologia references Moses leadership // Moses'"},"2":{k:"I Samuel",b:"12:13",e:"12:22",note:"appointing non-prophet as leader // Korach's rebellion"},"3":{k:"Ezekiel",b:"45:1",e:"45:15",note:"portion of kohen and levi"}};var Chukat={"1":{k:"Judges",b:"15:9",e:"15:20",note:"Samson gets miraculous water from split ground // splitting rock"},"2":{k:"Judges",b:"11:12",e:"11:27",note:"journey across Moav recalled"},"3":[{k:"II Kings",b:"18:1",e:"18:13",note:"Hezekiah destroys nachash n'choshet // Moses builds nachash n'choshet"},{k:"II Kings",b:"19:15",e:"19:19"}]};var Balak={"1":{k:"Micah",b:"6:1",e:"6:8",note:"events of Balak recalled"},"2":{k:"Micah",b:"5:1",e:"5:8",note:"she'erit Yaakov described // Bila'am's blessing"},"3":{k:"Joshua",b:"24:1",e:"24:14",note:"history mentions Balak"}};var Pinchas={"1":{k:"I Kings",b:"19:1",e:"19:16",note:"Elijah's zeal // Pinchas"},"2":[{k:"Joshua",b:"17:1",e:"17:6",note:"Bnot Tzlofhad"},{k:"Joshua",b:"17:17",e:"17:18"}],"3":{k:"Ezekiel",b:"46:1",e:"46:11",note:"sacrifices on Shabbat and holidays // detailed festival sacrifices"}};var Matot={"1":{k:"Jeremiah",b:"1:11",e:"2:3",note:"miztafon tipatach hara'ah"},"2":{k:"II Kings",b:"22:8",e:"22:19",note:"hinneni mevi ra'ah (Hezekiah's discovered book of Torah)"},"3":{k:"Jeremiah",b:"14:11",e:"14:22",note:"ki yatzumu, eineni shomea"}};var Masei={"1":[{k:"Jeremiah",b:"2:4",e:"2:13",note:"shtayim ra'ot asah ami"},{k:"Jeremiah",b:"4:1",e:"4:2"}],"2":[{k:"Jeremiah",b:"2:14",e:"2:28",note:"ra vamar ozvekh"},{k:"Jeremiah",b:"3:4",e:"3:4"}],"3":[{k:"I Kings",b:"9:2",e:"9:9",note:"l'mashal v'lishninah"},{k:"I Kings",b:"9:4",e:"9:5a"}]};var Eikev={"1":{k:"Isaiah",b:"49:14",e:"49:26",note:"ani moshiekh"},"2":{k:"Isaiah",b:"50:1",e:"51:3",note:"sason v'simcha yimatze"},"3":{k:"Zechariah",b:"8:1",e:"8:8",note:"be'emet u-vitzdakah"}};var Shoftim={"1":[{k:"Isaiah",b:"51:12",e:"51:23",note:"anokhi anokhi"},{k:"Isaiah",b:"51:22",e:"51:22"}],"2":{k:"Isaiah",b:"52:1",e:"52:12",note:"uri uri"},"3":{k:"Isaiah",b:"44:24",e:"45:7",note:"l'ma'an avdi"}};var Nitzavim={"1":{k:"Isaiah",b:"61:10",e:"62:12",note:"sos asis"},"2":{k:"Isaiah",b:"63:1",e:"63:9",note:"tzaratam lo tzar"},"3":{k:"Isaiah",b:"65:16",e:"65:25",note:"terem yikrau ani e'eneh"}};var Vayeilech={"1":{k:"Isaiah",b:"61:10",e:"62:12",note:"sos asis"},"2":{k:"Isaiah",b:"63:1",e:"63:9",note:"tzaratam lo tzar"},"3":{k:"Isaiah",b:"65:16",e:"65:25",note:"terem yikrau ani e'eneh"}};var _holidays={"Pesach I":{k:"Joshua",b:"5:2",e:"5:12"},"Pesach I (on Shabbat)":{k:"Joshua",b:"5:2",e:"5:12"},"Pesach II":[{k:"II Kings",b:"23:1",e:"23:9"},{k:"II Kings",b:"23:21",e:"23:23"}],"Pesach VII":{k:"II Samuel",b:"22:1",e:"22:19"},"Pesach VII (on Shabbat)":{k:"II Samuel",b:"22:1",e:"22:19"},"Pesach VIII":[{k:"Isaiah",b:"11:1",e:"11:12"},{k:"Isaiah",b:"11:16",e:"11:16"}],"Pesach VIII (on Shabbat)":[{k:"Isaiah",b:"11:1",e:"11:12"},{k:"Isaiah",b:"11:16",e:"11:16"}],"Shavuot II":[{k:"Habakkuk",b:"3:1",e:"3:13"},{k:"Habakkuk",b:"3:18",e:"3:19"}],"Shavuot II (on Shabbat)":[{k:"Habakkuk",b:"3:1",e:"3:13"},{k:"Habakkuk",b:"3:18",e:"3:19"}],"Rosh Hashana II":{k:"Jeremiah",b:"31:2",e:"31:20"},"Yom Kippur":{k:"Isaiah",b:"58:1",e:"58:14"},"Yom Kippur (on Shabbat)":{k:"Isaiah",b:"58:1",e:"58:14"},"Yom Kippur (Mincha, Traditional)":[{k:"Jonah",b:"1:1",e:"4:11"},{k:"Micah",b:"7:18",e:"7:20"}],"Yom Kippur (Mincha, Alternate)":[{k:"Jonah",b:"1:1",e:"4:11"},{k:"Micah",b:"7:18",e:"7:20"}],"Sukkot I":[{k:"Zechariah",b:"14:1",e:"14:9"},{k:"Zechariah",b:"14:16",e:"14:21"}],"Sukkot I (on Shabbat)":[{k:"Zechariah",b:"14:1",e:"14:9"},{k:"Zechariah",b:"14:16",e:"14:21"}],"Sukkot II":{k:"I Kings",b:"8:2",e:"8:13"},"Sukkot Shabbat Chol ha-Moed":{k:"Ezekiel",b:"38:18",e:"39:7"},"Simchat Torah":{k:"Joshua",b:"1:1",e:"1:9"},"Shabbat Chanukah":{k:"Zechariah",b:"3:6",e:"4:7"},"Shabbat Rosh Chodesh Chanukah":{k:"Zechariah",b:"3:6",e:"4:7"},"Shabbat HaChodesh":{k:"Ezekiel",b:"45:16",e:"45:25"},"Shabbat HaChodesh (on Rosh Chodesh)":{k:"Ezekiel",b:"45:16",e:"45:25"},"Shabbat HaGadol":[{k:"Malachi",b:"3:13",e:"3:24"},{k:"Malachi",b:"3:23",e:"3:23"}],"Shabbat Nachamu":{k:"Isaiah",b:"40:1",e:"40:26"},"Shabbat Parah":{k:"Ezekiel",b:"36:16",e:"36:38"},"Shabbat Shekalim":{k:"II Kings",b:"12:1",e:"12:17"},"Shabbat Shekalim (on Rosh Chodesh)":{k:"II Kings",b:"12:1",e:"12:17"},"Shabbat Shuva":[{k:"Hosea",b:"14:2",e:"14:10"},{k:"Micah",b:"7:18",e:"7:20"}],"Shabbat Shuva (alt)":{k:"Joel",b:"2:15",e:"2:27"},"Shabbat Zachor":{k:"I Samuel",b:"15:2",e:"15:34"},"Shabbat Rosh Chodesh":[{k:"Isaiah",b:"66:1",e:"66:14"},{k:"Isaiah",b:"66:22",e:"66:24"},{k:"Isaiah",b:"66:23",e:"66:23"}]};var triennialHaft = {Bereshit:Bereshit,Noach:Noach,"Lech-Lecha":{"1":{k:"Judges",b:"6:24",e:"6:32",note:"Gideon smashes dad's idol // Abraham and Terach's idols (midrash)"},"2":{k:"Joshua",b:"10:1",e:"10:14",note:"battle of Giveon // battle of 4/5 kings"},"3":{k:"Isaiah",b:"41:8",e:"41:16",note:"Israel, Abraham's progeny // promise to Abraham"}},Vayera:Vayera,"Chayei Sara":{"1":{k:"Isaiah",b:"51:1",e:"51:11",note:"Sarah and Abraham as models"},"2":{k:"I Samuel",b:"14:1",e:"14:12",note:"Jonathan's sign // Eliezer's sign"},"3":{k:"I Kings",b:"1:11",e:"1:31",note:"David's old age // Abraham's"}},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":{"1":[{k:"Jeremiah",b:"17:19",e:"17:27",note:"re observance of Shabbat"},{k:"Jeremiah",b:"17:24",e:"17:25"}],"2":{k:"I Kings",b:"18:20",e:"18:39",note:"Elijah on Carmel // Golden Calf"},"3":{k:"Isaiah",b:"63:17",e:"64:8",note:"seeking forgiveness // Moses after Golden Calf"}},Vayakhel:Vayakhel,Pekudei:Pekudei,Vayikra:Vayikra,Tzav:Tzav,Shmini:Shmini,Tazria:Tazria,Metzora:Metzora,"Achrei Mot":{"1":{k:"Ezekiel",b:"22:1",e:"22:16",note:"abominations // arayot"},"2":{k:"Ezekiel",b:"20:2",e:"20:20",note:"abominations of Egypt // arayot"}},Kedoshim:Kedoshim,Emor:Emor,Behar:Behar,Bechukotai:Bechukotai,Bamidbar:Bamidbar,Nasso:Nasso,"Beha'alotcha":{"1":[{k:"Zechariah",b:"3:1",e:"3:5",note:"Purifying kohen, Menorah // Menorah, purifying leviim"},{k:"Zechariah",b:"4:1",e:"4:7"}],"2":[{k:"Joshua",b:"3:3",e:"3:8",note:"Ark leads in travel"},{k:"Joshua",b:"3:17",e:" 4:7"}],"3":{k:"II Kings",b:"20:1",e:"20:11",note:"Hezekiah healed thru prayer // Miriam"}},"Sh'lach":{"1":{k:"Joshua",b:"2:1",e:"2:11",note:"spies"},"2":{k:"Joshua",b:"14:6",e:"14:15",note:"Calev's reward"},"3":{k:"I Kings",b:"17:1",e:"17:16",note:"mkosheshet etzim // mkoshesh etzim"}},Korach:Korach,Chukat:Chukat,Balak:Balak,Pinchas:Pinchas,Matot:Matot,Masei:Masei,"Devarim - Isaiah 1:1-27, same as full kriyah":false,"Vaetchanan - Isaiah 40:1-26, same as full kriyah":false,Eikev:Eikev,"Re'eh":{"1":{k:"Isaiah",b:"54:11",e:"55:5**",note:"aniya soarah"},"2":{k:"Isaiah",b:"43:1",e:"43:10",note:"al tira ki g'altikha"},"3":{k:"Isaiah",b:"43:11",e:"43:20",note:"ami v'chiri"}},Shoftim:Shoftim,"Ki Teitzei":{"1":{k:"Isaiah",b:"54:1",e:"54:10",note:"roni akarah"},"2":{k:"Jeremiah",b:"33:1",e:"33:11",note:"kol sason v'kol simchah"},"3":[{k:"Isaiah",b:"48:12",e:"48:21",note:"goalekh k'dosh yisrael"},{k:"Isaiah",b:"4:20",e:"4:20"}]},"Ki Tavo":{"1":{k:"Isaiah",b:"60:1",e:"60:9",note:"kumi ori"},"2":{k:"Isaiah",b:"60:13",e:"60:22",note:"amekh kulam tzadikim"},"3":{k:"Zechariah",b:"8:11",e:"8:22",note:"emet umishpat shalom"}},Nitzavim:Nitzavim,Vayeilech:Vayeilech,"Ha'Azinu":{"1":[{k:"II Samuel",b:"22:1",e:"22:1",note:"David // Moses' song"},{k:"II Samuel",b:"22:31",e:"22:51"}],"2":[{k:"II Samuel",b:"22:1",e:"22:1",note:"David //Moses' song"},{k:"II Samuel",b:"22:19",e:"22:31"}],"3":{k:"Joshua",b:"23:1",e:"23:11",note:"Joshua's farewell"}},"Tish'a B'Av":{"1":[{k:"Jeremiah",b:"8:13",e:"8:23"},{k:"Jeremiah",b:"9:23",e:"9:23"}],"2":[{k:"Jeremiah",b:"9:1",e:"9:10"},{k:"Jeremiah",b:"9:23",e:"9:23"}],"3":{k:"Jeremiah",b:"9:11",e:"9:23"}},_holidays:_holidays};
986
986
 
987
987
  /**
988
988
  * Represents triennial aliyot for a given date
@@ -1390,29 +1390,72 @@ function getTriennialForParshaHaShavua(ev, context = false) {
1390
1390
  if (context) {
1391
1391
  reading.yearNum = yearNum;
1392
1392
  reading.aliyot = aliyotMap;
1393
- /*
1394
- * INSTRUCTIONS REGARDING DOUBLE PARSHIYOT
1395
- * In any 3 year sequence, in some years these parshiyot are read together
1396
- * and in some they are read separately. When separated: read the next haftarah
1397
- * of the parashah being read. When together: when reading the first third,
1398
- * read the next haftarah of the first parashah, when reading the latter
1399
- * two thirds, read the next haftarah of the latter parashah
1400
- */
1401
-
1402
- const triHaft = parsha.length === 1 ? triennialHaft[name] : yearNum === 0 ? triennialHaft[p1] : triennialHaft[parsha[1]];
1403
- const triHaft2 = triHaft && triHaft[yearNum + 1];
1404
-
1405
- if (typeof triHaft2 === 'object') {
1406
- const haft = reading.haft = cloneHaftara(triHaft2);
1407
- reading.haftara = makeHaftaraSummary(haft);
1408
- reading.haftaraNumV = calculateHaftaraNumV(haft);
1409
- }
1410
-
1393
+ const triHaft = getTriennialHaftara(parsha, yearNum);
1394
+ shallowCopy(reading, triHaft);
1411
1395
  return reading;
1412
1396
  }
1413
1397
 
1414
1398
  return aliyotMap;
1415
1399
  }
1400
+ /**
1401
+ * Looks up the alternative triennial Haftara for a given parsha
1402
+ *
1403
+ * INSTRUCTIONS REGARDING DOUBLE PARSHIYOT
1404
+ *
1405
+ * In any 3 year sequence, in some years these parshiyot are read together
1406
+ * and in some they are read separately.
1407
+ * When separated: read the next haftarah of the parashah being read.
1408
+ * When together: when reading the first third, read the next haftarah
1409
+ * of the first parashah, when reading the latter two thirds, read the
1410
+ * next haftarah of the latter parashah
1411
+ * @private
1412
+ * @param {string[]} parsha
1413
+ * @param {number} yearNum 0, 1, or 2
1414
+ * @return {Object}
1415
+ */
1416
+
1417
+ function getTriennialHaftara(parsha, yearNum) {
1418
+ const idx = parsha.length === 1 || yearNum === 0 ? 0 : 1;
1419
+ const name = parsha[idx];
1420
+ const triHaft = triennialHaft[name];
1421
+ const triHaft2 = triHaft && triHaft[yearNum + 1];
1422
+
1423
+ if (typeof triHaft2 === 'object') {
1424
+ const haft = cloneHaftara(triHaft2);
1425
+ return {
1426
+ haft: haft,
1427
+ haftara: makeHaftaraSummary(haft),
1428
+ haftaraNumV: calculateHaftaraNumV(haft)
1429
+ };
1430
+ }
1431
+
1432
+ return {};
1433
+ }
1434
+ /**
1435
+ * Looks up the alternative triennial Haftara for a holiday
1436
+ * @param {string} key
1437
+ * @param {number} yearNum
1438
+ * @return {Object}
1439
+ */
1440
+
1441
+ function getTriennialHaftaraForHoliday(key, yearNum) {
1442
+ if (key === 'Tish\'a B\'Av') {
1443
+ return getTriennialHaftara([key], yearNum);
1444
+ }
1445
+
1446
+ const triHaft2 = triennialHaft._holidays[key];
1447
+
1448
+ if (typeof triHaft2 === 'object') {
1449
+ const haft = cloneHaftara(triHaft2);
1450
+ return {
1451
+ haft: haft,
1452
+ haftara: makeHaftaraSummary(haft),
1453
+ haftaraNumV: calculateHaftaraNumV(haft)
1454
+ };
1455
+ }
1456
+
1457
+ return undefined;
1458
+ }
1416
1459
 
1417
1460
  const fmt = new Intl.DateTimeFormat('en-US', {
1418
1461
  year: 'numeric',
@@ -1500,30 +1543,54 @@ function writeTriennialEvent(stream, ev) {
1500
1543
  return;
1501
1544
  }
1502
1545
 
1503
- const isParsha = ev.getFlags() === core.flags.PARSHA_HASHAVUA;
1504
- const reading0 = isParsha ? getTriennialForParshaHaShavua(ev) : getLeyningForHoliday(ev, false);
1505
-
1506
- if (!reading0) {
1507
- return;
1546
+ if (ev.getFlags() === core.flags.PARSHA_HASHAVUA) {
1547
+ writeTriennialEventParsha(stream, ev);
1548
+ } else {
1549
+ writeTriennialEventHoliday(stream, ev);
1508
1550
  }
1551
+ }
1552
+ /**
1553
+ * @private
1554
+ * @param {fs.WriteStream} stream
1555
+ * @param {Event} ev
1556
+ */
1509
1557
 
1510
- let reading;
1558
+ function writeTriennialEventHoliday(stream, ev) {
1559
+ const il = false;
1560
+ const reading = getLeyningForHoliday(ev, il);
1511
1561
 
1512
- if (isParsha) {
1513
- const fk = getLeyningForParshaHaShavua(ev, false);
1514
- reading = {
1515
- haftara: fk.haftara,
1516
- haftaraNumV: fk.haftaraNumV,
1517
- sephardic: fk.sephardic,
1518
- sephardicNumV: fk.sephardicNumV,
1519
- reason: fk.reason,
1520
- fullkriyah: reading0
1521
- };
1522
- } else {
1523
- reading = reading0;
1562
+ if (reading) {
1563
+ const key = getLeyningKeyForEvent(ev, il);
1564
+ const year = ev.getDate().getFullYear();
1565
+ const yearNum = Triennial.getYearNumber(year) - 1;
1566
+ const triHaft = getTriennialHaftaraForHoliday(key, yearNum);
1567
+
1568
+ if (triHaft) {
1569
+ reading.triHaftara = triHaft.haftara;
1570
+ reading.triHaftaraNumV = triHaft.haftaraNumV;
1571
+ }
1572
+
1573
+ writeCsvLines(stream, ev, reading, il, false);
1524
1574
  }
1575
+ }
1576
+ /**
1577
+ * @private
1578
+ * @param {fs.WriteStream} stream
1579
+ * @param {Event} ev
1580
+ */
1581
+
1582
+
1583
+ function writeTriennialEventParsha(stream, ev) {
1584
+ const triReading = getTriennialForParshaHaShavua(ev, true);
1525
1585
 
1526
- writeCsvLines(stream, ev, reading, false);
1586
+ if (triReading) {
1587
+ const il = false;
1588
+ const reading = getLeyningForParshaHaShavua(ev, il);
1589
+ reading.fullkriyah = triReading.aliyot;
1590
+ reading.triHaftara = triReading.haftara;
1591
+ reading.triHaftaraNumV = triReading.haftaraNumV;
1592
+ writeCsvLines(stream, ev, reading, il, true);
1593
+ }
1527
1594
  }
1528
1595
  /**
1529
1596
  * @private
@@ -1531,6 +1598,7 @@ function writeTriennialEvent(stream, ev) {
1531
1598
  * @return {boolean}
1532
1599
  */
1533
1600
 
1601
+
1534
1602
  function ignore(ev) {
1535
1603
  const mask = ev.getFlags();
1536
1604
 
@@ -1560,11 +1628,9 @@ function writeFullKriyahEvent(stream, ev, il) {
1560
1628
  const isParsha = ev.getFlags() === core.flags.PARSHA_HASHAVUA;
1561
1629
  const reading = isParsha ? getLeyningForParshaHaShavua(ev, il) : getLeyningForHoliday(ev, il);
1562
1630
 
1563
- if (!reading) {
1564
- return;
1631
+ if (reading) {
1632
+ writeCsvLines(stream, ev, reading, il, isParsha);
1565
1633
  }
1566
-
1567
- writeCsvLines(stream, ev, reading, il);
1568
1634
  }
1569
1635
  /**
1570
1636
  * @private
@@ -1572,10 +1638,10 @@ function writeFullKriyahEvent(stream, ev, il) {
1572
1638
  * @param {Event} ev
1573
1639
  * @param {Leyning} reading
1574
1640
  * @param {boolean} il
1641
+ * @param {boolean} isParsha
1575
1642
  */
1576
1643
 
1577
- function writeCsvLines(stream, ev, reading, il) {
1578
- const isParsha = ev.getFlags() === core.flags.PARSHA_HASHAVUA;
1644
+ function writeCsvLines(stream, ev, reading, il, isParsha) {
1579
1645
  const parsha = isParsha ? ev.basename() : getLeyningKeyForEvent(ev, il) || ev.render();
1580
1646
  const date = fmtDate(ev.getDate().greg());
1581
1647
  const lines = getFullKriyahLines(reading);
@@ -1635,6 +1701,11 @@ function getFullKriyahLines(reading) {
1635
1701
  lines.push(['Haftara for Sephardim', sephardic, reading.sephardicNumV || '']);
1636
1702
  }
1637
1703
 
1704
+ if (reading.triHaftara) {
1705
+ const haftara = reading.triHaftara.replace(/,/g, ';');
1706
+ lines.push(['Alternate Haftara', haftara, reading.triHaftaraNumV || '']);
1707
+ }
1708
+
1638
1709
  return lines;
1639
1710
  }
1640
1711
 
@@ -1657,7 +1728,10 @@ exports.getLeyningForParshaHaShavua = getLeyningForParshaHaShavua;
1657
1728
  exports.getLeyningKeyForEvent = getLeyningKeyForEvent;
1658
1729
  exports.getTriennial = getTriennial;
1659
1730
  exports.getTriennialForParshaHaShavua = getTriennialForParshaHaShavua;
1731
+ exports.getTriennialHaftaraForHoliday = getTriennialHaftaraForHoliday;
1732
+ exports.hasFestival = hasFestival;
1660
1733
  exports.holidayReadings = festivals;
1734
+ exports.lookupFestival = lookupFestival;
1661
1735
  exports.makeHaftaraSummary = makeHaftaraSummary;
1662
1736
  exports.makeLeyningParts = makeLeyningParts;
1663
1737
  exports.makeLeyningSummary = makeLeyningSummary;