@hebcal/core 6.6.0 → 6.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/bundle.js +224 -95
- package/dist/bundle.js.map +1 -1
- package/dist/bundle.min.js +18 -18
- package/dist/bundle.min.js.map +1 -1
- package/dist/esm/CalOptions.d.ts +15 -3
- package/dist/esm/DailyLearning.js +1 -1
- package/dist/esm/HebrewDateEvent.js +1 -1
- package/dist/esm/HolidayEvent.d.ts +2 -2
- package/dist/esm/HolidayEvent.js +3 -5
- package/dist/esm/HolidayEvent.js.map +1 -1
- package/dist/esm/MevarchimChodeshEvent.js +1 -1
- package/dist/esm/ParshaEvent.js +16 -6
- package/dist/esm/ParshaEvent.js.map +1 -1
- package/dist/esm/TimedEvent.js +1 -1
- package/dist/esm/TimedEvent.js.map +1 -1
- package/dist/esm/YomKippurKatanEvent.js +1 -1
- package/dist/esm/ashkenazi.po.js +2 -2
- package/dist/esm/ashkenazi.po.js.map +1 -1
- package/dist/esm/calendar.js +17 -23
- package/dist/esm/calendar.js.map +1 -1
- package/dist/esm/candles.d.ts +8 -3
- package/dist/esm/candles.js +65 -11
- package/dist/esm/candles.js.map +1 -1
- package/dist/esm/cities.json.js +1 -1
- package/dist/esm/event.js +2 -2
- package/dist/esm/event.js.map +1 -1
- package/dist/esm/getStartAndEnd.js +8 -6
- package/dist/esm/getStartAndEnd.js.map +1 -1
- package/dist/esm/hallel.js +1 -1
- package/dist/esm/he-x-NoNikud.po.js +1 -1
- package/dist/esm/he.po.js +1 -1
- package/dist/esm/hebcal.js +1 -1
- package/dist/esm/holidays.js +6 -5
- package/dist/esm/holidays.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/isAssurBemlacha.js +1 -1
- package/dist/esm/isAveilut.js +1 -1
- package/dist/esm/isFastDay.js +1 -1
- package/dist/esm/locale.js +1 -1
- package/dist/esm/location.js +12 -13
- package/dist/esm/location.js.map +1 -1
- package/dist/esm/modern.js +1 -1
- package/dist/esm/molad.js +5 -5
- package/dist/esm/molad.js.map +1 -1
- package/dist/esm/moladBase.js +1 -1
- package/dist/esm/moladDate.js +1 -1
- package/dist/esm/moladDate.js.map +1 -1
- package/dist/esm/omer.js +1 -1
- package/dist/esm/parshaName.js +1 -1
- package/dist/esm/parshaYear.js +1 -1
- package/dist/esm/pkgVersion.d.ts +1 -1
- package/dist/esm/pkgVersion.js +2 -2
- package/dist/esm/pkgVersion.js.map +1 -1
- package/dist/esm/reformatTimeStr.js +1 -1
- package/dist/esm/reformatTimeStr.js.map +1 -1
- package/dist/esm/sedra.d.ts +14 -0
- package/dist/esm/sedra.js +70 -13
- package/dist/esm/sedra.js.map +1 -1
- package/dist/esm/sefira.json.js +1 -1
- package/dist/esm/staticHolidays.js +1 -1
- package/dist/esm/string.js +1 -1
- package/dist/esm/tachanun.js +1 -1
- package/dist/esm/tachanun.js.map +1 -1
- package/dist/esm/zmanim.js +2 -3
- package/dist/esm/zmanim.js.map +1 -1
- package/package.json +14 -17
- package/po/ashkenazi.po +1 -12
- package/dist/eslint.config.d.mts +0 -83
- package/dist/eslint.config.mjs +0 -29
- package/dist/po2json.d.ts +0 -1
- package/dist/po2json.js +0 -40
- package/dist/src/CalOptions.d.ts +0 -171
- package/dist/src/CalOptions.js +0 -1
- package/dist/src/DailyLearning.d.ts +0 -69
- package/dist/src/DailyLearning.js +0 -92
- package/dist/src/HebrewDateEvent.d.ts +0 -37
- package/dist/src/HebrewDateEvent.js +0 -72
- package/dist/src/HolidayEvent.d.ts +0 -117
- package/dist/src/HolidayEvent.js +0 -236
- package/dist/src/MevarchimChodeshEvent.d.ts +0 -26
- package/dist/src/MevarchimChodeshEvent.js +0 -52
- package/dist/src/ParshaEvent.d.ts +0 -24
- package/dist/src/ParshaEvent.js +0 -50
- package/dist/src/TimedEvent.d.ts +0 -76
- package/dist/src/TimedEvent.js +0 -134
- package/dist/src/YomKippurKatanEvent.d.ts +0 -23
- package/dist/src/YomKippurKatanEvent.js +0 -40
- package/dist/src/ashkenazi.po.d.ts +0 -84
- package/dist/src/ashkenazi.po.js +0 -1
- package/dist/src/calendar.d.ts +0 -112
- package/dist/src/calendar.js +0 -721
- package/dist/src/candles.d.ts +0 -57
- package/dist/src/candles.js +0 -185
- package/dist/src/cities.json +0 -67
- package/dist/src/event.d.ts +0 -233
- package/dist/src/event.js +0 -295
- package/dist/src/getStartAndEnd.d.ts +0 -6
- package/dist/src/getStartAndEnd.js +0 -105
- package/dist/src/hallel.d.ts +0 -6
- package/dist/src/hallel.js +0 -39
- package/dist/src/he-x-NoNikud.po.d.ts +0 -28
- package/dist/src/he-x-NoNikud.po.js +0 -1
- package/dist/src/he.po.d.ts +0 -217
- package/dist/src/he.po.js +0 -1
- package/dist/src/hebcal.d.ts +0 -338
- package/dist/src/hebcal.js +0 -413
- package/dist/src/holidays.d.ts +0 -41
- package/dist/src/holidays.js +0 -324
- package/dist/src/index.d.ts +0 -30
- package/dist/src/index.js +0 -29
- package/dist/src/isAssurBemlacha.d.ts +0 -29
- package/dist/src/isAssurBemlacha.js +0 -82
- package/dist/src/isAveilut.d.ts +0 -22
- package/dist/src/isAveilut.js +0 -48
- package/dist/src/isFastDay.d.ts +0 -21
- package/dist/src/isFastDay.js +0 -31
- package/dist/src/locale.d.ts +0 -1
- package/dist/src/locale.js +0 -11
- package/dist/src/location.d.ts +0 -167
- package/dist/src/location.js +0 -342
- package/dist/src/modern.d.ts +0 -18
- package/dist/src/modern.js +0 -59
- package/dist/src/molad.d.ts +0 -164
- package/dist/src/molad.js +0 -298
- package/dist/src/moladBase.d.ts +0 -15
- package/dist/src/moladBase.js +0 -78
- package/dist/src/moladDate.d.ts +0 -12
- package/dist/src/moladDate.js +0 -58
- package/dist/src/omer.d.ts +0 -128
- package/dist/src/omer.js +0 -385
- package/dist/src/parshaName.d.ts +0 -2
- package/dist/src/parshaName.js +0 -13
- package/dist/src/parshaYear.d.ts +0 -20
- package/dist/src/parshaYear.js +0 -35
- package/dist/src/pkgVersion.d.ts +0 -2
- package/dist/src/pkgVersion.js +0 -2
- package/dist/src/reformatTimeStr.d.ts +0 -8
- package/dist/src/reformatTimeStr.js +0 -47
- package/dist/src/sedra.d.ts +0 -175
- package/dist/src/sedra.js +0 -563
- package/dist/src/sefira.json +0 -63
- package/dist/src/staticHolidays.d.ts +0 -192
- package/dist/src/staticHolidays.js +0 -637
- package/dist/src/string.d.ts +0 -2
- package/dist/src/string.js +0 -6
- package/dist/src/tachanun.d.ts +0 -29
- package/dist/src/tachanun.js +0 -120
- package/dist/src/zmanim.d.ts +0 -620
- package/dist/src/zmanim.js +0 -1003
- package/dist/version.d.ts +0 -1
- package/dist/version.js +0 -8
package/dist/bundle.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
/*! @hebcal/core v6.
|
|
1
|
+
/*! @hebcal/core v6.8.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
2
2
|
var hebcal = (function (exports) {
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
/** DO NOT EDIT THIS AUTO-GENERATED FILE! */
|
|
6
|
-
const version = '6.
|
|
6
|
+
const version = '6.8.0';
|
|
7
7
|
|
|
8
|
-
/*! @hebcal/hdate v0.22.
|
|
8
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
9
9
|
/** @private */
|
|
10
10
|
const lengths = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
11
11
|
/** @private */
|
|
@@ -161,7 +161,7 @@ function abs2greg(abs) {
|
|
|
161
161
|
return dt;
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
/*! @hebcal/hdate v0.22.
|
|
164
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
165
165
|
|
|
166
166
|
/* eslint-disable @typescript-eslint/no-namespace */
|
|
167
167
|
/**
|
|
@@ -176,7 +176,7 @@ exports.greg.greg2abs = greg2abs;
|
|
|
176
176
|
exports.greg.isDate = isDate;
|
|
177
177
|
exports.greg.isLeapYear = isGregLeapYear;
|
|
178
178
|
|
|
179
|
-
/*! @hebcal/hdate v0.22.
|
|
179
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
180
180
|
/**
|
|
181
181
|
* Removes niqqud from Hebrew string
|
|
182
182
|
* @example
|
|
@@ -184,12 +184,15 @@ exports.greg.isLeapYear = isGregLeapYear;
|
|
|
184
184
|
* hebrewStripNikkud('חֶשְׁוָן'); // 'חשון'
|
|
185
185
|
*/
|
|
186
186
|
function hebrewStripNikkud(str) {
|
|
187
|
+
if (typeof str !== 'string') {
|
|
188
|
+
throw new TypeError(`bad nikkud str: ${str}`);
|
|
189
|
+
}
|
|
187
190
|
const a = str.normalize();
|
|
188
191
|
// now strip out niqqud and trope
|
|
189
192
|
return a.replace(/[\u0590-\u05bd]/g, '').replace(/[\u05bf-\u05c7]/g, '');
|
|
190
193
|
}
|
|
191
194
|
|
|
192
|
-
/*! @hebcal/hdate v0.22.
|
|
195
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
193
196
|
|
|
194
197
|
/*
|
|
195
198
|
* More minimal HDate
|
|
@@ -509,6 +512,9 @@ function monthFromName(monthName) {
|
|
|
509
512
|
}
|
|
510
513
|
return monthName;
|
|
511
514
|
}
|
|
515
|
+
if (typeof monthName !== 'string') {
|
|
516
|
+
throw new TypeError(`bad monthName: ${monthName}`);
|
|
517
|
+
}
|
|
512
518
|
let c = monthName.trim().toLowerCase();
|
|
513
519
|
// remove all niqud and trailing gershayim (for Adar Alef/Bet)
|
|
514
520
|
c = hebrewStripNikkud(c).replace(/׳$/, '');
|
|
@@ -617,7 +623,7 @@ function monthFromName(monthName) {
|
|
|
617
623
|
throw new RangeError(`bad monthName: ${monthName}`);
|
|
618
624
|
}
|
|
619
625
|
|
|
620
|
-
/*! @hebcal/hdate v0.22.
|
|
626
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
621
627
|
|
|
622
628
|
const NISAN$4 = months.NISAN;
|
|
623
629
|
const CHESHVAN$1 = months.CHESHVAN;
|
|
@@ -769,7 +775,7 @@ function getBirthdayHD(hyear, date) {
|
|
|
769
775
|
return { yy: hyear, mm: month, dd: day };
|
|
770
776
|
}
|
|
771
777
|
|
|
772
|
-
/*! @hebcal/hdate v0.22.
|
|
778
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
773
779
|
const GERESH = '׳';
|
|
774
780
|
const GERSHAYIM = '״';
|
|
775
781
|
const heb2num = {
|
|
@@ -869,6 +875,9 @@ function gematriya(num) {
|
|
|
869
875
|
* gematriyaStrToNum('ג׳תשס״א'); // 3761 (thousands prefix)
|
|
870
876
|
*/
|
|
871
877
|
function gematriyaStrToNum(str) {
|
|
878
|
+
if (typeof str !== 'string') {
|
|
879
|
+
throw new TypeError(`bad gematriya str: ${str}`);
|
|
880
|
+
}
|
|
872
881
|
let num = 0;
|
|
873
882
|
const gereshIdx = str.indexOf(GERESH);
|
|
874
883
|
if (gereshIdx !== -1 && gereshIdx !== str.length - 1) {
|
|
@@ -885,7 +894,7 @@ function gematriyaStrToNum(str) {
|
|
|
885
894
|
return num;
|
|
886
895
|
}
|
|
887
896
|
|
|
888
|
-
/*! @hebcal/hdate v0.22.
|
|
897
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
889
898
|
/**
|
|
890
899
|
* Formats a number with leading zeros so the resulting string is 4 digits long.
|
|
891
900
|
* Similar to `string.padStart(4, '0')` but will also format
|
|
@@ -925,7 +934,7 @@ function pad2(num) {
|
|
|
925
934
|
return String(num);
|
|
926
935
|
}
|
|
927
936
|
|
|
928
|
-
/*! @hebcal/hdate v0.22.
|
|
937
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
929
938
|
|
|
930
939
|
const _formatters = new Map();
|
|
931
940
|
/**
|
|
@@ -1007,13 +1016,13 @@ function isoDateString(dt) {
|
|
|
1007
1016
|
pad2(dt.getDate()));
|
|
1008
1017
|
}
|
|
1009
1018
|
|
|
1010
|
-
/*! @hebcal/hdate v0.22.
|
|
1019
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
1011
1020
|
var poAshkenazi$1 = { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "und-x-ashkenaz" }, "contexts": { "": { "Tevet": ["Teves"] } } };
|
|
1012
1021
|
|
|
1013
|
-
/*! @hebcal/hdate v0.22.
|
|
1022
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
1014
1023
|
var poHe$1 = { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "he" }, "contexts": { "": { "Adar": ["אֲדָר"], "Adar I": ["אֲדָר א׳"], "Adar II": ["אֲדָר ב׳"], "Av": ["אָב"], "Cheshvan": ["חֶשְׁוָן"], "Elul": ["אֱלוּל"], "Iyyar": ["אִיָּיר"], "Kislev": ["כִּסְלֵו"], "Nisan": ["נִיסָן"], "Sh'vat": ["שְׁבָט"], "Sivan": ["סִיוָן"], "Tamuz": ["תַּמּוּז"], "Tammuz": ["תַּמּוּז"], "Tevet": ["טֵבֵת"], "Tishrei": ["תִּשְׁרֵי"] } } };
|
|
1015
1024
|
|
|
1016
|
-
/*! @hebcal/hdate v0.22.
|
|
1025
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
1017
1026
|
|
|
1018
1027
|
const noopLocale = {
|
|
1019
1028
|
headers: { 'plural-forms': 'nplurals=2; plural=(n!=1);' },
|
|
@@ -1250,7 +1259,7 @@ Locale.addLocale('he', poHe$1);
|
|
|
1250
1259
|
const poHeNoNikud$1 = Locale.copyLocaleNoNikud(poHe$1);
|
|
1251
1260
|
Locale.addLocale('he-x-NoNikud', poHeNoNikud$1);
|
|
1252
1261
|
|
|
1253
|
-
/*! @hebcal/hdate v0.22.
|
|
1262
|
+
/*! @hebcal/hdate v0.22.5, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
|
|
1254
1263
|
|
|
1255
1264
|
/*
|
|
1256
1265
|
Hebcal - A Jewish Calendar Generator
|
|
@@ -1812,6 +1821,9 @@ class HDate {
|
|
|
1812
1821
|
}
|
|
1813
1822
|
return month;
|
|
1814
1823
|
}
|
|
1824
|
+
if (typeof month !== 'string') {
|
|
1825
|
+
throw new TypeError(`bad monthNum: ${month}`);
|
|
1826
|
+
}
|
|
1815
1827
|
return month.charCodeAt(0) >= 48 && month.charCodeAt(0) <= 57 /* number */
|
|
1816
1828
|
? parseInt(month, 10)
|
|
1817
1829
|
: monthFromName(month);
|
|
@@ -1899,6 +1911,9 @@ class HDate {
|
|
|
1899
1911
|
* HDate.fromGematriyaString('ה׳ אִיָיר תש״ח') // 5 Iyyar 5708
|
|
1900
1912
|
*/
|
|
1901
1913
|
static fromGematriyaString(str, currentThousands = 5000) {
|
|
1914
|
+
if (typeof str !== 'string') {
|
|
1915
|
+
throw new TypeError(`bad gematriya str: ${str}`);
|
|
1916
|
+
}
|
|
1902
1917
|
const parts = str.split(' ').filter(x => x.length !== 0);
|
|
1903
1918
|
const numParts = parts.length;
|
|
1904
1919
|
if (numParts !== 3 && numParts !== 4) {
|
|
@@ -2019,7 +2034,7 @@ function onOrBefore(day, t, offset) {
|
|
|
2019
2034
|
return new HDate(HDate.dayOnOrBefore(day, t.abs() + offset));
|
|
2020
2035
|
}
|
|
2021
2036
|
|
|
2022
|
-
var poAshkenazi = { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "
|
|
2037
|
+
var poAshkenazi = { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "und-x-ashkenaz" }, "contexts": { "": { "Shabbat": ["Shabbos"], "Achrei Mot": ["Achrei Mos"], "Bechukotai": ["Bechukosai"], "Beha'alotcha": ["Beha’aloscha"], "Bereshit": ["Bereshis"], "Chukat": ["Chukas"], "Erev Shavuot": ["Erev Shavuos"], "Erev Sukkot": ["Erev Sukkos"], "Ki Tavo": ["Ki Savo"], "Ki Teitzei": ["Ki Seitzei"], "Ki Tisa": ["Ki Sisa"], "Matot": ["Matos"], "Pesach Shabbat Chol ha-Moed": ["Pesach Shabbos Chol ha-Moed"], "Purim Katan": ["Purim Koton"], "Rosh Hashana LaBehemot": ["Rosh Hashana LaBeheimos"], "Shabbat Chazon": ["Shabbos Chazon"], "Shabbat HaChodesh": ["Shabbos HaChodesh"], "Shabbat HaGadol": ["Shabbos HaGadol"], "Shabbat Nachamu": ["Shabbos Nachamu"], "Shabbat Parah": ["Shabbos Parah"], "Shabbat Shekalim": ["Shabbos Shekalim"], "Shabbat Shuva": ["Shabbos Shuvah"], "Shabbat Zachor": ["Shabbos Zachor"], "Shavuot": ["Shavuos"], "Shavuot I": ["Shavuos I"], "Shavuot II": ["Shavuos II"], "Shemot": ["Shemos"], "Shmini Atzeret": ["Shmini Atzeres"], "Simchat Torah": ["Simchas Torah"], "Sukkot": ["Sukkos"], "Sukkot I": ["Sukkos I"], "Sukkot II": ["Sukkos II"], "Sukkot II (CH''M)": ["Sukkos II (CH’’M)"], "Sukkot III (CH''M)": ["Sukkos III (CH’’M)"], "Sukkot IV (CH''M)": ["Sukkos IV (CH’’M)"], "Sukkot V (CH''M)": ["Sukkos V (CH’’M)"], "Sukkot VI (CH''M)": ["Sukkos VI (CH’’M)"], "Sukkot VII (Hoshana Raba)": ["Sukkos VII (Hoshana Raba)"], "Sukkot Shabbat Chol ha-Moed": ["Sukkos Shabbos Chol ha-Moed"], "Ta'anit Bechorot": ["Ta’anis Bechoros"], "Ta'anit BeHaB": ["Ta’anis BeHaB"], "Ta'anit Esther": ["Ta’anis Esther"], "Toldot": ["Toldos"], "Vaetchanan": ["Vaeschanan"], "Yitro": ["Yisro"], "Vezot Haberakhah": ["Vezos Haberakhah"], "Parashat": ["Parshas"], "Leil Selichot": ["Leil Selichos"], "Shabbat Mevarchim Chodesh": ["Shabbos Mevorchim Chodesh"], "Shabbat Shirah": ["Shabbos Shirah"], "Asara B'Tevet": ["Asara B’Teves"], "Birkat Hachamah": ["Birkas HaChamah"], "Birkat HaChamah": ["Birkas HaChamah"], "Shushan Purim Katan": ["Shushan Purim Koton"], "Alot HaShachar": ["Alos HaShachar"], "Misheyakir": ["Misheyakir"], "Misheyakir Machmir": ["Misheyakir Machmir"], "Sunrise": ["Sunrise"], "Kriat Shema, sof zeman": ["Krias Shema, sof zman"], "Tefilah, sof zeman": ["Tefilah, sof zman"], "Kriat Shema, sof zeman (MGA)": ["Krias Shema, sof zman (MGA)"], "Kriat Shema, sof zeman (GRA)": ["Krias Shema, sof zman (GRA)"], "Tefilah, sof zeman (MGA)": ["Tefilah, sof zman (MGA)"], "Tefilah, sof zeman (GRA)": ["Tefilah, sof zman (GRA)"], "Chatzot HaLailah": ["Chatzos HaLailah"], "Chatzot HaYom": ["Chatzos"], "Chatzot hayom": ["Chatzos"], "Mincha Gedolah": ["Mincha Gedolah"], "Mincha Ketanah": ["Mincha Ketanah"], "Plag HaMincha": ["Plag HaMincha"], "Sunset": ["Sunset"], "Bein HaShemashot": ["Bein HaShemashos"], "Tzeit HaKochavim": ["Tzeis HaKochavim"] } } };
|
|
2023
2038
|
|
|
2024
2039
|
var poHe = { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "he_IL" }, "contexts": { "": { "Shabbat": ["שַׁבָּת"], "Parashat": ["פָּרָשַׁת"], "Achrei Mot": ["אַחֲרֵי מוֹת"], "Balak": ["בָּלָק"], "Bamidbar": ["בְּמִדְבַּר"], "Bechukotai": ["בְּחֻקֹּתַי"], "Beha'alotcha": ["בְּהַעֲלֹתְךָ"], "Behar": ["בְּהַר"], "Bereshit": ["בְּרֵאשִׁית"], "Beshalach": ["בְּשַׁלַּח"], "Bo": ["בֹּא"], "Chayei Sara": ["חַיֵּי שָֹרָה"], "Chukat": ["חֻקַּת"], "Devarim": ["דְּבָרִים"], "Eikev": ["עֵקֶב"], "Emor": ["אֱמוֹר"], "Ha'azinu": ["הַאֲזִינוּ"], "Kedoshim": ["קְדֹשִׁים"], "Ki Tavo": ["כִּי־תָבוֹא"], "Ki Teitzei": ["כִּי־תֵצֵא"], "Ki Tisa": ["כִּי תִשָּׂא"], "Korach": ["קֹרַח"], "Lech-Lecha": ["לֶךְ־לְךָ"], "Masei": ["מַסְעֵי"], "Matot": ["מַטּוֹת"], "Metzora": ["מְצֹרָע"], "Miketz": ["מִקֵּץ"], "Mishpatim": ["מִשְׁפָּטִים"], "Nasso": ["נָשׂא"], "Nitzavim": ["נִצָּבִים"], "Noach": ["נֹחַ"], "Pekudei": ["פְקוּדֵי"], "Pinchas": ["פִּינְחָס"], "Re'eh": ["רְאֵה"], "Sh'lach": ["שְׁלַח־לְךָ"], "Shemot": ["שְׁמוֹת"], "Shmini": ["שְּׁמִינִי"], "Shoftim": ["שׁוֹפְטִים"], "Tazria": ["תַזְרִיעַ"], "Terumah": ["תְּרוּמָה"], "Tetzaveh": ["תְּצַוֶּה"], "Toldot": ["תּוֹלְדוֹת"], "Tzav": ["צַו"], "Vaera": ["וָאֵרָא"], "Vaetchanan": ["וָאֶתְחַנַּן"], "Vayakhel": ["וַיַּקְהֵל"], "Vayechi": ["וַיְחִי"], "Vayeilech": ["וַיֵּלֶךְ"], "Vayera": ["וַיֵּרָא"], "Vayeshev": ["וַיֵּשֶׁב"], "Vayetzei": ["וַיֵּצֵא"], "Vayigash": ["וַיִּגַּשׁ"], "Vayikra": ["וַיִּקְרָא"], "Vayishlach": ["וַיִּשְׁלַח"], "Vezot Haberakhah": ["וְזֹאת הַבְּרָכָה"], "Yitro": ["יִתְרוֹ"], "Asara B'Tevet": ["עֲשָׂרָה בְּטֵבֵת"], "Candle lighting": ["הַדְלָקַת נֵרוֹת"], "Chanukah": ["חֲנוּכָּה"], "Chanukah: 1 Candle": ["חֲנוּכָּה: א׳ נֵר"], "Chanukah: 2 Candles": ["חֲנוּכָּה: ב׳ נֵרוֹת"], "Chanukah: 3 Candles": ["חֲנוּכָּה: ג׳ נֵרוֹת"], "Chanukah: 4 Candles": ["חֲנוּכָּה: ד׳ נֵרוֹת"], "Chanukah: 5 Candles": ["חֲנוּכָּה: ה׳ נֵרוֹת"], "Chanukah: 6 Candles": ["חֲנוּכָּה: ו׳ נֵרוֹת"], "Chanukah: 7 Candles": ["חֲנוּכָּה: ז׳ נֵרוֹת"], "Chanukah: 8 Candles": ["חֲנוּכָּה: ח׳ נֵרוֹת"], "Chanukah: 8th Day": ["חֲנוּכָּה: יוֹם ח׳"], "Days of the Omer": ["סְפִירַת הָעוֹמֶר"], "Omer": ["עוֹמֶר"], "day of the Omer": ["בָּעוֹמֶר"], "Erev Pesach": ["עֶרֶב פֶּסַח"], "Erev Purim": ["עֶרֶב פּוּרִים"], "Erev Rosh Hashana": ["עֶרֶב רֹאשׁ הַשָּׁנָה"], "Erev Shavuot": ["עֶרֶב שָׁבוּעוֹת"], "Erev Simchat Torah": ["עֶרֶב שִׂמְחַת תּוֹרָה"], "Erev Sukkot": ["עֶרֶב סֻכּוֹת"], "Erev Tish'a B'Av": ["עֶרֶב תִּשְׁעָה בְּאָב"], "Erev Yom Kippur": ["עֶרֶב יוֹם כִּפּוּר"], "Havdalah": ["הַבְדָּלָה"], "Lag BaOmer": ["ל״ג בָּעוֹמֶר"], "Leil Selichot": ["סְלִיחוֹת"], "Pesach": ["פֶּסַח"], "Pesach I": ["פֶּסַח א׳"], "Pesach II": ["פֶּסַח ב׳"], "Pesach II (CH''M)": ["פֶּסַח ב׳ (חוה״מ)"], "Pesach III (CH''M)": ["פֶּסַח ג׳ (חוה״מ)"], "Pesach IV (CH''M)": ["פֶּסַח ד׳ (חוה״מ)"], "Pesach Sheni": ["פֶּסַח שֵׁנִי"], "Pesach V (CH''M)": ["פֶּסַח ה׳ (חוה״מ)"], "Pesach VI (CH''M)": ["פֶּסַח ו׳ (חוה״מ)"], "Pesach VII": ["פֶּסַח ז׳"], "Pesach VIII": ["פֶּסַח ח׳"], "Pesach Shabbat Chol ha-Moed": ["פֶּסַח שַׁבָּת חֹל הַמּוֹעֵד"], "Purim": ["פּוּרִים"], "Purim Katan": ["פּוּרִים קָטָן"], "Rosh Chodesh": ["רֹאשׁ חוֹדֶשׁ"], "Rosh Hashana": ["רֹאשׁ הַשָּׁנָה"], "Rosh Hashana I": ["רֹאשׁ הַשָּׁנָה א׳"], "Rosh Hashana II": ["רֹאשׁ הַשָּׁנָה ב׳"], "Shabbat Chazon": ["שַׁבַּת חֲזוֹן"], "Shabbat HaChodesh": ["שַׁבַּת הַחֹדֶשׁ"], "Shabbat HaGadol": ["שַׁבַּת הַגָּדוֹל"], "Shabbat Nachamu": ["שַׁבַּת נַחֲמוּ"], "Shabbat Parah": ["שַׁבַּת פָּרָה"], "Shabbat Shekalim": ["שַׁבַּת שְׁקָלִים"], "Shabbat Shuva": ["שַׁבַּת שׁוּבָה"], "Shabbat Zachor": ["שַׁבַּת זָכוֹר"], "Shavuot": ["שָׁבוּעוֹת"], "Shavuot I": ["שָׁבוּעוֹת א׳"], "Shavuot II": ["שָׁבוּעוֹת ב׳"], "Shmini Atzeret": ["שְׁמִינִי עֲצֶרֶת"], "Shushan Purim": ["שׁוּשָׁן פּוּרִים"], "Sigd": ["חַג הַסִּיגְד"], "Simchat Torah": ["שִׂמְחַת תּוֹרָה"], "Sukkot": ["סֻכּוֹת"], "Sukkot I": ["סֻכּוֹת א׳"], "Sukkot II": ["סֻכּוֹת ב׳"], "Sukkot II (CH''M)": ["סֻכּוֹת ב׳ (חוה״מ)"], "Sukkot III (CH''M)": ["סֻכּוֹת ג׳ (חוה״מ)"], "Sukkot IV (CH''M)": ["סֻכּוֹת ד׳ (חוה״מ)"], "Sukkot V (CH''M)": ["סֻכּוֹת ה׳ (חוה״מ)"], "Sukkot VI (CH''M)": ["סֻכּוֹת ו׳ (חוה״מ)"], "Sukkot VII (Hoshana Raba)": ["סֻכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"], "Sukkot Shabbat Chol ha-Moed": ["סֻכּוֹת שַׁבָּת חֹל הַמּוֹעֵד"], "Ta'anit Bechorot": ["תַּעֲנִית בְּכוֹרוֹת"], "Ta'anit BeHaB": ["תַּעֲנִית בה״ב"], "Ta'anit Esther": ["תַּעֲנִית אֶסְתֵּר"], "Tish'a B'Av": ["תִּשְׁעָה בְּאָב"], "Tu B'Av": ["ט״וּ בְּאָב"], "Tu BiShvat": ["ט״וּ בִּשְׁבָט"], "Tu B'Shvat": ["ט״וּ בִּשְׁבָט"], "Tzom Gedaliah": ["צוֹם גְּדַלְיָה"], "Tzom Tammuz": ["צוֹם י״ז בְּתַמּוּז"], "Yom HaAtzma'ut": ["יוֹם הָעַצְמָאוּת"], "Yom HaShoah": ["יוֹם הַשּׁוֹאָה"], "Yom HaZikaron": ["יוֹם הַזִּכָּרוֹן"], "Yom Kippur": ["יוֹם כִּפּוּר"], "Yom Yerushalayim": ["יוֹם יְרוּשָׁלַיִם"], "Yom HaAliyah": ["יוֹם הַעֲלִיָּה"], "Yom HaAliyah School Observance": ["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"], "Rosh Chodesh Adar": ["רֹאשׁ חוֹדֶשׁ אֲדָר"], "Rosh Chodesh Adar I": ["רֹאשׁ חוֹדֶשׁ אֲדָר א׳"], "Rosh Chodesh Adar II": ["רֹאשׁ חוֹדֶשׁ אֲדָר ב׳"], "Rosh Chodesh Av": ["רֹאשׁ חוֹדֶשׁ אָב"], "Rosh Chodesh Cheshvan": ["רֹאשׁ חוֹדֶשׁ חֶשְׁוָן"], "Rosh Chodesh Elul": ["רֹאשׁ חוֹדֶשׁ אֱלוּל"], "Rosh Chodesh Iyyar": ["רֹאשׁ חוֹדֶשׁ אִיָּיר"], "Rosh Chodesh Kislev": ["רֹאשׁ חוֹדֶשׁ כִּסְלֵו"], "Rosh Chodesh Nisan": ["רֹאשׁ חוֹדֶשׁ נִיסָן"], "Rosh Chodesh Sh'vat": ["רֹאשׁ חוֹדֶשׁ שְׁבָט"], "Rosh Chodesh Sivan": ["רֹאשׁ חוֹדֶשׁ סִיוָן"], "Rosh Chodesh Tamuz": ["רֹאשׁ חוֹדֶשׁ תַּמּוּז"], "Rosh Chodesh Tammuz": ["רֹאשׁ חוֹדֶשׁ תַּמּוּז"], "Rosh Chodesh Tevet": ["רֹאשׁ חוֹדֶשׁ טֵבֵת"], "min": ["דַּקּוֹת"], "Fast begins": ["תְּחִילַּת הַצוֹם"], "Fast ends": ["סִיּוּם הַצוֹם"], "Rosh Hashana LaBehemot": ["רֹאשׁ הַשָּׁנָה לְמַעְשַׂר בְּהֵמָה"], "Tish'a B'Av (observed)": ["(תִּשְׁעָה בְּאָב (נִדְחָה"], "Shabbat Mevarchim Chodesh": ["שַׁבַּת מְבָרְכִים חוֹדֶשׁ"], "Shabbat Shirah": ["שַׁבַּת שִׁירָה"], "Lovingkindness": ["חֶסֶד"], "Might": ["גְּבוּרָה"], "Beauty": ["תִּפְאֶרֶת"], "Eternity": ["נֶּצַח"], "Splendor": ["הוֹד"], "Foundation": ["יְּסוֹד"], "Majesty": ["מַּלְכוּת"], "day": ["יוֹם"], "Yom Kippur Katan": ["יוֹם כִּפּוּר קָטָן"], "Yizkor": ["יִזְכּוֹר"], "Family Day": ["יוֹם הַמִּשׁפָּחָה"], "Yitzhak Rabin Memorial Day": ["יוֹם הַזִּכָּרוֹן לְיִצְחָק רַבִּין"], "Jabotinsky Day": ["יוֹם זַ׳בּוֹטִינְסְקִי"], "Herzl Day": ["יוֹם הֶרְצְל"], "Ben-Gurion Day": ["יוֹם בֶּן־גּוּרִיּוֹן"], "Hebrew Language Day": ["יוֹם הַשָׂפָה הַעִברִית"], "Birkat Hachamah": ["בִּרְכַּת הַחַמָּה"], "Birkat HaChamah": ["בִּרְכַּת הַחַמָּה"], "Shushan Purim Katan": ["שׁוּשָׁן פּוּרִים קָטָן"], "Purim Meshulash": ["פּוּרִים מְשׁוּלָּשׁ"], "Chag HaBanot": ["חַג הַבָּנוֹת"], "Molad": ["מוֹלָד הָלְּבָנָה"], "chalakim": ["חֲלָקִים"], "Alot HaShachar": ["עֲלוֹת הַשַּׁחַר"], "Misheyakir": ["מִשֶּׁיַּכִּיר"], "Misheyakir Machmir": ["מִשֶּׁיַּכִּיר מַחְמִיר"], "Sunrise": ["נֵץ הַחַמָּה"], "Kriat Shema, sof zeman": ["סוֹף זְמַן קְרִיאַת שְׁמַע"], "Tefilah, sof zeman": ["סוֹף זְמַן תְּפִלָּה"], "Kriat Shema, sof zeman (MGA)": ["סוֹף זְמַן קְרִיאַת שְׁמַע (מג״א)"], "Kriat Shema, sof zeman (GRA)": ["סוֹף זְמַן קְרִיאַת שְׁמַע (גְּרָ״א)"], "Tefilah, sof zeman (MGA)": ["סוֹף זְמַן תְּפִלָּה (מג״א)"], "Tefilah, sof zeman (GRA)": ["סוֹף זְמַן תְּפִלָּה (גְּרָ״א)"], "Chatzot HaLailah": ["חֲצוֹת הַלַּיְלָה"], "Chatzot HaYom": ["חֲצוֹת הַיּוֹם"], "Chatzot hayom": ["חֲצוֹת הַיּוֹם"], "Mincha Gedolah": ["מִנְחָה גְּדוֹלָה"], "Mincha Ketanah": ["מִנְחָה קְטַנָּה"], "Plag HaMincha": ["פְּלַג הַמִּנְחָה"], "Sunset": ["שְׁקִיעַת הַחַמָּה"], "Bein HaShemashot": ["בֵּין הַשְּׁמָשׁוֹת"], "Tzeit HaKochavim": ["צֵאת הַכּוֹכָבִים"], "Biur Chametz": ["בִּעוּר חָמֵץ"], "Finish eating chametz": ["סוֹף זְמַן אֲכִילַת חָמֵץ"] } } };
|
|
2025
2040
|
|
|
@@ -2145,7 +2160,7 @@ class Event {
|
|
|
2145
2160
|
if (!HDate.isHDate(date)) {
|
|
2146
2161
|
throw new TypeError(`Invalid Event date: ${date}`);
|
|
2147
2162
|
}
|
|
2148
|
-
|
|
2163
|
+
if (typeof desc !== 'string') {
|
|
2149
2164
|
throw new TypeError(`Invalid Event description: ${desc}`);
|
|
2150
2165
|
}
|
|
2151
2166
|
this.date = date;
|
|
@@ -8561,6 +8576,9 @@ class Location extends GeoLocation {
|
|
|
8561
8576
|
super(cityName || null, lat, long, elev, tzid);
|
|
8562
8577
|
this.il = Boolean(il);
|
|
8563
8578
|
this.cc = countryCode;
|
|
8579
|
+
if (countryCode === 'IL') {
|
|
8580
|
+
this.il = true;
|
|
8581
|
+
}
|
|
8564
8582
|
this.geoid = geoid;
|
|
8565
8583
|
}
|
|
8566
8584
|
/**
|
|
@@ -8600,7 +8618,7 @@ class Location extends GeoLocation {
|
|
|
8600
8618
|
if (name[comma + 3] === 'C') {
|
|
8601
8619
|
return name.substring(0, comma + 4);
|
|
8602
8620
|
}
|
|
8603
|
-
|
|
8621
|
+
if (name[comma + 3] === '.' && name[comma + 4] === 'C') {
|
|
8604
8622
|
return name.substring(0, comma + 6);
|
|
8605
8623
|
}
|
|
8606
8624
|
}
|
|
@@ -8697,15 +8715,13 @@ class Location extends GeoLocation {
|
|
|
8697
8715
|
if (tz === 0) {
|
|
8698
8716
|
return 'UTC';
|
|
8699
8717
|
}
|
|
8700
|
-
|
|
8701
|
-
|
|
8702
|
-
return `Etc/GMT${plus}${tz}`;
|
|
8703
|
-
}
|
|
8718
|
+
const plus = tz > 0 ? '+' : '';
|
|
8719
|
+
return `Etc/GMT${plus}${tz}`;
|
|
8704
8720
|
}
|
|
8705
|
-
|
|
8721
|
+
if (tz === 2 && dst === 'israel') {
|
|
8706
8722
|
return 'Asia/Jerusalem';
|
|
8707
8723
|
}
|
|
8708
|
-
|
|
8724
|
+
if (dst === 'eu') {
|
|
8709
8725
|
switch (tz) {
|
|
8710
8726
|
case -2:
|
|
8711
8727
|
return 'Atlantic/Cape_Verde';
|
|
@@ -8719,7 +8735,7 @@ class Location extends GeoLocation {
|
|
|
8719
8735
|
return 'Europe/Athens';
|
|
8720
8736
|
}
|
|
8721
8737
|
}
|
|
8722
|
-
|
|
8738
|
+
if (dst === 'usa') {
|
|
8723
8739
|
return ZIPCODES_TZ_MAP[String(tz * -1)];
|
|
8724
8740
|
}
|
|
8725
8741
|
return undefined;
|
|
@@ -8737,12 +8753,10 @@ class Location extends GeoLocation {
|
|
|
8737
8753
|
if (tz === 10 && state === 'AK') {
|
|
8738
8754
|
return 'America/Adak';
|
|
8739
8755
|
}
|
|
8740
|
-
|
|
8756
|
+
if (tz === 7 && state === 'AZ') {
|
|
8741
8757
|
return dst === 'Y' ? 'America/Denver' : 'America/Phoenix';
|
|
8742
8758
|
}
|
|
8743
|
-
|
|
8744
|
-
return ZIPCODES_TZ_MAP[tz];
|
|
8745
|
-
}
|
|
8759
|
+
return ZIPCODES_TZ_MAP[tz];
|
|
8746
8760
|
}
|
|
8747
8761
|
/**
|
|
8748
8762
|
* Registers a new named location with the built-in `Location.lookup()`
|
|
@@ -8990,7 +9004,7 @@ function getDayNames(locale) {
|
|
|
8990
9004
|
if (Locale.isHebrewLocale(locale)) {
|
|
8991
9005
|
return heDayNames;
|
|
8992
9006
|
}
|
|
8993
|
-
|
|
9007
|
+
if (locale === 'fr') {
|
|
8994
9008
|
return frDoW;
|
|
8995
9009
|
}
|
|
8996
9010
|
return enDoW;
|
|
@@ -8998,11 +9012,11 @@ function getDayNames(locale) {
|
|
|
8998
9012
|
function getHebrewTimeOfDay(hour) {
|
|
8999
9013
|
if (hour < 5)
|
|
9000
9014
|
return night;
|
|
9001
|
-
|
|
9015
|
+
if (hour < 12)
|
|
9002
9016
|
return 'בַּבֹּקֶר';
|
|
9003
|
-
|
|
9017
|
+
if (hour < 17)
|
|
9004
9018
|
return 'בַּצׇּהֳרַיִים';
|
|
9005
|
-
|
|
9019
|
+
if (hour < 21)
|
|
9006
9020
|
return 'בָּעֶרֶב';
|
|
9007
9021
|
return night;
|
|
9008
9022
|
}
|
|
@@ -10155,8 +10169,7 @@ class Zmanim {
|
|
|
10155
10169
|
if (isNaN(date.getTime())) {
|
|
10156
10170
|
return '0000-00-00T00:00:00Z';
|
|
10157
10171
|
}
|
|
10158
|
-
return (getPseudoISO(tzid, date).substring(0, 19) +
|
|
10159
|
-
Zmanim.timeZoneOffset(tzid, date));
|
|
10172
|
+
return (getPseudoISO(tzid, date).substring(0, 19) + Zmanim.timeZoneOffset(tzid, date));
|
|
10160
10173
|
}
|
|
10161
10174
|
/**
|
|
10162
10175
|
* Returns sunrise + `offset` minutes (either positive or negative).
|
|
@@ -10337,12 +10350,10 @@ function yearType(hyear) {
|
|
|
10337
10350
|
if (longC && !shortK) {
|
|
10338
10351
|
return COMPLETE;
|
|
10339
10352
|
}
|
|
10340
|
-
|
|
10353
|
+
if (!longC && shortK) {
|
|
10341
10354
|
return INCOMPLETE;
|
|
10342
10355
|
}
|
|
10343
|
-
|
|
10344
|
-
return REGULAR;
|
|
10345
|
-
}
|
|
10356
|
+
return REGULAR;
|
|
10346
10357
|
}
|
|
10347
10358
|
/**
|
|
10348
10359
|
* Represents the weekly Torah-reading (Parashat HaShavua) schedule for an
|
|
@@ -10425,23 +10436,21 @@ class Sedra {
|
|
|
10425
10436
|
}
|
|
10426
10437
|
return this.findInternal(parsha);
|
|
10427
10438
|
}
|
|
10428
|
-
|
|
10439
|
+
if (typeof parsha === 'string') {
|
|
10429
10440
|
const num = parsha2id.get(parsha);
|
|
10430
10441
|
if (typeof num === 'number') {
|
|
10431
10442
|
return this.find(num);
|
|
10432
10443
|
}
|
|
10433
|
-
|
|
10444
|
+
if (parsha.includes('-')) {
|
|
10434
10445
|
if (parsha === CHMPESACH || parsha === CHMSUKOT) {
|
|
10435
10446
|
return this.findInternal(parsha);
|
|
10436
10447
|
}
|
|
10437
10448
|
return this.find(parsha.split('-'));
|
|
10438
10449
|
}
|
|
10439
|
-
|
|
10440
|
-
|
|
10441
|
-
return this.findInternal(parsha);
|
|
10442
|
-
}
|
|
10450
|
+
// try to find Saturday holiday like 'Yom Kippur'
|
|
10451
|
+
return this.findInternal(parsha);
|
|
10443
10452
|
}
|
|
10444
|
-
|
|
10453
|
+
if (Array.isArray(parsha)) {
|
|
10445
10454
|
const plen = parsha.length;
|
|
10446
10455
|
if ((plen !== 1 && plen !== 2) || typeof parsha[0] !== 'string') {
|
|
10447
10456
|
throw new TypeError(`Invalid parsha argument: ${JSON.stringify(parsha)}`);
|
|
@@ -10580,7 +10589,7 @@ class Sedra {
|
|
|
10580
10589
|
if (isNaN(abs)) {
|
|
10581
10590
|
throw new TypeError(`Bad date argument: ${hd}`);
|
|
10582
10591
|
}
|
|
10583
|
-
|
|
10592
|
+
if (abs < this.rh) {
|
|
10584
10593
|
throw new RangeError(`Date ${hd} before start of Hebrew year ${this.year}`);
|
|
10585
10594
|
}
|
|
10586
10595
|
// find the first saturday on or after today's date
|
|
@@ -10614,6 +10623,67 @@ class Sedra {
|
|
|
10614
10623
|
il: this.il,
|
|
10615
10624
|
};
|
|
10616
10625
|
}
|
|
10626
|
+
/**
|
|
10627
|
+
* Returns details about the parsha read on Monday or Thursday for `hd`, or
|
|
10628
|
+
* `undefined` if `hd` is not a Monday or Thursday.
|
|
10629
|
+
*
|
|
10630
|
+
* Weekday Torah readings generally begin the upcoming Shabbat parsha. When
|
|
10631
|
+
* the upcoming Shabbat is a holiday, this method returns the next regular
|
|
10632
|
+
* parsha instead.
|
|
10633
|
+
*
|
|
10634
|
+
* For the Tishrei weekdays before Sukkot or Simchat Torah, the weekday
|
|
10635
|
+
* reading is *Vezot Haberakhah* even though it is not read on Shabbat.
|
|
10636
|
+
* @param hd Hebrew date or R.D. days
|
|
10637
|
+
*/
|
|
10638
|
+
lookupWeekday(hd) {
|
|
10639
|
+
const abs = typeof hd === 'number' ? hd : HDate.isHDate(hd) ? hd.abs() : NaN;
|
|
10640
|
+
if (isNaN(abs)) {
|
|
10641
|
+
throw new TypeError(`Bad date argument: ${hd}`);
|
|
10642
|
+
}
|
|
10643
|
+
if (abs < this.rh) {
|
|
10644
|
+
throw new RangeError(`Date ${hd} before start of Hebrew year ${this.year}`);
|
|
10645
|
+
}
|
|
10646
|
+
const hdate = new HDate(abs);
|
|
10647
|
+
const day = hdate.getDay();
|
|
10648
|
+
if (day !== 1 && day !== 4) {
|
|
10649
|
+
return undefined;
|
|
10650
|
+
}
|
|
10651
|
+
const saturday = new HDate(HDate.dayOnOrBefore(6, abs + 6));
|
|
10652
|
+
const parsha = this.lookup(saturday);
|
|
10653
|
+
if (!parsha.chag) {
|
|
10654
|
+
return parsha;
|
|
10655
|
+
}
|
|
10656
|
+
return this.findWeekdayParsha(saturday);
|
|
10657
|
+
}
|
|
10658
|
+
findWeekdayParsha(saturday) {
|
|
10659
|
+
const hyear = saturday.getFullYear();
|
|
10660
|
+
const il = this.il;
|
|
10661
|
+
if (saturday.getMonth() === months.TISHREI) {
|
|
10662
|
+
const dd = saturday.getDate();
|
|
10663
|
+
const simchatTorah = il ? 22 : 23;
|
|
10664
|
+
if (dd > 2 && dd <= simchatTorah) {
|
|
10665
|
+
return {
|
|
10666
|
+
parsha: ['Vezot Haberakhah'],
|
|
10667
|
+
chag: false,
|
|
10668
|
+
num: 54,
|
|
10669
|
+
hdate: saturday,
|
|
10670
|
+
il,
|
|
10671
|
+
};
|
|
10672
|
+
}
|
|
10673
|
+
}
|
|
10674
|
+
const sedra = hyear === this.year ? this : getSedra(hyear, il);
|
|
10675
|
+
const endOfYear = new HDate(1, months.TISHREI, hyear + 1).abs() - 1;
|
|
10676
|
+
const endAbs = endOfYear + 30;
|
|
10677
|
+
for (let sat2 = saturday.abs() + 7; sat2 <= endAbs; sat2 += 7) {
|
|
10678
|
+
const sedra2 = sat2 > endOfYear ? getSedra(hyear + 1, il) : sedra;
|
|
10679
|
+
const parsha2 = sedra2.lookup(sat2);
|
|
10680
|
+
if (!parsha2.chag) {
|
|
10681
|
+
return parsha2;
|
|
10682
|
+
}
|
|
10683
|
+
}
|
|
10684
|
+
/* NOTREACHED */
|
|
10685
|
+
throw new Error(`can't find weekday parsha for ${saturday}/${il}`);
|
|
10686
|
+
}
|
|
10617
10687
|
}
|
|
10618
10688
|
/**
|
|
10619
10689
|
* The 54 parshiyot of the Torah as transilterated strings.
|
|
@@ -11559,12 +11629,10 @@ class HolidayEvent extends Event {
|
|
|
11559
11629
|
if (this.emoji) {
|
|
11560
11630
|
return this.emoji;
|
|
11561
11631
|
}
|
|
11562
|
-
|
|
11632
|
+
if (this.getFlags() & flags.SPECIAL_SHABBAT) {
|
|
11563
11633
|
return '🕍';
|
|
11564
11634
|
}
|
|
11565
|
-
|
|
11566
|
-
return '✡️';
|
|
11567
|
-
}
|
|
11635
|
+
return '✡️';
|
|
11568
11636
|
}
|
|
11569
11637
|
getCategories() {
|
|
11570
11638
|
if (this.cholHaMoedDay) {
|
|
@@ -11830,7 +11898,7 @@ function getHolidaysForYear_(year) {
|
|
|
11830
11898
|
if (typeof year !== 'number') {
|
|
11831
11899
|
throw new TypeError(`bad Hebrew year: ${year}`);
|
|
11832
11900
|
}
|
|
11833
|
-
|
|
11901
|
+
if (year < 1 || year > 32658) {
|
|
11834
11902
|
throw new RangeError(`Hebrew year ${year} out of range 1-32658`);
|
|
11835
11903
|
}
|
|
11836
11904
|
const cached = yearCache.get(year);
|
|
@@ -11859,11 +11927,12 @@ function getHolidaysForYear_(year) {
|
|
|
11859
11927
|
}
|
|
11860
11928
|
for (const h of staticHolidays) {
|
|
11861
11929
|
const hd = new HDate(h.dd, h.mm, year);
|
|
11862
|
-
const
|
|
11930
|
+
const attrs = {};
|
|
11863
11931
|
if (h.emoji)
|
|
11864
|
-
|
|
11932
|
+
attrs.emoji = h.emoji;
|
|
11865
11933
|
if (h.chmDay)
|
|
11866
|
-
|
|
11934
|
+
attrs.cholHaMoedDay = h.chmDay;
|
|
11935
|
+
const ev = new HolidayEvent(hd, h.desc, h.flags, attrs);
|
|
11867
11936
|
add(ev);
|
|
11868
11937
|
}
|
|
11869
11938
|
// standard holidays that don't shift based on year
|
|
@@ -12385,6 +12454,56 @@ function makeCandleEvent(ev, hd, options, isFriday, isSaturday) {
|
|
|
12385
12454
|
}
|
|
12386
12455
|
const FAST_BEGINS = holidayDesc.FAST_BEGINS;
|
|
12387
12456
|
const FAST_ENDS = holidayDesc.FAST_ENDS;
|
|
12457
|
+
/**
|
|
12458
|
+
* Tzeit HaKochavim as calculated by Rabbi Yechiel Michel Tucazinsky,
|
|
12459
|
+
* 6.45° below geometric zenith. Default end time for Tish'a B'Av.
|
|
12460
|
+
* @private
|
|
12461
|
+
*/
|
|
12462
|
+
const TZEIT_TUCAZINSKY = 6.45;
|
|
12463
|
+
/**
|
|
12464
|
+
* Observation of 3 medium-sized stars, 7.0833333° below geometric zenith.
|
|
12465
|
+
* Default end time for minor fasts in the Diaspora.
|
|
12466
|
+
* @private
|
|
12467
|
+
*/
|
|
12468
|
+
const TZEIT_3MEDIUM_STARS = 7.0833333;
|
|
12469
|
+
/**
|
|
12470
|
+
* Minutes after sunset that minor fasts (including Yom Kippur Katan) end in
|
|
12471
|
+
* Israel by default, following Rabbi Deblitzky's practice.
|
|
12472
|
+
* @see {https://www.yeshiva.org.il/calendar/timeprinciples}
|
|
12473
|
+
* @private
|
|
12474
|
+
*/
|
|
12475
|
+
const MINOR_FAST_END_MINUTES_IL = 15;
|
|
12476
|
+
/**
|
|
12477
|
+
* Computes the "Fast ends" time for a fast day.
|
|
12478
|
+
*
|
|
12479
|
+
* Tish'a B'Av always ends at tzeit 6.45° (Rabbi Yechiel Michel Tucazinsky),
|
|
12480
|
+
* regardless of `options`.
|
|
12481
|
+
*
|
|
12482
|
+
* For minor fasts: when `options.fastEndMins` is a nonzero number, the fast
|
|
12483
|
+
* ends that many minutes after sunset; otherwise, when `options.fastEndDeg` is
|
|
12484
|
+
* a nonzero number, the fast ends at tzeit for that solar depression angle.
|
|
12485
|
+
* When neither is specified, the default depends on `options.il`:
|
|
12486
|
+
* - In Israel, minor fasts end 15 minutes after sunset (Rabbi Deblitzky's practice).
|
|
12487
|
+
* - Elsewhere, minor fasts end at tzeit 7.083° (3 medium-sized stars).
|
|
12488
|
+
* @private
|
|
12489
|
+
*/
|
|
12490
|
+
function makeFastEndTime(zmanim, isTishaBav, options) {
|
|
12491
|
+
if (isTishaBav) {
|
|
12492
|
+
return zmanim.tzeit(TZEIT_TUCAZINSKY);
|
|
12493
|
+
}
|
|
12494
|
+
const fastEndMins = options.fastEndMins;
|
|
12495
|
+
if (typeof fastEndMins === 'number' && fastEndMins !== 0) {
|
|
12496
|
+
return zmanim.sunsetOffset(Math.abs(fastEndMins), true);
|
|
12497
|
+
}
|
|
12498
|
+
const fastEndDeg = options.fastEndDeg;
|
|
12499
|
+
if (typeof fastEndDeg === 'number' && fastEndDeg !== 0) {
|
|
12500
|
+
return zmanim.tzeit(Math.abs(fastEndDeg));
|
|
12501
|
+
}
|
|
12502
|
+
if (options.il) {
|
|
12503
|
+
return zmanim.sunsetOffset(MINOR_FAST_END_MINUTES_IL, true);
|
|
12504
|
+
}
|
|
12505
|
+
return zmanim.tzeit(TZEIT_3MEDIUM_STARS);
|
|
12506
|
+
}
|
|
12388
12507
|
/**
|
|
12389
12508
|
* A fast day holiday with attached start and end time events.
|
|
12390
12509
|
*
|
|
@@ -12393,9 +12512,14 @@ const FAST_ENDS = holidayDesc.FAST_ENDS;
|
|
|
12393
12512
|
* {@link TimedEvent}. Generated by {@link HebrewCalendar.calendar} when
|
|
12394
12513
|
* `options.candlelighting` is `true` and `options.location` is provided.
|
|
12395
12514
|
*
|
|
12396
|
-
* - Minor fasts begin at *Alot HaShachar*
|
|
12397
|
-
*
|
|
12398
|
-
* -
|
|
12515
|
+
* - Minor fasts (including Yom Kippur Katan) begin at *Alot HaShachar*
|
|
12516
|
+
* (16.1° below horizon in the morning). By default they end at tzeit
|
|
12517
|
+
* 7.083° (3 medium-sized stars) in the Diaspora, or 15 minutes after
|
|
12518
|
+
* sunset in Israel (Rabbi Deblitzky's practice). This can be overridden
|
|
12519
|
+
* via `options.fastEndDeg` or `options.fastEndMins`.
|
|
12520
|
+
* - Tish'a B'Av begins at sunset on the previous day and always ends at tzeit
|
|
12521
|
+
* 6.45° below horizon (Rabbi Yechiel Michel Tucazinsky), regardless of
|
|
12522
|
+
* `options.fastEndDeg` / `options.fastEndMins`.
|
|
12399
12523
|
* - When a minor fast falls on a Friday, the end time is suppressed
|
|
12400
12524
|
* (Shabbat begins before nightfall).
|
|
12401
12525
|
*/
|
|
@@ -12437,7 +12561,6 @@ function makeFastStartEnd(ev, options) {
|
|
|
12437
12561
|
const hd = ev.getDate();
|
|
12438
12562
|
const dt = hd.greg();
|
|
12439
12563
|
const location = options.location;
|
|
12440
|
-
const fastEndDeg = options.fastEndDeg;
|
|
12441
12564
|
const useElevation = Boolean(options.useElevation);
|
|
12442
12565
|
const zmanim = new Zmanim(location, dt, useElevation);
|
|
12443
12566
|
let startEvent;
|
|
@@ -12449,9 +12572,9 @@ function makeFastStartEnd(ev, options) {
|
|
|
12449
12572
|
}
|
|
12450
12573
|
}
|
|
12451
12574
|
else if (desc.startsWith("Tish'a B'Av")) {
|
|
12452
|
-
const
|
|
12453
|
-
if (!isNaN(
|
|
12454
|
-
endEvent = makeTimedEvent(ev,
|
|
12575
|
+
const fastEnd = makeFastEndTime(zmanim, true, options);
|
|
12576
|
+
if (!isNaN(fastEnd.getTime())) {
|
|
12577
|
+
endEvent = makeTimedEvent(ev, fastEnd, FAST_ENDS, options);
|
|
12455
12578
|
}
|
|
12456
12579
|
}
|
|
12457
12580
|
else {
|
|
@@ -12461,9 +12584,9 @@ function makeFastStartEnd(ev, options) {
|
|
|
12461
12584
|
}
|
|
12462
12585
|
if (dt.getDay() !== 5 &&
|
|
12463
12586
|
!(hd.getDate() === 14 && hd.getMonth() === months.NISAN)) {
|
|
12464
|
-
const
|
|
12465
|
-
if (!isNaN(
|
|
12466
|
-
endEvent = makeTimedEvent(ev,
|
|
12587
|
+
const fastEnd = makeFastEndTime(zmanim, false, options);
|
|
12588
|
+
if (!isNaN(fastEnd.getTime())) {
|
|
12589
|
+
endEvent = makeTimedEvent(ev, fastEnd, FAST_ENDS, options);
|
|
12467
12590
|
}
|
|
12468
12591
|
}
|
|
12469
12592
|
}
|
|
@@ -13030,6 +13153,19 @@ function renderParshaName(parsha, locale) {
|
|
|
13030
13153
|
*/
|
|
13031
13154
|
class ParshaEvent extends Event {
|
|
13032
13155
|
constructor(parsha) {
|
|
13156
|
+
// eslint-disable-next-line prefer-rest-params
|
|
13157
|
+
if (arguments.length !== 1) {
|
|
13158
|
+
throw new TypeError(`ParshaEvent constructor takes a single SedraResult argument; ` +
|
|
13159
|
+
`got ${arguments.length} arguments`);
|
|
13160
|
+
}
|
|
13161
|
+
if (typeof parsha !== 'object' ||
|
|
13162
|
+
parsha === null ||
|
|
13163
|
+
!Array.isArray(parsha.parsha) ||
|
|
13164
|
+
parsha.parsha.length === 0 ||
|
|
13165
|
+
parsha.parsha.length > 2 ||
|
|
13166
|
+
!HDate.isHDate(parsha.hdate)) {
|
|
13167
|
+
throw new TypeError(`Invalid SedraResult argument: ${JSON.stringify(parsha)}`);
|
|
13168
|
+
}
|
|
13033
13169
|
const desc = 'Parashat ' + parsha.parsha.join('-');
|
|
13034
13170
|
super(parsha.hdate, desc, flags.PARSHA_HASHAVUA);
|
|
13035
13171
|
this.p = parsha;
|
|
@@ -13049,10 +13185,7 @@ class ParshaEvent extends Event {
|
|
|
13049
13185
|
return undefined;
|
|
13050
13186
|
}
|
|
13051
13187
|
const dt = this.urlDateSuffix();
|
|
13052
|
-
const url = 'https://www.hebcal.com/sedrot/' +
|
|
13053
|
-
urlFriendly(this.basename()) +
|
|
13054
|
-
'-' +
|
|
13055
|
-
dt;
|
|
13188
|
+
const url = 'https://www.hebcal.com/sedrot/' + urlFriendly(this.basename()) + '-' + dt;
|
|
13056
13189
|
return this.p.il ? url + '?i=on' : url;
|
|
13057
13190
|
}
|
|
13058
13191
|
urlDateSuffix() {
|
|
@@ -13303,10 +13436,12 @@ const MAX_NUM_YEARS = 2000;
|
|
|
13303
13436
|
* @private
|
|
13304
13437
|
*/
|
|
13305
13438
|
function getStartAndEnd(options) {
|
|
13306
|
-
|
|
13307
|
-
|
|
13439
|
+
const hasStart = options.start !== undefined;
|
|
13440
|
+
const hasEnd = options.end !== undefined;
|
|
13441
|
+
if (hasStart !== hasEnd) {
|
|
13442
|
+
throw new TypeError('options.start requires options.end');
|
|
13308
13443
|
}
|
|
13309
|
-
|
|
13444
|
+
if (hasStart && hasEnd) {
|
|
13310
13445
|
const start = getAbs(options.start), end = getAbs(options.end);
|
|
13311
13446
|
if (end - start > 365 * MAX_NUM_YEARS) {
|
|
13312
13447
|
throw new RangeError(`Date range exceeds ${MAX_NUM_YEARS} years`);
|
|
@@ -13318,7 +13453,7 @@ function getStartAndEnd(options) {
|
|
|
13318
13453
|
if (isNaN(theYear)) {
|
|
13319
13454
|
throw new RangeError(`Invalid year ${options.year}`);
|
|
13320
13455
|
}
|
|
13321
|
-
|
|
13456
|
+
if (isHebrewYear && theYear < 1) {
|
|
13322
13457
|
throw new RangeError(`Invalid Hebrew year ${theYear}`);
|
|
13323
13458
|
}
|
|
13324
13459
|
const theMonth = getMonth(options);
|
|
@@ -13338,7 +13473,7 @@ function getMonth(options) {
|
|
|
13338
13473
|
if (options.isHebrewYear) {
|
|
13339
13474
|
return HDate.monthNum(options.month);
|
|
13340
13475
|
}
|
|
13341
|
-
|
|
13476
|
+
if (typeof options.month === 'number') {
|
|
13342
13477
|
return options.month;
|
|
13343
13478
|
}
|
|
13344
13479
|
}
|
|
@@ -13555,10 +13690,7 @@ function calendar(options = {}) {
|
|
|
13555
13690
|
const mm = hd.getMonth();
|
|
13556
13691
|
const dd = hd.getDate();
|
|
13557
13692
|
// When Erev Pesach falls on Shabbat, burning chametz is moved to Friday.
|
|
13558
|
-
if (isFriday &&
|
|
13559
|
-
options.candlelighting &&
|
|
13560
|
-
mm === months.NISAN &&
|
|
13561
|
-
dd === 13) {
|
|
13693
|
+
if (isFriday && options.candlelighting && mm === months.NISAN && dd === 13) {
|
|
13562
13694
|
const biurEv = makeBiurChametzEvent(hd, options);
|
|
13563
13695
|
if (biurEv) {
|
|
13564
13696
|
evts.push(biurEv);
|
|
@@ -13678,6 +13810,7 @@ const RECOGNIZED_OPTIONS = {
|
|
|
13678
13810
|
havdalahMins: 1,
|
|
13679
13811
|
havdalahDeg: 1,
|
|
13680
13812
|
fastEndDeg: 1,
|
|
13813
|
+
fastEndMins: 1,
|
|
13681
13814
|
sedrot: 1,
|
|
13682
13815
|
il: 1,
|
|
13683
13816
|
noMinorFast: 1,
|
|
@@ -13705,8 +13838,7 @@ const RECOGNIZED_OPTIONS = {
|
|
|
13705
13838
|
*/
|
|
13706
13839
|
function warnUnrecognizedOptions(options) {
|
|
13707
13840
|
for (const k of Object.keys(options)) {
|
|
13708
|
-
if (RECOGNIZED_OPTIONS[k] === undefined &&
|
|
13709
|
-
!unrecognizedAlreadyWarned.has(k)) {
|
|
13841
|
+
if (RECOGNIZED_OPTIONS[k] === undefined && !unrecognizedAlreadyWarned.has(k)) {
|
|
13710
13842
|
console.warn(`Ignoring unrecognized HebrewCalendar option: ${k}`);
|
|
13711
13843
|
unrecognizedAlreadyWarned.add(k);
|
|
13712
13844
|
}
|
|
@@ -13744,15 +13876,6 @@ const geoIdCandleOffset = {
|
|
|
13744
13876
|
* @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ZmanimCalendar.html#ZENITH_8_POINT_5}
|
|
13745
13877
|
*/
|
|
13746
13878
|
const TZEIT_3SMALL_STARS = 8.5;
|
|
13747
|
-
/**
|
|
13748
|
-
* @private
|
|
13749
|
-
* @constant
|
|
13750
|
-
* This calculation is based on observation of 3 medium sized stars by Dr. Baruch Cohen
|
|
13751
|
-
* in his calendar published in in 1899 in Strasbourg, France.
|
|
13752
|
-
* This calculates to 7.0833333° below geometric zenith.
|
|
13753
|
-
* @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#ZENITH_7_POINT_083}
|
|
13754
|
-
*/
|
|
13755
|
-
const TZEIT_3MEDIUM_STARS = 7.0833333;
|
|
13756
13879
|
/**
|
|
13757
13880
|
* Modifies options in-place
|
|
13758
13881
|
* @private
|
|
@@ -13769,10 +13892,14 @@ function checkCandleOptions(options) {
|
|
|
13769
13892
|
typeof options.havdalahDeg === 'number') {
|
|
13770
13893
|
throw new TypeError('options.havdalahMins and options.havdalahDeg are mutually exclusive');
|
|
13771
13894
|
}
|
|
13895
|
+
if (typeof options.fastEndDeg === 'number' &&
|
|
13896
|
+
typeof options.fastEndMins === 'number') {
|
|
13897
|
+
throw new TypeError('options.fastEndDeg and options.fastEndMins are mutually exclusive');
|
|
13898
|
+
}
|
|
13772
13899
|
const min0 = options.candleLightingMins;
|
|
13773
13900
|
let min = typeof min0 === 'number' && !isNaN(min0) ? Math.trunc(min0) : 18;
|
|
13774
13901
|
if (location.getIsrael() && Math.abs(min) === 18) {
|
|
13775
|
-
min = overrideIsraelCandleMins(location
|
|
13902
|
+
min = overrideIsraelCandleMins(location);
|
|
13776
13903
|
}
|
|
13777
13904
|
options.candleLightingMins = -1 * Math.abs(min);
|
|
13778
13905
|
if (typeof options.havdalahMins === 'number') {
|
|
@@ -13784,11 +13911,14 @@ function checkCandleOptions(options) {
|
|
|
13784
13911
|
else {
|
|
13785
13912
|
options.havdalahDeg = TZEIT_3SMALL_STARS;
|
|
13786
13913
|
}
|
|
13787
|
-
if (typeof options.fastEndDeg
|
|
13788
|
-
options.fastEndDeg =
|
|
13914
|
+
if (typeof options.fastEndDeg === 'number') {
|
|
13915
|
+
options.fastEndDeg = Math.abs(options.fastEndDeg);
|
|
13916
|
+
}
|
|
13917
|
+
if (typeof options.fastEndMins === 'number') {
|
|
13918
|
+
options.fastEndMins = Math.trunc(Math.abs(options.fastEndMins));
|
|
13789
13919
|
}
|
|
13790
13920
|
}
|
|
13791
|
-
function overrideIsraelCandleMins(location
|
|
13921
|
+
function overrideIsraelCandleMins(location) {
|
|
13792
13922
|
const geoid = location.getGeoId();
|
|
13793
13923
|
if (geoid) {
|
|
13794
13924
|
const offset = geoIdCandleOffset[geoid];
|
|
@@ -13803,7 +13933,7 @@ function overrideIsraelCandleMins(location, min) {
|
|
|
13803
13933
|
return offset;
|
|
13804
13934
|
}
|
|
13805
13935
|
}
|
|
13806
|
-
return
|
|
13936
|
+
return 20;
|
|
13807
13937
|
}
|
|
13808
13938
|
/**
|
|
13809
13939
|
* Mask to filter Holiday array
|
|
@@ -13992,8 +14122,7 @@ function appendHolidayAndRelated(candlesEv, events, ev, options, isFriday, isSat
|
|
|
13992
14122
|
events.push(ev); // the original event itself
|
|
13993
14123
|
}
|
|
13994
14124
|
}
|
|
13995
|
-
if ((isMajorFast || (isMinorFast && !options.noMinorFast)) &&
|
|
13996
|
-
fastEv?.endEvent) {
|
|
14125
|
+
if ((isMajorFast || (isMinorFast && !options.noMinorFast)) && fastEv?.endEvent) {
|
|
13997
14126
|
events.push(fastEv.endEvent);
|
|
13998
14127
|
}
|
|
13999
14128
|
return candlesEv;
|