@hebcal/core 6.6.0 → 6.7.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.
Files changed (147) hide show
  1. package/README.md +4 -4
  2. package/dist/bundle.js +183 -50
  3. package/dist/bundle.js.map +1 -1
  4. package/dist/bundle.min.js +18 -18
  5. package/dist/bundle.min.js.map +1 -1
  6. package/dist/esm/CalOptions.d.ts +15 -3
  7. package/dist/esm/DailyLearning.js +1 -1
  8. package/dist/esm/HebrewDateEvent.js +1 -1
  9. package/dist/esm/HolidayEvent.js +1 -1
  10. package/dist/esm/MevarchimChodeshEvent.js +1 -1
  11. package/dist/esm/ParshaEvent.js +16 -6
  12. package/dist/esm/ParshaEvent.js.map +1 -1
  13. package/dist/esm/TimedEvent.js +1 -1
  14. package/dist/esm/TimedEvent.js.map +1 -1
  15. package/dist/esm/YomKippurKatanEvent.js +1 -1
  16. package/dist/esm/ashkenazi.po.js +2 -2
  17. package/dist/esm/ashkenazi.po.js.map +1 -1
  18. package/dist/esm/calendar.js +14 -20
  19. package/dist/esm/calendar.js.map +1 -1
  20. package/dist/esm/candles.d.ts +8 -3
  21. package/dist/esm/candles.js +65 -11
  22. package/dist/esm/candles.js.map +1 -1
  23. package/dist/esm/cities.json.js +1 -1
  24. package/dist/esm/event.js +1 -1
  25. package/dist/esm/getStartAndEnd.js +1 -1
  26. package/dist/esm/hallel.js +1 -1
  27. package/dist/esm/he-x-NoNikud.po.js +1 -1
  28. package/dist/esm/he.po.js +1 -1
  29. package/dist/esm/hebcal.js +1 -1
  30. package/dist/esm/holidays.js +1 -1
  31. package/dist/esm/holidays.js.map +1 -1
  32. package/dist/esm/index.js +1 -1
  33. package/dist/esm/isAssurBemlacha.js +1 -1
  34. package/dist/esm/isAveilut.js +1 -1
  35. package/dist/esm/isFastDay.js +1 -1
  36. package/dist/esm/locale.js +1 -1
  37. package/dist/esm/location.js +1 -1
  38. package/dist/esm/location.js.map +1 -1
  39. package/dist/esm/modern.js +1 -1
  40. package/dist/esm/molad.js +1 -1
  41. package/dist/esm/moladBase.js +1 -1
  42. package/dist/esm/moladDate.js +1 -1
  43. package/dist/esm/moladDate.js.map +1 -1
  44. package/dist/esm/omer.js +1 -1
  45. package/dist/esm/parshaName.js +1 -1
  46. package/dist/esm/parshaYear.js +1 -1
  47. package/dist/esm/pkgVersion.d.ts +1 -1
  48. package/dist/esm/pkgVersion.js +2 -2
  49. package/dist/esm/pkgVersion.js.map +1 -1
  50. package/dist/esm/reformatTimeStr.js +1 -1
  51. package/dist/esm/reformatTimeStr.js.map +1 -1
  52. package/dist/esm/sedra.d.ts +14 -0
  53. package/dist/esm/sedra.js +62 -1
  54. package/dist/esm/sedra.js.map +1 -1
  55. package/dist/esm/sefira.json.js +1 -1
  56. package/dist/esm/staticHolidays.js +1 -1
  57. package/dist/esm/string.js +1 -1
  58. package/dist/esm/tachanun.js +1 -1
  59. package/dist/esm/tachanun.js.map +1 -1
  60. package/dist/esm/zmanim.js +2 -3
  61. package/dist/esm/zmanim.js.map +1 -1
  62. package/package.json +14 -17
  63. package/po/ashkenazi.po +1 -12
  64. package/dist/eslint.config.d.mts +0 -83
  65. package/dist/eslint.config.mjs +0 -29
  66. package/dist/po2json.d.ts +0 -1
  67. package/dist/po2json.js +0 -40
  68. package/dist/src/CalOptions.d.ts +0 -171
  69. package/dist/src/CalOptions.js +0 -1
  70. package/dist/src/DailyLearning.d.ts +0 -69
  71. package/dist/src/DailyLearning.js +0 -92
  72. package/dist/src/HebrewDateEvent.d.ts +0 -37
  73. package/dist/src/HebrewDateEvent.js +0 -72
  74. package/dist/src/HolidayEvent.d.ts +0 -117
  75. package/dist/src/HolidayEvent.js +0 -236
  76. package/dist/src/MevarchimChodeshEvent.d.ts +0 -26
  77. package/dist/src/MevarchimChodeshEvent.js +0 -52
  78. package/dist/src/ParshaEvent.d.ts +0 -24
  79. package/dist/src/ParshaEvent.js +0 -50
  80. package/dist/src/TimedEvent.d.ts +0 -76
  81. package/dist/src/TimedEvent.js +0 -134
  82. package/dist/src/YomKippurKatanEvent.d.ts +0 -23
  83. package/dist/src/YomKippurKatanEvent.js +0 -40
  84. package/dist/src/ashkenazi.po.d.ts +0 -84
  85. package/dist/src/ashkenazi.po.js +0 -1
  86. package/dist/src/calendar.d.ts +0 -112
  87. package/dist/src/calendar.js +0 -721
  88. package/dist/src/candles.d.ts +0 -57
  89. package/dist/src/candles.js +0 -185
  90. package/dist/src/cities.json +0 -67
  91. package/dist/src/event.d.ts +0 -233
  92. package/dist/src/event.js +0 -295
  93. package/dist/src/getStartAndEnd.d.ts +0 -6
  94. package/dist/src/getStartAndEnd.js +0 -105
  95. package/dist/src/hallel.d.ts +0 -6
  96. package/dist/src/hallel.js +0 -39
  97. package/dist/src/he-x-NoNikud.po.d.ts +0 -28
  98. package/dist/src/he-x-NoNikud.po.js +0 -1
  99. package/dist/src/he.po.d.ts +0 -217
  100. package/dist/src/he.po.js +0 -1
  101. package/dist/src/hebcal.d.ts +0 -338
  102. package/dist/src/hebcal.js +0 -413
  103. package/dist/src/holidays.d.ts +0 -41
  104. package/dist/src/holidays.js +0 -324
  105. package/dist/src/index.d.ts +0 -30
  106. package/dist/src/index.js +0 -29
  107. package/dist/src/isAssurBemlacha.d.ts +0 -29
  108. package/dist/src/isAssurBemlacha.js +0 -82
  109. package/dist/src/isAveilut.d.ts +0 -22
  110. package/dist/src/isAveilut.js +0 -48
  111. package/dist/src/isFastDay.d.ts +0 -21
  112. package/dist/src/isFastDay.js +0 -31
  113. package/dist/src/locale.d.ts +0 -1
  114. package/dist/src/locale.js +0 -11
  115. package/dist/src/location.d.ts +0 -167
  116. package/dist/src/location.js +0 -342
  117. package/dist/src/modern.d.ts +0 -18
  118. package/dist/src/modern.js +0 -59
  119. package/dist/src/molad.d.ts +0 -164
  120. package/dist/src/molad.js +0 -298
  121. package/dist/src/moladBase.d.ts +0 -15
  122. package/dist/src/moladBase.js +0 -78
  123. package/dist/src/moladDate.d.ts +0 -12
  124. package/dist/src/moladDate.js +0 -58
  125. package/dist/src/omer.d.ts +0 -128
  126. package/dist/src/omer.js +0 -385
  127. package/dist/src/parshaName.d.ts +0 -2
  128. package/dist/src/parshaName.js +0 -13
  129. package/dist/src/parshaYear.d.ts +0 -20
  130. package/dist/src/parshaYear.js +0 -35
  131. package/dist/src/pkgVersion.d.ts +0 -2
  132. package/dist/src/pkgVersion.js +0 -2
  133. package/dist/src/reformatTimeStr.d.ts +0 -8
  134. package/dist/src/reformatTimeStr.js +0 -47
  135. package/dist/src/sedra.d.ts +0 -175
  136. package/dist/src/sedra.js +0 -563
  137. package/dist/src/sefira.json +0 -63
  138. package/dist/src/staticHolidays.d.ts +0 -192
  139. package/dist/src/staticHolidays.js +0 -637
  140. package/dist/src/string.d.ts +0 -2
  141. package/dist/src/string.js +0 -6
  142. package/dist/src/tachanun.d.ts +0 -29
  143. package/dist/src/tachanun.js +0 -120
  144. package/dist/src/zmanim.d.ts +0 -620
  145. package/dist/src/zmanim.js +0 -1003
  146. package/dist/version.d.ts +0 -1
  147. package/dist/version.js +0 -8
@@ -55,11 +55,23 @@ export type CalOptions = {
55
55
  */
56
56
  havdalahDeg?: number;
57
57
  /**
58
- * degrees for solar depression for end of fast days.
59
- * Default is 7.083 degrees for 3 medium-sized stars. Other commonly-used values include
60
- * 6.45 degrees, as calculated by Rabbi Yechiel Michel Tucazinsky.
58
+ * degrees for solar depression for the end of minor fasts.
59
+ * When set to a nonzero value, minor fasts (including Yom Kippur Katan) end at
60
+ * this many degrees below the horizon. Commonly-used values include 7.083
61
+ * degrees for 3 medium-sized stars and 6.45 degrees, as calculated by
62
+ * Rabbi Yechiel Michel Tucazinsky. Mutually exclusive with `fastEndMins`.
63
+ * If neither is specified, minor fasts end at 7.083 degrees in the Diaspora,
64
+ * or 15 minutes after sunset in Israel (Rabbi Deblitzky's practice).
65
+ * Note: Tish'a B'Av always ends at 6.45 degrees and is not affected by this option.
61
66
  */
62
67
  fastEndDeg?: number;
68
+ /**
69
+ * minutes after sunset for the end of minor fasts.
70
+ * When set to a nonzero value, minor fasts (including Yom Kippur Katan) end
71
+ * this many minutes after sunset. Mutually exclusive with `fastEndDeg`.
72
+ * Note: Tish'a B'Av always ends at 6.45 degrees and is not affected by this option.
73
+ */
74
+ fastEndMins?: number;
63
75
  /**
64
76
  * use elevation for calculations (default `false`).
65
77
  * If `true`, use elevation to affect the calculation of all sunrise/sunset based zmanim.
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.6.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.7.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  const cals = new Map();
3
3
  /**
4
4
  * Plug-in registry for daily learning calendars such as Daf Yomi (Bavli),
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.6.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.7.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  import { Locale, gematriya, months } from '@hebcal/hdate';
3
3
  import { Event, flags } from './event.js';
4
4
  import './locale.js';
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.6.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.7.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  import { isoDateString, Locale } from '@hebcal/hdate';
3
3
  import { Event, flags } from './event.js';
4
4
  import { holidayDesc } from './staticHolidays.js';
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.6.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.7.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  import { Locale, HDate, months } from '@hebcal/hdate';
3
3
  import { Event, flags } from './event.js';
4
4
  import { Molad } from './molad.js';
@@ -1,6 +1,6 @@
1
- /*! @hebcal/core v6.6.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.7.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  import { Event, flags } from './event.js';
3
- import { isoDateString } from '@hebcal/hdate';
3
+ import { HDate, isoDateString } from '@hebcal/hdate';
4
4
  import { renderParshaName } from './parshaName.js';
5
5
  import { urlFriendly } from './string.js';
6
6
  import './locale.js';
@@ -16,6 +16,19 @@ import './locale.js';
16
16
  class ParshaEvent extends Event {
17
17
  p;
18
18
  constructor(parsha) {
19
+ // eslint-disable-next-line prefer-rest-params
20
+ if (arguments.length !== 1) {
21
+ throw new TypeError(`ParshaEvent constructor takes a single SedraResult argument; ` +
22
+ `got ${arguments.length} arguments`);
23
+ }
24
+ if (typeof parsha !== 'object' ||
25
+ parsha === null ||
26
+ !Array.isArray(parsha.parsha) ||
27
+ parsha.parsha.length === 0 ||
28
+ parsha.parsha.length > 2 ||
29
+ !HDate.isHDate(parsha.hdate)) {
30
+ throw new TypeError(`Invalid SedraResult argument: ${JSON.stringify(parsha)}`);
31
+ }
19
32
  const desc = 'Parashat ' + parsha.parsha.join('-');
20
33
  super(parsha.hdate, desc, flags.PARSHA_HASHAVUA);
21
34
  this.p = parsha;
@@ -35,10 +48,7 @@ class ParshaEvent extends Event {
35
48
  return undefined;
36
49
  }
37
50
  const dt = this.urlDateSuffix();
38
- const url = 'https://www.hebcal.com/sedrot/' +
39
- urlFriendly(this.basename()) +
40
- '-' +
41
- dt;
51
+ const url = 'https://www.hebcal.com/sedrot/' + urlFriendly(this.basename()) + '-' + dt;
42
52
  return this.p.il ? url + '?i=on' : url;
43
53
  }
44
54
  urlDateSuffix() {
@@ -1 +1 @@
1
- {"version":3,"file":"ParshaEvent.js","sources":["../../../src/ParshaEvent.ts"],"sourcesContent":["import {Event, flags} from './event';\nimport {isoDateString} from '@hebcal/hdate';\nimport {renderParshaName} from './parshaName';\nimport {urlFriendly} from './string';\nimport {SedraResult} from './sedra';\nimport './locale'; // Adds Hebrew and Ashkenazic translations\n\n/**\n * Represents one of 54 weekly Torah portions, always on a Saturday.\n *\n * `ParshaEvent` is for regular Parashat HaShavua readings. For Shabbatot\n * with holiday readings such as Shabbat Chol ha-Moed, use\n * `getHolidaysOnDate()` from `@hebcal/core`, or `getLeyningOnDate()` from\n * `@hebcal/leyning` when the display title and exact Torah readings are needed.\n */\nexport class ParshaEvent extends Event {\n readonly p: SedraResult;\n constructor(parsha: SedraResult) {\n const desc = 'Parashat ' + parsha.parsha.join('-');\n super(parsha.hdate, desc, flags.PARSHA_HASHAVUA);\n this.p = parsha;\n }\n /**\n * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to empty locale.\n */\n render(locale?: string): string {\n return renderParshaName(this.p.parsha, locale);\n }\n\n basename(): string {\n return this.p.parsha.join('-');\n }\n\n url(): string | undefined {\n const year = this.greg().getFullYear();\n if (year < 100 || year > 2999) {\n return undefined;\n }\n const dt = this.urlDateSuffix();\n const url =\n 'https://www.hebcal.com/sedrot/' +\n urlFriendly(this.basename()) +\n '-' +\n dt;\n return this.p.il ? url + '?i=on' : url;\n }\n\n urlDateSuffix(): string {\n const isoDate = isoDateString(this.greg());\n return isoDate.replaceAll('-', '');\n }\n\n /** convenience function for compatibility with previous implementation */\n get parsha(): string[] {\n return this.p.parsha;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOA;;;;;;;AAOG;AACG,MAAO,WAAY,SAAQ,KAAK,CAAA;AAC3B,IAAA,CAAC;AACV,IAAA,WAAA,CAAY,MAAmB,EAAA;AAC7B,QAAA,MAAM,IAAI,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAClD,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;AAChD,QAAA,IAAI,CAAC,CAAC,GAAG,MAAM;IACjB;AACA;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAA;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC;IAChD;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAChC;IAEA,GAAG,GAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE;AAC7B,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;QAC/B,MAAM,GAAG,GACP,gCAAgC;AAChC,YAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,GAAG;AACH,YAAA,EAAE;AACJ,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG;IACxC;IAEA,aAAa,GAAA;QACX,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;IACpC;;AAGA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM;IACtB;AACD;;;;"}
1
+ {"version":3,"file":"ParshaEvent.js","sources":["../../../src/ParshaEvent.ts"],"sourcesContent":["import {Event, flags} from './event';\nimport {HDate, isoDateString} from '@hebcal/hdate';\nimport {renderParshaName} from './parshaName';\nimport {urlFriendly} from './string';\nimport {SedraResult} from './sedra';\nimport './locale'; // Adds Hebrew and Ashkenazic translations\n\n/**\n * Represents one of 54 weekly Torah portions, always on a Saturday.\n *\n * `ParshaEvent` is for regular Parashat HaShavua readings. For Shabbatot\n * with holiday readings such as Shabbat Chol ha-Moed, use\n * `getHolidaysOnDate()` from `@hebcal/core`, or `getLeyningOnDate()` from\n * `@hebcal/leyning` when the display title and exact Torah readings are needed.\n */\nexport class ParshaEvent extends Event {\n readonly p: SedraResult;\n constructor(parsha: SedraResult) {\n // eslint-disable-next-line prefer-rest-params\n if (arguments.length !== 1) {\n throw new TypeError(\n `ParshaEvent constructor takes a single SedraResult argument; ` +\n `got ${arguments.length} arguments`\n );\n }\n if (\n typeof parsha !== 'object' ||\n parsha === null ||\n !Array.isArray(parsha.parsha) ||\n parsha.parsha.length === 0 ||\n parsha.parsha.length > 2 ||\n !HDate.isHDate(parsha.hdate)\n ) {\n throw new TypeError(\n `Invalid SedraResult argument: ${JSON.stringify(parsha)}`\n );\n }\n const desc = 'Parashat ' + parsha.parsha.join('-');\n super(parsha.hdate, desc, flags.PARSHA_HASHAVUA);\n this.p = parsha;\n }\n /**\n * @param [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to empty locale.\n */\n render(locale?: string): string {\n return renderParshaName(this.p.parsha, locale);\n }\n\n basename(): string {\n return this.p.parsha.join('-');\n }\n\n url(): string | undefined {\n const year = this.greg().getFullYear();\n if (year < 100 || year > 2999) {\n return undefined;\n }\n const dt = this.urlDateSuffix();\n const url =\n 'https://www.hebcal.com/sedrot/' + urlFriendly(this.basename()) + '-' + dt;\n return this.p.il ? url + '?i=on' : url;\n }\n\n urlDateSuffix(): string {\n const isoDate = isoDateString(this.greg());\n return isoDate.replaceAll('-', '');\n }\n\n /** convenience function for compatibility with previous implementation */\n get parsha(): string[] {\n return this.p.parsha;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOA;;;;;;;AAOG;AACG,MAAO,WAAY,SAAQ,KAAK,CAAA;AAC3B,IAAA,CAAC;AACV,IAAA,WAAA,CAAY,MAAmB,EAAA;;AAE7B,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,MAAM,IAAI,SAAS,CACjB,CAAA,6DAAA,CAA+D;AAC7D,gBAAA,CAAA,IAAA,EAAO,SAAS,CAAC,MAAM,CAAA,UAAA,CAAY,CACtC;QACH;QACA,IACE,OAAO,MAAM,KAAK,QAAQ;AAC1B,YAAA,MAAM,KAAK,IAAI;AACf,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7B,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AAC1B,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5B;AACA,YAAA,MAAM,IAAI,SAAS,CACjB,CAAA,8BAAA,EAAiC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,CAAE,CAC1D;QACH;AACA,QAAA,MAAM,IAAI,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAClD,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC;AAChD,QAAA,IAAI,CAAC,CAAC,GAAG,MAAM;IACjB;AACA;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAA;QACpB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC;IAChD;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAChC;IAEA,GAAG,GAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE;AAC7B,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;AAC/B,QAAA,MAAM,GAAG,GACP,gCAAgC,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE;AAC5E,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG;IACxC;IAEA,aAAa,GAAA;QACX,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;IACpC;;AAGA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM;IACtB;AACD;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.6.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.7.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  import { Locale } from '@hebcal/hdate';
3
3
  import { Event } from './event.js';
4
4
  import { reformatTimeStr } from './reformatTimeStr.js';
@@ -1 +1 @@
1
- {"version":3,"file":"TimedEvent.js","sources":["../../../src/TimedEvent.ts"],"sourcesContent":["import {HDate, Locale} from '@hebcal/hdate';\nimport {CalOptions} from './CalOptions';\nimport {Location} from './location';\nimport {Event} from './event';\nimport {reformatTimeStr} from './reformatTimeStr';\nimport {Zmanim} from './zmanim';\nimport {holidayDesc as hdesc} from './staticHolidays';\nimport './locale'; // Adds Hebrew and Ashkenazic translations\n\nconst HAVDALAH = hdesc.HAVDALAH;\nconst CANDLE_LIGHTING = hdesc.CANDLE_LIGHTING;\n\n/**\n * Base class for events that have an associated wall-clock time and\n * geographic location — for example, candle lighting, havdalah, and\n * fast begin/end times.\n *\n * Stores both a `Date` (`eventTime`) and pre-formatted 24-hour\n * (`eventTimeStr`) and locale-aware (`fmtTime`) strings. May reference a\n * \"linked\" event such as the holiday whose candle-lighting time this\n * represents.\n */\nexport class TimedEvent extends Event {\n /** The exact moment of the event, rounded to the nearest minute */\n readonly eventTime: Date;\n /** Geographic location used to compute `eventTime` */\n readonly location: Location;\n /** 24-hour formatted time string in the location's timezone (e.g. `\"19:42\"`) */\n readonly eventTimeStr: string;\n /** Locale-aware formatted time string (e.g. `\"7:42pm\"` in US locale) */\n readonly fmtTime: string;\n /** Optional event this time is associated with (e.g. the Yom Tov being lit for) */\n readonly linkedEvent?: Event;\n /**\n * @param desc Description (not translated)\n */\n constructor(\n date: HDate,\n desc: string,\n mask: number,\n eventTime: Date,\n location: Location,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, desc, mask);\n this.eventTime = Zmanim.roundTime(eventTime);\n this.location = location;\n const timeFormat = location.getTimeFormatter();\n this.eventTimeStr = Zmanim.formatTime(this.eventTime, timeFormat);\n const opts = {...options, location};\n this.fmtTime = reformatTimeStr(this.eventTimeStr, 'pm', opts);\n if (linkedEvent !== undefined) {\n this.linkedEvent = linkedEvent;\n }\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n return Locale.gettext(this.getDesc(), locale) + ': ' + this.fmtTime;\n }\n /**\n * Returns translation of \"Candle lighting\" without the time.\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n renderBrief(locale?: string): string {\n return Locale.gettext(this.getDesc(), locale);\n }\n\n getCategories(): string[] {\n const desc = this.getDesc();\n switch (desc) {\n // LIGHT_CANDLES or LIGHT_CANDLES_TZEIS\n case CANDLE_LIGHTING:\n return ['candles'];\n // YOM_TOV_ENDS\n case HAVDALAH:\n return ['havdalah'];\n // flags.MINOR_FAST or flags.MAJOR_FAST\n case hdesc.FAST_BEGINS:\n case hdesc.FAST_ENDS:\n return ['zmanim', 'fast'];\n case hdesc.SOF_ZMAN_ACHILAT_CHAMETZ:\n return ['zmanim', 'achilasChametz'];\n case hdesc.BIUR_CHAMETZ:\n return ['zmanim', 'biurChametz'];\n }\n /* NOTREACHED */\n return ['unknown'];\n }\n}\n\n/**\n * Candle-lighting event for the eve of Shabbat or a Yom Tov.\n *\n * Generated by {@link HebrewCalendar.calendar} when `options.candlelighting`\n * is `true` and `options.location` is provided. By default candle lighting\n * occurs 18 minutes before sundown (40 minutes in Jerusalem; 30 minutes in\n * Haifa and Zikhron Ya'akov), configurable via `options.candleLightingMins`.\n */\nexport class CandleLightingEvent extends TimedEvent {\n constructor(\n date: HDate,\n mask: number,\n eventTime: Date,\n location: Location,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(\n date,\n CANDLE_LIGHTING,\n mask,\n eventTime,\n location,\n linkedEvent,\n options\n );\n }\n\n getEmoji(): string {\n return '🕯️';\n }\n}\n\n/**\n * Havdalah event marking the end of Shabbat or a Yom Tov.\n *\n * Generated by {@link HebrewCalendar.calendar} when `options.candlelighting`\n * is `true` and `options.location` is provided. By default Havdalah is\n * calculated by *tzeit hakochavim* (8.5° solar depression); pass\n * `options.havdalahMins` to use a fixed minute offset instead, or\n * `options.havdalahDeg` to use a different degree.\n */\nexport class HavdalahEvent extends TimedEvent {\n private readonly havdalahMins?: number;\n constructor(\n date: HDate,\n mask: number,\n eventTime: Date,\n location: Location,\n havdalahMins?: number,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, HAVDALAH, mask, eventTime, location, linkedEvent, options);\n if (havdalahMins) {\n this.havdalahMins = havdalahMins;\n }\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n return this.renderBrief(locale) + ': ' + this.fmtTime;\n }\n /**\n * Returns translation of \"Havdalah\" without the time.\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n renderBrief(locale?: string): string {\n let str = Locale.gettext(this.getDesc(), locale);\n if (this.havdalahMins) {\n const min = Locale.gettext('min', locale);\n str += ` (${this.havdalahMins} ${min})`;\n }\n return str;\n }\n\n getEmoji(): string {\n return '✨';\n }\n}\n"],"names":["hdesc"],"mappings":"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"}
1
+ {"version":3,"file":"TimedEvent.js","sources":["../../../src/TimedEvent.ts"],"sourcesContent":["import {HDate, Locale} from '@hebcal/hdate';\nimport {CalOptions} from './CalOptions';\nimport {Location} from './location';\nimport {Event} from './event';\nimport {reformatTimeStr} from './reformatTimeStr';\nimport {Zmanim} from './zmanim';\nimport {holidayDesc as hdesc} from './staticHolidays';\nimport './locale'; // Adds Hebrew and Ashkenazic translations\n\nconst HAVDALAH = hdesc.HAVDALAH;\nconst CANDLE_LIGHTING = hdesc.CANDLE_LIGHTING;\n\n/**\n * Base class for events that have an associated wall-clock time and\n * geographic location — for example, candle lighting, havdalah, and\n * fast begin/end times.\n *\n * Stores both a `Date` (`eventTime`) and pre-formatted 24-hour\n * (`eventTimeStr`) and locale-aware (`fmtTime`) strings. May reference a\n * \"linked\" event such as the holiday whose candle-lighting time this\n * represents.\n */\nexport class TimedEvent extends Event {\n /** The exact moment of the event, rounded to the nearest minute */\n readonly eventTime: Date;\n /** Geographic location used to compute `eventTime` */\n readonly location: Location;\n /** 24-hour formatted time string in the location's timezone (e.g. `\"19:42\"`) */\n readonly eventTimeStr: string;\n /** Locale-aware formatted time string (e.g. `\"7:42pm\"` in US locale) */\n readonly fmtTime: string;\n /** Optional event this time is associated with (e.g. the Yom Tov being lit for) */\n readonly linkedEvent?: Event;\n /**\n * @param desc Description (not translated)\n */\n constructor(\n date: HDate,\n desc: string,\n mask: number,\n eventTime: Date,\n location: Location,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, desc, mask);\n this.eventTime = Zmanim.roundTime(eventTime);\n this.location = location;\n const timeFormat = location.getTimeFormatter();\n this.eventTimeStr = Zmanim.formatTime(this.eventTime, timeFormat);\n const opts = {...options, location};\n this.fmtTime = reformatTimeStr(this.eventTimeStr, 'pm', opts);\n if (linkedEvent !== undefined) {\n this.linkedEvent = linkedEvent;\n }\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n return Locale.gettext(this.getDesc(), locale) + ': ' + this.fmtTime;\n }\n /**\n * Returns translation of \"Candle lighting\" without the time.\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n renderBrief(locale?: string): string {\n return Locale.gettext(this.getDesc(), locale);\n }\n\n getCategories(): string[] {\n const desc = this.getDesc();\n switch (desc) {\n // LIGHT_CANDLES or LIGHT_CANDLES_TZEIS\n case CANDLE_LIGHTING:\n return ['candles'];\n // YOM_TOV_ENDS\n case HAVDALAH:\n return ['havdalah'];\n // flags.MINOR_FAST or flags.MAJOR_FAST\n case hdesc.FAST_BEGINS:\n case hdesc.FAST_ENDS:\n return ['zmanim', 'fast'];\n case hdesc.SOF_ZMAN_ACHILAT_CHAMETZ:\n return ['zmanim', 'achilasChametz'];\n case hdesc.BIUR_CHAMETZ:\n return ['zmanim', 'biurChametz'];\n }\n /* NOTREACHED */\n return ['unknown'];\n }\n}\n\n/**\n * Candle-lighting event for the eve of Shabbat or a Yom Tov.\n *\n * Generated by {@link HebrewCalendar.calendar} when `options.candlelighting`\n * is `true` and `options.location` is provided. By default candle lighting\n * occurs 18 minutes before sundown (40 minutes in Jerusalem; 30 minutes in\n * Haifa and Zikhron Ya'akov), configurable via `options.candleLightingMins`.\n */\nexport class CandleLightingEvent extends TimedEvent {\n constructor(\n date: HDate,\n mask: number,\n eventTime: Date,\n location: Location,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, CANDLE_LIGHTING, mask, eventTime, location, linkedEvent, options);\n }\n\n getEmoji(): string {\n return '🕯️';\n }\n}\n\n/**\n * Havdalah event marking the end of Shabbat or a Yom Tov.\n *\n * Generated by {@link HebrewCalendar.calendar} when `options.candlelighting`\n * is `true` and `options.location` is provided. By default Havdalah is\n * calculated by *tzeit hakochavim* (8.5° solar depression); pass\n * `options.havdalahMins` to use a fixed minute offset instead, or\n * `options.havdalahDeg` to use a different degree.\n */\nexport class HavdalahEvent extends TimedEvent {\n private readonly havdalahMins?: number;\n constructor(\n date: HDate,\n mask: number,\n eventTime: Date,\n location: Location,\n havdalahMins?: number,\n linkedEvent?: Event,\n options?: CalOptions\n ) {\n super(date, HAVDALAH, mask, eventTime, location, linkedEvent, options);\n if (havdalahMins) {\n this.havdalahMins = havdalahMins;\n }\n }\n /**\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n render(locale?: string): string {\n return this.renderBrief(locale) + ': ' + this.fmtTime;\n }\n /**\n * Returns translation of \"Havdalah\" without the time.\n * @param [locale] Optional locale name (defaults to empty locale)\n */\n renderBrief(locale?: string): string {\n let str = Locale.gettext(this.getDesc(), locale);\n if (this.havdalahMins) {\n const min = Locale.gettext('min', locale);\n str += ` (${this.havdalahMins} ${min})`;\n }\n return str;\n }\n\n getEmoji(): string {\n return '✨';\n }\n}\n"],"names":["hdesc"],"mappings":";;;;;;;;AASA,MAAM,QAAQ,GAAGA,WAAK,CAAC,QAAQ;AAC/B,MAAM,eAAe,GAAGA,WAAK,CAAC,eAAe;AAE7C;;;;;;;;;AASG;AACG,MAAO,UAAW,SAAQ,KAAK,CAAA;;AAE1B,IAAA,SAAS;;AAET,IAAA,QAAQ;;AAER,IAAA,YAAY;;AAEZ,IAAA,OAAO;;AAEP,IAAA,WAAW;AACpB;;AAEG;AACH,IAAA,WAAA,CACE,IAAW,EACX,IAAY,EACZ,IAAY,EACZ,SAAe,EACf,QAAkB,EAClB,WAAmB,EACnB,OAAoB,EAAA;AAEpB,QAAA,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,EAAE;AAC9C,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QACjE,MAAM,IAAI,GAAG,EAAC,GAAG,OAAO,EAAE,QAAQ,EAAC;AACnC,QAAA,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7D,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;QAChC;IACF;AACA;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAA;AACpB,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO;IACrE;AACA;;;AAGG;AACH,IAAA,WAAW,CAAC,MAAe,EAAA;QACzB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC;IAC/C;IAEA,aAAa,GAAA;AACX,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;QAC3B,QAAQ,IAAI;;AAEV,YAAA,KAAK,eAAe;gBAClB,OAAO,CAAC,SAAS,CAAC;;AAEpB,YAAA,KAAK,QAAQ;gBACX,OAAO,CAAC,UAAU,CAAC;;YAErB,KAAKA,WAAK,CAAC,WAAW;YACtB,KAAKA,WAAK,CAAC,SAAS;AAClB,gBAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC3B,KAAKA,WAAK,CAAC,wBAAwB;AACjC,gBAAA,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC;YACrC,KAAKA,WAAK,CAAC,YAAY;AACrB,gBAAA,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC;;;QAGpC,OAAO,CAAC,SAAS,CAAC;IACpB;AACD;AAED;;;;;;;AAOG;AACG,MAAO,mBAAoB,SAAQ,UAAU,CAAA;IACjD,WAAA,CACE,IAAW,EACX,IAAY,EACZ,SAAe,EACf,QAAkB,EAClB,WAAmB,EACnB,OAAoB,EAAA;AAEpB,QAAA,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC;IAC/E;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,KAAK;IACd;AACD;AAED;;;;;;;;AAQG;AACG,MAAO,aAAc,SAAQ,UAAU,CAAA;AAC1B,IAAA,YAAY;AAC7B,IAAA,WAAA,CACE,IAAW,EACX,IAAY,EACZ,SAAe,EACf,QAAkB,EAClB,YAAqB,EACrB,WAAmB,EACnB,OAAoB,EAAA;AAEpB,QAAA,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC;QACtE,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;QAClC;IACF;AACA;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO;IACvD;AACA;;;AAGG;AACH,IAAA,WAAW,CAAC,MAAe,EAAA;AACzB,QAAA,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC;AAChD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;YACzC,GAAG,IAAI,KAAK,IAAI,CAAC,YAAY,CAAA,CAAA,EAAI,GAAG,GAAG;QACzC;AACA,QAAA,OAAO,GAAG;IACZ;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,GAAG;IACZ;AACD;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.6.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.7.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  import { Locale } from '@hebcal/hdate';
3
3
  import { flags } from './event.js';
4
4
  import { HolidayEvent } from './HolidayEvent.js';
@@ -1,5 +1,5 @@
1
- /*! @hebcal/core v6.6.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
- var poAshkenazi = { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "en_CA@ashkenazi" }, "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"] } } };
1
+ /*! @hebcal/core v6.7.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
+ 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"] } } };
3
3
 
4
4
  export { poAshkenazi as default };
5
5
  //# sourceMappingURL=ashkenazi.po.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ashkenazi.po.js","sources":["../../../src/ashkenazi.po.ts"],"sourcesContent":["export default {\"headers\":{\"plural-forms\":\"nplurals=2; plural=(n > 1);\",\"language\":\"en_CA@ashkenazi\"},\"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\"]}}}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ashkenazi.po.js","sources":["../../../src/ashkenazi.po.ts"],"sourcesContent":["export default {\"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\"]}}}"],"names":[],"mappings":";AAAA,kBAAe,EAAC,SAAS,EAAC,EAAC,cAAc,EAAC,6BAA6B,EAAC,UAAU,EAAC,gBAAgB,EAAC,EAAC,UAAU,EAAC,EAAC,EAAE,EAAC,EAAC,SAAS,EAAC,CAAC,SAAS,CAAC,EAAC,YAAY,EAAC,CAAC,YAAY,CAAC,EAAC,YAAY,EAAC,CAAC,YAAY,CAAC,EAAC,cAAc,EAAC,CAAC,cAAc,CAAC,EAAC,UAAU,EAAC,CAAC,UAAU,CAAC,EAAC,QAAQ,EAAC,CAAC,QAAQ,CAAC,EAAC,cAAc,EAAC,CAAC,cAAc,CAAC,EAAC,aAAa,EAAC,CAAC,aAAa,CAAC,EAAC,SAAS,EAAC,CAAC,SAAS,CAAC,EAAC,YAAY,EAAC,CAAC,YAAY,CAAC,EAAC,SAAS,EAAC,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC,CAAC,OAAO,CAAC,EAAC,6BAA6B,EAAC,CAAC,6BAA6B,CAAC,EAAC,aAAa,EAAC,CAAC,aAAa,CAAC,EAAC,wBAAwB,EAAC,CAAC,yBAAyB,CAAC,EAAC,gBAAgB,EAAC,CAAC,gBAAgB,CAAC,EAAC,mBAAmB,EAAC,CAAC,mBAAmB,CAAC,EAAC,iBAAiB,EAAC,CAAC,iBAAiB,CAAC,EAAC,iBAAiB,EAAC,CAAC,iBAAiB,CAAC,EAAC,eAAe,EAAC,CAAC,eAAe,CAAC,EAAC,kBAAkB,EAAC,CAAC,kBAAkB,CAAC,EAAC,eAAe,EAAC,CAAC,gBAAgB,CAAC,EAAC,gBAAgB,EAAC,CAAC,gBAAgB,CAAC,EAAC,SAAS,EAAC,CAAC,SAAS,CAAC,EAAC,WAAW,EAAC,CAAC,WAAW,CAAC,EAAC,YAAY,EAAC,CAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,CAAC,QAAQ,CAAC,EAAC,gBAAgB,EAAC,CAAC,gBAAgB,CAAC,EAAC,eAAe,EAAC,CAAC,eAAe,CAAC,EAAC,QAAQ,EAAC,CAAC,QAAQ,CAAC,EAAC,UAAU,EAAC,CAAC,UAAU,CAAC,EAAC,WAAW,EAAC,CAAC,WAAW,CAAC,EAAC,mBAAmB,EAAC,CAAC,mBAAmB,CAAC,EAAC,oBAAoB,EAAC,CAAC,oBAAoB,CAAC,EAAC,mBAAmB,EAAC,CAAC,mBAAmB,CAAC,EAAC,kBAAkB,EAAC,CAAC,kBAAkB,CAAC,EAAC,mBAAmB,EAAC,CAAC,mBAAmB,CAAC,EAAC,2BAA2B,EAAC,CAAC,2BAA2B,CAAC,EAAC,6BAA6B,EAAC,CAAC,6BAA6B,CAAC,EAAC,kBAAkB,EAAC,CAAC,kBAAkB,CAAC,EAAC,eAAe,EAAC,CAAC,eAAe,CAAC,EAAC,gBAAgB,EAAC,CAAC,gBAAgB,CAAC,EAAC,QAAQ,EAAC,CAAC,QAAQ,CAAC,EAAC,YAAY,EAAC,CAAC,YAAY,CAAC,EAAC,OAAO,EAAC,CAAC,OAAO,CAAC,EAAC,kBAAkB,EAAC,CAAC,kBAAkB,CAAC,EAAC,UAAU,EAAC,CAAC,SAAS,CAAC,EAAC,eAAe,EAAC,CAAC,eAAe,CAAC,EAAC,2BAA2B,EAAC,CAAC,2BAA2B,CAAC,EAAC,gBAAgB,EAAC,CAAC,gBAAgB,CAAC,EAAC,eAAe,EAAC,CAAC,eAAe,CAAC,EAAC,iBAAiB,EAAC,CAAC,iBAAiB,CAAC,EAAC,iBAAiB,EAAC,CAAC,iBAAiB,CAAC,EAAC,qBAAqB,EAAC,CAAC,qBAAqB,CAAC,EAAC,gBAAgB,EAAC,CAAC,gBAAgB,CAAC,EAAC,YAAY,EAAC,CAAC,YAAY,CAAC,EAAC,oBAAoB,EAAC,CAAC,oBAAoB,CAAC,EAAC,SAAS,EAAC,CAAC,SAAS,CAAC,EAAC,wBAAwB,EAAC,CAAC,uBAAuB,CAAC,EAAC,oBAAoB,EAAC,CAAC,mBAAmB,CAAC,EAAC,8BAA8B,EAAC,CAAC,6BAA6B,CAAC,EAAC,8BAA8B,EAAC,CAAC,6BAA6B,CAAC,EAAC,0BAA0B,EAAC,CAAC,yBAAyB,CAAC,EAAC,0BAA0B,EAAC,CAAC,yBAAyB,CAAC,EAAC,kBAAkB,EAAC,CAAC,kBAAkB,CAAC,EAAC,eAAe,EAAC,CAAC,SAAS,CAAC,EAAC,eAAe,EAAC,CAAC,SAAS,CAAC,EAAC,gBAAgB,EAAC,CAAC,gBAAgB,CAAC,EAAC,gBAAgB,EAAC,CAAC,gBAAgB,CAAC,EAAC,eAAe,EAAC,CAAC,eAAe,CAAC,EAAC,QAAQ,EAAC,CAAC,QAAQ,CAAC,EAAC,kBAAkB,EAAC,CAAC,kBAAkB,CAAC,EAAC,kBAAkB,EAAC,CAAC,kBAAkB,CAAC,EAAC,EAAC,EAAC;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.6.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.7.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  import './locale.js';
3
3
  import { months, Locale, abs2greg, HDate } from '@hebcal/hdate';
4
4
  import { makeCandleEvent, makeFastStartEnd, makeWeekdayChanukahCandleLighting } from './candles.js';
@@ -192,10 +192,7 @@ function calendar(options = {}) {
192
192
  const mm = hd.getMonth();
193
193
  const dd = hd.getDate();
194
194
  // When Erev Pesach falls on Shabbat, burning chametz is moved to Friday.
195
- if (isFriday &&
196
- options.candlelighting &&
197
- mm === months.NISAN &&
198
- dd === 13) {
195
+ if (isFriday && options.candlelighting && mm === months.NISAN && dd === 13) {
199
196
  const biurEv = makeBiurChametzEvent(hd, options);
200
197
  if (biurEv) {
201
198
  evts.push(biurEv);
@@ -315,6 +312,7 @@ const RECOGNIZED_OPTIONS = {
315
312
  havdalahMins: 1,
316
313
  havdalahDeg: 1,
317
314
  fastEndDeg: 1,
315
+ fastEndMins: 1,
318
316
  sedrot: 1,
319
317
  il: 1,
320
318
  noMinorFast: 1,
@@ -342,8 +340,7 @@ const RECOGNIZED_OPTIONS = {
342
340
  */
343
341
  function warnUnrecognizedOptions(options) {
344
342
  for (const k of Object.keys(options)) {
345
- if (RECOGNIZED_OPTIONS[k] === undefined &&
346
- !unrecognizedAlreadyWarned.has(k)) {
343
+ if (RECOGNIZED_OPTIONS[k] === undefined && !unrecognizedAlreadyWarned.has(k)) {
347
344
  console.warn(`Ignoring unrecognized HebrewCalendar option: ${k}`);
348
345
  unrecognizedAlreadyWarned.add(k);
349
346
  }
@@ -381,15 +378,6 @@ const geoIdCandleOffset = {
381
378
  * @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ZmanimCalendar.html#ZENITH_8_POINT_5}
382
379
  */
383
380
  const TZEIT_3SMALL_STARS = 8.5;
384
- /**
385
- * @private
386
- * @constant
387
- * This calculation is based on observation of 3 medium sized stars by Dr. Baruch Cohen
388
- * in his calendar published in in 1899 in Strasbourg, France.
389
- * This calculates to 7.0833333° below geometric zenith.
390
- * @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#ZENITH_7_POINT_083}
391
- */
392
- const TZEIT_3MEDIUM_STARS = 7.0833333;
393
381
  /**
394
382
  * Modifies options in-place
395
383
  * @private
@@ -406,6 +394,10 @@ function checkCandleOptions(options) {
406
394
  typeof options.havdalahDeg === 'number') {
407
395
  throw new TypeError('options.havdalahMins and options.havdalahDeg are mutually exclusive');
408
396
  }
397
+ if (typeof options.fastEndDeg === 'number' &&
398
+ typeof options.fastEndMins === 'number') {
399
+ throw new TypeError('options.fastEndDeg and options.fastEndMins are mutually exclusive');
400
+ }
409
401
  const min0 = options.candleLightingMins;
410
402
  let min = typeof min0 === 'number' && !isNaN(min0) ? Math.trunc(min0) : 18;
411
403
  if (location.getIsrael() && Math.abs(min) === 18) {
@@ -421,8 +413,11 @@ function checkCandleOptions(options) {
421
413
  else {
422
414
  options.havdalahDeg = TZEIT_3SMALL_STARS;
423
415
  }
424
- if (typeof options.fastEndDeg !== 'number') {
425
- options.fastEndDeg = TZEIT_3MEDIUM_STARS;
416
+ if (typeof options.fastEndDeg === 'number') {
417
+ options.fastEndDeg = Math.abs(options.fastEndDeg);
418
+ }
419
+ if (typeof options.fastEndMins === 'number') {
420
+ options.fastEndMins = Math.trunc(Math.abs(options.fastEndMins));
426
421
  }
427
422
  }
428
423
  function overrideIsraelCandleMins(location, min) {
@@ -629,8 +624,7 @@ function appendHolidayAndRelated(candlesEv, events, ev, options, isFriday, isSat
629
624
  events.push(ev); // the original event itself
630
625
  }
631
626
  }
632
- if ((isMajorFast || (isMinorFast && !options.noMinorFast)) &&
633
- fastEv?.endEvent) {
627
+ if ((isMajorFast || (isMinorFast && !options.noMinorFast)) && fastEv?.endEvent) {
634
628
  events.push(fastEv.endEvent);
635
629
  }
636
630
  return candlesEv;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sources":["../../../src/calendar.ts"],"sourcesContent":["import {Locale} from './locale';\nimport {abs2greg, HDate, months} from '@hebcal/hdate';\nimport {CalOptions, DailyLearningValue} from './CalOptions';\nimport {\n makeCandleEvent,\n makeFastStartEnd,\n makeWeekdayChanukahCandleLighting,\n} from './candles';\nimport {Event, flags} from './event';\nimport {getStartAndEnd} from './getStartAndEnd';\nimport {HebrewDateEvent} from './HebrewDateEvent';\nimport {HolidayYearMap, getHolidaysForYear_} from './holidays';\nimport {ParshaEvent} from './ParshaEvent';\nimport {Sedra, getSedra} from './sedra';\nimport {TimedEvent, HavdalahEvent} from './TimedEvent';\nimport {DailyLearning} from './DailyLearning';\nimport {ChanukahEvent, HolidayEvent} from './HolidayEvent';\nimport {MevarchimChodeshEvent} from './MevarchimChodeshEvent';\nimport {MoladEvent, Molad} from './molad';\nimport {OmerEvent} from './omer';\nimport {Zmanim} from './zmanim';\nimport {Location} from './location';\nimport {holidayDesc as hdesc} from './staticHolidays';\n\n/**\n * Calculates holidays and other Hebrew calendar events based on {@link CalOptions}.\n *\n * Each holiday is represented by an {@link Event} object which includes a date,\n * a description, flags and optional attributes.\n * If given no options, returns holidays for the Diaspora for the current Gregorian year.\n *\n * The date range returned by this function can be controlled by:\n * * `options.year` - Gregorian (e.g. 1993) or Hebrew year (e.g. 5749)\n * * `options.isHebrewYear` - to interpret `year` as Hebrew year\n * * `options.numYears` - generate calendar for multiple years (default 1)\n * * `options.month` - Gregorian or Hebrew month (to filter results to a single month)\n *\n * Alternatively, specify start and end days with `Date` or {@link HDate} instances:\n * * `options.start` - use specific start date (requires `end` date)\n * * `options.end` - use specific end date (requires `start` date)\n *\n * Unless `options.noHolidays == true`, default holidays include:\n * * Major holidays - Rosh Hashana, Yom Kippur, Pesach, Sukkot, etc.\n * * Minor holidays - Purim, Chanukah, Tu BiShvat, Lag BaOmer, etc.\n * * Minor fasts - Ta'anit Esther, Tzom Gedaliah, etc. (unless `options.noMinorFast`)\n * * Special Shabbatot - Shabbat Shekalim, Zachor, etc. (unless `options.noSpecialShabbat`)\n * * Modern Holidays - Yom HaShoah, Yom HaAtzma'ut, etc. (unless `options.noModern`)\n * * Rosh Chodesh (unless `options.noRoshChodesh`)\n *\n * Holiday and Torah reading schedules differ between Israel and the Disapora.\n * Set `options.il=true` to use the Israeli schedule.\n *\n * Additional non-default event types can be specified:\n * * Parashat HaShavua - weekly Torah Reading on Saturdays (`options.sedrot`)\n * * Counting of the Omer (`options.omer`)\n * * Shabbat Mevarchim HaChodesh on Saturday before Rosh Chodesh (`options.shabbatMevarchim`)\n * * Molad announcement on Saturday before Rosh Chodesh (`options.molad`)\n * * Yom Kippur Katan (`options.yomKippurKatan`)\n * * BeHaB fast days after Pesach and Sukkot (`options.behab`)\n * * Yizkor (`options.yizkor`)\n *\n * Daily Study of texts are supported by the\n * {@link https://github.com/hebcal/hebcal-learning @hebcal/learning} package,\n * for example:\n * * Babylonian Talmud Daf Yomi (`options.dailyLearning.dafYomi`)\n * * Jerusalem Talmud (Yerushalmi) Yomi (`options.dailyLearning.yerushalmi`)\n * * Mishna Yomi (`options.dailyLearning.mishnaYomi`)\n * * Nach Yomi (`options.dailyLearning.nachYomi`)\n *\n * Candle-lighting and Havdalah times are approximated using latitude and longitude\n * specified by the {@link Location} class. The `Location` class contains a small\n * database of cities with their associated geographic information and time-zone information.\n * If you ever have any doubts about Hebcal's times, consult your local halachic authority.\n * If you enter geographic coordinates above the arctic circle or antarctic circle,\n * the times are guaranteed to be wrong.\n *\n * To add candle-lighting options, set `options.candlelighting=true` and set\n * `options.location` to an instance of `Location`. By default, candle lighting\n * time is 18 minutes before sundown (40 minutes for Jerusalem,\n * 30 minutes for Haifa and Zikhron Ya'akov) and Havdalah is\n * calculated according to Tzeit Hakochavim - Nightfall (the point when 3 small stars\n * are observable in the night time sky with the naked eye). The default Havdalah\n * option (Tzeit Hakochavim) is calculated when the sun is 8.5° below the horizon.\n * These defaults can be changed using these options:\n * * `options.candleLightingMins` - minutes before sundown to light candles\n * * `options.havdalahMins` - minutes after sundown for Havdalah (typical values are 42, 50, or 72).\n * Havdalah times are suppressed when `options.havdalahMins=0`.\n * * `options.havdalahDeg` - degrees for solar depression for Havdalah.\n * Default is 8.5 degrees for 3 small stars. Use 7.083 degrees for 3 medium-sized stars.\n * Havdalah times are suppressed when `options.havdalahDeg=0`.\n *\n * If both `options.candlelighting=true` and `options.location` is specified,\n * Chanukah candle-lighting times and minor fast start/end times will also be generated.\n * Chanukah candle-lighting is at Bein HaShmashos (13.5 minutes before\n * the sun is 7.083° below the horizon in the evening)\n * on weekdays, at regular candle-lighting time on Fridays, and at regular Havdalah time on\n * Saturday night (see above).\n *\n * Minor fasts begin at Alot HaShachar (sun is 16.1° below the horizon in the morning) and\n * end when 3 medium-sized stars are observable in the night sky (sun is 7.083° below the horizon\n * in the evening).\n *\n * Two options also exist for generating an Event with the Hebrew date:\n * * `options.addHebrewDates` - print the Hebrew date for the entire date range\n * * `options.addHebrewDatesForEvents` - print the Hebrew date for dates with some events\n *\n * Lastly, translation and transliteration of event titles is controlled by\n * `options.locale` and the {@link Locale} API.\n * `@hebcal/core` supports three locales by default:\n * * `en` - default, Sephardic transliterations (e.g. \"Shabbat\")\n * * `ashkenazi` - Ashkenazi transliterations (e.g. \"Shabbos\")\n * * `he` - Hebrew (e.g. \"שַׁבָּת\")\n *\n * Additional locales (such as `ru` or `fr`) are supported by the\n * {@link https://github.com/hebcal/hebcal-locales @hebcal/locales} package\n *\n * @example\n * import {HebrewCalendar, HDate, Location, Event} from '@hebcal/core';\n * const options: CalOptions = {\n * year: 1981,\n * isHebrewYear: false,\n * candlelighting: true,\n * location: Location.lookup('San Francisco'),\n * sedrot: true,\n * omer: true,\n * };\n * const events = HebrewCalendar.calendar(options);\n * for (const ev of events) {\n * const hd = ev.getDate();\n * const date = hd.greg();\n * console.log(date.toLocaleDateString(), ev.render('en'), hd.toString());\n * }\n */\nexport function calendar(options: CalOptions = {}): Event[] {\n options = {...options}; // so we can modify freely\n checkCandleOptions(options);\n const location = (options.location = options.location || defaultLocation);\n const il = (options.il = options.il || location.getIsrael() || false);\n const hasUserMask = typeof options.mask === 'number';\n options.mask = getMaskFromOptions(options);\n if (options.locale) {\n const locale = options.locale;\n if (locale && typeof locale !== 'string') {\n throw new TypeError(`Invalid options.locale: ${locale}`);\n }\n if (!Locale.hasLocale(locale)) {\n throw new TypeError(\n `Locale '${locale}' not found; did you forget to import @hebcal/locales?`\n );\n }\n } else if (options.ashkenazi) {\n options.locale = 'ashkenazi';\n } else {\n options.locale = 'en';\n }\n\n const evts: Event[] = [];\n let sedra: Sedra | undefined;\n let holidaysYear: HolidayYearMap | undefined;\n let beginOmer = -1;\n let endOmer = -1;\n let currentYear = -1;\n const startAndEnd = getStartAndEnd(options);\n warnUnrecognizedOptions(options);\n const startAbs = startAndEnd[0];\n const endAbs = startAndEnd[1];\n const startGreg = abs2greg(startAbs);\n const startGregYear = startGreg.getFullYear();\n if (startGregYear < 100 || startGregYear > 9999) {\n options.candlelighting = false;\n options.sedrot = false;\n options.dailyLearning = {};\n }\n for (let abs = startAbs; abs <= endAbs; abs++) {\n const hd = new HDate(abs);\n const hyear = hd.getFullYear();\n if (hyear !== currentYear) {\n currentYear = hyear;\n holidaysYear = getHolidaysForYear_(currentYear);\n if (options.sedrot) {\n sedra = getSedra(currentYear, il);\n }\n if (options.omer) {\n beginOmer = HDate.hebrew2abs(currentYear, NISAN, 16);\n endOmer = HDate.hebrew2abs(currentYear, SIVAN, 5);\n }\n }\n const prevEventsLength = evts.length;\n const dow = hd.getDay();\n const isFriday = dow === FRI;\n const isSaturday = dow === SAT;\n let candlesEv: TimedEvent | undefined;\n const holidays0 = holidaysYear!.get(hd.toString()) || [];\n const holidays = holidays0.filter(ev => ev.observedIn(il));\n for (const ev of holidays) {\n candlesEv = appendHolidayAndRelated(\n candlesEv,\n evts,\n ev,\n options,\n isFriday,\n isSaturday,\n hasUserMask\n );\n }\n const mm = hd.getMonth();\n const dd = hd.getDate();\n // When Erev Pesach falls on Shabbat, burning chametz is moved to Friday.\n if (\n isFriday &&\n options.candlelighting &&\n mm === months.NISAN &&\n dd === 13\n ) {\n const biurEv = makeBiurChametzEvent(hd, options);\n if (biurEv) {\n evts.push(biurEv);\n }\n }\n if (options.sedrot && isSaturday) {\n const parsha0 = sedra!.lookup(abs);\n if (!parsha0.chag) {\n evts.push(new ParshaEvent(parsha0));\n }\n }\n if (options.yizkor) {\n if (\n (mm === months.TISHREI && (dd === 10 || dd === 22)) ||\n (mm === NISAN && dd === (il ? 21 : 22)) ||\n (mm === SIVAN && dd === (il ? 6 : 7))\n ) {\n const linkedEvent = holidays[0];\n const ev = new Event(hd, hdesc.YIZKOR, flags.YIZKOR, {\n emoji: '🕯️',\n linkedEvent,\n });\n evts.push(ev);\n }\n }\n const dailyLearning = options.dailyLearning;\n let numDailyLearning = 0;\n if (typeof dailyLearning === 'object' && dailyLearning !== null) {\n const events = makeDailyLearning(hd, dailyLearning, il);\n numDailyLearning = events.length;\n if (numDailyLearning) {\n evts.push(...events);\n }\n }\n if (options.omer && abs >= beginOmer && abs <= endOmer) {\n const omer = abs - beginOmer + 1;\n const omerEv = makeOmerEvent(hd, omer, options);\n evts.push(omerEv);\n }\n if (isSaturday && (options.molad || options.shabbatMevarchim)) {\n const events = makeMoladAndMevarchimChodesh(hd, options);\n evts.push(...events);\n }\n if (!candlesEv && options.candlelighting && (isFriday || isSaturday)) {\n candlesEv = makeCandleEvent(undefined, hd, options, isFriday, isSaturday);\n if (isFriday && candlesEv && sedra) {\n const parsha = sedra.lookup(abs);\n if (!parsha.chag) {\n const pe = new ParshaEvent(parsha);\n candlesEv.memo = pe.render(options.locale);\n } else {\n candlesEv.memo = Locale.gettext(parsha.parsha[0], options.locale);\n }\n }\n }\n // suppress Havdalah when options.havdalahMins=0 or options.havdalahDeg=0\n if (\n candlesEv instanceof HavdalahEvent &&\n (options.havdalahMins === 0 || options.havdalahDeg === 0)\n ) {\n candlesEv = undefined;\n }\n if (candlesEv) {\n evts.push(candlesEv);\n }\n if (\n options.addHebrewDates ||\n (options.addHebrewDatesForEvents &&\n prevEventsLength !== evts.length - numDailyLearning)\n ) {\n const e2 = new HebrewDateEvent(hd);\n if (prevEventsLength === evts.length) {\n evts.push(e2);\n } else {\n evts.splice(prevEventsLength, 0, e2);\n }\n }\n }\n return evts;\n}\n\nconst FRI = 5;\nconst SAT = 6;\n\nconst NISAN = months.NISAN;\nconst SIVAN = months.SIVAN;\nconst ELUL = months.ELUL;\n\nconst LIGHT_CANDLES = flags.LIGHT_CANDLES;\nconst YOM_TOV_ENDS = flags.YOM_TOV_ENDS;\nconst CHUL_ONLY = flags.CHUL_ONLY;\nconst IL_ONLY = flags.IL_ONLY;\nconst LIGHT_CANDLES_TZEIS = flags.LIGHT_CANDLES_TZEIS;\nconst CHANUKAH_CANDLES = flags.CHANUKAH_CANDLES;\nconst MINOR_FAST = flags.MINOR_FAST;\nconst SPECIAL_SHABBAT = flags.SPECIAL_SHABBAT;\nconst MODERN_HOLIDAY = flags.MODERN_HOLIDAY;\nconst MAJOR_FAST = flags.MAJOR_FAST;\nconst ROSH_CHODESH = flags.ROSH_CHODESH;\nconst PARSHA_HASHAVUA = flags.PARSHA_HASHAVUA;\nconst DAF_YOMI = flags.DAF_YOMI;\nconst MISHNA_YOMI = flags.MISHNA_YOMI;\nconst NACH_YOMI = flags.NACH_YOMI;\nconst YERUSHALMI_YOMI = flags.YERUSHALMI_YOMI;\nconst OMER_COUNT = flags.OMER_COUNT;\nconst SHABBAT_MEVARCHIM = flags.SHABBAT_MEVARCHIM;\nconst MINOR_HOLIDAY = flags.MINOR_HOLIDAY;\nconst EREV = flags.EREV;\nconst CHOL_HAMOED = flags.CHOL_HAMOED;\nconst YOM_KIPPUR_KATAN = flags.YOM_KIPPUR_KATAN;\nconst YIZKOR = flags.YIZKOR;\nconst BEHAB = flags.BEHAB;\n\ntype StringIntMap = Record<string, number>;\n\nconst unrecognizedAlreadyWarned = new Set<string>();\nconst RECOGNIZED_OPTIONS: StringIntMap = {\n location: 1,\n year: 1,\n isHebrewYear: 1,\n month: 1,\n numYears: 1,\n start: 1,\n end: 1,\n candlelighting: 1,\n candleLightingMins: 1,\n havdalahMins: 1,\n havdalahDeg: 1,\n fastEndDeg: 1,\n sedrot: 1,\n il: 1,\n noMinorFast: 1,\n noModern: 1,\n shabbatMevarchim: 1,\n noRoshChodesh: 1,\n noSpecialShabbat: 1,\n noHolidays: 1,\n omer: 1,\n molad: 1,\n ashkenazi: 1,\n locale: 1,\n addHebrewDates: 1,\n addHebrewDatesForEvents: 1,\n mask: 1,\n yomKippurKatan: 1,\n behab: 1,\n hour12: 1,\n dailyLearning: 1,\n useElevation: 1,\n yizkor: 1,\n} as const satisfies Record<keyof CalOptions, 1>;\n\n/**\n * @private\n */\nfunction warnUnrecognizedOptions(options: CalOptions) {\n for (const k of Object.keys(options)) {\n if (\n RECOGNIZED_OPTIONS[k] === undefined &&\n !unrecognizedAlreadyWarned.has(k)\n ) {\n console.warn(`Ignoring unrecognized HebrewCalendar option: ${k}`);\n unrecognizedAlreadyWarned.add(k);\n }\n }\n if (options.dailyLearning) {\n for (const k of Object.keys(options.dailyLearning)) {\n if (!unrecognizedAlreadyWarned.has(k) && !DailyLearning.has(k)) {\n console.warn(`Ignoring unrecognized DailyLearning calendar: ${k}`);\n unrecognizedAlreadyWarned.add(k);\n }\n }\n }\n}\n\nconst israelCityOffset: StringIntMap = {\n Jerusalem: 40,\n Haifa: 30,\n \"Zikhron Ya'aqov\": 30,\n \"Zikhron Ya'akov\": 30,\n 'Zikhron Yaakov': 30,\n \"Zichron Ya'akov\": 30,\n 'Zichron Yaakov': 30,\n} as const;\n\nconst geoIdCandleOffset: StringIntMap = {\n '281184': 40, // Jerusalem\n '294801': 30, // Haifa\n '293067': 30, // Zikhron Yaakov\n} as const;\n\n/**\n * @private\n * @constant\n * This calculation is based on the position of the sun 36 minutes after sunset in Jerusalem\n * around the equinox / equilux, which is 8.5° below geometric zenith.\n * The Ohr Meir considers this the time that 3 small stars are visible,\n * which is later than the required 3 medium stars.\n * @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ZmanimCalendar.html#ZENITH_8_POINT_5}\n */\nconst TZEIT_3SMALL_STARS = 8.5;\n\n/**\n * @private\n * @constant\n * This calculation is based on observation of 3 medium sized stars by Dr. Baruch Cohen\n * in his calendar published in in 1899 in Strasbourg, France.\n * This calculates to 7.0833333° below geometric zenith.\n * @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ComplexZmanimCalendar.html#ZENITH_7_POINT_083}\n */\nconst TZEIT_3MEDIUM_STARS = 7.0833333;\n\n/**\n * Modifies options in-place\n * @private\n */\nfunction checkCandleOptions(options: CalOptions) {\n if (!options.candlelighting) {\n return;\n }\n const location = options.location;\n if (location === undefined || !(location instanceof Location)) {\n throw new TypeError(\n 'options.candlelighting requires valid options.location'\n );\n }\n if (\n typeof options.havdalahMins === 'number' &&\n typeof options.havdalahDeg === 'number'\n ) {\n throw new TypeError(\n 'options.havdalahMins and options.havdalahDeg are mutually exclusive'\n );\n }\n\n const min0 = options.candleLightingMins;\n let min = typeof min0 === 'number' && !isNaN(min0) ? Math.trunc(min0) : 18;\n if (location.getIsrael() && Math.abs(min) === 18) {\n min = overrideIsraelCandleMins(location, min);\n }\n options.candleLightingMins = -1 * Math.abs(min);\n\n if (typeof options.havdalahMins === 'number') {\n options.havdalahMins = Math.trunc(Math.abs(options.havdalahMins));\n } else if (typeof options.havdalahDeg === 'number') {\n options.havdalahDeg = Math.abs(options.havdalahDeg);\n } else {\n options.havdalahDeg = TZEIT_3SMALL_STARS;\n }\n if (typeof options.fastEndDeg !== 'number') {\n options.fastEndDeg = TZEIT_3MEDIUM_STARS;\n }\n}\n\nfunction overrideIsraelCandleMins(location: Location, min: number) {\n const geoid = location.getGeoId();\n if (geoid) {\n const offset = geoIdCandleOffset[geoid];\n if (typeof offset === 'number') {\n return offset;\n }\n }\n const shortName = location.getShortName();\n if (shortName) {\n const offset = israelCityOffset[shortName];\n if (typeof offset === 'number') {\n return offset;\n }\n }\n return min;\n}\n\n/**\n * Mask to filter Holiday array\n * @private\n */\nfunction getMaskFromOptions(options: CalOptions): number {\n if (typeof options.mask === 'number') {\n return setOptionsFromMask(options);\n }\n const il = options.il || options.location?.getIsrael() || false;\n let mask = 0;\n\n // default options\n if (!options.noHolidays) {\n mask |=\n ROSH_CHODESH |\n YOM_TOV_ENDS |\n MINOR_FAST |\n SPECIAL_SHABBAT |\n MODERN_HOLIDAY |\n MAJOR_FAST |\n MINOR_HOLIDAY |\n EREV |\n CHOL_HAMOED |\n LIGHT_CANDLES |\n LIGHT_CANDLES_TZEIS |\n CHANUKAH_CANDLES;\n }\n if (options.candlelighting) {\n mask |= LIGHT_CANDLES | LIGHT_CANDLES_TZEIS | YOM_TOV_ENDS;\n }\n // suppression of defaults\n if (options.noRoshChodesh) {\n mask &= ~ROSH_CHODESH;\n }\n if (options.noModern) {\n mask &= ~MODERN_HOLIDAY;\n }\n if (options.noMinorFast) {\n mask &= ~MINOR_FAST;\n }\n if (options.noSpecialShabbat) {\n mask &= ~SPECIAL_SHABBAT;\n mask &= ~SHABBAT_MEVARCHIM;\n }\n if (il) {\n mask |= IL_ONLY;\n } else {\n mask |= CHUL_ONLY;\n }\n // non-default options\n if (options.sedrot) {\n mask |= PARSHA_HASHAVUA;\n }\n if (options.omer) {\n mask |= OMER_COUNT;\n }\n if (options.shabbatMevarchim) {\n mask |= SHABBAT_MEVARCHIM;\n }\n if (options.yomKippurKatan) {\n mask |= YOM_KIPPUR_KATAN;\n }\n if (options.behab) {\n mask |= BEHAB;\n }\n if (options.yizkor) {\n mask |= YIZKOR;\n }\n const dailyLearning = options.dailyLearning;\n if (typeof dailyLearning === 'object' && dailyLearning !== null) {\n if (dailyLearning.dafYomi) {\n mask |= DAF_YOMI;\n }\n if (dailyLearning.mishnaYomi) {\n mask |= MISHNA_YOMI;\n }\n if (dailyLearning.nachYomi) {\n mask |= NACH_YOMI;\n }\n if (dailyLearning.yerushalmi) {\n mask |= YERUSHALMI_YOMI;\n }\n }\n\n return mask;\n}\n\nconst MASK_LIGHT_CANDLES =\n LIGHT_CANDLES | LIGHT_CANDLES_TZEIS | CHANUKAH_CANDLES | YOM_TOV_ENDS;\n\nconst defaultLocation = new Location(0, 0, false, 'UTC');\n\n/**\n * @private\n */\nfunction setOptionsFromMask(options: CalOptions): number {\n const m = options.mask || 0;\n if (m & ROSH_CHODESH) delete options.noRoshChodesh;\n if (m & MODERN_HOLIDAY) delete options.noModern;\n if (m & MINOR_FAST) delete options.noMinorFast;\n if (m & SPECIAL_SHABBAT) delete options.noSpecialShabbat;\n if (m & PARSHA_HASHAVUA) options.sedrot = true;\n if (m & (DAF_YOMI | MISHNA_YOMI | NACH_YOMI | YERUSHALMI_YOMI)) {\n options.dailyLearning = options.dailyLearning || {};\n if (m & DAF_YOMI) {\n options.dailyLearning.dafYomi = true;\n }\n if (m & MISHNA_YOMI) {\n options.dailyLearning.mishnaYomi = true;\n }\n if (m & NACH_YOMI) {\n options.dailyLearning.nachYomi = true;\n }\n if (m & YERUSHALMI_YOMI) {\n options.dailyLearning.yerushalmi = 1;\n }\n }\n if (m & OMER_COUNT) options.omer = true;\n if (m & SHABBAT_MEVARCHIM) options.shabbatMevarchim = true;\n if (m & YOM_KIPPUR_KATAN) options.yomKippurKatan = true;\n if (m & BEHAB) options.behab = true;\n if (m & YIZKOR) options.yizkor = true;\n return m;\n}\n\n/**\n * Appends the Event `ev` to the `events` array. Also may add related\n * timed events like candle-lighting or fast start/end\n * @private\n */\nfunction appendHolidayAndRelated(\n candlesEv: TimedEvent | undefined,\n events: Event[],\n ev: HolidayEvent,\n options: CalOptions,\n isFriday: boolean,\n isSaturday: boolean,\n hasUserMask: boolean\n): TimedEvent | undefined {\n const il = options.il || false;\n if (!ev.observedIn(il)) {\n return candlesEv; // holiday isn't observed here; bail out early\n }\n const eFlags = ev.getFlags();\n if (\n (!options.yomKippurKatan && eFlags & YOM_KIPPUR_KATAN) ||\n (!options.behab && eFlags & BEHAB) ||\n (options.noModern && eFlags & MODERN_HOLIDAY)\n ) {\n return candlesEv; // bail out early\n }\n if (options.candlelighting && ev.getDesc() === hdesc.EREV_PESACH) {\n const evts = makeErevPesachChametzEvents(ev, options);\n if (evts.length) {\n events.push(...evts);\n }\n }\n const isMajorFast = Boolean(eFlags & MAJOR_FAST);\n const isMinorFast = Boolean(eFlags & MINOR_FAST);\n let fastEv;\n if (\n options.candlelighting &&\n (isMajorFast || isMinorFast) &&\n ev.getDesc() !== hdesc.YOM_KIPPUR\n ) {\n ev = fastEv = makeFastStartEnd(ev, options);\n if (\n fastEv.startEvent &&\n (isMajorFast || (isMinorFast && !options.noMinorFast))\n ) {\n events.push(fastEv.startEvent);\n }\n }\n if (eFlags & Number(options.mask) || (!eFlags && !hasUserMask)) {\n if (options.candlelighting && eFlags & MASK_LIGHT_CANDLES) {\n const hd = ev.getDate();\n candlesEv = makeCandleEvent(ev, hd, options, isFriday, isSaturday);\n if (eFlags & CHANUKAH_CANDLES && candlesEv && !options.noHolidays) {\n // Replace Chanukah event with a clone that includes candle lighting time.\n // For clarity, allow a \"duplicate\" candle lighting event to remain for Shabbat\n const chanukahEv = makeWeekdayChanukahCandleLighting(\n ev as ChanukahEvent,\n options\n );\n if (chanukahEv) {\n if (isFriday || isSaturday) {\n chanukahEv.eventTime = candlesEv.eventTime;\n chanukahEv.eventTimeStr = candlesEv.eventTimeStr;\n }\n ev = chanukahEv;\n }\n candlesEv = undefined;\n }\n }\n if (\n !options.noHolidays ||\n (options.yomKippurKatan && eFlags & YOM_KIPPUR_KATAN) ||\n (options.behab && eFlags & BEHAB)\n ) {\n events.push(ev); // the original event itself\n }\n }\n if (\n (isMajorFast || (isMinorFast && !options.noMinorFast)) &&\n fastEv?.endEvent\n ) {\n events.push(fastEv.endEvent);\n }\n return candlesEv;\n}\n\nfunction makeMoladAndMevarchimChodesh(hd: HDate, options: CalOptions): Event[] {\n const evts: Event[] = [];\n const hmonth = hd.getMonth();\n const hdate = hd.getDate();\n if (hmonth !== ELUL && hdate >= 23 && hdate <= 29) {\n const hyear = hd.getFullYear();\n const monNext = hmonth === HDate.monthsInYear(hyear) ? NISAN : hmonth + 1;\n if (options.molad) {\n evts.push(new MoladEvent(hd, hyear, monNext, options));\n }\n if (options.shabbatMevarchim) {\n const nextMonthName = HDate.getMonthName(monNext, hyear);\n const molad = new Molad(hyear, monNext);\n const memo = molad.render(options.locale, options);\n evts.push(\n new MevarchimChodeshEvent(hd, nextMonthName, memo, options.locale)\n );\n }\n }\n return evts;\n}\n\nfunction dailyLearningName(key: string, val: DailyLearningValue): string {\n if (key === 'yerushalmi') {\n return val === 2 ? 'yerushalmi-schottenstein' : 'yerushalmi-vilna';\n }\n return key;\n}\n\nfunction makeDailyLearning(\n hd: HDate,\n dailyLearning: Record<string, DailyLearningValue>,\n il: boolean\n): Event[] {\n const evts: Event[] = [];\n for (const [key, val] of Object.entries(dailyLearning)) {\n if (val) {\n const name = dailyLearningName(key, val);\n const learningEv = DailyLearning.lookup(name, hd, il);\n if (learningEv) {\n evts.push(learningEv);\n }\n }\n }\n return evts;\n}\n\nfunction makeOmerEvent(hd: HDate, omerDay: number, options: CalOptions) {\n const omerEv = new OmerEvent(hd, omerDay);\n if (options.candlelighting) {\n const location = options.location!;\n const zmanim = new Zmanim(location, hd.prev(), false);\n const tzeit = zmanim.tzeit(7.0833);\n if (!isNaN(tzeit.getTime())) {\n omerEv.alarm = tzeit;\n }\n }\n return omerEv;\n}\n\nfunction makeErevPesachChametzEvents(\n erevPesachEv: Event,\n options: CalOptions\n): TimedEvent[] {\n const evts: TimedEvent[] = [];\n const location = options.location!;\n const useElevation = Boolean(options.useElevation);\n const hd = erevPesachEv.getDate();\n const zmanim = new Zmanim(location, hd, useElevation);\n const zmanAchilas = zmanim.sofZmanTfilla(); // Gra\n if (isNaN(zmanAchilas.getTime())) {\n return [];\n }\n const zmanAchilasEv = new TimedEvent(\n hd,\n hdesc.SOF_ZMAN_ACHILAT_CHAMETZ,\n 0,\n zmanAchilas,\n location,\n undefined,\n options\n );\n zmanAchilasEv.emoji = '🍞';\n evts.push(zmanAchilasEv);\n // When Erev Pesach falls on Shabbat, chametz cannot be burned on Shabbat,\n // so Biur Chametz is emitted on the Friday before (see makeBiurChametzEvent\n // called from the main calendar loop). Skip it here in that case.\n if (hd.getDay() !== SAT) {\n const biurEv = makeBiurChametzEvent(hd, options);\n if (biurEv) {\n evts.push(biurEv);\n }\n }\n return evts;\n}\n\nfunction makeBiurChametzEvent(\n hd: HDate,\n options: CalOptions\n): TimedEvent | undefined {\n const location = options.location!;\n const useElevation = Boolean(options.useElevation);\n const zmanim = new Zmanim(location, hd, useElevation);\n const time = zmanim.sofZmanBiurChametzGRA();\n if (isNaN(time.getTime())) {\n return undefined;\n }\n const biurChametzEv = new TimedEvent(\n hd,\n hdesc.BIUR_CHAMETZ,\n 0,\n time,\n location,\n undefined,\n options\n );\n biurChametzEv.emoji = '🔥';\n return biurChametzEv;\n}\n"],"names":["hdesc"],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sources":["../../../src/calendar.ts"],"sourcesContent":["import {Locale} from './locale';\nimport {abs2greg, HDate, months} from '@hebcal/hdate';\nimport {CalOptions, DailyLearningValue} from './CalOptions';\nimport {\n makeCandleEvent,\n makeFastStartEnd,\n makeWeekdayChanukahCandleLighting,\n} from './candles';\nimport {Event, flags} from './event';\nimport {getStartAndEnd} from './getStartAndEnd';\nimport {HebrewDateEvent} from './HebrewDateEvent';\nimport {HolidayYearMap, getHolidaysForYear_} from './holidays';\nimport {ParshaEvent} from './ParshaEvent';\nimport {Sedra, getSedra} from './sedra';\nimport {TimedEvent, HavdalahEvent} from './TimedEvent';\nimport {DailyLearning} from './DailyLearning';\nimport {ChanukahEvent, HolidayEvent} from './HolidayEvent';\nimport {MevarchimChodeshEvent} from './MevarchimChodeshEvent';\nimport {MoladEvent, Molad} from './molad';\nimport {OmerEvent} from './omer';\nimport {Zmanim} from './zmanim';\nimport {Location} from './location';\nimport {holidayDesc as hdesc} from './staticHolidays';\n\n/**\n * Calculates holidays and other Hebrew calendar events based on {@link CalOptions}.\n *\n * Each holiday is represented by an {@link Event} object which includes a date,\n * a description, flags and optional attributes.\n * If given no options, returns holidays for the Diaspora for the current Gregorian year.\n *\n * The date range returned by this function can be controlled by:\n * * `options.year` - Gregorian (e.g. 1993) or Hebrew year (e.g. 5749)\n * * `options.isHebrewYear` - to interpret `year` as Hebrew year\n * * `options.numYears` - generate calendar for multiple years (default 1)\n * * `options.month` - Gregorian or Hebrew month (to filter results to a single month)\n *\n * Alternatively, specify start and end days with `Date` or {@link HDate} instances:\n * * `options.start` - use specific start date (requires `end` date)\n * * `options.end` - use specific end date (requires `start` date)\n *\n * Unless `options.noHolidays == true`, default holidays include:\n * * Major holidays - Rosh Hashana, Yom Kippur, Pesach, Sukkot, etc.\n * * Minor holidays - Purim, Chanukah, Tu BiShvat, Lag BaOmer, etc.\n * * Minor fasts - Ta'anit Esther, Tzom Gedaliah, etc. (unless `options.noMinorFast`)\n * * Special Shabbatot - Shabbat Shekalim, Zachor, etc. (unless `options.noSpecialShabbat`)\n * * Modern Holidays - Yom HaShoah, Yom HaAtzma'ut, etc. (unless `options.noModern`)\n * * Rosh Chodesh (unless `options.noRoshChodesh`)\n *\n * Holiday and Torah reading schedules differ between Israel and the Disapora.\n * Set `options.il=true` to use the Israeli schedule.\n *\n * Additional non-default event types can be specified:\n * * Parashat HaShavua - weekly Torah Reading on Saturdays (`options.sedrot`)\n * * Counting of the Omer (`options.omer`)\n * * Shabbat Mevarchim HaChodesh on Saturday before Rosh Chodesh (`options.shabbatMevarchim`)\n * * Molad announcement on Saturday before Rosh Chodesh (`options.molad`)\n * * Yom Kippur Katan (`options.yomKippurKatan`)\n * * BeHaB fast days after Pesach and Sukkot (`options.behab`)\n * * Yizkor (`options.yizkor`)\n *\n * Daily Study of texts are supported by the\n * {@link https://github.com/hebcal/hebcal-learning @hebcal/learning} package,\n * for example:\n * * Babylonian Talmud Daf Yomi (`options.dailyLearning.dafYomi`)\n * * Jerusalem Talmud (Yerushalmi) Yomi (`options.dailyLearning.yerushalmi`)\n * * Mishna Yomi (`options.dailyLearning.mishnaYomi`)\n * * Nach Yomi (`options.dailyLearning.nachYomi`)\n *\n * Candle-lighting and Havdalah times are approximated using latitude and longitude\n * specified by the {@link Location} class. The `Location` class contains a small\n * database of cities with their associated geographic information and time-zone information.\n * If you ever have any doubts about Hebcal's times, consult your local halachic authority.\n * If you enter geographic coordinates above the arctic circle or antarctic circle,\n * the times are guaranteed to be wrong.\n *\n * To add candle-lighting options, set `options.candlelighting=true` and set\n * `options.location` to an instance of `Location`. By default, candle lighting\n * time is 18 minutes before sundown (40 minutes for Jerusalem,\n * 30 minutes for Haifa and Zikhron Ya'akov) and Havdalah is\n * calculated according to Tzeit Hakochavim - Nightfall (the point when 3 small stars\n * are observable in the night time sky with the naked eye). The default Havdalah\n * option (Tzeit Hakochavim) is calculated when the sun is 8.5° below the horizon.\n * These defaults can be changed using these options:\n * * `options.candleLightingMins` - minutes before sundown to light candles\n * * `options.havdalahMins` - minutes after sundown for Havdalah (typical values are 42, 50, or 72).\n * Havdalah times are suppressed when `options.havdalahMins=0`.\n * * `options.havdalahDeg` - degrees for solar depression for Havdalah.\n * Default is 8.5 degrees for 3 small stars. Use 7.083 degrees for 3 medium-sized stars.\n * Havdalah times are suppressed when `options.havdalahDeg=0`.\n *\n * If both `options.candlelighting=true` and `options.location` is specified,\n * Chanukah candle-lighting times and minor fast start/end times will also be generated.\n * Chanukah candle-lighting is at Bein HaShmashos (13.5 minutes before\n * the sun is 7.083° below the horizon in the evening)\n * on weekdays, at regular candle-lighting time on Fridays, and at regular Havdalah time on\n * Saturday night (see above).\n *\n * Minor fasts begin at Alot HaShachar (sun is 16.1° below the horizon in the morning) and\n * end when 3 medium-sized stars are observable in the night sky (sun is 7.083° below the horizon\n * in the evening).\n *\n * Two options also exist for generating an Event with the Hebrew date:\n * * `options.addHebrewDates` - print the Hebrew date for the entire date range\n * * `options.addHebrewDatesForEvents` - print the Hebrew date for dates with some events\n *\n * Lastly, translation and transliteration of event titles is controlled by\n * `options.locale` and the {@link Locale} API.\n * `@hebcal/core` supports three locales by default:\n * * `en` - default, Sephardic transliterations (e.g. \"Shabbat\")\n * * `ashkenazi` - Ashkenazi transliterations (e.g. \"Shabbos\")\n * * `he` - Hebrew (e.g. \"שַׁבָּת\")\n *\n * Additional locales (such as `ru` or `fr`) are supported by the\n * {@link https://github.com/hebcal/hebcal-locales @hebcal/locales} package\n *\n * @example\n * import {HebrewCalendar, HDate, Location, Event} from '@hebcal/core';\n * const options: CalOptions = {\n * year: 1981,\n * isHebrewYear: false,\n * candlelighting: true,\n * location: Location.lookup('San Francisco'),\n * sedrot: true,\n * omer: true,\n * };\n * const events = HebrewCalendar.calendar(options);\n * for (const ev of events) {\n * const hd = ev.getDate();\n * const date = hd.greg();\n * console.log(date.toLocaleDateString(), ev.render('en'), hd.toString());\n * }\n */\nexport function calendar(options: CalOptions = {}): Event[] {\n options = {...options}; // so we can modify freely\n checkCandleOptions(options);\n const location = (options.location = options.location || defaultLocation);\n const il = (options.il = options.il || location.getIsrael() || false);\n const hasUserMask = typeof options.mask === 'number';\n options.mask = getMaskFromOptions(options);\n if (options.locale) {\n const locale = options.locale;\n if (locale && typeof locale !== 'string') {\n throw new TypeError(`Invalid options.locale: ${locale}`);\n }\n if (!Locale.hasLocale(locale)) {\n throw new TypeError(\n `Locale '${locale}' not found; did you forget to import @hebcal/locales?`\n );\n }\n } else if (options.ashkenazi) {\n options.locale = 'ashkenazi';\n } else {\n options.locale = 'en';\n }\n\n const evts: Event[] = [];\n let sedra: Sedra | undefined;\n let holidaysYear: HolidayYearMap | undefined;\n let beginOmer = -1;\n let endOmer = -1;\n let currentYear = -1;\n const startAndEnd = getStartAndEnd(options);\n warnUnrecognizedOptions(options);\n const startAbs = startAndEnd[0];\n const endAbs = startAndEnd[1];\n const startGreg = abs2greg(startAbs);\n const startGregYear = startGreg.getFullYear();\n if (startGregYear < 100 || startGregYear > 9999) {\n options.candlelighting = false;\n options.sedrot = false;\n options.dailyLearning = {};\n }\n for (let abs = startAbs; abs <= endAbs; abs++) {\n const hd = new HDate(abs);\n const hyear = hd.getFullYear();\n if (hyear !== currentYear) {\n currentYear = hyear;\n holidaysYear = getHolidaysForYear_(currentYear);\n if (options.sedrot) {\n sedra = getSedra(currentYear, il);\n }\n if (options.omer) {\n beginOmer = HDate.hebrew2abs(currentYear, NISAN, 16);\n endOmer = HDate.hebrew2abs(currentYear, SIVAN, 5);\n }\n }\n const prevEventsLength = evts.length;\n const dow = hd.getDay();\n const isFriday = dow === FRI;\n const isSaturday = dow === SAT;\n let candlesEv: TimedEvent | undefined;\n const holidays0 = holidaysYear!.get(hd.toString()) || [];\n const holidays = holidays0.filter(ev => ev.observedIn(il));\n for (const ev of holidays) {\n candlesEv = appendHolidayAndRelated(\n candlesEv,\n evts,\n ev,\n options,\n isFriday,\n isSaturday,\n hasUserMask\n );\n }\n const mm = hd.getMonth();\n const dd = hd.getDate();\n // When Erev Pesach falls on Shabbat, burning chametz is moved to Friday.\n if (isFriday && options.candlelighting && mm === months.NISAN && dd === 13) {\n const biurEv = makeBiurChametzEvent(hd, options);\n if (biurEv) {\n evts.push(biurEv);\n }\n }\n if (options.sedrot && isSaturday) {\n const parsha0 = sedra!.lookup(abs);\n if (!parsha0.chag) {\n evts.push(new ParshaEvent(parsha0));\n }\n }\n if (options.yizkor) {\n if (\n (mm === months.TISHREI && (dd === 10 || dd === 22)) ||\n (mm === NISAN && dd === (il ? 21 : 22)) ||\n (mm === SIVAN && dd === (il ? 6 : 7))\n ) {\n const linkedEvent = holidays[0];\n const ev = new Event(hd, hdesc.YIZKOR, flags.YIZKOR, {\n emoji: '🕯️',\n linkedEvent,\n });\n evts.push(ev);\n }\n }\n const dailyLearning = options.dailyLearning;\n let numDailyLearning = 0;\n if (typeof dailyLearning === 'object' && dailyLearning !== null) {\n const events = makeDailyLearning(hd, dailyLearning, il);\n numDailyLearning = events.length;\n if (numDailyLearning) {\n evts.push(...events);\n }\n }\n if (options.omer && abs >= beginOmer && abs <= endOmer) {\n const omer = abs - beginOmer + 1;\n const omerEv = makeOmerEvent(hd, omer, options);\n evts.push(omerEv);\n }\n if (isSaturday && (options.molad || options.shabbatMevarchim)) {\n const events = makeMoladAndMevarchimChodesh(hd, options);\n evts.push(...events);\n }\n if (!candlesEv && options.candlelighting && (isFriday || isSaturday)) {\n candlesEv = makeCandleEvent(undefined, hd, options, isFriday, isSaturday);\n if (isFriday && candlesEv && sedra) {\n const parsha = sedra.lookup(abs);\n if (!parsha.chag) {\n const pe = new ParshaEvent(parsha);\n candlesEv.memo = pe.render(options.locale);\n } else {\n candlesEv.memo = Locale.gettext(parsha.parsha[0], options.locale);\n }\n }\n }\n // suppress Havdalah when options.havdalahMins=0 or options.havdalahDeg=0\n if (\n candlesEv instanceof HavdalahEvent &&\n (options.havdalahMins === 0 || options.havdalahDeg === 0)\n ) {\n candlesEv = undefined;\n }\n if (candlesEv) {\n evts.push(candlesEv);\n }\n if (\n options.addHebrewDates ||\n (options.addHebrewDatesForEvents &&\n prevEventsLength !== evts.length - numDailyLearning)\n ) {\n const e2 = new HebrewDateEvent(hd);\n if (prevEventsLength === evts.length) {\n evts.push(e2);\n } else {\n evts.splice(prevEventsLength, 0, e2);\n }\n }\n }\n return evts;\n}\n\nconst FRI = 5;\nconst SAT = 6;\n\nconst NISAN = months.NISAN;\nconst SIVAN = months.SIVAN;\nconst ELUL = months.ELUL;\n\nconst LIGHT_CANDLES = flags.LIGHT_CANDLES;\nconst YOM_TOV_ENDS = flags.YOM_TOV_ENDS;\nconst CHUL_ONLY = flags.CHUL_ONLY;\nconst IL_ONLY = flags.IL_ONLY;\nconst LIGHT_CANDLES_TZEIS = flags.LIGHT_CANDLES_TZEIS;\nconst CHANUKAH_CANDLES = flags.CHANUKAH_CANDLES;\nconst MINOR_FAST = flags.MINOR_FAST;\nconst SPECIAL_SHABBAT = flags.SPECIAL_SHABBAT;\nconst MODERN_HOLIDAY = flags.MODERN_HOLIDAY;\nconst MAJOR_FAST = flags.MAJOR_FAST;\nconst ROSH_CHODESH = flags.ROSH_CHODESH;\nconst PARSHA_HASHAVUA = flags.PARSHA_HASHAVUA;\nconst DAF_YOMI = flags.DAF_YOMI;\nconst MISHNA_YOMI = flags.MISHNA_YOMI;\nconst NACH_YOMI = flags.NACH_YOMI;\nconst YERUSHALMI_YOMI = flags.YERUSHALMI_YOMI;\nconst OMER_COUNT = flags.OMER_COUNT;\nconst SHABBAT_MEVARCHIM = flags.SHABBAT_MEVARCHIM;\nconst MINOR_HOLIDAY = flags.MINOR_HOLIDAY;\nconst EREV = flags.EREV;\nconst CHOL_HAMOED = flags.CHOL_HAMOED;\nconst YOM_KIPPUR_KATAN = flags.YOM_KIPPUR_KATAN;\nconst YIZKOR = flags.YIZKOR;\nconst BEHAB = flags.BEHAB;\n\ntype StringIntMap = Record<string, number>;\n\nconst unrecognizedAlreadyWarned = new Set<string>();\nconst RECOGNIZED_OPTIONS: StringIntMap = {\n location: 1,\n year: 1,\n isHebrewYear: 1,\n month: 1,\n numYears: 1,\n start: 1,\n end: 1,\n candlelighting: 1,\n candleLightingMins: 1,\n havdalahMins: 1,\n havdalahDeg: 1,\n fastEndDeg: 1,\n fastEndMins: 1,\n sedrot: 1,\n il: 1,\n noMinorFast: 1,\n noModern: 1,\n shabbatMevarchim: 1,\n noRoshChodesh: 1,\n noSpecialShabbat: 1,\n noHolidays: 1,\n omer: 1,\n molad: 1,\n ashkenazi: 1,\n locale: 1,\n addHebrewDates: 1,\n addHebrewDatesForEvents: 1,\n mask: 1,\n yomKippurKatan: 1,\n behab: 1,\n hour12: 1,\n dailyLearning: 1,\n useElevation: 1,\n yizkor: 1,\n} as const satisfies Record<keyof CalOptions, 1>;\n\n/**\n * @private\n */\nfunction warnUnrecognizedOptions(options: CalOptions) {\n for (const k of Object.keys(options)) {\n if (RECOGNIZED_OPTIONS[k] === undefined && !unrecognizedAlreadyWarned.has(k)) {\n console.warn(`Ignoring unrecognized HebrewCalendar option: ${k}`);\n unrecognizedAlreadyWarned.add(k);\n }\n }\n if (options.dailyLearning) {\n for (const k of Object.keys(options.dailyLearning)) {\n if (!unrecognizedAlreadyWarned.has(k) && !DailyLearning.has(k)) {\n console.warn(`Ignoring unrecognized DailyLearning calendar: ${k}`);\n unrecognizedAlreadyWarned.add(k);\n }\n }\n }\n}\n\nconst israelCityOffset: StringIntMap = {\n Jerusalem: 40,\n Haifa: 30,\n \"Zikhron Ya'aqov\": 30,\n \"Zikhron Ya'akov\": 30,\n 'Zikhron Yaakov': 30,\n \"Zichron Ya'akov\": 30,\n 'Zichron Yaakov': 30,\n} as const;\n\nconst geoIdCandleOffset: StringIntMap = {\n '281184': 40, // Jerusalem\n '294801': 30, // Haifa\n '293067': 30, // Zikhron Yaakov\n} as const;\n\n/**\n * @private\n * @constant\n * This calculation is based on the position of the sun 36 minutes after sunset in Jerusalem\n * around the equinox / equilux, which is 8.5° below geometric zenith.\n * The Ohr Meir considers this the time that 3 small stars are visible,\n * which is later than the required 3 medium stars.\n * @see {https://kosherjava.com/zmanim/docs/api/com/kosherjava/zmanim/ZmanimCalendar.html#ZENITH_8_POINT_5}\n */\nconst TZEIT_3SMALL_STARS = 8.5;\n\n/**\n * Modifies options in-place\n * @private\n */\nfunction checkCandleOptions(options: CalOptions) {\n if (!options.candlelighting) {\n return;\n }\n const location = options.location;\n if (location === undefined || !(location instanceof Location)) {\n throw new TypeError('options.candlelighting requires valid options.location');\n }\n if (\n typeof options.havdalahMins === 'number' &&\n typeof options.havdalahDeg === 'number'\n ) {\n throw new TypeError(\n 'options.havdalahMins and options.havdalahDeg are mutually exclusive'\n );\n }\n if (\n typeof options.fastEndDeg === 'number' &&\n typeof options.fastEndMins === 'number'\n ) {\n throw new TypeError(\n 'options.fastEndDeg and options.fastEndMins are mutually exclusive'\n );\n }\n\n const min0 = options.candleLightingMins;\n let min = typeof min0 === 'number' && !isNaN(min0) ? Math.trunc(min0) : 18;\n if (location.getIsrael() && Math.abs(min) === 18) {\n min = overrideIsraelCandleMins(location, min);\n }\n options.candleLightingMins = -1 * Math.abs(min);\n\n if (typeof options.havdalahMins === 'number') {\n options.havdalahMins = Math.trunc(Math.abs(options.havdalahMins));\n } else if (typeof options.havdalahDeg === 'number') {\n options.havdalahDeg = Math.abs(options.havdalahDeg);\n } else {\n options.havdalahDeg = TZEIT_3SMALL_STARS;\n }\n if (typeof options.fastEndDeg === 'number') {\n options.fastEndDeg = Math.abs(options.fastEndDeg);\n }\n if (typeof options.fastEndMins === 'number') {\n options.fastEndMins = Math.trunc(Math.abs(options.fastEndMins));\n }\n}\n\nfunction overrideIsraelCandleMins(location: Location, min: number) {\n const geoid = location.getGeoId();\n if (geoid) {\n const offset = geoIdCandleOffset[geoid];\n if (typeof offset === 'number') {\n return offset;\n }\n }\n const shortName = location.getShortName();\n if (shortName) {\n const offset = israelCityOffset[shortName];\n if (typeof offset === 'number') {\n return offset;\n }\n }\n return min;\n}\n\n/**\n * Mask to filter Holiday array\n * @private\n */\nfunction getMaskFromOptions(options: CalOptions): number {\n if (typeof options.mask === 'number') {\n return setOptionsFromMask(options);\n }\n const il = options.il || options.location?.getIsrael() || false;\n let mask = 0;\n\n // default options\n if (!options.noHolidays) {\n mask |=\n ROSH_CHODESH |\n YOM_TOV_ENDS |\n MINOR_FAST |\n SPECIAL_SHABBAT |\n MODERN_HOLIDAY |\n MAJOR_FAST |\n MINOR_HOLIDAY |\n EREV |\n CHOL_HAMOED |\n LIGHT_CANDLES |\n LIGHT_CANDLES_TZEIS |\n CHANUKAH_CANDLES;\n }\n if (options.candlelighting) {\n mask |= LIGHT_CANDLES | LIGHT_CANDLES_TZEIS | YOM_TOV_ENDS;\n }\n // suppression of defaults\n if (options.noRoshChodesh) {\n mask &= ~ROSH_CHODESH;\n }\n if (options.noModern) {\n mask &= ~MODERN_HOLIDAY;\n }\n if (options.noMinorFast) {\n mask &= ~MINOR_FAST;\n }\n if (options.noSpecialShabbat) {\n mask &= ~SPECIAL_SHABBAT;\n mask &= ~SHABBAT_MEVARCHIM;\n }\n if (il) {\n mask |= IL_ONLY;\n } else {\n mask |= CHUL_ONLY;\n }\n // non-default options\n if (options.sedrot) {\n mask |= PARSHA_HASHAVUA;\n }\n if (options.omer) {\n mask |= OMER_COUNT;\n }\n if (options.shabbatMevarchim) {\n mask |= SHABBAT_MEVARCHIM;\n }\n if (options.yomKippurKatan) {\n mask |= YOM_KIPPUR_KATAN;\n }\n if (options.behab) {\n mask |= BEHAB;\n }\n if (options.yizkor) {\n mask |= YIZKOR;\n }\n const dailyLearning = options.dailyLearning;\n if (typeof dailyLearning === 'object' && dailyLearning !== null) {\n if (dailyLearning.dafYomi) {\n mask |= DAF_YOMI;\n }\n if (dailyLearning.mishnaYomi) {\n mask |= MISHNA_YOMI;\n }\n if (dailyLearning.nachYomi) {\n mask |= NACH_YOMI;\n }\n if (dailyLearning.yerushalmi) {\n mask |= YERUSHALMI_YOMI;\n }\n }\n\n return mask;\n}\n\nconst MASK_LIGHT_CANDLES =\n LIGHT_CANDLES | LIGHT_CANDLES_TZEIS | CHANUKAH_CANDLES | YOM_TOV_ENDS;\n\nconst defaultLocation = new Location(0, 0, false, 'UTC');\n\n/**\n * @private\n */\nfunction setOptionsFromMask(options: CalOptions): number {\n const m = options.mask || 0;\n if (m & ROSH_CHODESH) delete options.noRoshChodesh;\n if (m & MODERN_HOLIDAY) delete options.noModern;\n if (m & MINOR_FAST) delete options.noMinorFast;\n if (m & SPECIAL_SHABBAT) delete options.noSpecialShabbat;\n if (m & PARSHA_HASHAVUA) options.sedrot = true;\n if (m & (DAF_YOMI | MISHNA_YOMI | NACH_YOMI | YERUSHALMI_YOMI)) {\n options.dailyLearning = options.dailyLearning || {};\n if (m & DAF_YOMI) {\n options.dailyLearning.dafYomi = true;\n }\n if (m & MISHNA_YOMI) {\n options.dailyLearning.mishnaYomi = true;\n }\n if (m & NACH_YOMI) {\n options.dailyLearning.nachYomi = true;\n }\n if (m & YERUSHALMI_YOMI) {\n options.dailyLearning.yerushalmi = 1;\n }\n }\n if (m & OMER_COUNT) options.omer = true;\n if (m & SHABBAT_MEVARCHIM) options.shabbatMevarchim = true;\n if (m & YOM_KIPPUR_KATAN) options.yomKippurKatan = true;\n if (m & BEHAB) options.behab = true;\n if (m & YIZKOR) options.yizkor = true;\n return m;\n}\n\n/**\n * Appends the Event `ev` to the `events` array. Also may add related\n * timed events like candle-lighting or fast start/end\n * @private\n */\nfunction appendHolidayAndRelated(\n candlesEv: TimedEvent | undefined,\n events: Event[],\n ev: HolidayEvent,\n options: CalOptions,\n isFriday: boolean,\n isSaturday: boolean,\n hasUserMask: boolean\n): TimedEvent | undefined {\n const il = options.il || false;\n if (!ev.observedIn(il)) {\n return candlesEv; // holiday isn't observed here; bail out early\n }\n const eFlags = ev.getFlags();\n if (\n (!options.yomKippurKatan && eFlags & YOM_KIPPUR_KATAN) ||\n (!options.behab && eFlags & BEHAB) ||\n (options.noModern && eFlags & MODERN_HOLIDAY)\n ) {\n return candlesEv; // bail out early\n }\n if (options.candlelighting && ev.getDesc() === hdesc.EREV_PESACH) {\n const evts = makeErevPesachChametzEvents(ev, options);\n if (evts.length) {\n events.push(...evts);\n }\n }\n const isMajorFast = Boolean(eFlags & MAJOR_FAST);\n const isMinorFast = Boolean(eFlags & MINOR_FAST);\n let fastEv;\n if (\n options.candlelighting &&\n (isMajorFast || isMinorFast) &&\n ev.getDesc() !== hdesc.YOM_KIPPUR\n ) {\n ev = fastEv = makeFastStartEnd(ev, options);\n if (\n fastEv.startEvent &&\n (isMajorFast || (isMinorFast && !options.noMinorFast))\n ) {\n events.push(fastEv.startEvent);\n }\n }\n if (eFlags & Number(options.mask) || (!eFlags && !hasUserMask)) {\n if (options.candlelighting && eFlags & MASK_LIGHT_CANDLES) {\n const hd = ev.getDate();\n candlesEv = makeCandleEvent(ev, hd, options, isFriday, isSaturday);\n if (eFlags & CHANUKAH_CANDLES && candlesEv && !options.noHolidays) {\n // Replace Chanukah event with a clone that includes candle lighting time.\n // For clarity, allow a \"duplicate\" candle lighting event to remain for Shabbat\n const chanukahEv = makeWeekdayChanukahCandleLighting(\n ev as ChanukahEvent,\n options\n );\n if (chanukahEv) {\n if (isFriday || isSaturday) {\n chanukahEv.eventTime = candlesEv.eventTime;\n chanukahEv.eventTimeStr = candlesEv.eventTimeStr;\n }\n ev = chanukahEv;\n }\n candlesEv = undefined;\n }\n }\n if (\n !options.noHolidays ||\n (options.yomKippurKatan && eFlags & YOM_KIPPUR_KATAN) ||\n (options.behab && eFlags & BEHAB)\n ) {\n events.push(ev); // the original event itself\n }\n }\n if ((isMajorFast || (isMinorFast && !options.noMinorFast)) && fastEv?.endEvent) {\n events.push(fastEv.endEvent);\n }\n return candlesEv;\n}\n\nfunction makeMoladAndMevarchimChodesh(hd: HDate, options: CalOptions): Event[] {\n const evts: Event[] = [];\n const hmonth = hd.getMonth();\n const hdate = hd.getDate();\n if (hmonth !== ELUL && hdate >= 23 && hdate <= 29) {\n const hyear = hd.getFullYear();\n const monNext = hmonth === HDate.monthsInYear(hyear) ? NISAN : hmonth + 1;\n if (options.molad) {\n evts.push(new MoladEvent(hd, hyear, monNext, options));\n }\n if (options.shabbatMevarchim) {\n const nextMonthName = HDate.getMonthName(monNext, hyear);\n const molad = new Molad(hyear, monNext);\n const memo = molad.render(options.locale, options);\n evts.push(new MevarchimChodeshEvent(hd, nextMonthName, memo, options.locale));\n }\n }\n return evts;\n}\n\nfunction dailyLearningName(key: string, val: DailyLearningValue): string {\n if (key === 'yerushalmi') {\n return val === 2 ? 'yerushalmi-schottenstein' : 'yerushalmi-vilna';\n }\n return key;\n}\n\nfunction makeDailyLearning(\n hd: HDate,\n dailyLearning: Record<string, DailyLearningValue>,\n il: boolean\n): Event[] {\n const evts: Event[] = [];\n for (const [key, val] of Object.entries(dailyLearning)) {\n if (val) {\n const name = dailyLearningName(key, val);\n const learningEv = DailyLearning.lookup(name, hd, il);\n if (learningEv) {\n evts.push(learningEv);\n }\n }\n }\n return evts;\n}\n\nfunction makeOmerEvent(hd: HDate, omerDay: number, options: CalOptions) {\n const omerEv = new OmerEvent(hd, omerDay);\n if (options.candlelighting) {\n const location = options.location!;\n const zmanim = new Zmanim(location, hd.prev(), false);\n const tzeit = zmanim.tzeit(7.0833);\n if (!isNaN(tzeit.getTime())) {\n omerEv.alarm = tzeit;\n }\n }\n return omerEv;\n}\n\nfunction makeErevPesachChametzEvents(\n erevPesachEv: Event,\n options: CalOptions\n): TimedEvent[] {\n const evts: TimedEvent[] = [];\n const location = options.location!;\n const useElevation = Boolean(options.useElevation);\n const hd = erevPesachEv.getDate();\n const zmanim = new Zmanim(location, hd, useElevation);\n const zmanAchilas = zmanim.sofZmanTfilla(); // Gra\n if (isNaN(zmanAchilas.getTime())) {\n return [];\n }\n const zmanAchilasEv = new TimedEvent(\n hd,\n hdesc.SOF_ZMAN_ACHILAT_CHAMETZ,\n 0,\n zmanAchilas,\n location,\n undefined,\n options\n );\n zmanAchilasEv.emoji = '🍞';\n evts.push(zmanAchilasEv);\n // When Erev Pesach falls on Shabbat, chametz cannot be burned on Shabbat,\n // so Biur Chametz is emitted on the Friday before (see makeBiurChametzEvent\n // called from the main calendar loop). Skip it here in that case.\n if (hd.getDay() !== SAT) {\n const biurEv = makeBiurChametzEvent(hd, options);\n if (biurEv) {\n evts.push(biurEv);\n }\n }\n return evts;\n}\n\nfunction makeBiurChametzEvent(\n hd: HDate,\n options: CalOptions\n): TimedEvent | undefined {\n const location = options.location!;\n const useElevation = Boolean(options.useElevation);\n const zmanim = new Zmanim(location, hd, useElevation);\n const time = zmanim.sofZmanBiurChametzGRA();\n if (isNaN(time.getTime())) {\n return undefined;\n }\n const biurChametzEv = new TimedEvent(\n hd,\n hdesc.BIUR_CHAMETZ,\n 0,\n time,\n location,\n undefined,\n options\n );\n biurChametzEv.emoji = '🔥';\n return biurChametzEv;\n}\n"],"names":["hdesc"],"mappings":"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"}
@@ -16,9 +16,14 @@ export declare function makeCandleEvent(ev: Event | undefined, hd: HDate, option
16
16
  * {@link TimedEvent}. Generated by {@link HebrewCalendar.calendar} when
17
17
  * `options.candlelighting` is `true` and `options.location` is provided.
18
18
  *
19
- * - Minor fasts begin at *Alot HaShachar* (16.1° below horizon in the morning)
20
- * and end at tzeit (7.083° by default overridable via `options.fastEndDeg`).
21
- * - Tish'a B'Av begins at sunset on the previous day and ends at tzeit.
19
+ * - Minor fasts (including Yom Kippur Katan) begin at *Alot HaShachar*
20
+ * (16.1° below horizon in the morning). By default they end at tzeit
21
+ * 7.083° (3 medium-sized stars) in the Diaspora, or 15 minutes after
22
+ * sunset in Israel (Rabbi Deblitzky's practice). This can be overridden
23
+ * via `options.fastEndDeg` or `options.fastEndMins`.
24
+ * - Tish'a B'Av begins at sunset on the previous day and always ends at tzeit
25
+ * 6.45° below horizon (Rabbi Yechiel Michel Tucazinsky), regardless of
26
+ * `options.fastEndDeg` / `options.fastEndMins`.
22
27
  * - When a minor fast falls on a Friday, the end time is suppressed
23
28
  * (Shabbat begins before nightfall).
24
29
  */