@hebcal/core 4.4.1 → 4.5.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 CHANGED
@@ -68,7 +68,17 @@ holidays. <code>@hebcal/core</code> supports four locales by default</p>
68
68
  <dd><p>Daily Hebrew date (&quot;11th of Sivan, 5780&quot;)</p>
69
69
  </dd>
70
70
  <dt><a href="#Zmanim">Zmanim</a></dt>
71
- <dd><p>Class representing halachic times</p>
71
+ <dd><p>Calculate halachic times (zmanim / זְמַנִּים) for a given day and location.
72
+ Calculations are available for tzeit / tzais (nightfall),
73
+ shkiah (sunset) and more.</p>
74
+ <p>Zmanim are estimated using an algorithm published by the US National Oceanic
75
+ and Atmospheric Administration. The NOAA solar calculator is based on equations
76
+ from <em>Astronomical Algorithms</em> by Jean Meeus.</p>
77
+ <p>The sunrise and sunset results are theoretically accurate to within a minute for
78
+ locations between +/- 72° latitude, and within 10 minutes outside of those latitudes.
79
+ However, due to variations in atmospheric composition, temperature, pressure and
80
+ conditions, observed values may vary from calculations.
81
+ <a href="https://gml.noaa.gov/grad/solcalc/calcdetails.html">https://gml.noaa.gov/grad/solcalc/calcdetails.html</a></p>
72
82
  </dd>
73
83
  <dt><a href="#Location">Location</a></dt>
74
84
  <dd><p>Class representing Location</p>
@@ -1083,7 +1093,19 @@ Helper function to render a Hebrew date
1083
1093
  <a name="Zmanim"></a>
1084
1094
 
1085
1095
  ## Zmanim
1086
- Class representing halachic times
1096
+ Calculate halachic times (zmanim / זְמַנִּים) for a given day and location.
1097
+ Calculations are available for tzeit / tzais (nightfall),
1098
+ shkiah (sunset) and more.
1099
+
1100
+ Zmanim are estimated using an algorithm published by the US National Oceanic
1101
+ and Atmospheric Administration. The NOAA solar calculator is based on equations
1102
+ from _Astronomical Algorithms_ by Jean Meeus.
1103
+
1104
+ The sunrise and sunset results are theoretically accurate to within a minute for
1105
+ locations between +/- 72° latitude, and within 10 minutes outside of those latitudes.
1106
+ However, due to variations in atmospheric composition, temperature, pressure and
1107
+ conditions, observed values may vary from calculations.
1108
+ https://gml.noaa.gov/grad/solcalc/calcdetails.html
1087
1109
 
1088
1110
  **Kind**: global class
1089
1111
 
@@ -1091,6 +1113,7 @@ Class representing halachic times
1091
1113
  * [new Zmanim(date, latitude, longitude)](#new_Zmanim_new)
1092
1114
  * _instance_
1093
1115
  * ~~[.suntime()](#Zmanim+suntime) ⇒ [<code>ZmanimTimesResult</code>](#ZmanimTimesResult)~~
1116
+ * [.timeAtAngle(angle, rising)](#Zmanim+timeAtAngle) ⇒ <code>Date</code>
1094
1117
  * [.sunrise()](#Zmanim+sunrise) ⇒ <code>Date</code>
1095
1118
  * [.sunset()](#Zmanim+sunset) ⇒ <code>Date</code>
1096
1119
  * [.dawn()](#Zmanim+dawn) ⇒ <code>Date</code>
@@ -1138,12 +1161,35 @@ Initialize a Zmanim instance.
1138
1161
  | latitude | <code>number</code> | |
1139
1162
  | longitude | <code>number</code> | |
1140
1163
 
1164
+ **Example**
1165
+ ```js
1166
+ const {Zmanim} = require('@hebcal/core');
1167
+ const latitude = 41.822232;
1168
+ const longitude = -71.448292;
1169
+ const friday = new Date(2023, 8, 8);
1170
+ const zmanim = new Zmanim(friday, latitude, longitude);
1171
+ const candleLighting = zmanim.sunsetOffset(-18, true);
1172
+ const timeStr = Zmanim.formatISOWithTimeZone('America/New_York', candleLighting);
1173
+ ```
1141
1174
  <a name="Zmanim+suntime"></a>
1142
1175
 
1143
1176
  ### ~~zmanim.suntime() ⇒ [<code>ZmanimTimesResult</code>](#ZmanimTimesResult)~~
1144
1177
  ***Deprecated***
1145
1178
 
1146
1179
  **Kind**: instance method of [<code>Zmanim</code>](#Zmanim)
1180
+ <a name="Zmanim+timeAtAngle"></a>
1181
+
1182
+ ### zmanim.timeAtAngle(angle, rising) ⇒ <code>Date</code>
1183
+ Convenience function to get the time when sun is above or below the horizon
1184
+ for a certain angle (in degrees).
1185
+
1186
+ **Kind**: instance method of [<code>Zmanim</code>](#Zmanim)
1187
+
1188
+ | Param | Type |
1189
+ | --- | --- |
1190
+ | angle | <code>number</code> |
1191
+ | rising | <code>boolean</code> |
1192
+
1147
1193
  <a name="Zmanim+sunrise"></a>
1148
1194
 
1149
1195
  ### zmanim.sunrise() ⇒ <code>Date</code>
@@ -1276,7 +1322,7 @@ Plag haMincha; Sunrise plus 10.75 halachic hours
1276
1322
 
1277
1323
  | Param | Type | Default | Description |
1278
1324
  | --- | --- | --- | --- |
1279
- | [angle] | <code>number</code> | <code>8.5</code> | optional time for solar depression. Default is 8.5 degrees for 3 small stars, use 7.083 degress for 3 medium-sized stars. |
1325
+ | [angle] | <code>number</code> | <code>8.5</code> | optional time for solar depression. Default is 8.5 degrees for 3 small stars, use 7.083 degrees for 3 medium-sized stars. |
1280
1326
 
1281
1327
  <a name="Zmanim+neitzHaChama"></a>
1282
1328
 
@@ -1339,7 +1385,7 @@ Returns an array with tzeit Date object and a 24-hour string formatted time.
1339
1385
 
1340
1386
  | Param | Type | Description |
1341
1387
  | --- | --- | --- |
1342
- | angle | <code>number</code> | degrees for solar depression. Default is 8.5 degrees for 3 small stars, use 7.083 degress for 3 medium-sized stars. |
1388
+ | angle | <code>number</code> | degrees for solar depression. Default is 8.5 degrees for 3 small stars, use 7.083 degrees for 3 medium-sized stars. |
1343
1389
  | timeFormat | <code>Intl.DateTimeFormat</code> | |
1344
1390
 
1345
1391
  <a name="Zmanim.formatTime"></a>
@@ -2035,26 +2081,12 @@ Represents a built-in holiday like Pesach, Purim or Tu BiShvat
2035
2081
  **Kind**: global class
2036
2082
 
2037
2083
  * [HolidayEvent](#HolidayEvent)
2038
- * [new HolidayEvent(date, desc, [mask], [attrs])](#new_HolidayEvent_new)
2039
2084
  * [.basename()](#HolidayEvent+basename) ⇒ <code>string</code>
2040
2085
  * [.url()](#HolidayEvent+url) ⇒ <code>string</code>
2041
2086
  * [.urlDateSuffix()](#HolidayEvent+urlDateSuffix) ⇒ <code>string</code>
2042
2087
  * [.getEmoji()](#HolidayEvent+getEmoji) ⇒ <code>string</code>
2043
2088
  * [.getCategories()](#HolidayEvent+getCategories) ⇒ <code>Array.&lt;string&gt;</code>
2044
2089
 
2045
- <a name="new_HolidayEvent_new"></a>
2046
-
2047
- ### new HolidayEvent(date, desc, [mask], [attrs])
2048
- Constructs Holiday event
2049
-
2050
-
2051
- | Param | Type | Default | Description |
2052
- | --- | --- | --- | --- |
2053
- | date | [<code>HDate</code>](#HDate) | | Hebrew date event occurs |
2054
- | desc | <code>string</code> | | Description (not translated) |
2055
- | [mask] | <code>number</code> | <code>0</code> | optional holiday flags |
2056
- | [attrs] | <code>Object</code> | <code>{}</code> | |
2057
-
2058
2090
  <a name="HolidayEvent+basename"></a>
2059
2091
 
2060
2092
  ### holidayEvent.basename() ⇒ <code>string</code>
@@ -2125,23 +2157,6 @@ Because Asara B'Tevet often occurs twice in the same Gregorian year,
2125
2157
  we subclass HolidayEvent to override the `url()` method.
2126
2158
 
2127
2159
  **Kind**: global class
2128
-
2129
- * [AsaraBTevetEvent](#AsaraBTevetEvent)
2130
- * [new AsaraBTevetEvent(date, desc, [mask])](#new_AsaraBTevetEvent_new)
2131
- * [.urlDateSuffix()](#AsaraBTevetEvent+urlDateSuffix) ⇒ <code>string</code>
2132
-
2133
- <a name="new_AsaraBTevetEvent_new"></a>
2134
-
2135
- ### new AsaraBTevetEvent(date, desc, [mask])
2136
- Constructs AsaraBTevetEvent
2137
-
2138
-
2139
- | Param | Type | Default | Description |
2140
- | --- | --- | --- | --- |
2141
- | date | [<code>HDate</code>](#HDate) | | Hebrew date event occurs |
2142
- | desc | <code>string</code> | | Description (not translated) |
2143
- | [mask] | <code>number</code> | <code>0</code> | optional holiday flags |
2144
-
2145
2160
  <a name="AsaraBTevetEvent+urlDateSuffix"></a>
2146
2161
 
2147
2162
  ### asaraBTevetEvent.urlDateSuffix() ⇒ <code>string</code>
@@ -2282,7 +2297,9 @@ Additional non-default event types can be specified:
2282
2297
  * Molad announcement on Saturday before Rosh Chodesh (`options.molad`)
2283
2298
  * Yom Kippur Katan (`options.yomKippurKatan`)
2284
2299
 
2285
- Daily Study of texts:
2300
+ Daily Study of texts are supported by the
2301
+ [@hebcal/learning](https://github.com/hebcal/hebcal-learning) package,
2302
+ for example:
2286
2303
  * Babylonian Talmud Daf Yomi (`options.dailyLearning.dafYomi`)
2287
2304
  * Jerusalem Talmud (Yerushalmi) Yomi (`options.dailyLearning.yerushalmi`)
2288
2305
  * Mishna Yomi (`options.dailyLearning.mishnaYomi`)
@@ -2305,10 +2322,10 @@ option (Tzeit Hakochavim) is calculated when the sun is 8.5° below the horizon.
2305
2322
  These defaults can be changed using these options:
2306
2323
  * `options.candleLightingMins` - minutes before sundown to light candles
2307
2324
  * `options.havdalahMins` - minutes after sundown for Havdalah (typical values are 42, 50, or 72).
2308
- Havdalah times are supressed when `options.havdalahMins=0`.
2325
+ Havdalah times are suppressed when `options.havdalahMins=0`.
2309
2326
  * `options.havdalahDeg` - degrees for solar depression for Havdalah.
2310
- Default is 8.5 degrees for 3 small stars. Use 7.083 degress for 3 medium-sized stars.
2311
- Havdalah times are supressed when `options.havdalahDeg=0`.
2327
+ Default is 8.5 degrees for 3 small stars. Use 7.083 degrees for 3 medium-sized stars.
2328
+ Havdalah times are suppressed when `options.havdalahDeg=0`.
2312
2329
 
2313
2330
  If both `options.candlelighting=true` and `options.location` is specified,
2314
2331
  Chanukah candle-lighting times and minor fast start/end times will also be generated.
@@ -2818,8 +2835,9 @@ Options to configure which events are returned
2818
2835
  | end | <code>Date</code> \| [<code>HDate</code>](#HDate) \| <code>number</code> | use specific end date (requires start date) |
2819
2836
  | candlelighting | <code>boolean</code> | calculate candle-lighting and havdalah times |
2820
2837
  | candleLightingMins | <code>number</code> | minutes before sundown to light candles (default 18) |
2821
- | havdalahMins | <code>number</code> | minutes after sundown for Havdalah (typical values are 42, 50, or 72). If `undefined` (the default), calculate Havdalah according to Tzeit Hakochavim - Nightfall (the point when 3 small stars are observable in the night time sky with the naked eye). If `0`, Havdalah times are supressed. |
2822
- | havdalahDeg | <code>number</code> | degrees for solar depression for Havdalah. Default is 8.5 degrees for 3 small stars. use 7.083 degress for 3 medium-sized stars. If `0`, Havdalah times are supressed. |
2838
+ | havdalahMins | <code>number</code> | minutes after sundown for Havdalah (typical values are 42, 50, or 72). If `undefined` (the default), calculate Havdalah according to Tzeit Hakochavim - Nightfall (the point when 3 small stars are observable in the night time sky with the naked eye). If `0`, Havdalah times are suppressed. |
2839
+ | havdalahDeg | <code>number</code> | degrees for solar depression for Havdalah. Default is 8.5 degrees for 3 small stars. use 7.083 degrees for 3 medium-sized stars (observed by Dr. Baruch (Berthold) Cohn in his luach published in France in 1899). If `0`, Havdalah times are suppressed. |
2840
+ | fastEndDeg | <code>number</code> | degrees for solar depression for end of fast days. Default is 7.083 degrees for 3 medium-sized stars. Other commonly-used values include 6.45 degrees, as calculated by Rabbi Yechiel Michel Tucazinsky. |
2823
2841
  | sedrot | <code>boolean</code> | calculate parashah hashavua on Saturdays |
2824
2842
  | il | <code>boolean</code> | Israeli holiday and sedra schedule |
2825
2843
  | noMinorFast | <code>boolean</code> | suppress minor fasts |
package/dist/bundle.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v4.4.1 */
1
+ /*! @hebcal/core v4.5.0 */
2
2
  var hebcal = (function (exports) {
3
3
  'use strict';
4
4
 
@@ -1579,6 +1579,7 @@ class HDate {
1579
1579
  case 'h':
1580
1580
  return months.SHVAT;
1581
1581
  }
1582
+ break;
1582
1583
  case 't':
1583
1584
  switch (c[1]) {
1584
1585
  case 'a':
@@ -2406,7 +2407,30 @@ function pad2(number) {
2406
2407
  * @property {Date} tzeit
2407
2408
  */
2408
2409
 
2409
- /** Class representing halachic times */
2410
+ /**
2411
+ * Calculate halachic times (zmanim / זְמַנִּים) for a given day and location.
2412
+ * Calculations are available for tzeit / tzais (nightfall),
2413
+ * shkiah (sunset) and more.
2414
+ *
2415
+ * Zmanim are estimated using an algorithm published by the US National Oceanic
2416
+ * and Atmospheric Administration. The NOAA solar calculator is based on equations
2417
+ * from _Astronomical Algorithms_ by Jean Meeus.
2418
+ *
2419
+ * The sunrise and sunset results are theoretically accurate to within a minute for
2420
+ * locations between +/- 72° latitude, and within 10 minutes outside of those latitudes.
2421
+ * However, due to variations in atmospheric composition, temperature, pressure and
2422
+ * conditions, observed values may vary from calculations.
2423
+ * https://gml.noaa.gov/grad/solcalc/calcdetails.html
2424
+ *
2425
+ * @example
2426
+ * const {Zmanim} = require('@hebcal/core');
2427
+ * const latitude = 41.822232;
2428
+ * const longitude = -71.448292;
2429
+ * const friday = new Date(2023, 8, 8);
2430
+ * const zmanim = new Zmanim(friday, latitude, longitude);
2431
+ * const candleLighting = zmanim.sunsetOffset(-18, true);
2432
+ * const timeStr = Zmanim.formatISOWithTimeZone('America/New_York', candleLighting);
2433
+ */
2410
2434
  class Zmanim {
2411
2435
  /**
2412
2436
  * Initialize a Zmanim instance.
@@ -2456,6 +2480,16 @@ class Zmanim {
2456
2480
  tzeit: this.tzeit()
2457
2481
  };
2458
2482
  }
2483
+ /**
2484
+ * Convenience function to get the time when sun is above or below the horizon
2485
+ * for a certain angle (in degrees).
2486
+ * @param {number} angle
2487
+ * @param {boolean} rising
2488
+ * @return {Date}
2489
+ */
2490
+ timeAtAngle(angle, rising) {
2491
+ return this.sun.timeAtAngle(angle, rising);
2492
+ }
2459
2493
  /**
2460
2494
  * Upper edge of the Sun appears over the eastern horizon in the morning (0.833° above horizon)
2461
2495
  * @return {Date}
@@ -2612,7 +2646,7 @@ class Zmanim {
2612
2646
  }
2613
2647
  /**
2614
2648
  * @param {number} [angle=8.5] optional time for solar depression.
2615
- * Default is 8.5 degrees for 3 small stars, use 7.083 degress for 3 medium-sized stars.
2649
+ * Default is 8.5 degrees for 3 small stars, use 7.083 degrees for 3 medium-sized stars.
2616
2650
  * @return {Date}
2617
2651
  */
2618
2652
  tzeit() {
@@ -2762,7 +2796,7 @@ class Zmanim {
2762
2796
  * Returns an array with tzeit Date object and a 24-hour string formatted time.
2763
2797
  * @deprecated
2764
2798
  * @param {number} angle degrees for solar depression.
2765
- * Default is 8.5 degrees for 3 small stars, use 7.083 degress for 3 medium-sized stars.
2799
+ * Default is 8.5 degrees for 3 small stars, use 7.083 degrees for 3 medium-sized stars.
2766
2800
  * @param {Intl.DateTimeFormat} timeFormat
2767
2801
  * @return {Object[]}
2768
2802
  */
@@ -3095,17 +3129,6 @@ const days = {
3095
3129
  SAT: 6
3096
3130
  };
3097
3131
 
3098
- /**
3099
- * @private
3100
- * @constant
3101
- * This method returns the tzais (nightfall) based on the opinion of the
3102
- * Geonim calculated as 30 minutes after sunset during the equinox
3103
- * (on March 16, about 4 days before the astronomical equinox, the day that
3104
- * a solar hour is 60 minutes) in Yerushalayim.
3105
- * @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#getTzaisGeonim7Point083Degrees()}
3106
- */
3107
- const TZEIT_3MEDIUM_STARS = 7.083;
3108
-
3109
3132
  /**
3110
3133
  * @private
3111
3134
  * @param {Event} e
@@ -3265,10 +3288,10 @@ class CandleLightingEvent extends TimedEvent {
3265
3288
  * Makes a pair of events representing fast start and end times
3266
3289
  * @private
3267
3290
  * @param {Event} ev
3268
- * @param {Location} location
3291
+ * @param {CalOptions} options
3269
3292
  * @return {Event}
3270
3293
  */
3271
- function makeFastStartEnd(ev, location) {
3294
+ function makeFastStartEnd(ev, options) {
3272
3295
  const desc = ev.getDesc();
3273
3296
  if (desc === 'Yom Kippur') {
3274
3297
  return ev;
@@ -3276,17 +3299,19 @@ function makeFastStartEnd(ev, location) {
3276
3299
  ev = ev.clone();
3277
3300
  const hd = ev.getDate();
3278
3301
  const dt = hd.greg();
3302
+ const location = options.location;
3303
+ const fastEndDeg = options.fastEndDeg;
3279
3304
  const zmanim = new Zmanim(dt, location.getLatitude(), location.getLongitude());
3280
3305
  if (desc === 'Erev Tish\'a B\'Av') {
3281
3306
  const sunset = zmanim.sunset();
3282
3307
  ev.startEvent = makeTimedEvent(hd, sunset, 'Fast begins', ev, location);
3283
3308
  } else if (desc.startsWith('Tish\'a B\'Av')) {
3284
- ev.endEvent = makeTimedEvent(hd, zmanim.tzeit(TZEIT_3MEDIUM_STARS), 'Fast ends', ev, location);
3309
+ ev.endEvent = makeTimedEvent(hd, zmanim.tzeit(fastEndDeg), 'Fast ends', ev, location);
3285
3310
  } else {
3286
3311
  const dawn = zmanim.alotHaShachar();
3287
3312
  ev.startEvent = makeTimedEvent(hd, dawn, 'Fast begins', ev, location);
3288
3313
  if (dt.getDay() !== 5 && !(hd.getDate() === 14 && hd.getMonth() === months.NISAN)) {
3289
- ev.endEvent = makeTimedEvent(hd, zmanim.tzeit(TZEIT_3MEDIUM_STARS), 'Fast ends', ev, location);
3314
+ ev.endEvent = makeTimedEvent(hd, zmanim.tzeit(fastEndDeg), 'Fast ends', ev, location);
3290
3315
  }
3291
3316
  }
3292
3317
  return ev;
@@ -4478,10 +4503,10 @@ var store$1 = sharedStore;
4478
4503
  (shared$3.exports = function (key, value) {
4479
4504
  return store$1[key] || (store$1[key] = value !== undefined ? value : {});
4480
4505
  })('versions', []).push({
4481
- version: '3.33.0',
4506
+ version: '3.33.2',
4482
4507
  mode: 'global',
4483
4508
  copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',
4484
- license: 'https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE',
4509
+ license: 'https://github.com/zloirock/core-js/blob/v3.33.2/LICENSE',
4485
4510
  source: 'https://github.com/zloirock/core-js'
4486
4511
  });
4487
4512
 
@@ -5940,7 +5965,7 @@ function getBirthdayOrAnniversary_(hyear, gdate) {
5940
5965
  return new HDate(day, month, hyear);
5941
5966
  }
5942
5967
 
5943
- const version="4.4.1";
5968
+ const version="4.5.0";
5944
5969
 
5945
5970
  const headers$1={"plural-forms":"nplurals=2; plural=(n > 1);"};const contexts$1={"":{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"],"Purim Katan":["Purim Koton"],"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)"],"Ta'anit Bechorot":["Ta'anis Bechoros"],"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"],Tevet:["Teves"],"Asara B'Tevet":["Asara B'Teves"],"Alot HaShachar":["Alos HaShachar"],"Kriat Shema, sof zeman":["Krias Shema, sof zman"],"Tefilah, sof zeman":["Tefilah, sof zman"],"Kriat Shema, sof zeman (MGA)":["Krias Shema, sof zman (MGA)"],"Tefilah, sof zeman (MGA)":["Tefilah, sof zman (MGA)"],"Chatzot HaLailah":["Chatzos HaLailah"],"Chatzot hayom":["Chatzos"],"Tzeit HaKochavim":["Tzeis HaKochavim"],"Birkat Hachamah":["Birkas Hachamah"],"Shushan Purim Katan":["Shushan Purim Koton"]}};var poAshkenazi = {headers:headers$1,contexts:contexts$1};
5946
5971
 
@@ -6695,11 +6720,15 @@ const MAJOR_FAST = flags.MAJOR_FAST;
6695
6720
  const ROSH_CHODESH = flags.ROSH_CHODESH;
6696
6721
  const PARSHA_HASHAVUA = flags.PARSHA_HASHAVUA;
6697
6722
  const DAF_YOMI = flags.DAF_YOMI;
6723
+ const MISHNA_YOMI = flags.MISHNA_YOMI;
6724
+ const NACH_YOMI = flags.NACH_YOMI;
6725
+ const YERUSHALMI_YOMI = flags.YERUSHALMI_YOMI;
6698
6726
  const OMER_COUNT = flags.OMER_COUNT;
6699
6727
  const SHABBAT_MEVARCHIM = flags.SHABBAT_MEVARCHIM;
6700
6728
  const MINOR_HOLIDAY = flags.MINOR_HOLIDAY;
6701
6729
  const EREV = flags.EREV;
6702
6730
  const CHOL_HAMOED = flags.CHOL_HAMOED;
6731
+ const YOM_KIPPUR_KATAN = flags.YOM_KIPPUR_KATAN;
6703
6732
  const unrecognizedAlreadyWarned = Object.create(null);
6704
6733
  const RECOGNIZED_OPTIONS = {
6705
6734
  location: 1,
@@ -6713,6 +6742,7 @@ const RECOGNIZED_OPTIONS = {
6713
6742
  candleLightingMins: 1,
6714
6743
  havdalahMins: 1,
6715
6744
  havdalahDeg: 1,
6745
+ fastEndDeg: 1,
6716
6746
  sedrot: 1,
6717
6747
  il: 1,
6718
6748
  noMinorFast: 1,
@@ -6776,6 +6806,27 @@ const geoIdCandleOffset = {
6776
6806
  '293067': 30 // Zikhron Yaakov
6777
6807
  };
6778
6808
 
6809
+ /**
6810
+ * @private
6811
+ * @constant
6812
+ * This calculation is based on the position of the sun 36 minutes after sunset in Jerusalem
6813
+ * around the equinox / equilux, which is 8.5° below geometric zenith.
6814
+ * The Ohr Meir considers this the time that 3 small stars are visible,
6815
+ * which is later than the required 3 medium stars.
6816
+ * @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ZmanimCalendar.html#ZENITH_8_POINT_5}
6817
+ */
6818
+ const TZEIT_3SMALL_STARS = 8.5;
6819
+
6820
+ /**
6821
+ * @private
6822
+ * @constant
6823
+ * This calculation is based on observation of 3 medium sized stars by Dr. Baruch Cohen
6824
+ * in his calendar published in in 1899 in Strasbourg, France.
6825
+ * This calculates to 7.0833333° below geometric zenith.
6826
+ * @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#ZENITH_7_POINT_083}
6827
+ */
6828
+ const TZEIT_3MEDIUM_STARS = 7.0833333;
6829
+
6779
6830
  /**
6780
6831
  * Modifies options in-place
6781
6832
  * @private
@@ -6810,7 +6861,10 @@ function checkCandleOptions(options) {
6810
6861
  } else if (typeof options.havdalahDeg === 'number') {
6811
6862
  options.havdalahDeg = Math.abs(options.havdalahDeg);
6812
6863
  } else {
6813
- options.havdalahDeg = 8.5;
6864
+ options.havdalahDeg = TZEIT_3SMALL_STARS;
6865
+ }
6866
+ if (typeof options.fastEndDeg !== 'number') {
6867
+ options.fastEndDeg = TZEIT_3MEDIUM_STARS;
6814
6868
  }
6815
6869
  }
6816
6870
 
@@ -6829,10 +6883,14 @@ function checkCandleOptions(options) {
6829
6883
  * @property {number} havdalahMins - minutes after sundown for Havdalah (typical values are 42, 50, or 72).
6830
6884
  * If `undefined` (the default), calculate Havdalah according to Tzeit Hakochavim -
6831
6885
  * Nightfall (the point when 3 small stars are observable in the night time sky with
6832
- * the naked eye). If `0`, Havdalah times are supressed.
6886
+ * the naked eye). If `0`, Havdalah times are suppressed.
6833
6887
  * @property {number} havdalahDeg - degrees for solar depression for Havdalah.
6834
- * Default is 8.5 degrees for 3 small stars. use 7.083 degress for 3 medium-sized stars.
6835
- * If `0`, Havdalah times are supressed.
6888
+ * Default is 8.5 degrees for 3 small stars. use 7.083 degrees for 3 medium-sized stars
6889
+ * (observed by Dr. Baruch (Berthold) Cohn in his luach published in France in 1899).
6890
+ * If `0`, Havdalah times are suppressed.
6891
+ * @property {number} fastEndDeg - degrees for solar depression for end of fast days.
6892
+ * Default is 7.083 degrees for 3 medium-sized stars. Other commonly-used values include
6893
+ * 6.45 degrees, as calculated by Rabbi Yechiel Michel Tucazinsky.
6836
6894
  * @property {boolean} sedrot - calculate parashah hashavua on Saturdays
6837
6895
  * @property {boolean} il - Israeli holiday and sedra schedule
6838
6896
  * @property {boolean} noMinorFast - suppress minor fasts
@@ -6955,33 +7013,7 @@ function getStartAndEnd(options) {
6955
7013
  function getMaskFromOptions(options) {
6956
7014
  var _options$location;
6957
7015
  if (typeof options.mask === 'number') {
6958
- const m = options.mask;
6959
- if (m & ROSH_CHODESH) delete options.noRoshChodesh;
6960
- if (m & MODERN_HOLIDAY) delete options.noModern;
6961
- if (m & MINOR_FAST) delete options.noMinorFast;
6962
- if (m & SPECIAL_SHABBAT) delete options.noSpecialShabbat;
6963
- if (m & PARSHA_HASHAVUA) options.sedrot = true;
6964
- if (m & DAF_YOMI) {
6965
- options.dailyLearning = options.dailyLearning || {};
6966
- options.dailyLearning.dafYomi = true;
6967
- }
6968
- if (m & OMER_COUNT) options.omer = true;
6969
- if (m & SHABBAT_MEVARCHIM) options.shabbatMevarchim = true;
6970
- if (m & flags.MISHNA_YOMI) {
6971
- options.dailyLearning = options.dailyLearning || {};
6972
- options.dailyLearning.mishnaYomi = true;
6973
- }
6974
- if (m & flags.NACH_YOMI) {
6975
- options.dailyLearning = options.dailyLearning || {};
6976
- options.dailyLearning.nachYomi = true;
6977
- }
6978
- if (m & flags.YOM_KIPPUR_KATAN) options.yomKippurKatan = true;
6979
- if (m & flags.YERUSHALMI_YOMI) {
6980
- options.dailyLearning = options.dailyLearning || {};
6981
- options.dailyLearning.yerushalmi = 1;
6982
- }
6983
- options.userMask = true;
6984
- return m;
7016
+ return setOptionsFromMask(options);
6985
7017
  }
6986
7018
  const il = options.il || ((_options$location = options.location) === null || _options$location === void 0 ? void 0 : _options$location.il) || false;
6987
7019
  let mask = 0;
@@ -7023,7 +7055,7 @@ function getMaskFromOptions(options) {
7023
7055
  mask |= SHABBAT_MEVARCHIM;
7024
7056
  }
7025
7057
  if (options.yomKippurKatan) {
7026
- mask |= flags.YOM_KIPPUR_KATAN;
7058
+ mask |= YOM_KIPPUR_KATAN;
7027
7059
  }
7028
7060
  if (options.dailyLearning) {
7029
7061
  const dailyLearning = options.dailyLearning;
@@ -7031,13 +7063,13 @@ function getMaskFromOptions(options) {
7031
7063
  mask |= DAF_YOMI;
7032
7064
  }
7033
7065
  if (dailyLearning.mishnaYomi) {
7034
- mask |= flags.MISHNA_YOMI;
7066
+ mask |= MISHNA_YOMI;
7035
7067
  }
7036
7068
  if (dailyLearning.nachYomi) {
7037
- mask |= flags.NACH_YOMI;
7069
+ mask |= NACH_YOMI;
7038
7070
  }
7039
7071
  if (dailyLearning.yerushalmi) {
7040
- mask |= flags.YERUSHALMI_YOMI;
7072
+ mask |= YERUSHALMI_YOMI;
7041
7073
  }
7042
7074
  }
7043
7075
  return mask;
@@ -7059,6 +7091,40 @@ const hour12cc = {
7059
7091
  ZA: 1
7060
7092
  };
7061
7093
 
7094
+ /**
7095
+ * @private
7096
+ * @param {CalOptions} options
7097
+ * @return {number}
7098
+ */
7099
+ function setOptionsFromMask(options) {
7100
+ const m = options.mask;
7101
+ if (m & ROSH_CHODESH) delete options.noRoshChodesh;
7102
+ if (m & MODERN_HOLIDAY) delete options.noModern;
7103
+ if (m & MINOR_FAST) delete options.noMinorFast;
7104
+ if (m & SPECIAL_SHABBAT) delete options.noSpecialShabbat;
7105
+ if (m & PARSHA_HASHAVUA) options.sedrot = true;
7106
+ if (m & (DAF_YOMI | MISHNA_YOMI | NACH_YOMI | YERUSHALMI_YOMI)) {
7107
+ options.dailyLearning = options.dailyLearning || {};
7108
+ if (m & DAF_YOMI) {
7109
+ options.dailyLearning.dafYomi = true;
7110
+ }
7111
+ if (m & MISHNA_YOMI) {
7112
+ options.dailyLearning.mishnaYomi = true;
7113
+ }
7114
+ if (m & NACH_YOMI) {
7115
+ options.dailyLearning.nachYomi = true;
7116
+ }
7117
+ if (m & YERUSHALMI_YOMI) {
7118
+ options.dailyLearning.yerushalmi = 1;
7119
+ }
7120
+ }
7121
+ if (m & OMER_COUNT) options.omer = true;
7122
+ if (m & SHABBAT_MEVARCHIM) options.shabbatMevarchim = true;
7123
+ if (m & YOM_KIPPUR_KATAN) options.yomKippurKatan = true;
7124
+ options.userMask = true;
7125
+ return m;
7126
+ }
7127
+
7062
7128
  /**
7063
7129
  * @private
7064
7130
  * @param {Event} ev
@@ -7145,10 +7211,10 @@ class HebrewCalendar {
7145
7211
  * These defaults can be changed using these options:
7146
7212
  * * `options.candleLightingMins` - minutes before sundown to light candles
7147
7213
  * * `options.havdalahMins` - minutes after sundown for Havdalah (typical values are 42, 50, or 72).
7148
- * Havdalah times are supressed when `options.havdalahMins=0`.
7214
+ * Havdalah times are suppressed when `options.havdalahMins=0`.
7149
7215
  * * `options.havdalahDeg` - degrees for solar depression for Havdalah.
7150
- * Default is 8.5 degrees for 3 small stars. Use 7.083 degress for 3 medium-sized stars.
7151
- * Havdalah times are supressed when `options.havdalahDeg=0`.
7216
+ * Default is 8.5 degrees for 3 small stars. Use 7.083 degrees for 3 medium-sized stars.
7217
+ * Havdalah times are suppressed when `options.havdalahDeg=0`.
7152
7218
  *
7153
7219
  * If both `options.candlelighting=true` and `options.location` is specified,
7154
7220
  * Chanukah candle-lighting times and minor fast start/end times will also be generated.
@@ -7552,7 +7618,7 @@ function appendHolidayAndRelated(events, ev, options, candlesEv, dow) {
7552
7618
  }
7553
7619
 
7554
7620
  const eFlags = ev.getFlags();
7555
- if (!options.yomKippurKatan && eFlags & flags.YOM_KIPPUR_KATAN || options.noModern && eFlags & MODERN_HOLIDAY) {
7621
+ if (!options.yomKippurKatan && eFlags & YOM_KIPPUR_KATAN || options.noModern && eFlags & MODERN_HOLIDAY) {
7556
7622
  return candlesEv; // bail out early
7557
7623
  }
7558
7624
 
@@ -7560,7 +7626,7 @@ function appendHolidayAndRelated(events, ev, options, candlesEv, dow) {
7560
7626
  const isMajorFast = Boolean(eFlags & MAJOR_FAST);
7561
7627
  const isMinorFast = Boolean(eFlags & MINOR_FAST);
7562
7628
  if (options.candlelighting && (isMajorFast || isMinorFast)) {
7563
- ev = makeFastStartEnd(ev, location);
7629
+ ev = makeFastStartEnd(ev, options);
7564
7630
  if (ev.startEvent && (isMajorFast || isMinorFast && !options.noMinorFast)) {
7565
7631
  events.push(ev.startEvent);
7566
7632
  }
@@ -7584,7 +7650,7 @@ function appendHolidayAndRelated(events, ev, options, candlesEv, dow) {
7584
7650
  candlesEv = undefined;
7585
7651
  }
7586
7652
  }
7587
- if (!options.noHolidays || options.yomKippurKatan && eFlags & flags.YOM_KIPPUR_KATAN) {
7653
+ if (!options.noHolidays || options.yomKippurKatan && eFlags & YOM_KIPPUR_KATAN) {
7588
7654
  events.push(ev); // the original event itself
7589
7655
  }
7590
7656
  }