@hebcal/leyning 4.14.5 → 4.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -80,6 +80,12 @@ for (const [num, aliyah] of Object.entries(triReading)) {
80
80
  <dd><p>Makes Sefaria links by adding <code>href</code>, <code>verses</code> and <code>num</code> attributes to each aliyah.
81
81
  CAUTION: Modifies the <code>aliyot</code> parameter instead of making a copy.</p>
82
82
  </dd>
83
+ <dt><a href="#formatAliyahWithBook">formatAliyahWithBook(a)</a> ⇒ <code>string</code></dt>
84
+ <dd><p>Formats an aliyah object like &quot;Numbers 28:9-28:15&quot;</p>
85
+ </dd>
86
+ <dt><a href="#formatAliyahShort">formatAliyahShort(aliyah, showBook)</a> ⇒ <code>string</code></dt>
87
+ <dd><p>Formats an aliyah object like &quot;Numbers 28:9-15&quot;</p>
88
+ </dd>
83
89
  <dt><a href="#getLeyningKeyForEvent">getLeyningKeyForEvent(e, [il])</a> ⇒ <code>string</code></dt>
84
90
  <dd><p>Based on the event date, type and title, finds the relevant leyning key</p>
85
91
  </dd>
@@ -90,7 +96,7 @@ of full kriyah aliyot, special Maftir, special Haftarah</p>
90
96
  <dt><a href="#makeLeyningSummary">makeLeyningSummary(aliyot)</a> ⇒ <code>string</code></dt>
91
97
  <dd><p>Makes a summary of the leyning, like &quot;Genesis 6:9-11:32&quot;</p>
92
98
  </dd>
93
- <dt><a href="#getLeyningForHolidayKey">getLeyningForHolidayKey(key)</a> ⇒ <code><a href="#Leyning">Leyning</a></code></dt>
99
+ <dt><a href="#getLeyningForHolidayKey">getLeyningForHolidayKey(key, [cholHaMoedDay])</a> ⇒ <code><a href="#Leyning">Leyning</a></code></dt>
94
100
  <dd><p>Looks up leyning for a given holiday key. Key should be an
95
101
  (untranslated) string used in holiday-readings.json. Returns some
96
102
  of full kriyah aliyot, special Maftir, special Haftarah</p>
@@ -101,12 +107,6 @@ of full kriyah aliyot, special Maftir, special Haftarah</p>
101
107
  <dt><a href="#getLeyningForParshaHaShavua">getLeyningForParshaHaShavua(ev, [il])</a> ⇒ <code><a href="#Leyning">Leyning</a></code></dt>
102
108
  <dd><p>Looks up leyning for a regular Shabbat parsha.</p>
103
109
  </dd>
104
- <dt><a href="#formatAliyahWithBook">formatAliyahWithBook(a)</a> ⇒ <code>string</code></dt>
105
- <dd><p>Formats an aliyah object like &quot;Numbers 28:9-28:15&quot;</p>
106
- </dd>
107
- <dt><a href="#formatAliyahShort">formatAliyahShort(aliyah, showBook)</a> ⇒ <code>string</code></dt>
108
- <dd><p>Formats an aliyah object like &quot;Numbers 28:9-15&quot;</p>
109
- </dd>
110
110
  <dt><a href="#getTriennial">getTriennial(year)</a> ⇒ <code><a href="#Triennial">Triennial</a></code></dt>
111
111
  <dd><p>Calculates the 3-year readings for a given year</p>
112
112
  </dd>
@@ -218,6 +218,29 @@ CAUTION: Modifies the `aliyot` parameter instead of making a copy.
218
218
  | aliyot | <code>Object.&lt;string, Aliyah&gt;</code> | aliyah map to decorate |
219
219
  | showBook | <code>boolean</code> | display the book name in the `verses` field (e.g. for special Maftir) |
220
220
 
221
+ <a name="formatAliyahWithBook"></a>
222
+
223
+ ## formatAliyahWithBook(a) ⇒ <code>string</code>
224
+ Formats an aliyah object like "Numbers 28:9-28:15"
225
+
226
+ **Kind**: global function
227
+
228
+ | Param | Type | Description |
229
+ | --- | --- | --- |
230
+ | a | [<code>Aliyah</code>](#Aliyah) | aliyah |
231
+
232
+ <a name="formatAliyahShort"></a>
233
+
234
+ ## formatAliyahShort(aliyah, showBook) ⇒ <code>string</code>
235
+ Formats an aliyah object like "Numbers 28:9-15"
236
+
237
+ **Kind**: global function
238
+
239
+ | Param | Type |
240
+ | --- | --- |
241
+ | aliyah | [<code>Aliyah</code>](#Aliyah) |
242
+ | showBook | <code>boolean</code> |
243
+
221
244
  <a name="getLeyningKeyForEvent"></a>
222
245
 
223
246
  ## getLeyningKeyForEvent(e, [il]) ⇒ <code>string</code>
@@ -258,7 +281,7 @@ Makes a summary of the leyning, like "Genesis 6:9-11:32"
258
281
 
259
282
  <a name="getLeyningForHolidayKey"></a>
260
283
 
261
- ## getLeyningForHolidayKey(key) ⇒ [<code>Leyning</code>](#Leyning)
284
+ ## getLeyningForHolidayKey(key, [cholHaMoedDay]) ⇒ [<code>Leyning</code>](#Leyning)
262
285
  Looks up leyning for a given holiday key. Key should be an
263
286
  (untranslated) string used in holiday-readings.json. Returns some
264
287
  of full kriyah aliyot, special Maftir, special Haftarah
@@ -269,6 +292,7 @@ of full kriyah aliyot, special Maftir, special Haftarah
269
292
  | Param | Type | Description |
270
293
  | --- | --- | --- |
271
294
  | key | <code>string</code> | name from `holiday-readings.json` to find |
295
+ | [cholHaMoedDay] | <code>number</code> | |
272
296
 
273
297
  <a name="getLeyningForParsha"></a>
274
298
 
@@ -299,29 +323,6 @@ Looks up leyning for a regular Shabbat parsha.
299
323
  | ev | <code>Event</code> | | the Hebcal event associated with this leyning |
300
324
  | [il] | <code>boolean</code> | <code>false</code> | in Israel |
301
325
 
302
- <a name="formatAliyahWithBook"></a>
303
-
304
- ## formatAliyahWithBook(a) ⇒ <code>string</code>
305
- Formats an aliyah object like "Numbers 28:9-28:15"
306
-
307
- **Kind**: global function
308
-
309
- | Param | Type | Description |
310
- | --- | --- | --- |
311
- | a | [<code>Aliyah</code>](#Aliyah) | aliyah |
312
-
313
- <a name="formatAliyahShort"></a>
314
-
315
- ## formatAliyahShort(aliyah, showBook) ⇒ <code>string</code>
316
- Formats an aliyah object like "Numbers 28:9-15"
317
-
318
- **Kind**: global function
319
-
320
- | Param | Type |
321
- | --- | --- |
322
- | aliyah | [<code>Aliyah</code>](#Aliyah) |
323
- | showBook | <code>boolean</code> |
324
-
325
326
  <a name="getTriennial"></a>
326
327
 
327
328
  ## getTriennial(year) ⇒ [<code>Triennial</code>](#Triennial)
@@ -346,14 +347,6 @@ Looks up the triennial leyning for this Parashat HaShavua
346
347
  | ev | <code>Event</code> | | |
347
348
  | [context] | <code>boolean</code> | <code>false</code> | returns a reading wrapper object which includes `date`, `yearNum` and `aliyot` |
348
349
 
349
- <a name="getTriennialForParshaHaShavua..reason"></a>
350
-
351
- ### getTriennialForParshaHaShavua~reason
352
- **Kind**: inner constant of [<code>getTriennialForParshaHaShavua</code>](#getTriennialForParshaHaShavua)
353
- **Todo**
354
-
355
- - [ ] update unit tests instead
356
-
357
350
  <a name="Aliyah"></a>
358
351
 
359
352
  ## Aliyah : <code>Object</code>
package/bin/leyning-csv CHANGED
@@ -29,6 +29,7 @@ for (let i = 0; i < numTriennialCycles; i++) {
29
29
  const yearOffset = (i - 1) * 3;
30
30
  const cycleStartYear = hyear - (yearNum - 1) + yearOffset;
31
31
  const filename = `triennial-${cycleStartYear}-${cycleStartYear+2}.csv`;
32
+ console.log(`Creating ${filename}`);
32
33
  const stream = fs.createWriteStream(filename, {flags: 'w'});
33
34
  writeTriennialCsv(stream, cycleStartYear);
34
35
  stream.end();
package/dist/bundle.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/leyning v4.14.5 */
1
+ /*! @hebcal/leyning v4.15.1 */
2
2
  var hebcal__leyning = (function (exports, core) {
3
3
  'use strict';
4
4
 
@@ -341,10 +341,10 @@ var store$2 = sharedStore;
341
341
  (shared$4.exports = function (key, value) {
342
342
  return store$2[key] || (store$2[key] = value !== undefined ? value : {});
343
343
  })('versions', []).push({
344
- version: '3.23.3',
344
+ version: '3.23.5',
345
345
  mode: 'global',
346
346
  copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
347
- license: 'https://github.com/zloirock/core-js/blob/v3.23.3/LICENSE',
347
+ license: 'https://github.com/zloirock/core-js/blob/v3.23.5/LICENSE',
348
348
  source: 'https://github.com/zloirock/core-js'
349
349
  });
350
350
 
@@ -1647,7 +1647,7 @@ if (PATCH) {
1647
1647
  }
1648
1648
  if (NPCG_INCLUDED && match && match.length > 1) {
1649
1649
  // Fix browsers whose `exec` methods don't consistently return `undefined`
1650
- // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
1650
+ // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/
1651
1651
  call$1(nativeReplace, match[0], reCopy, function () {
1652
1652
  for (i = 1; i < arguments.length - 2; i++) {
1653
1653
  if (arguments[i] === undefined) match[i] = undefined;
@@ -2003,7 +2003,9 @@ function clone(src) {
2003
2003
  */
2004
2004
 
2005
2005
  function addSefariaLinksToLeyning(aliyot, showBook) {
2006
- var book1 = aliyot['1'] && aliyot['1'].k;
2006
+ var _aliyot$;
2007
+
2008
+ var book1 = (_aliyot$ = aliyot['1']) === null || _aliyot$ === void 0 ? void 0 : _aliyot$.k;
2007
2009
  Object.keys(aliyot).forEach(function (num) {
2008
2010
  var aliyah = aliyot[num];
2009
2011
  aliyah.num = num == 'M' ? 'maf' : num;
@@ -2389,7 +2391,19 @@ function getLeyningKeyForEvent(e) {
2389
2391
  return undefined;
2390
2392
  }
2391
2393
 
2392
- if (isRoshChodesh && desc !== 'Rosh Chodesh Tevet') {
2394
+ if (desc === 'Rosh Chodesh Tevet') {
2395
+ if (isShabbat) {
2396
+ return 'Shabbat Rosh Chodesh Chanukah';
2397
+ }
2398
+
2399
+ if (day === 30 || core.HDate.shortKislev(hd.getFullYear())) {
2400
+ return 'Chanukah Day 6'; // 30th of Kislev or 1st of Tevet
2401
+ } else {
2402
+ return 'Chanukah Day 7 (on Rosh Chodesh)'; // 1st of Tevet
2403
+ }
2404
+ }
2405
+
2406
+ if (isRoshChodesh) {
2393
2407
  return desc;
2394
2408
  }
2395
2409
 
@@ -2934,7 +2948,7 @@ function specialReadings(hd, il, aliyot, reason) {
2934
2948
  return haft;
2935
2949
  }
2936
2950
 
2937
- 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:"Isaiah",b:"46:3",e:"46:13",note:"im yoled zakhar // v'yaldah zakhar"},"3":{k:"Jeremiah",b:"30:1",e:"30:9"}};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"},"3":{k:"Jeremiah",b:"32:16",e:"32:27"}};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"},"3":{k:"Ezekiel",b:"20:2",e:"20:20"}},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"}}};
2951
+ 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};
2938
2952
 
2939
2953
  /**
2940
2954
  * Represents triennial aliyot for a given date
@@ -3378,27 +3392,71 @@ function getTriennialForParshaHaShavua(ev) {
3378
3392
  if (context) {
3379
3393
  reading.yearNum = yearNum;
3380
3394
  reading.aliyot = aliyotMap;
3381
- /*
3382
- * INSTRUCTIONS REGARDING DOUBLE PARSHIYOT
3383
- * In any 3 year sequence, in some years these parshiyot are read together
3384
- * and in some they are read separately. When separated: read the next haftarah
3385
- * of the parashah being read. When together: when reading the first third,
3386
- * read the next haftarah of the first parashah, when reading the latter
3387
- * two thirds, read the next haftarah of the latter parashah
3388
- */
3395
+ var triHaft = getTriennialHaftara(parsha, yearNum);
3396
+ shallowCopy(reading, triHaft);
3397
+ return reading;
3398
+ }
3389
3399
 
3390
- var triHaft = parsha.length === 1 ? triennialHaft[name] : yearNum === 0 ? triennialHaft[p1] : triennialHaft[parsha[1]];
3400
+ return aliyotMap;
3401
+ }
3402
+ /**
3403
+ * Looks up the alternative triennial Haftara for a given parsha
3404
+ *
3405
+ * INSTRUCTIONS REGARDING DOUBLE PARSHIYOT
3406
+ *
3407
+ * In any 3 year sequence, in some years these parshiyot are read together
3408
+ * and in some they are read separately.
3409
+ * When separated: read the next haftarah of the parashah being read.
3410
+ * When together: when reading the first third, read the next haftarah
3411
+ * of the first parashah, when reading the latter two thirds, read the
3412
+ * next haftarah of the latter parashah
3413
+ * @private
3414
+ * @param {string[]} parsha
3415
+ * @param {number} yearNum 0, 1, or 2
3416
+ * @return {Object}
3417
+ */
3391
3418
 
3392
- if (_typeof(triHaft) === 'object') {
3393
- var haft = reading.haft = cloneHaftara(triHaft[yearNum + 1]);
3394
- reading.haftara = makeHaftaraSummary(haft);
3395
- reading.haftaraNumV = calculateHaftaraNumV(haft);
3396
- }
3419
+ function getTriennialHaftara(parsha, yearNum) {
3420
+ var idx = parsha.length === 1 || yearNum === 0 ? 0 : 1;
3421
+ var name = parsha[idx];
3422
+ var triHaft = triennialHaft[name];
3423
+ var triHaft2 = triHaft === null || triHaft === void 0 ? void 0 : triHaft[yearNum + 1];
3397
3424
 
3398
- return reading;
3425
+ if (_typeof(triHaft2) === 'object') {
3426
+ var haft = cloneHaftara(triHaft2);
3427
+ return {
3428
+ haft: haft,
3429
+ haftara: makeHaftaraSummary(haft),
3430
+ haftaraNumV: calculateHaftaraNumV(haft)
3431
+ };
3399
3432
  }
3400
3433
 
3401
- return aliyotMap;
3434
+ return {};
3435
+ }
3436
+ /**
3437
+ * Looks up the alternative triennial Haftara for a holiday
3438
+ * @param {string} key
3439
+ * @param {number} yearNum
3440
+ * @return {Object}
3441
+ */
3442
+
3443
+ function getTriennialHaftaraForHoliday(key, yearNum) {
3444
+ if (key === 'Tish\'a B\'Av') {
3445
+ return getTriennialHaftara([key], yearNum);
3446
+ }
3447
+
3448
+ var triHaft2 = triennialHaft._holidays[key];
3449
+
3450
+ if (_typeof(triHaft2) === 'object') {
3451
+ var haft = cloneHaftara(triHaft2);
3452
+ return {
3453
+ haft: haft,
3454
+ haftara: makeHaftaraSummary(haft),
3455
+ haftaraNumV: calculateHaftaraNumV(haft)
3456
+ };
3457
+ }
3458
+
3459
+ return undefined;
3402
3460
  }
3403
3461
 
3404
3462
  var call = functionCall;
@@ -3481,12 +3539,15 @@ function getParshaDates(events) {
3481
3539
 
3482
3540
 
3483
3541
  function writeFullKriyahCsv(stream, hyear, il) {
3484
- var events = core.HebrewCalendar.calendar({
3542
+ var events0 = core.HebrewCalendar.calendar({
3485
3543
  year: hyear,
3486
3544
  isHebrewYear: true,
3487
3545
  sedrot: true,
3488
3546
  il: il
3489
3547
  });
3548
+ var events = events0.filter(function (ev) {
3549
+ return ev.getDesc() !== 'Rosh Chodesh Tevet';
3550
+ });
3490
3551
  var parshaDates = getParshaDates(events);
3491
3552
  stream.write('"Date","Parashah","Aliyah","Reading","Verses"\r\n');
3492
3553
  events.forEach(function (ev) {
@@ -3502,13 +3563,16 @@ function writeFullKriyahCsv(stream, hyear, il) {
3502
3563
  */
3503
3564
 
3504
3565
  function writeTriennialCsv(stream, hyear) {
3505
- var events = core.HebrewCalendar.calendar({
3566
+ var events0 = core.HebrewCalendar.calendar({
3506
3567
  year: hyear,
3507
3568
  isHebrewYear: true,
3508
3569
  numYears: 3,
3509
3570
  sedrot: true,
3510
3571
  il: false
3511
3572
  });
3573
+ var events = events0.filter(function (ev) {
3574
+ return ev.getDesc() !== 'Rosh Chodesh Tevet';
3575
+ });
3512
3576
  var parshaDates = getParshaDates(events);
3513
3577
  stream.write('"Date","Parashah","Aliyah","Triennial Reading","Verses"\r\n');
3514
3578
  events.forEach(function (ev) {
@@ -3528,30 +3592,54 @@ function writeTriennialEvent(stream, ev) {
3528
3592
  return;
3529
3593
  }
3530
3594
 
3531
- var isParsha = ev.getFlags() === core.flags.PARSHA_HASHAVUA;
3532
- var reading0 = isParsha ? getTriennialForParshaHaShavua(ev) : getLeyningForHoliday(ev, false);
3533
-
3534
- if (!reading0) {
3535
- return;
3595
+ if (ev.getFlags() === core.flags.PARSHA_HASHAVUA) {
3596
+ writeTriennialEventParsha(stream, ev);
3597
+ } else {
3598
+ writeTriennialEventHoliday(stream, ev);
3536
3599
  }
3600
+ }
3601
+ /**
3602
+ * @private
3603
+ * @param {fs.WriteStream} stream
3604
+ * @param {Event} ev
3605
+ */
3537
3606
 
3538
- var reading;
3607
+ function writeTriennialEventHoliday(stream, ev) {
3608
+ var il = false;
3609
+ var reading = getLeyningForHoliday(ev, il);
3539
3610
 
3540
- if (isParsha) {
3541
- var fk = getLeyningForParshaHaShavua(ev, false);
3542
- reading = {
3543
- haftara: fk.haftara,
3544
- haftaraNumV: fk.haftaraNumV,
3545
- sephardic: fk.sephardic,
3546
- sephardicNumV: fk.sephardicNumV,
3547
- reason: fk.reason,
3548
- fullkriyah: reading0
3549
- };
3550
- } else {
3551
- reading = reading0;
3611
+ if (reading) {
3612
+ var key = getLeyningKeyForEvent(ev, il);
3613
+ var year = ev.getDate().getFullYear();
3614
+ var yearNum = Triennial.getYearNumber(year) - 1;
3615
+ var triHaft = getTriennialHaftaraForHoliday(key, yearNum);
3616
+
3617
+ if (triHaft) {
3618
+ reading.triHaftara = triHaft.haftara;
3619
+ reading.triHaftaraNumV = triHaft.haftaraNumV;
3620
+ }
3621
+
3622
+ writeCsvLines(stream, ev, reading, il, false);
3552
3623
  }
3624
+ }
3625
+ /**
3626
+ * @private
3627
+ * @param {fs.WriteStream} stream
3628
+ * @param {Event} ev
3629
+ */
3630
+
3553
3631
 
3554
- writeCsvLines(stream, ev, reading, false);
3632
+ function writeTriennialEventParsha(stream, ev) {
3633
+ var triReading = getTriennialForParshaHaShavua(ev, true);
3634
+
3635
+ if (triReading) {
3636
+ var il = false;
3637
+ var reading = getLeyningForParshaHaShavua(ev, il);
3638
+ reading.fullkriyah = triReading.aliyot;
3639
+ reading.triHaftara = triReading.haftara;
3640
+ reading.triHaftaraNumV = triReading.haftaraNumV;
3641
+ writeCsvLines(stream, ev, reading, il, true);
3642
+ }
3555
3643
  }
3556
3644
  /**
3557
3645
  * @private
@@ -3559,6 +3647,7 @@ function writeTriennialEvent(stream, ev) {
3559
3647
  * @return {boolean}
3560
3648
  */
3561
3649
 
3650
+
3562
3651
  function ignore(ev) {
3563
3652
  var mask = ev.getFlags();
3564
3653
 
@@ -3588,11 +3677,9 @@ function writeFullKriyahEvent(stream, ev, il) {
3588
3677
  var isParsha = ev.getFlags() === core.flags.PARSHA_HASHAVUA;
3589
3678
  var reading = isParsha ? getLeyningForParshaHaShavua(ev, il) : getLeyningForHoliday(ev, il);
3590
3679
 
3591
- if (!reading) {
3592
- return;
3680
+ if (reading) {
3681
+ writeCsvLines(stream, ev, reading, il, isParsha);
3593
3682
  }
3594
-
3595
- writeCsvLines(stream, ev, reading, il);
3596
3683
  }
3597
3684
  /**
3598
3685
  * @private
@@ -3600,10 +3687,10 @@ function writeFullKriyahEvent(stream, ev, il) {
3600
3687
  * @param {Event} ev
3601
3688
  * @param {Leyning} reading
3602
3689
  * @param {boolean} il
3690
+ * @param {boolean} isParsha
3603
3691
  */
3604
3692
 
3605
- function writeCsvLines(stream, ev, reading, il) {
3606
- var isParsha = ev.getFlags() === core.flags.PARSHA_HASHAVUA;
3693
+ function writeCsvLines(stream, ev, reading, il, isParsha) {
3607
3694
  var parsha = isParsha ? ev.basename() : getLeyningKeyForEvent(ev, il) || ev.render();
3608
3695
  var date = fmtDate(ev.getDate().greg());
3609
3696
  var lines = getFullKriyahLines(reading);
@@ -3633,10 +3720,12 @@ function getFullKriyahLines(reading) {
3633
3720
  var a = reading.fullkriyah[num];
3634
3721
 
3635
3722
  if (typeof a !== 'undefined') {
3723
+ var _reading$reason;
3724
+
3636
3725
  var k = num == 'M' ? 'maf' : num;
3637
3726
  var aliyah = formatAliyahWithBook(a);
3638
3727
 
3639
- if (reading.reason && reading.reason[num]) {
3728
+ if ((_reading$reason = reading.reason) !== null && _reading$reason !== void 0 && _reading$reason[num]) {
3640
3729
  aliyah += ' | ' + reading.reason[num];
3641
3730
  }
3642
3731
 
@@ -3648,9 +3737,11 @@ function getFullKriyahLines(reading) {
3648
3737
  var specialHaftara = false;
3649
3738
 
3650
3739
  if (reading.haftara) {
3740
+ var _reading$reason2;
3741
+
3651
3742
  var haftara = reading.haftara.replace(/,/g, ';');
3652
3743
 
3653
- if (reading.reason && reading.reason.haftara) {
3744
+ if ((_reading$reason2 = reading.reason) !== null && _reading$reason2 !== void 0 && _reading$reason2.haftara) {
3654
3745
  specialHaftara = true;
3655
3746
  haftara += ' | ' + reading.reason.haftara;
3656
3747
  }
@@ -3663,6 +3754,12 @@ function getFullKriyahLines(reading) {
3663
3754
  lines.push(['Haftara for Sephardim', sephardic, reading.sephardicNumV || '']);
3664
3755
  }
3665
3756
 
3757
+ if (reading.triHaftara) {
3758
+ var _haftara = reading.triHaftara.replace(/,/g, ';');
3759
+
3760
+ lines.push(['Alternate Haftara', _haftara, reading.triHaftaraNumV || '']);
3761
+ }
3762
+
3666
3763
  return lines;
3667
3764
  }
3668
3765
 
@@ -3685,7 +3782,10 @@ exports.getLeyningForParshaHaShavua = getLeyningForParshaHaShavua;
3685
3782
  exports.getLeyningKeyForEvent = getLeyningKeyForEvent;
3686
3783
  exports.getTriennial = getTriennial;
3687
3784
  exports.getTriennialForParshaHaShavua = getTriennialForParshaHaShavua;
3785
+ exports.getTriennialHaftaraForHoliday = getTriennialHaftaraForHoliday;
3786
+ exports.hasFestival = hasFestival;
3688
3787
  exports.holidayReadings = festivals;
3788
+ exports.lookupFestival = lookupFestival;
3689
3789
  exports.makeHaftaraSummary = makeHaftaraSummary;
3690
3790
  exports.makeLeyningParts = makeLeyningParts;
3691
3791
  exports.makeLeyningSummary = makeLeyningSummary;