@hebcal/leyning 8.2.7 → 8.2.9

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/bundle.js CHANGED
@@ -1,7 +1,22 @@
1
- /*! @hebcal/leyning v8.2.7 */
1
+ /*! @hebcal/leyning v8.2.9 */
2
2
  var hebcal__leyning = (function (exports, core) {
3
3
  'use strict';
4
4
 
5
+ var poHe = { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);" }, "contexts": { "": { "Shabbat Machar Chodesh": ["שַׁבָּת מָחָר חוֹדֶשׁ"], "Shabbat Rosh Chodesh": ["שַׁבָּת רֹאשׁ חוֹדֶשׁ"], "Pesach I (on Shabbat)": ["פֶּסַח יוֹם א׳ (בְּשַׁבָּת)"], "Pesach Chol ha-Moed Day 1": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם א׳"], "Pesach Chol ha-Moed Day 2": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ב׳"], "Pesach Chol ha-Moed Day 2 on Sunday": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ב׳ (בְּיוֹם רִאשׁוֹן)"], "Pesach Chol ha-Moed Day 3": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ג׳"], "Pesach Chol ha-Moed Day 3 on Monday": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ג׳ (בְּיוֹם שָׁנִי)"], "Pesach Chol ha-Moed Day 4": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ד׳"], "Pesach Chol ha-Moed Day 5": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ה׳"], "Pesach Shabbat Chol ha-Moed": ["פֶּסַח שַׁבָּת חוֹל הַמּוֹעֵד"], "Pesach VII (on Shabbat)": ["פֶּסַח ז׳ (בְּשַׁבָּת)"], "Pesach VIII (on Shabbat)": ["פֶּסַח ח׳ (בְּשַׁבָּת)"], "Shavuot II (on Shabbat)": ["שָׁבוּעוֹת יוֹם ב׳ (בְּשַׁבָּת)"], "Rosh Hashana I (on Shabbat)": ["רֹאשׁ הַשָּׁנָה יוֹם א׳ (בְּשַׁבָּת)"], "Yom Kippur (on Shabbat)": ["יוֹם כִּפּוּר (בְּשַׁבָּת)"], "Yom Kippur (Mincha, Traditional)": ["יוֹם כִּפּוּר מִנחָה"], "Yom Kippur (Mincha, Alternate)": ["יוֹם כִּפּוּר מִנחָה"], "Sukkot I (on Shabbat)": ["סוּכּוֹת יוֹם א׳ (בְּשַׁבָּת)"], "Sukkot Chol ha-Moed Day 1": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם א׳"], "Sukkot Chol ha-Moed Day 2": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ב׳"], "Sukkot Chol ha-Moed Day 3": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ג׳"], "Sukkot Chol ha-Moed Day 4": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ד׳"], "Sukkot Chol ha-Moed Day 5": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ה׳"], "Sukkot Shabbat Chol ha-Moed": ["סוּכּוֹת שַׁבָּת חוֹל הַמּוֹעֵד"], "Sukkot Final Day (Hoshana Raba)": ["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"], "Shmini Atzeret (on Shabbat)": ["שְׁמִינִי עֲצֶרֶת (בְּשַׁבָּת)"], "Chanukah Day 1": ["חֲנוּכָּה יוֹם א׳"], "Chanukah Day 2": ["חֲנוּכָּה יוֹם ב׳"], "Chanukah Day 3": ["חֲנוּכָּה יוֹם ג׳"], "Chanukah Day 4": ["חֲנוּכָּה יוֹם ד׳"], "Chanukah Day 5": ["חֲנוּכָּה יוֹם ה׳"], "Chanukah Day 6": ["חֲנוּכָּה יוֹם ו׳"], "Chanukah Day 7": ["חֲנוּכָּה יוֹם ז׳"], "Chanukah Day 7 (on Rosh Chodesh)": ["חֲנוּכָּה יוֹם ז׳ (רֹאשׁ חוֹדֶשׁ)"], "Chanukah Day 8": ["חֲנוּכָּה יוֹם ח׳"], "Chanukah Day 1 (on Shabbat)": ["חֲנוּכָּה יוֹם א׳ (בְּשַׁבָּת)"], "Chanukah Day 2 (on Shabbat)": ["חֲנוּכָּה יוֹם ב׳ (בְּשַׁבָּת)"], "Chanukah Day 3 (on Shabbat)": ["חֲנוּכָּה יוֹם ג׳ (בְּשַׁבָּת)"], "Chanukah Day 4 (on Shabbat)": ["חֲנוּכָּה יוֹם ד׳ (בְּשַׁבָּת)"], "Chanukah Day 5 (on Shabbat)": ["חֲנוּכָּה יוֹם ה׳ (בְּשַׁבָּת)"], "Chanukah Day 7 (on Shabbat)": ["חֲנוּכָּה יוֹם ז׳ (בְּשַׁבָּת)"], "Chanukah Day 8 (on Shabbat)": ["חֲנוּכָּה יוֹם ח׳ (בְּשַׁבָּת)"], "Shabbat Rosh Chodesh Chanukah": ["שַׁבָּת רֹאשׁ חוֹדֶשׁ חֲנוּכָּה"], "Yom Kippur (Mincha)": ["יוֹם כִּפּוּר מִנחָה"], "Tish'a B'Av (Mincha)": ["תִּשְׁעָה בְּאָב מִנחָה"], "Asara B'Tevet (Mincha)": ["עֲשָׂרָה בְּטֵבֵת מִנחָה"], "Ta'anit Bechorot (Mincha)": ["תַּעֲנִית בְּכוֹרוֹת מִנחָה"], "Ta'anit Esther (Mincha)": ["תַּעֲנִית אֶסְתֵּר מִנחָה"], "Tzom Gedaliah (Mincha)": ["צוֹם גְּדַלְיָה מִנחָה"], "Tzom Tammuz (Mincha)": ["צוֹם תָּמוּז מִנחָה"] } } };
6
+
7
+ core.Locale.addTranslations('he', poHe);
8
+ core.Locale.addTranslations('h', poHe);
9
+ const heStrs = poHe.contexts[''];
10
+ const heNoNikud = {};
11
+ for (const [key, val] of Object.entries(heStrs)) {
12
+ heNoNikud[key] = [core.Locale.hebrewStripNikkud(val[0])];
13
+ }
14
+ const poHeNoNikud = {
15
+ headers: poHe.headers,
16
+ contexts: { '': heNoNikud },
17
+ };
18
+ core.Locale.addTranslations('he-x-NoNikud', poHeNoNikud);
19
+
5
20
  var numverses = {
6
21
  "Genesis": [0,
7
22
  31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33,
@@ -62,6 +77,11 @@ const BOOK = [
62
77
  'Numbers',
63
78
  'Deuteronomy',
64
79
  ];
80
+ /**
81
+ * The number of verses in each book of the Tanakh.
82
+ * @readonly
83
+ */
84
+ const NUM_VERSES = numverses;
65
85
  /**
66
86
  * Formats parsha as a string
67
87
  * @param parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
@@ -76,7 +96,7 @@ function parshaToString(parsha) {
76
96
  throw new TypeError(`Bad parsha argument: ${parsha}`);
77
97
  }
78
98
  let s = parsha[0];
79
- if (parsha.length == 2) {
99
+ if (parsha.length === 2) {
80
100
  s += '-' + parsha[1];
81
101
  }
82
102
  return s;
@@ -100,7 +120,7 @@ function calculateNumVerses(aliyah) {
100
120
  aliyah.v = v2 - v1 + 1;
101
121
  }
102
122
  else if (typeof aliyah.k === 'string') {
103
- const numv = numverses[aliyah.k];
123
+ const numv = NUM_VERSES[aliyah.k];
104
124
  if (typeof numv !== 'object' || !numv.length) {
105
125
  throw new ReferenceError(`Can't find numverses for ${aliyah.k}`);
106
126
  }
@@ -342,6 +362,7 @@ var festivals0 = { "Pesach I": {
342
362
  "M": { "p": 41, "k": 4, "b": "28:19", "e": "28:25" } }
343
363
  },
344
364
  "Pesach VII (on Shabbat)": {
365
+ "megillah": "Song of Songs",
345
366
  "haft": { "k": "II Samuel", "b": "22:1", "e": "22:51" },
346
367
  "fullkriyah": { "1": { "p": 16, "k": 2, "b": "13:17", "e": "13:19" },
347
368
  "2": { "p": 16, "k": 2, "b": "13:20", "e": "13:22" },
@@ -362,6 +383,7 @@ var festivals0 = { "Pesach I": {
362
383
  "M": { "p": 41, "k": 4, "b": "28:19", "e": "28:25" } }
363
384
  },
364
385
  "Pesach VIII (on Shabbat)": {
386
+ "megillah": "Song of Songs",
365
387
  "haft": { "k": "Isaiah", "b": "10:32", "e": "12:6" },
366
388
  "fullkriyah": { "1": { "p": 47, "k": 5, "b": "14:22", "e": "14:29" },
367
389
  "2": { "p": 47, "k": 5, "b": "15:1", "e": "15:18" },
@@ -611,6 +633,7 @@ var festivals0 = { "Pesach I": {
611
633
  "M": { "p": 41, "k": 4, "b": "29:35", "e": "30:1" } }
612
634
  },
613
635
  "Shmini Atzeret (on Shabbat)": {
636
+ "megillah": "Ecclesiastes",
614
637
  "haft": { "k": "I Kings", "b": "8:54", "e": "8:66" },
615
638
  "fullkriyah": { "1": { "p": 47, "k": 5, "b": "14:22", "e": "14:29" },
616
639
  "2": { "p": 47, "k": 5, "b": "15:1", "e": "15:18" },
@@ -637,6 +660,19 @@ var festivals0 = { "Pesach I": {
637
660
  "7": { "p": 1, "k": 1, "b": "1:1", "e": "2:3" },
638
661
  "M": { "p": 41, "k": 4, "b": "29:35", "e": "30:1" } }
639
662
  },
663
+ "Simchat Torah (on Shabbat)": {
664
+ "megillah": "Ecclesiastes",
665
+ "haft": { "k": "Joshua", "b": "1:1", "e": "1:18" },
666
+ "fullkriyah": { "1": { "p": 54, "k": 5, "b": "33:1", "e": "33:7" },
667
+ "2": { "p": 54, "k": 5, "b": "33:8", "e": "33:12" },
668
+ "3": { "p": 54, "k": 5, "b": "33:13", "e": "33:17" },
669
+ "4": { "p": 54, "k": 5, "b": "33:18", "e": "33:21" },
670
+ "5": { "p": 54, "k": 5, "b": "33:22", "e": "33:26" },
671
+ "6": { "p": 54, "k": 5, "b": "33:27", "e": "33:29" },
672
+ "7": { "p": 54, "k": 5, "b": "34:1", "e": "34:12" },
673
+ "8": { "p": 1, "k": 1, "b": "1:1", "e": "2:3" },
674
+ "M": { "p": 41, "k": 4, "b": "29:35", "e": "30:1" } }
675
+ },
640
676
  "Shabbat Rosh Chodesh Chanukah": {
641
677
  "haft": { "k": "Zechariah", "b": "2:14", "e": "4:7" },
642
678
  "fullkriyah": { "7": { "p": 41, "k": 4, "b": "28:9", "e": "28:15" },
@@ -926,8 +962,8 @@ function getLeyningKeyForEvent(ev, il = false) {
926
962
  const day = hd.getDate();
927
963
  const dow = hd.abs() % 7;
928
964
  const month = hd.getMonth();
929
- const isShabbat = dow == 6;
930
- const isRoshChodesh = day == 1 || day == 30;
965
+ const isShabbat = dow === 6;
966
+ const isRoshChodesh = day === 1 || day === 30;
931
967
  const holiday = ev.basename();
932
968
  const isPesach = holiday === 'Pesach';
933
969
  if (il && isPesach) {
@@ -938,7 +974,7 @@ function getLeyningKeyForEvent(ev, il = false) {
938
974
  }
939
975
  return desc;
940
976
  }
941
- if (day == 1 && month === core.months.TISHREI) {
977
+ if (day === 1 && month === core.months.TISHREI) {
942
978
  return isShabbat ? 'Rosh Hashana I (on Shabbat)' : 'Rosh Hashana I';
943
979
  }
944
980
  const cholHaMoedDay = ev.cholHaMoedDay;
@@ -947,7 +983,7 @@ function getLeyningKeyForEvent(ev, il = false) {
947
983
  if (isShabbat) {
948
984
  return holiday + ' Shabbat Chol ha-Moed';
949
985
  }
950
- else if (desc == 'Sukkot VII (Hoshana Raba)') {
986
+ else if (desc === 'Sukkot VII (Hoshana Raba)') {
951
987
  return 'Sukkot Final Day (Hoshana Raba)';
952
988
  }
953
989
  if (isPesach && cholHaMoedDay) {
@@ -965,7 +1001,7 @@ function getLeyningKeyForEvent(ev, il = false) {
965
1001
  if (isShabbat && isRoshChodesh) {
966
1002
  return 'Shabbat Rosh Chodesh Chanukah';
967
1003
  }
968
- else if (isRoshChodesh && chanukahDay == 7) {
1004
+ else if (isRoshChodesh && chanukahDay === 7) {
969
1005
  return 'Chanukah Day 7 (on Rosh Chodesh)';
970
1006
  }
971
1007
  else if (isShabbat) {
@@ -976,16 +1012,16 @@ function getLeyningKeyForEvent(ev, il = false) {
976
1012
  }
977
1013
  }
978
1014
  if (isRoshChodesh &&
979
- (desc == 'Shabbat HaChodesh' || desc == 'Shabbat Shekalim')) {
1015
+ (desc === 'Shabbat HaChodesh' || desc === 'Shabbat Shekalim')) {
980
1016
  return desc + ' (on Rosh Chodesh)';
981
1017
  }
982
- if (il && desc == 'Shmini Atzeret') {
983
- return 'Simchat Torah';
1018
+ if (il && desc === 'Shmini Atzeret') {
1019
+ return 'Simchat Torah' + (isShabbat ? ' (on Shabbat)' : '');
984
1020
  }
985
1021
  if (desc === 'Chag HaBanot') {
986
1022
  return undefined;
987
1023
  }
988
- if (isShabbat && 'Shabbat' != desc.substring(0, 7)) {
1024
+ if (isShabbat && 'Shabbat' !== desc.substring(0, 7)) {
989
1025
  if (isRoshChodesh) {
990
1026
  if (desc === 'Rosh Chodesh Tevet') {
991
1027
  return 'Shabbat Rosh Chodesh Chanukah';
@@ -1214,13 +1250,15 @@ function getLeyningForHolidayKey(key, cholHaMoedDay, il) {
1214
1250
  leyning.sephardic = makeSummaryFromParts(seph);
1215
1251
  leyning.sephardicNumV = sumVerses(seph);
1216
1252
  }
1217
- if (src.megillah) {
1218
- const book = src.megillah;
1219
- const chaps = numverses[book];
1253
+ let megillah = src.megillah;
1254
+ if (il && key === 'Pesach I (on Shabbat)')
1255
+ megillah = 'Song of Songs';
1256
+ if (megillah) {
1257
+ const chaps = NUM_VERSES[megillah];
1220
1258
  const m = {};
1221
1259
  for (let i = 1; i < chaps.length; i++) {
1222
1260
  const numv = chaps[i];
1223
- m[`${i}`] = { k: book, b: `${i}:1`, e: `${i}:${numv}`, v: numv };
1261
+ m[`${i}`] = { k: megillah, b: `${i}:1`, e: `${i}:${numv}`, v: numv };
1224
1262
  }
1225
1263
  leyning.megillah = m;
1226
1264
  }
@@ -2548,10 +2586,10 @@ const parshiyotObj = parshiyotObj0;
2548
2586
  */
2549
2587
  function getHaftaraKey(parsha) {
2550
2588
  const first = parsha[0];
2551
- if (parsha.length === 2 && first == 'Achrei Mot') {
2589
+ if (parsha.length === 2 && first === 'Achrei Mot') {
2552
2590
  return parshaToString(parsha); // 'Achrei Mot-Kedoshim'
2553
2591
  }
2554
- if (parsha.length === 1 || first == 'Nitzavim') {
2592
+ if (parsha.length === 1 || first === 'Nitzavim') {
2555
2593
  return first;
2556
2594
  }
2557
2595
  else {
@@ -2657,7 +2695,7 @@ function getLeyningForParshaHaShavua(ev, il = false) {
2657
2695
  if (typeof ev !== 'object' || typeof ev.getFlags !== 'function') {
2658
2696
  throw new TypeError(`Bad event argument: ${ev}`);
2659
2697
  }
2660
- else if (ev.getFlags() != core.flags.PARSHA_HASHAVUA) {
2698
+ else if (ev.getFlags() !== core.flags.PARSHA_HASHAVUA) {
2661
2699
  throw new TypeError(`Event must be parsha hashavua: ${ev.getDesc()}`);
2662
2700
  }
2663
2701
  // first, collect the default aliyot and haftara
@@ -2751,6 +2789,7 @@ function findParshaHaShavua(saturday, il) {
2751
2789
  parsha: ['Vezot Haberakhah'],
2752
2790
  chag: false,
2753
2791
  num: 54,
2792
+ hdate: saturday,
2754
2793
  };
2755
2794
  }
2756
2795
  }
@@ -2767,23 +2806,6 @@ function findParshaHaShavua(saturday, il) {
2767
2806
  /* NOTREACHED */
2768
2807
  throw new Error(`can't findParshaHaShavua for ${saturday}/${il}`);
2769
2808
  }
2770
- /**
2771
- * Looks up leyning for a regular Shabbat, Monday/Thursday weekday or holiday.
2772
- *
2773
- * If `hdate` coincides with a holiday that has Torah reading, returns the
2774
- * reading for that day (see {@link getLeyningForHoliday})
2775
- *
2776
- * Otherwise, if `hdate` is a Saturday, returns {@link getLeyningForParshaHaShavua}
2777
- *
2778
- * Otherwise, if `hdate` is a Monday or Thursday, returns {@link Leyning} for the
2779
- * Parashat haShavua, containing only the `weekday` aliyot (no `fullkriyah`).
2780
- *
2781
- * Otherwise, returns `undefined`.
2782
- *
2783
- * @param {HDate} hdate Hebrew Date
2784
- * @param {boolean} il in Israel
2785
- * @param {boolean} [wantarray] to return an array of 0 or more readings
2786
- */
2787
2809
  function getLeyningOnDate(hdate, il, wantarray = false) {
2788
2810
  const dow = hdate.getDay();
2789
2811
  const arr = [];
@@ -2972,7 +2994,7 @@ function getFullKriyahLines(reading) {
2972
2994
  if (reading.fullkriyah) {
2973
2995
  for (const [num, a] of Object.entries(reading.fullkriyah)) {
2974
2996
  if (typeof a !== 'undefined') {
2975
- const k = num == 'M' ? 'maf' : num;
2997
+ const k = num === 'M' ? 'maf' : num;
2976
2998
  let aliyah = formatAliyahWithBook(a);
2977
2999
  if ((_a = reading.reason) === null || _a === void 0 ? void 0 : _a[num]) {
2978
3000
  aliyah += ' | ' + reading.reason[num];
@@ -3016,6 +3038,7 @@ function getFullKriyahLines(reading) {
3016
3038
  }
3017
3039
 
3018
3040
  exports.BOOK = BOOK;
3041
+ exports.NUM_VERSES = NUM_VERSES;
3019
3042
  exports.calculateNumVerses = calculateNumVerses;
3020
3043
  exports.clone = clone;
3021
3044
  exports.cloneHaftara = cloneHaftara;