@hebcal/core 6.4.1 → 6.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +33 -0
  2. package/dist/bundle.js +186 -159
  3. package/dist/bundle.js.map +1 -1
  4. package/dist/bundle.min.js +8 -8
  5. package/dist/bundle.min.js.map +1 -1
  6. package/dist/esm/CalOptions.d.ts +4 -0
  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.d.ts +6 -1
  12. package/dist/esm/ParshaEvent.js +7 -2
  13. package/dist/esm/ParshaEvent.js.map +1 -1
  14. package/dist/esm/TimedEvent.js +1 -1
  15. package/dist/esm/YomKippurKatanEvent.js +1 -1
  16. package/dist/esm/ashkenazi.po.d.ts +1 -0
  17. package/dist/esm/ashkenazi.po.js +2 -2
  18. package/dist/esm/ashkenazi.po.js.map +1 -1
  19. package/dist/esm/calendar.d.ts +1 -0
  20. package/dist/esm/calendar.js +12 -2
  21. package/dist/esm/calendar.js.map +1 -1
  22. package/dist/esm/candles.js +1 -1
  23. package/dist/esm/cities.json.js +5 -0
  24. package/dist/esm/cities.json.js.map +1 -0
  25. package/dist/esm/event.d.ts +2 -0
  26. package/dist/esm/event.js +4 -2
  27. package/dist/esm/event.js.map +1 -1
  28. package/dist/esm/getStartAndEnd.js +1 -1
  29. package/dist/esm/hallel.js +1 -1
  30. package/dist/esm/he-x-NoNikud.po.js +1 -1
  31. package/dist/esm/he.po.d.ts +1 -0
  32. package/dist/esm/he.po.js +2 -2
  33. package/dist/esm/he.po.js.map +1 -1
  34. package/dist/esm/hebcal.js +1 -1
  35. package/dist/esm/holidays.js +18 -1
  36. package/dist/esm/holidays.js.map +1 -1
  37. package/dist/esm/index.d.ts +2 -0
  38. package/dist/esm/index.js +3 -1
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/isAssurBemlacha.js +1 -1
  41. package/dist/esm/isAveilut.d.ts +11 -0
  42. package/dist/esm/isAveilut.js +42 -0
  43. package/dist/esm/isAveilut.js.map +1 -0
  44. package/dist/esm/isFastDay.d.ts +9 -0
  45. package/dist/esm/isFastDay.js +24 -0
  46. package/dist/esm/isFastDay.js.map +1 -0
  47. package/dist/esm/locale.js +1 -1
  48. package/dist/esm/location.js +12 -79
  49. package/dist/esm/location.js.map +1 -1
  50. package/dist/esm/modern.js +1 -1
  51. package/dist/esm/molad.js +1 -1
  52. package/dist/esm/moladBase.js +1 -1
  53. package/dist/esm/moladDate.js +1 -1
  54. package/dist/esm/omer.js +1 -1
  55. package/dist/esm/parshaName.js +1 -1
  56. package/dist/esm/parshaYear.js +1 -1
  57. package/dist/esm/pkgVersion.d.ts +1 -1
  58. package/dist/esm/pkgVersion.js +2 -2
  59. package/dist/esm/pkgVersion.js.map +1 -1
  60. package/dist/esm/reformatTimeStr.js +1 -1
  61. package/dist/esm/sedra.js +1 -1
  62. package/dist/esm/sefira.json.js +1 -1
  63. package/dist/esm/staticHolidays.d.ts +2 -0
  64. package/dist/esm/staticHolidays.js +3 -1
  65. package/dist/esm/staticHolidays.js.map +1 -1
  66. package/dist/esm/tachanun.js +1 -1
  67. package/dist/esm/temporal-shim.js +1 -1
  68. package/dist/esm/zmanim.js +1 -1
  69. package/dist/src/CalOptions.d.ts +4 -0
  70. package/dist/src/ParshaEvent.d.ts +6 -1
  71. package/dist/src/ParshaEvent.js +6 -1
  72. package/dist/src/ashkenazi.po.d.ts +1 -0
  73. package/dist/src/ashkenazi.po.js +1 -1
  74. package/dist/src/calendar.d.ts +1 -0
  75. package/dist/src/calendar.js +11 -1
  76. package/dist/src/cities.json +67 -0
  77. package/dist/src/event.d.ts +2 -0
  78. package/dist/src/event.js +3 -1
  79. package/dist/src/he.po.d.ts +1 -0
  80. package/dist/src/he.po.js +1 -1
  81. package/dist/src/holidays.js +17 -0
  82. package/dist/src/index.d.ts +2 -0
  83. package/dist/src/index.js +2 -0
  84. package/dist/src/isAveilut.d.ts +11 -0
  85. package/dist/src/isAveilut.js +37 -0
  86. package/dist/src/isFastDay.d.ts +9 -0
  87. package/dist/src/isFastDay.js +19 -0
  88. package/dist/src/location.js +11 -78
  89. package/dist/src/pkgVersion.d.ts +1 -1
  90. package/dist/src/pkgVersion.js +1 -1
  91. package/dist/src/staticHolidays.d.ts +2 -0
  92. package/dist/src/staticHolidays.js +2 -0
  93. package/package.json +5 -5
@@ -49,6 +49,7 @@ import { holidayDesc as hdesc } from './staticHolidays';
49
49
  * * Shabbat Mevarchim HaChodesh on Saturday before Rosh Chodesh (`options.shabbatMevarchim`)
50
50
  * * Molad announcement on Saturday before Rosh Chodesh (`options.molad`)
51
51
  * * Yom Kippur Katan (`options.yomKippurKatan`)
52
+ * * BeHaB fast days after Pesach and Sukkot (`options.behab`)
52
53
  * * Yizkor (`options.yizkor`)
53
54
  *
54
55
  * Daily Study of texts are supported by the
@@ -297,6 +298,7 @@ const EREV = flags.EREV;
297
298
  const CHOL_HAMOED = flags.CHOL_HAMOED;
298
299
  const YOM_KIPPUR_KATAN = flags.YOM_KIPPUR_KATAN;
299
300
  const YIZKOR = flags.YIZKOR;
301
+ const BEHAB = flags.BEHAB;
300
302
  const unrecognizedAlreadyWarned = new Set();
301
303
  const RECOGNIZED_OPTIONS = {
302
304
  location: 1,
@@ -327,6 +329,7 @@ const RECOGNIZED_OPTIONS = {
327
329
  addHebrewDatesForEvents: 1,
328
330
  mask: 1,
329
331
  yomKippurKatan: 1,
332
+ behab: 1,
330
333
  hour12: 1,
331
334
  dailyLearning: 1,
332
335
  useElevation: 1,
@@ -499,6 +502,9 @@ function getMaskFromOptions(options) {
499
502
  if (options.yomKippurKatan) {
500
503
  mask |= YOM_KIPPUR_KATAN;
501
504
  }
505
+ if (options.behab) {
506
+ mask |= BEHAB;
507
+ }
502
508
  if (options.yizkor) {
503
509
  mask |= YIZKOR;
504
510
  }
@@ -557,6 +563,8 @@ function setOptionsFromMask(options) {
557
563
  options.shabbatMevarchim = true;
558
564
  if (m & YOM_KIPPUR_KATAN)
559
565
  options.yomKippurKatan = true;
566
+ if (m & BEHAB)
567
+ options.behab = true;
560
568
  if (m & YIZKOR)
561
569
  options.yizkor = true;
562
570
  return m;
@@ -573,6 +581,7 @@ function appendHolidayAndRelated(candlesEv, events, ev, options, isFriday, isSat
573
581
  }
574
582
  const eFlags = ev.getFlags();
575
583
  if ((!options.yomKippurKatan && eFlags & YOM_KIPPUR_KATAN) ||
584
+ (!options.behab && eFlags & BEHAB) ||
576
585
  (options.noModern && eFlags & MODERN_HOLIDAY)) {
577
586
  return candlesEv; // bail out early
578
587
  }
@@ -613,7 +622,8 @@ function appendHolidayAndRelated(candlesEv, events, ev, options, isFriday, isSat
613
622
  }
614
623
  }
615
624
  if (!options.noHolidays ||
616
- (options.yomKippurKatan && eFlags & YOM_KIPPUR_KATAN)) {
625
+ (options.yomKippurKatan && eFlags & YOM_KIPPUR_KATAN) ||
626
+ (options.behab && eFlags & BEHAB)) {
617
627
  events.push(ev); // the original event itself
618
628
  }
619
629
  }
@@ -0,0 +1,67 @@
1
+ [
2
+ "Ashdod|IL|31.79213|34.64966|Asia/Jerusalem|27",
3
+ "Atlanta|US|33.749|-84.38798|America/New_York|336",
4
+ "Austin|US|30.26715|-97.74306|America/Chicago|165",
5
+ "Baghdad|IQ|33.34058|44.40088|Asia/Baghdad|41",
6
+ "Beer Sheva|IL|31.25181|34.7913|Asia/Jerusalem|285",
7
+ "Berlin|DE|52.52437|13.41053|Europe/Berlin|43",
8
+ "Baltimore|US|39.29038|-76.61219|America/New_York|35",
9
+ "Bogota|CO|4.60971|-74.08175|America/Bogota|2582",
10
+ "Boston|US|42.35843|-71.05977|America/New_York|38",
11
+ "Budapest|HU|47.49801|19.03991|Europe/Budapest|104",
12
+ "Buenos Aires|AR|-34.61315|-58.37723|America/Argentina/Buenos_Aires|31",
13
+ "Buffalo|US|42.88645|-78.87837|America/New_York|191",
14
+ "Chicago|US|41.85003|-87.65005|America/Chicago|180",
15
+ "Cincinnati|US|39.162|-84.45689|America/New_York|267",
16
+ "Cleveland|US|41.4995|-81.69541|America/New_York|204",
17
+ "Dallas|US|32.78306|-96.80667|America/Chicago|139",
18
+ "Denver|US|39.73915|-104.9847|America/Denver|1636",
19
+ "Detroit|US|42.33143|-83.04575|America/Detroit|192",
20
+ "Eilat|IL|29.55805|34.94821|Asia/Jerusalem|63",
21
+ "Gibraltar|GI|36.14474|-5.35257|Europe/Gibraltar|11",
22
+ "Haifa|IL|32.81841|34.9885|Asia/Jerusalem|40",
23
+ "Hawaii|US|21.30694|-157.85833|Pacific/Honolulu|18",
24
+ "Helsinki|FI|60.16952|24.93545|Europe/Helsinki|26",
25
+ "Houston|US|29.76328|-95.36327|America/Chicago|30",
26
+ "Jerusalem|IL|31.76904|35.21633|Asia/Jerusalem|786",
27
+ "Johannesburg|ZA|-26.20227|28.04363|Africa/Johannesburg|1767",
28
+ "Kiev|UA|50.45466|30.5238|Europe/Kiev|187",
29
+ "La Paz|BO|-16.5|-68.15|America/La_Paz|3782",
30
+ "Livingston|US|40.79593|-74.31487|America/New_York|98",
31
+ "Las Vegas|US|36.17497|-115.13722|America/Los_Angeles|613",
32
+ "London|GB|51.50853|-0.12574|Europe/London|25",
33
+ "Los Angeles|US|34.05223|-118.24368|America/Los_Angeles|96",
34
+ "Marseilles|FR|43.29695|5.38107|Europe/Paris|28",
35
+ "Miami|US|25.77427|-80.19366|America/New_York|25",
36
+ "Minneapolis|US|44.97997|-93.26384|America/Chicago|262",
37
+ "Melbourne|AU|-37.814|144.96332|Australia/Melbourne|25",
38
+ "Mexico City|MX|19.42847|-99.12766|America/Mexico_City|2240",
39
+ "Montreal|CA|45.50884|-73.58781|America/Toronto|216",
40
+ "Moscow|RU|55.75222|37.61556|Europe/Moscow|144",
41
+ "New York|US|40.71427|-74.00597|America/New_York|57",
42
+ "Omaha|US|41.25861|-95.93779|America/Chicago|315",
43
+ "Ottawa|CA|45.41117|-75.69812|America/Toronto|71",
44
+ "Panama City|PA|8.9936|-79.51973|America/Panama|17",
45
+ "Paris|FR|48.85341|2.3488|Europe/Paris|42",
46
+ "Pawtucket|US|41.87871|-71.38256|America/New_York|0",
47
+ "Petach Tikvah|IL|32.08707|34.88747|Asia/Jerusalem|54",
48
+ "Philadelphia|US|39.95233|-75.16379|America/New_York|8",
49
+ "Phoenix|US|33.44838|-112.07404|America/Phoenix|366",
50
+ "Pittsburgh|US|40.44062|-79.99589|America/New_York|239",
51
+ "Providence|US|41.82399|-71.41283|America/New_York|0",
52
+ "Portland|US|45.52345|-122.67621|America/Los_Angeles|15",
53
+ "Saint Louis|US|38.62727|-90.19789|America/Chicago|149",
54
+ "Saint Petersburg|RU|59.93863|30.31413|Europe/Moscow|11",
55
+ "San Diego|US|32.71533|-117.15726|America/Los_Angeles|20",
56
+ "San Francisco|US|37.77493|-122.41942|America/Los_Angeles|28",
57
+ "Sao Paulo|BR|-23.5475|-46.63611|America/Sao_Paulo|769",
58
+ "Seattle|US|47.60621|-122.33207|America/Los_Angeles|56",
59
+ "Sydney|AU|-33.86785|151.20732|Australia/Sydney|58",
60
+ "Tel Aviv|IL|32.08088|34.78057|Asia/Jerusalem|15",
61
+ "Tiberias|IL|32.79221|35.53124|Asia/Jerusalem|0",
62
+ "Toronto|CA|43.70011|-79.4163|America/Toronto|175",
63
+ "Vancouver|CA|49.24966|-123.11934|America/Vancouver|70",
64
+ "White Plains|US|41.03399|-73.76291|America/New_York|82",
65
+ "Washington DC|US|38.89511|-77.03637|America/New_York|6",
66
+ "Worcester|US|42.26259|-71.80229|America/New_York|164"
67
+ ]
@@ -63,6 +63,8 @@ export declare const flags: {
63
63
  readonly DAILY_LEARNING: 67108864;
64
64
  /** Yizkor */
65
65
  readonly YIZKOR: 134217728;
66
+ /** BeHaB fast days on Monday, Thursday and Monday after Pesach and Sukkot */
67
+ readonly BEHAB: 268435456;
66
68
  };
67
69
  /**
68
70
  * Represents an Event with a title, date, and flags.
package/dist/src/event.js CHANGED
@@ -63,10 +63,12 @@ export const flags = {
63
63
  DAILY_LEARNING: 0x4000000,
64
64
  /** Yizkor */
65
65
  YIZKOR: 0x8000000,
66
+ /** BeHaB fast days on Monday, Thursday and Monday after Pesach and Sukkot */
67
+ BEHAB: 0x10000000,
66
68
  };
67
69
  const flagToCategory = [
68
70
  [flags.MAJOR_FAST, 'holiday', 'major', 'fast'],
69
- [flags.CHANUKAH_CANDLES, 'holiday', 'major'],
71
+ [flags.CHANUKAH_CANDLES, 'holiday', 'minor'],
70
72
  [flags.HEBREW_DATE, 'hebdate'],
71
73
  [flags.MINOR_FAST, 'holiday', 'fast'],
72
74
  [flags.MINOR_HOLIDAY, 'holiday', 'minor'],
@@ -132,6 +132,7 @@ declare const _default: {
132
132
  "Sukkot VII (Hoshana Raba)": string[];
133
133
  "Sukkot Shabbat Chol ha-Moed": string[];
134
134
  "Ta'anit Bechorot": string[];
135
+ "Ta'anit BeHaB": string[];
135
136
  "Ta'anit Esther": string[];
136
137
  "Tish'a B'Av": string[];
137
138
  "Tu B'Av": string[];
package/dist/src/he.po.js CHANGED
@@ -1 +1 @@
1
- export default { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "he_IL" }, "contexts": { "": { "Shabbat": ["שַׁבָּת"], "Parashat": ["פָּרָשַׁת"], "Achrei Mot": ["אַחֲרֵי מוֹת"], "Balak": ["בָּלָק"], "Bamidbar": ["בְּמִדְבַּר"], "Bechukotai": ["בְּחֻקֹּתַי"], "Beha'alotcha": ["בְּהַעֲלֹתְךָ"], "Behar": ["בְּהַר"], "Bereshit": ["בְּרֵאשִׁית"], "Beshalach": ["בְּשַׁלַּח"], "Bo": ["בֹּא"], "Chayei Sara": ["חַיֵּי שָֹרָה"], "Chukat": ["חֻקַּת"], "Devarim": ["דְּבָרִים"], "Eikev": ["עֵקֶב"], "Emor": ["אֱמוֹר"], "Ha'azinu": ["הַאֲזִינוּ"], "Kedoshim": ["קְדֹשִׁים"], "Ki Tavo": ["כִּי־תָבוֹא"], "Ki Teitzei": ["כִּי־תֵצֵא"], "Ki Tisa": ["כִּי תִשָּׂא"], "Korach": ["קֹרַח"], "Lech-Lecha": ["לֶךְ־לְךָ"], "Masei": ["מַסְעֵי"], "Matot": ["מַטּוֹת"], "Metzora": ["מְצֹרָע"], "Miketz": ["מִקֵּץ"], "Mishpatim": ["מִשְׁפָּטִים"], "Nasso": ["נָשׂא"], "Nitzavim": ["נִצָּבִים"], "Noach": ["נֹחַ"], "Pekudei": ["פְקוּדֵי"], "Pinchas": ["פִּינְחָס"], "Re'eh": ["רְאֵה"], "Sh'lach": ["שְׁלַח־לְךָ"], "Shemot": ["שְׁמוֹת"], "Shmini": ["שְּׁמִינִי"], "Shoftim": ["שׁוֹפְטִים"], "Tazria": ["תַזְרִיעַ"], "Terumah": ["תְּרוּמָה"], "Tetzaveh": ["תְּצַוֶּה"], "Toldot": ["תּוֹלְדוֹת"], "Tzav": ["צַו"], "Vaera": ["וָאֵרָא"], "Vaetchanan": ["וָאֶתְחַנַּן"], "Vayakhel": ["וַיַּקְהֵל"], "Vayechi": ["וַיְחִי"], "Vayeilech": ["וַיֵּלֶךְ"], "Vayera": ["וַיֵּרָא"], "Vayeshev": ["וַיֵּשֶׁב"], "Vayetzei": ["וַיֵּצֵא"], "Vayigash": ["וַיִּגַּשׁ"], "Vayikra": ["וַיִּקְרָא"], "Vayishlach": ["וַיִּשְׁלַח"], "Vezot Haberakhah": ["וְזֹאת הַבְּרָכָה"], "Yitro": ["יִתְרוֹ"], "Asara B'Tevet": ["עֲשָׂרָה בְּטֵבֵת"], "Candle lighting": ["הַדְלָקַת נֵרוֹת"], "Chanukah": ["חֲנוּכָּה"], "Chanukah: 1 Candle": ["חֲנוּכָּה: א׳ נֵר"], "Chanukah: 2 Candles": ["חֲנוּכָּה: ב׳ נֵרוֹת"], "Chanukah: 3 Candles": ["חֲנוּכָּה: ג׳ נֵרוֹת"], "Chanukah: 4 Candles": ["חֲנוּכָּה: ד׳ נֵרוֹת"], "Chanukah: 5 Candles": ["חֲנוּכָּה: ה׳ נֵרוֹת"], "Chanukah: 6 Candles": ["חֲנוּכָּה: ו׳ נֵרוֹת"], "Chanukah: 7 Candles": ["חֲנוּכָּה: ז׳ נֵרוֹת"], "Chanukah: 8 Candles": ["חֲנוּכָּה: ח׳ נֵרוֹת"], "Chanukah: 8th Day": ["חֲנוּכָּה: יוֹם ח׳"], "Days of the Omer": ["סְפִירַת הָעוֹמֶר"], "Omer": ["עוֹמֶר"], "day of the Omer": ["בָּעוֹמֶר"], "Erev Pesach": ["עֶרֶב פֶּסַח"], "Erev Purim": ["עֶרֶב פּוּרִים"], "Erev Rosh Hashana": ["עֶרֶב רֹאשׁ הַשָּׁנָה"], "Erev Shavuot": ["עֶרֶב שָׁבוּעוֹת"], "Erev Simchat Torah": ["עֶרֶב שִׂמְחַת תּוֹרָה"], "Erev Sukkot": ["עֶרֶב סֻכּוֹת"], "Erev Tish'a B'Av": ["עֶרֶב תִּשְׁעָה בְּאָב"], "Erev Yom Kippur": ["עֶרֶב יוֹם כִּפּוּר"], "Havdalah": ["הַבְדָּלָה"], "Lag BaOmer": ["ל״ג בָּעוֹמֶר"], "Leil Selichot": ["סְלִיחוֹת"], "Pesach": ["פֶּסַח"], "Pesach I": ["פֶּסַח א׳"], "Pesach II": ["פֶּסַח ב׳"], "Pesach II (CH''M)": ["פֶּסַח ב׳ (חוה״מ)"], "Pesach III (CH''M)": ["פֶּסַח ג׳ (חוה״מ)"], "Pesach IV (CH''M)": ["פֶּסַח ד׳ (חוה״מ)"], "Pesach Sheni": ["פֶּסַח שֵׁנִי"], "Pesach V (CH''M)": ["פֶּסַח ה׳ (חוה״מ)"], "Pesach VI (CH''M)": ["פֶּסַח ו׳ (חוה״מ)"], "Pesach VII": ["פֶּסַח ז׳"], "Pesach VIII": ["פֶּסַח ח׳"], "Pesach Shabbat Chol ha-Moed": ["פֶּסַח שַׁבָּת חֹל הַמּוֹעֵד"], "Purim": ["פּוּרִים"], "Purim Katan": ["פּוּרִים קָטָן"], "Rosh Chodesh %s": ["רֹאשׁ חוֹדֶשׁ %s"], "Rosh Chodesh": ["רֹאשׁ חוֹדֶשׁ"], "Rosh Hashana": ["רֹאשׁ הַשָּׁנָה"], "Rosh Hashana I": ["רֹאשׁ הַשָּׁנָה א׳"], "Rosh Hashana II": ["רֹאשׁ הַשָּׁנָה ב׳"], "Shabbat Chazon": ["שַׁבַּת חֲזוֹן"], "Shabbat HaChodesh": ["שַׁבַּת הַחֹדֶשׁ"], "Shabbat HaGadol": ["שַׁבַּת הַגָּדוֹל"], "Shabbat Nachamu": ["שַׁבַּת נַחֲמוּ"], "Shabbat Parah": ["שַׁבַּת פָּרָה"], "Shabbat Shekalim": ["שַׁבַּת שְׁקָלִים"], "Shabbat Shuva": ["שַׁבַּת שׁוּבָה"], "Shabbat Zachor": ["שַׁבַּת זָכוֹר"], "Shavuot": ["שָׁבוּעוֹת"], "Shavuot I": ["שָׁבוּעוֹת א׳"], "Shavuot II": ["שָׁבוּעוֹת ב׳"], "Shmini Atzeret": ["שְׁמִינִי עֲצֶרֶת"], "Shushan Purim": ["שׁוּשָׁן פּוּרִים"], "Sigd": ["חַג הַסִּיגְד"], "Simchat Torah": ["שִׂמְחַת תּוֹרָה"], "Sukkot": ["סֻכּוֹת"], "Sukkot I": ["סֻכּוֹת א׳"], "Sukkot II": ["סֻכּוֹת ב׳"], "Sukkot II (CH''M)": ["סֻכּוֹת ב׳ (חוה״מ)"], "Sukkot III (CH''M)": ["סֻכּוֹת ג׳ (חוה״מ)"], "Sukkot IV (CH''M)": ["סֻכּוֹת ד׳ (חוה״מ)"], "Sukkot V (CH''M)": ["סֻכּוֹת ה׳ (חוה״מ)"], "Sukkot VI (CH''M)": ["סֻכּוֹת ו׳ (חוה״מ)"], "Sukkot VII (Hoshana Raba)": ["סֻכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"], "Sukkot Shabbat Chol ha-Moed": ["סֻכּוֹת שַׁבָּת חֹל הַמּוֹעֵד"], "Ta'anit Bechorot": ["תַּעֲנִית בְּכוֹרוֹת"], "Ta'anit Esther": ["תַּעֲנִית אֶסְתֵּר"], "Tish'a B'Av": ["תִּשְׁעָה בְּאָב"], "Tu B'Av": ["ט״וּ בְּאָב"], "Tu BiShvat": ["ט״וּ בִּשְׁבָט"], "Tu B'Shvat": ["ט״וּ בִּשְׁבָט"], "Tzom Gedaliah": ["צוֹם גְּדַלְיָה"], "Tzom Tammuz": ["צוֹם י״ז בְּתַמּוּז"], "Yom HaAtzma'ut": ["יוֹם הָעַצְמָאוּת"], "Yom HaShoah": ["יוֹם הַשּׁוֹאָה"], "Yom HaZikaron": ["יוֹם הַזִּכָּרוֹן"], "Yom Kippur": ["יוֹם כִּפּוּר"], "Yom Yerushalayim": ["יוֹם יְרוּשָׁלַיִם"], "Yom HaAliyah": ["יוֹם הַעֲלִיָּה"], "Yom HaAliyah School Observance": ["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"], "Rosh Chodesh Adar": ["רֹאשׁ חוֹדֶשׁ אֲדָר"], "Rosh Chodesh Adar I": ["רֹאשׁ חוֹדֶשׁ אֲדָר א׳"], "Rosh Chodesh Adar II": ["רֹאשׁ חוֹדֶשׁ אֲדָר ב׳"], "Rosh Chodesh Av": ["רֹאשׁ חוֹדֶשׁ אָב"], "Rosh Chodesh Cheshvan": ["רֹאשׁ חוֹדֶשׁ חֶשְׁוָן"], "Rosh Chodesh Elul": ["רֹאשׁ חוֹדֶשׁ אֱלוּל"], "Rosh Chodesh Iyyar": ["רֹאשׁ חוֹדֶשׁ אִיָּיר"], "Rosh Chodesh Kislev": ["רֹאשׁ חוֹדֶשׁ כִּסְלֵו"], "Rosh Chodesh Nisan": ["רֹאשׁ חוֹדֶשׁ נִיסָן"], "Rosh Chodesh Sh'vat": ["רֹאשׁ חוֹדֶשׁ שְׁבָט"], "Rosh Chodesh Sivan": ["רֹאשׁ חוֹדֶשׁ סִיוָן"], "Rosh Chodesh Tamuz": ["רֹאשׁ חוֹדֶשׁ תַּמּוּז"], "Rosh Chodesh Tammuz": ["רֹאשׁ חוֹדֶשׁ תַּמּוּז"], "Rosh Chodesh Tevet": ["רֹאשׁ חוֹדֶשׁ טֵבֵת"], "min": ["דַּקּוֹת"], "Fast begins": ["תְּחִילַּת הַצוֹם"], "Fast ends": ["סִיּוּם הַצוֹם"], "Rosh Hashana LaBehemot": ["רֹאשׁ הַשָּׁנָה לְמַעְשַׂר בְּהֵמָה"], "Tish'a B'Av (observed)": ["(תִּשְׁעָה בְּאָב (נִדְחָה"], "Shabbat Mevarchim Chodesh": ["שַׁבַּת מְבָרְכִים חוֹדֶשׁ"], "Shabbat Shirah": ["שַׁבַּת שִׁירָה"], "Lovingkindness": ["חֶסֶד"], "Might": ["גְּבוּרָה"], "Beauty": ["תִּפְאֶרֶת"], "Eternity": ["נֶּצַח"], "Splendor": ["הוֹד"], "Foundation": ["יְּסוֹד"], "Majesty": ["מַּלְכוּת"], "day": ["יוֹם"], "Yom Kippur Katan": ["יוֹם כִּפּוּר קָטָן"], "Yizkor": ["יִזְכּוֹר"], "Family Day": ["יוֹם הַמִּשׁפָּחָה"], "Yitzhak Rabin Memorial Day": ["יוֹם הַזִּכָּרוֹן לְיִצְחָק רַבִּין"], "Jabotinsky Day": ["יוֹם זַ׳בּוֹטִינְסְקִי"], "Herzl Day": ["יוֹם הֶרְצְל"], "Ben-Gurion Day": ["יוֹם בֶּן־גּוּרִיּוֹן"], "Hebrew Language Day": ["יוֹם הַשָׂפָה הַעִברִית"], "Birkat Hachamah": ["בִּרְכַּת הַחַמָּה"], "Birkat HaChamah": ["בִּרְכַּת הַחַמָּה"], "Shushan Purim Katan": ["שׁוּשָׁן פּוּרִים קָטָן"], "Purim Meshulash": ["פּוּרִים מְשׁוּלָּשׁ"], "Chag HaBanot": ["חַג הַבָּנוֹת"], "Molad": ["מוֹלָד הָלְּבָנָה"], "chalakim": ["חֲלָקִים"], "Alot HaShachar": ["עֲלוֹת הַשַּׁחַר"], "Misheyakir": ["מִשֶּׁיַּכִּיר"], "Misheyakir Machmir": ["מִשֶּׁיַּכִּיר מַחְמִיר"], "Sunrise": ["נֵץ הַחַמָּה"], "Kriat Shema, sof zeman": ["סוֹף זְמַן קְרִיאַת שְׁמַע"], "Tefilah, sof zeman": ["סוֹף זְמַן תְּפִלָּה"], "Kriat Shema, sof zeman (MGA)": ["סוֹף זְמַן קְרִיאַת שְׁמַע (מג״א)"], "Kriat Shema, sof zeman (GRA)": ["סוֹף זְמַן קְרִיאַת שְׁמַע (גְּרָ״א)"], "Tefilah, sof zeman (MGA)": ["סוֹף זְמַן תְּפִלָּה (מג״א)"], "Tefilah, sof zeman (GRA)": ["סוֹף זְמַן תְּפִלָּה (גְּרָ״א)"], "Chatzot HaLailah": ["חֲצוֹת הַלַּיְלָה"], "Chatzot HaYom": ["חֲצוֹת הַיּוֹם"], "Chatzot hayom": ["חֲצוֹת הַיּוֹם"], "Mincha Gedolah": ["מִנְחָה גְּדוֹלָה"], "Mincha Ketanah": ["מִנְחָה קְטַנָּה"], "Plag HaMincha": ["פְּלַג הַמִּנְחָה"], "Sunset": ["שְׁקִיעַת הַחַמָּה"], "Bein HaShemashot": ["בֵּין הַשְּׁמָשׁוֹת"], "Tzeit HaKochavim": ["צֵאת הַכּוֹכָבִים"], "Biur Chametz": ["בִּעוּר חָמֵץ"], "Finish eating chametz": ["סוֹף זְמַן אֲכִילַת חָמֵץ"] } } };
1
+ export default { "headers": { "plural-forms": "nplurals=2; plural=(n > 1);", "language": "he_IL" }, "contexts": { "": { "Shabbat": ["שַׁבָּת"], "Parashat": ["פָּרָשַׁת"], "Achrei Mot": ["אַחֲרֵי מוֹת"], "Balak": ["בָּלָק"], "Bamidbar": ["בְּמִדְבַּר"], "Bechukotai": ["בְּחֻקֹּתַי"], "Beha'alotcha": ["בְּהַעֲלֹתְךָ"], "Behar": ["בְּהַר"], "Bereshit": ["בְּרֵאשִׁית"], "Beshalach": ["בְּשַׁלַּח"], "Bo": ["בֹּא"], "Chayei Sara": ["חַיֵּי שָֹרָה"], "Chukat": ["חֻקַּת"], "Devarim": ["דְּבָרִים"], "Eikev": ["עֵקֶב"], "Emor": ["אֱמוֹר"], "Ha'azinu": ["הַאֲזִינוּ"], "Kedoshim": ["קְדֹשִׁים"], "Ki Tavo": ["כִּי־תָבוֹא"], "Ki Teitzei": ["כִּי־תֵצֵא"], "Ki Tisa": ["כִּי תִשָּׂא"], "Korach": ["קֹרַח"], "Lech-Lecha": ["לֶךְ־לְךָ"], "Masei": ["מַסְעֵי"], "Matot": ["מַטּוֹת"], "Metzora": ["מְצֹרָע"], "Miketz": ["מִקֵּץ"], "Mishpatim": ["מִשְׁפָּטִים"], "Nasso": ["נָשׂא"], "Nitzavim": ["נִצָּבִים"], "Noach": ["נֹחַ"], "Pekudei": ["פְקוּדֵי"], "Pinchas": ["פִּינְחָס"], "Re'eh": ["רְאֵה"], "Sh'lach": ["שְׁלַח־לְךָ"], "Shemot": ["שְׁמוֹת"], "Shmini": ["שְּׁמִינִי"], "Shoftim": ["שׁוֹפְטִים"], "Tazria": ["תַזְרִיעַ"], "Terumah": ["תְּרוּמָה"], "Tetzaveh": ["תְּצַוֶּה"], "Toldot": ["תּוֹלְדוֹת"], "Tzav": ["צַו"], "Vaera": ["וָאֵרָא"], "Vaetchanan": ["וָאֶתְחַנַּן"], "Vayakhel": ["וַיַּקְהֵל"], "Vayechi": ["וַיְחִי"], "Vayeilech": ["וַיֵּלֶךְ"], "Vayera": ["וַיֵּרָא"], "Vayeshev": ["וַיֵּשֶׁב"], "Vayetzei": ["וַיֵּצֵא"], "Vayigash": ["וַיִּגַּשׁ"], "Vayikra": ["וַיִּקְרָא"], "Vayishlach": ["וַיִּשְׁלַח"], "Vezot Haberakhah": ["וְזֹאת הַבְּרָכָה"], "Yitro": ["יִתְרוֹ"], "Asara B'Tevet": ["עֲשָׂרָה בְּטֵבֵת"], "Candle lighting": ["הַדְלָקַת נֵרוֹת"], "Chanukah": ["חֲנוּכָּה"], "Chanukah: 1 Candle": ["חֲנוּכָּה: א׳ נֵר"], "Chanukah: 2 Candles": ["חֲנוּכָּה: ב׳ נֵרוֹת"], "Chanukah: 3 Candles": ["חֲנוּכָּה: ג׳ נֵרוֹת"], "Chanukah: 4 Candles": ["חֲנוּכָּה: ד׳ נֵרוֹת"], "Chanukah: 5 Candles": ["חֲנוּכָּה: ה׳ נֵרוֹת"], "Chanukah: 6 Candles": ["חֲנוּכָּה: ו׳ נֵרוֹת"], "Chanukah: 7 Candles": ["חֲנוּכָּה: ז׳ נֵרוֹת"], "Chanukah: 8 Candles": ["חֲנוּכָּה: ח׳ נֵרוֹת"], "Chanukah: 8th Day": ["חֲנוּכָּה: יוֹם ח׳"], "Days of the Omer": ["סְפִירַת הָעוֹמֶר"], "Omer": ["עוֹמֶר"], "day of the Omer": ["בָּעוֹמֶר"], "Erev Pesach": ["עֶרֶב פֶּסַח"], "Erev Purim": ["עֶרֶב פּוּרִים"], "Erev Rosh Hashana": ["עֶרֶב רֹאשׁ הַשָּׁנָה"], "Erev Shavuot": ["עֶרֶב שָׁבוּעוֹת"], "Erev Simchat Torah": ["עֶרֶב שִׂמְחַת תּוֹרָה"], "Erev Sukkot": ["עֶרֶב סֻכּוֹת"], "Erev Tish'a B'Av": ["עֶרֶב תִּשְׁעָה בְּאָב"], "Erev Yom Kippur": ["עֶרֶב יוֹם כִּפּוּר"], "Havdalah": ["הַבְדָּלָה"], "Lag BaOmer": ["ל״ג בָּעוֹמֶר"], "Leil Selichot": ["סְלִיחוֹת"], "Pesach": ["פֶּסַח"], "Pesach I": ["פֶּסַח א׳"], "Pesach II": ["פֶּסַח ב׳"], "Pesach II (CH''M)": ["פֶּסַח ב׳ (חוה״מ)"], "Pesach III (CH''M)": ["פֶּסַח ג׳ (חוה״מ)"], "Pesach IV (CH''M)": ["פֶּסַח ד׳ (חוה״מ)"], "Pesach Sheni": ["פֶּסַח שֵׁנִי"], "Pesach V (CH''M)": ["פֶּסַח ה׳ (חוה״מ)"], "Pesach VI (CH''M)": ["פֶּסַח ו׳ (חוה״מ)"], "Pesach VII": ["פֶּסַח ז׳"], "Pesach VIII": ["פֶּסַח ח׳"], "Pesach Shabbat Chol ha-Moed": ["פֶּסַח שַׁבָּת חֹל הַמּוֹעֵד"], "Purim": ["פּוּרִים"], "Purim Katan": ["פּוּרִים קָטָן"], "Rosh Chodesh %s": ["רֹאשׁ חוֹדֶשׁ %s"], "Rosh Chodesh": ["רֹאשׁ חוֹדֶשׁ"], "Rosh Hashana": ["רֹאשׁ הַשָּׁנָה"], "Rosh Hashana I": ["רֹאשׁ הַשָּׁנָה א׳"], "Rosh Hashana II": ["רֹאשׁ הַשָּׁנָה ב׳"], "Shabbat Chazon": ["שַׁבַּת חֲזוֹן"], "Shabbat HaChodesh": ["שַׁבַּת הַחֹדֶשׁ"], "Shabbat HaGadol": ["שַׁבַּת הַגָּדוֹל"], "Shabbat Nachamu": ["שַׁבַּת נַחֲמוּ"], "Shabbat Parah": ["שַׁבַּת פָּרָה"], "Shabbat Shekalim": ["שַׁבַּת שְׁקָלִים"], "Shabbat Shuva": ["שַׁבַּת שׁוּבָה"], "Shabbat Zachor": ["שַׁבַּת זָכוֹר"], "Shavuot": ["שָׁבוּעוֹת"], "Shavuot I": ["שָׁבוּעוֹת א׳"], "Shavuot II": ["שָׁבוּעוֹת ב׳"], "Shmini Atzeret": ["שְׁמִינִי עֲצֶרֶת"], "Shushan Purim": ["שׁוּשָׁן פּוּרִים"], "Sigd": ["חַג הַסִּיגְד"], "Simchat Torah": ["שִׂמְחַת תּוֹרָה"], "Sukkot": ["סֻכּוֹת"], "Sukkot I": ["סֻכּוֹת א׳"], "Sukkot II": ["סֻכּוֹת ב׳"], "Sukkot II (CH''M)": ["סֻכּוֹת ב׳ (חוה״מ)"], "Sukkot III (CH''M)": ["סֻכּוֹת ג׳ (חוה״מ)"], "Sukkot IV (CH''M)": ["סֻכּוֹת ד׳ (חוה״מ)"], "Sukkot V (CH''M)": ["סֻכּוֹת ה׳ (חוה״מ)"], "Sukkot VI (CH''M)": ["סֻכּוֹת ו׳ (חוה״מ)"], "Sukkot VII (Hoshana Raba)": ["סֻכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"], "Sukkot Shabbat Chol ha-Moed": ["סֻכּוֹת שַׁבָּת חֹל הַמּוֹעֵד"], "Ta'anit Bechorot": ["תַּעֲנִית בְּכוֹרוֹת"], "Ta'anit BeHaB": ["תַּעֲנִית בה״ב"], "Ta'anit Esther": ["תַּעֲנִית אֶסְתֵּר"], "Tish'a B'Av": ["תִּשְׁעָה בְּאָב"], "Tu B'Av": ["ט״וּ בְּאָב"], "Tu BiShvat": ["ט״וּ בִּשְׁבָט"], "Tu B'Shvat": ["ט״וּ בִּשְׁבָט"], "Tzom Gedaliah": ["צוֹם גְּדַלְיָה"], "Tzom Tammuz": ["צוֹם י״ז בְּתַמּוּז"], "Yom HaAtzma'ut": ["יוֹם הָעַצְמָאוּת"], "Yom HaShoah": ["יוֹם הַשּׁוֹאָה"], "Yom HaZikaron": ["יוֹם הַזִּכָּרוֹן"], "Yom Kippur": ["יוֹם כִּפּוּר"], "Yom Yerushalayim": ["יוֹם יְרוּשָׁלַיִם"], "Yom HaAliyah": ["יוֹם הַעֲלִיָּה"], "Yom HaAliyah School Observance": ["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"], "Rosh Chodesh Adar": ["רֹאשׁ חוֹדֶשׁ אֲדָר"], "Rosh Chodesh Adar I": ["רֹאשׁ חוֹדֶשׁ אֲדָר א׳"], "Rosh Chodesh Adar II": ["רֹאשׁ חוֹדֶשׁ אֲדָר ב׳"], "Rosh Chodesh Av": ["רֹאשׁ חוֹדֶשׁ אָב"], "Rosh Chodesh Cheshvan": ["רֹאשׁ חוֹדֶשׁ חֶשְׁוָן"], "Rosh Chodesh Elul": ["רֹאשׁ חוֹדֶשׁ אֱלוּל"], "Rosh Chodesh Iyyar": ["רֹאשׁ חוֹדֶשׁ אִיָּיר"], "Rosh Chodesh Kislev": ["רֹאשׁ חוֹדֶשׁ כִּסְלֵו"], "Rosh Chodesh Nisan": ["רֹאשׁ חוֹדֶשׁ נִיסָן"], "Rosh Chodesh Sh'vat": ["רֹאשׁ חוֹדֶשׁ שְׁבָט"], "Rosh Chodesh Sivan": ["רֹאשׁ חוֹדֶשׁ סִיוָן"], "Rosh Chodesh Tamuz": ["רֹאשׁ חוֹדֶשׁ תַּמּוּז"], "Rosh Chodesh Tammuz": ["רֹאשׁ חוֹדֶשׁ תַּמּוּז"], "Rosh Chodesh Tevet": ["רֹאשׁ חוֹדֶשׁ טֵבֵת"], "min": ["דַּקּוֹת"], "Fast begins": ["תְּחִילַּת הַצוֹם"], "Fast ends": ["סִיּוּם הַצוֹם"], "Rosh Hashana LaBehemot": ["רֹאשׁ הַשָּׁנָה לְמַעְשַׂר בְּהֵמָה"], "Tish'a B'Av (observed)": ["(תִּשְׁעָה בְּאָב (נִדְחָה"], "Shabbat Mevarchim Chodesh": ["שַׁבַּת מְבָרְכִים חוֹדֶשׁ"], "Shabbat Shirah": ["שַׁבַּת שִׁירָה"], "Lovingkindness": ["חֶסֶד"], "Might": ["גְּבוּרָה"], "Beauty": ["תִּפְאֶרֶת"], "Eternity": ["נֶּצַח"], "Splendor": ["הוֹד"], "Foundation": ["יְּסוֹד"], "Majesty": ["מַּלְכוּת"], "day": ["יוֹם"], "Yom Kippur Katan": ["יוֹם כִּפּוּר קָטָן"], "Yizkor": ["יִזְכּוֹר"], "Family Day": ["יוֹם הַמִּשׁפָּחָה"], "Yitzhak Rabin Memorial Day": ["יוֹם הַזִּכָּרוֹן לְיִצְחָק רַבִּין"], "Jabotinsky Day": ["יוֹם זַ׳בּוֹטִינְסְקִי"], "Herzl Day": ["יוֹם הֶרְצְל"], "Ben-Gurion Day": ["יוֹם בֶּן־גּוּרִיּוֹן"], "Hebrew Language Day": ["יוֹם הַשָׂפָה הַעִברִית"], "Birkat Hachamah": ["בִּרְכַּת הַחַמָּה"], "Birkat HaChamah": ["בִּרְכַּת הַחַמָּה"], "Shushan Purim Katan": ["שׁוּשָׁן פּוּרִים קָטָן"], "Purim Meshulash": ["פּוּרִים מְשׁוּלָּשׁ"], "Chag HaBanot": ["חַג הַבָּנוֹת"], "Molad": ["מוֹלָד הָלְּבָנָה"], "chalakim": ["חֲלָקִים"], "Alot HaShachar": ["עֲלוֹת הַשַּׁחַר"], "Misheyakir": ["מִשֶּׁיַּכִּיר"], "Misheyakir Machmir": ["מִשֶּׁיַּכִּיר מַחְמִיר"], "Sunrise": ["נֵץ הַחַמָּה"], "Kriat Shema, sof zeman": ["סוֹף זְמַן קְרִיאַת שְׁמַע"], "Tefilah, sof zeman": ["סוֹף זְמַן תְּפִלָּה"], "Kriat Shema, sof zeman (MGA)": ["סוֹף זְמַן קְרִיאַת שְׁמַע (מג״א)"], "Kriat Shema, sof zeman (GRA)": ["סוֹף זְמַן קְרִיאַת שְׁמַע (גְּרָ״א)"], "Tefilah, sof zeman (MGA)": ["סוֹף זְמַן תְּפִלָּה (מג״א)"], "Tefilah, sof zeman (GRA)": ["סוֹף זְמַן תְּפִלָּה (גְּרָ״א)"], "Chatzot HaLailah": ["חֲצוֹת הַלַּיְלָה"], "Chatzot HaYom": ["חֲצוֹת הַיּוֹם"], "Chatzot hayom": ["חֲצוֹת הַיּוֹם"], "Mincha Gedolah": ["מִנְחָה גְּדוֹלָה"], "Mincha Ketanah": ["מִנְחָה קְטַנָּה"], "Plag HaMincha": ["פְּלַג הַמִּנְחָה"], "Sunset": ["שְׁקִיעַת הַחַמָּה"], "Bein HaShemashot": ["בֵּין הַשְּׁמָשׁוֹת"], "Tzeit HaKochavim": ["צֵאת הַכּוֹכָבִים"], "Biur Chametz": ["בִּעוּר חָמֵץ"], "Finish eating chametz": ["סוֹף זְמַן אֲכִילַת חָמֵץ"] } } };
@@ -47,6 +47,7 @@ const CHAG = flags.CHAG;
47
47
  const IL_ONLY = flags.IL_ONLY;
48
48
  const LIGHT_CANDLES_TZEIS = flags.LIGHT_CANDLES_TZEIS;
49
49
  const CHANUKAH_CANDLES = flags.CHANUKAH_CANDLES;
50
+ const BEHAB = flags.BEHAB;
50
51
  const MINOR_FAST = flags.MINOR_FAST;
51
52
  const SPECIAL_SHABBAT = flags.SPECIAL_SHABBAT;
52
53
  const MODERN_HOLIDAY = flags.MODERN_HOLIDAY;
@@ -59,9 +60,11 @@ const THU = 4;
59
60
  const FRI = 5;
60
61
  const SAT = 6;
61
62
  const NISAN = months.NISAN;
63
+ const IYYAR = months.IYYAR;
62
64
  const TAMUZ = months.TAMUZ;
63
65
  const AV = months.AV;
64
66
  const TISHREI = months.TISHREI;
67
+ const CHESHVAN = months.CHESHVAN;
65
68
  const KISLEV = months.KISLEV;
66
69
  const TEVET = months.TEVET;
67
70
  const ADAR_I = months.ADAR_I;
@@ -230,6 +233,20 @@ export function getHolidaysForYear_(year) {
230
233
  const ev = new YomKippurKatanEvent(ykk, nextMonthName);
231
234
  add(ev);
232
235
  }
236
+ for (const month of [CHESHVAN, IYYAR]) {
237
+ const roshChodesh = new HDate(1, month, year);
238
+ let shabbos = new HDate(HDate.dayOnOrBefore(SAT, roshChodesh.abs() + 6));
239
+ if (shabbos.abs() === roshChodesh.abs()) {
240
+ shabbos = new HDate(shabbos.abs() + 7);
241
+ }
242
+ const fastDays = [2, 5, 9].map(offset => new HDate(shabbos.abs() + offset));
243
+ if (month === IYYAR && fastDays[2].getDate() === 14) {
244
+ fastDays[2] = new HDate(17, IYYAR, year);
245
+ }
246
+ for (const hd of fastDays) {
247
+ add(new HolidayEvent(hd, hdesc.TAANIT_BEHAB, MINOR_FAST | BEHAB));
248
+ }
249
+ }
233
250
  const sedra = getSedra(year, false);
234
251
  const beshalachHd = sedra.find(15);
235
252
  add(new HolidayEvent(beshalachHd, hdesc.SHABBAT_SHIRAH, SPECIAL_SHABBAT));
@@ -9,6 +9,8 @@ export { GeoLocation, NOAACalculator } from '@hebcal/noaa';
9
9
  export { Location } from './location';
10
10
  export { Zmanim } from './zmanim';
11
11
  export { isAssurBemlacha } from './isAssurBemlacha';
12
+ export { isAveilut } from './isAveilut';
13
+ export { isFastDay } from './isFastDay';
12
14
  export { TimedEvent, CandleLightingEvent, HavdalahEvent } from './TimedEvent';
13
15
  export { FastDayEvent, TimedChanukahEvent } from './candles';
14
16
  export { MoladBase, calculateMolad } from './moladBase';
package/dist/src/index.js CHANGED
@@ -8,6 +8,8 @@ export { GeoLocation, NOAACalculator } from '@hebcal/noaa';
8
8
  export { Location } from './location';
9
9
  export { Zmanim } from './zmanim';
10
10
  export { isAssurBemlacha } from './isAssurBemlacha';
11
+ export { isAveilut } from './isAveilut';
12
+ export { isFastDay } from './isFastDay';
11
13
  export { TimedEvent, CandleLightingEvent, HavdalahEvent } from './TimedEvent';
12
14
  export { FastDayEvent, TimedChanukahEvent } from './candles';
13
15
  export { calculateMolad } from './moladBase';
@@ -0,0 +1,11 @@
1
+ import { HDate } from '@hebcal/hdate';
2
+ /**
3
+ * Utility method to determine if the given date is during a mourning period.
4
+ *
5
+ * This broad helper returns `true` during Sefirat HaOmer and Bein HaMetzarim.
6
+ * It does not attempt to model minhag-specific exceptions within those periods.
7
+ *
8
+ * @param date Hebrew Date, Gregorian date, or absolute R.D. day number
9
+ * @return `true` if the date is during a mourning period
10
+ */
11
+ export declare function isAveilut(date: HDate | Date | number): boolean;
@@ -0,0 +1,37 @@
1
+ import { HDate, months } from '@hebcal/hdate';
2
+ const NISAN = months.NISAN;
3
+ const SIVAN = months.SIVAN;
4
+ const TAMUZ = months.TAMUZ;
5
+ const AV = months.AV;
6
+ const SAT = 6;
7
+ function getHDate(date) {
8
+ return HDate.isHDate(date) ? date : new HDate(date);
9
+ }
10
+ function isSefiratHaOmer(hd) {
11
+ const hyear = hd.getFullYear();
12
+ const beginOmer = new HDate(16, NISAN, hyear).abs();
13
+ const endOmer = new HDate(5, SIVAN, hyear).abs();
14
+ const abs = hd.abs();
15
+ return abs >= beginOmer && abs <= endOmer;
16
+ }
17
+ function isBeinHaMetzarim(hd) {
18
+ const hyear = hd.getFullYear();
19
+ const begin = new HDate(17, TAMUZ, hyear).abs();
20
+ const tishaBav = new HDate(9, AV, hyear);
21
+ const end = tishaBav.getDay() === SAT ? new HDate(10, AV, hyear).abs() : tishaBav.abs();
22
+ const abs = hd.abs();
23
+ return abs >= begin && abs <= end;
24
+ }
25
+ /**
26
+ * Utility method to determine if the given date is during a mourning period.
27
+ *
28
+ * This broad helper returns `true` during Sefirat HaOmer and Bein HaMetzarim.
29
+ * It does not attempt to model minhag-specific exceptions within those periods.
30
+ *
31
+ * @param date Hebrew Date, Gregorian date, or absolute R.D. day number
32
+ * @return `true` if the date is during a mourning period
33
+ */
34
+ export function isAveilut(date) {
35
+ const hd = getHDate(date);
36
+ return isSefiratHaOmer(hd) || isBeinHaMetzarim(hd);
37
+ }
@@ -0,0 +1,9 @@
1
+ import { HDate } from '@hebcal/hdate';
2
+ /**
3
+ * Utility method to determine if the given date is a fast day.
4
+ *
5
+ * @param date Hebrew Date, Gregorian date, or absolute R.D. day number
6
+ * @param il use the Israeli schedule for holidays
7
+ * @return `true` if the date is a major or minor fast day
8
+ */
9
+ export declare function isFastDay(date: HDate | Date | number, il?: boolean): boolean;
@@ -0,0 +1,19 @@
1
+ import { flags } from './event';
2
+ import { getHolidaysOnDate } from './holidays';
3
+ const FAST_DAY = flags.MAJOR_FAST | flags.MINOR_FAST;
4
+ const EREV = flags.EREV;
5
+ /**
6
+ * Utility method to determine if the given date is a fast day.
7
+ *
8
+ * @param date Hebrew Date, Gregorian date, or absolute R.D. day number
9
+ * @param il use the Israeli schedule for holidays
10
+ * @return `true` if the date is a major or minor fast day
11
+ */
12
+ export function isFastDay(date, il) {
13
+ const events = getHolidaysOnDate(date, il) || [];
14
+ const fastDay = events.find(ev => {
15
+ const mask = ev.getFlags();
16
+ return mask & FAST_DAY && !(mask & EREV);
17
+ });
18
+ return Boolean(fastDay);
19
+ }
@@ -19,80 +19,7 @@
19
19
  along with this program. If not, see <http://www.gnu.org/licenses/>.
20
20
  */
21
21
  import { GeoLocation } from '@hebcal/noaa';
22
- const classicCities0 = [
23
- ['Ashdod', 'IL', 31.79213, 34.64966, 'Asia/Jerusalem', 27],
24
- ['Atlanta', 'US', 33.749, -84.38798, 'America/New_York', 336],
25
- ['Austin', 'US', 30.26715, -97.74306, 'America/Chicago', 165],
26
- ['Baghdad', 'IQ', 33.34058, 44.40088, 'Asia/Baghdad', 41],
27
- ['Beer Sheva', 'IL', 31.25181, 34.7913, 'Asia/Jerusalem', 285],
28
- ['Berlin', 'DE', 52.52437, 13.41053, 'Europe/Berlin', 43],
29
- ['Baltimore', 'US', 39.29038, -76.61219, 'America/New_York', 35],
30
- ['Bogota', 'CO', 4.60971, -74.08175, 'America/Bogota', 2582],
31
- ['Boston', 'US', 42.35843, -71.05977, 'America/New_York', 38],
32
- ['Budapest', 'HU', 47.49801, 19.03991, 'Europe/Budapest', 104],
33
- [
34
- 'Buenos Aires',
35
- 'AR',
36
- -34.61315,
37
- -58.37723,
38
- 'America/Argentina/Buenos_Aires',
39
- 31,
40
- ],
41
- ['Buffalo', 'US', 42.88645, -78.87837, 'America/New_York', 191],
42
- ['Chicago', 'US', 41.85003, -87.65005, 'America/Chicago', 180],
43
- ['Cincinnati', 'US', 39.162, -84.45689, 'America/New_York', 267],
44
- ['Cleveland', 'US', 41.4995, -81.69541, 'America/New_York', 204],
45
- ['Dallas', 'US', 32.78306, -96.80667, 'America/Chicago', 139],
46
- ['Denver', 'US', 39.73915, -104.9847, 'America/Denver', 1636],
47
- ['Detroit', 'US', 42.33143, -83.04575, 'America/Detroit', 192],
48
- ['Eilat', 'IL', 29.55805, 34.94821, 'Asia/Jerusalem', 63],
49
- ['Gibraltar', 'GI', 36.14474, -5.35257, 'Europe/Gibraltar', 11],
50
- ['Haifa', 'IL', 32.81841, 34.9885, 'Asia/Jerusalem', 40],
51
- ['Hawaii', 'US', 21.30694, -157.85833, 'Pacific/Honolulu', 18],
52
- ['Helsinki', 'FI', 60.16952, 24.93545, 'Europe/Helsinki', 26],
53
- ['Houston', 'US', 29.76328, -95.36327, 'America/Chicago', 30],
54
- ['Jerusalem', 'IL', 31.76904, 35.21633, 'Asia/Jerusalem', 786],
55
- ['Johannesburg', 'ZA', -26.20227, 28.04363, 'Africa/Johannesburg', 1767],
56
- ['Kiev', 'UA', 50.45466, 30.5238, 'Europe/Kiev', 187],
57
- ['La Paz', 'BO', -16.5, -68.15, 'America/La_Paz', 3782],
58
- ['Livingston', 'US', 40.79593, -74.31487, 'America/New_York', 98],
59
- ['Las Vegas', 'US', 36.17497, -115.13722, 'America/Los_Angeles', 613],
60
- ['London', 'GB', 51.50853, -0.12574, 'Europe/London', 25],
61
- ['Los Angeles', 'US', 34.05223, -118.24368, 'America/Los_Angeles', 96],
62
- ['Marseilles', 'FR', 43.29695, 5.38107, 'Europe/Paris', 28],
63
- ['Miami', 'US', 25.77427, -80.19366, 'America/New_York', 25],
64
- ['Minneapolis', 'US', 44.97997, -93.26384, 'America/Chicago', 262],
65
- ['Melbourne', 'AU', -37.814, 144.96332, 'Australia/Melbourne', 25],
66
- ['Mexico City', 'MX', 19.42847, -99.12766, 'America/Mexico_City', 2240],
67
- ['Montreal', 'CA', 45.50884, -73.58781, 'America/Toronto', 216],
68
- ['Moscow', 'RU', 55.75222, 37.61556, 'Europe/Moscow', 144],
69
- ['New York', 'US', 40.71427, -74.00597, 'America/New_York', 57],
70
- ['Omaha', 'US', 41.25861, -95.93779, 'America/Chicago', 315],
71
- ['Ottawa', 'CA', 45.41117, -75.69812, 'America/Toronto', 71],
72
- ['Panama City', 'PA', 8.9936, -79.51973, 'America/Panama', 17],
73
- ['Paris', 'FR', 48.85341, 2.3488, 'Europe/Paris', 42],
74
- ['Pawtucket', 'US', 41.87871, -71.38256, 'America/New_York', 0], // -11
75
- ['Petach Tikvah', 'IL', 32.08707, 34.88747, 'Asia/Jerusalem', 54],
76
- ['Philadelphia', 'US', 39.95233, -75.16379, 'America/New_York', 8],
77
- ['Phoenix', 'US', 33.44838, -112.07404, 'America/Phoenix', 366],
78
- ['Pittsburgh', 'US', 40.44062, -79.99589, 'America/New_York', 239],
79
- ['Providence', 'US', 41.82399, -71.41283, 'America/New_York', 0], // -15
80
- ['Portland', 'US', 45.52345, -122.67621, 'America/Los_Angeles', 15],
81
- ['Saint Louis', 'US', 38.62727, -90.19789, 'America/Chicago', 149],
82
- ['Saint Petersburg', 'RU', 59.93863, 30.31413, 'Europe/Moscow', 11],
83
- ['San Diego', 'US', 32.71533, -117.15726, 'America/Los_Angeles', 20],
84
- ['San Francisco', 'US', 37.77493, -122.41942, 'America/Los_Angeles', 28],
85
- ['Sao Paulo', 'BR', -23.5475, -46.63611, 'America/Sao_Paulo', 769],
86
- ['Seattle', 'US', 47.60621, -122.33207, 'America/Los_Angeles', 56],
87
- ['Sydney', 'AU', -33.86785, 151.20732, 'Australia/Sydney', 58],
88
- ['Tel Aviv', 'IL', 32.08088, 34.78057, 'Asia/Jerusalem', 15],
89
- ['Tiberias', 'IL', 32.79221, 35.53124, 'Asia/Jerusalem', 0], // -140
90
- ['Toronto', 'CA', 43.70011, -79.4163, 'America/Toronto', 175],
91
- ['Vancouver', 'CA', 49.24966, -123.11934, 'America/Vancouver', 70],
92
- ['White Plains', 'US', 41.03399, -73.76291, 'America/New_York', 82],
93
- ['Washington DC', 'US', 38.89511, -77.03637, 'America/New_York', 6],
94
- ['Worcester', 'US', 42.26259, -71.80229, 'America/New_York', 164],
95
- ];
22
+ import citiesJson from './cities.json';
96
23
  const classicCities = new Map();
97
24
  // Zip-Codes.com TimeZone IDs
98
25
  const ZIPCODES_TZ_MAP = {
@@ -130,6 +57,13 @@ function getFormatter(tzid) {
130
57
  timeFormatCache.set(tzid, f);
131
58
  return f;
132
59
  }
60
+ function initClassicCities() {
61
+ for (const entry of citiesJson) {
62
+ const [cityName, cc, lat, lng, tzid, elev] = entry.split('|');
63
+ const location = new Location(+lat, +lng, cc === 'IL', tzid, cityName, cc, undefined, +elev);
64
+ Location.addLocation(cityName, location);
65
+ }
66
+ }
133
67
  /** Class representing Location */
134
68
  export class Location extends GeoLocation {
135
69
  il;
@@ -233,6 +167,9 @@ export class Location extends GeoLocation {
233
167
  * @param name
234
168
  */
235
169
  static lookup(name) {
170
+ if (classicCities.size === 0) {
171
+ initClassicCities();
172
+ }
236
173
  return classicCities.get(name.toLowerCase());
237
174
  }
238
175
  toString() {
@@ -312,7 +249,3 @@ export class Location extends GeoLocation {
312
249
  return true;
313
250
  }
314
251
  }
315
- for (const city of classicCities0) {
316
- const location = new Location(city[2], city[3], city[1] === 'IL', city[4], city[0], city[1], undefined, city[5]);
317
- Location.addLocation(city[0], location);
318
- }
@@ -1,2 +1,2 @@
1
1
  /** DO NOT EDIT THIS AUTO-GENERATED FILE! */
2
- export declare const version = "6.4.1";
2
+ export declare const version = "6.5.1";
@@ -1,2 +1,2 @@
1
1
  /** DO NOT EDIT THIS AUTO-GENERATED FILE! */
2
- export const version = '6.4.1';
2
+ export const version = '6.5.1';
@@ -42,6 +42,8 @@ export declare const holidayDesc: {
42
42
  readonly SHUSHAN_PURIM_KATAN: "Shushan Purim Katan";
43
43
  /** Ta'anit Bechorot */
44
44
  readonly TAANIT_BECHOROT: "Ta'anit Bechorot";
45
+ /** Ta'anit BeHaB */
46
+ readonly TAANIT_BEHAB: "Ta'anit BeHaB";
45
47
  /** Ta'anit Esther */
46
48
  readonly TAANIT_ESTHER: "Ta'anit Esther";
47
49
  /** Tish'a B'Av */
@@ -122,6 +122,8 @@ export const holidayDesc = {
122
122
  SHUSHAN_PURIM_KATAN: 'Shushan Purim Katan',
123
123
  /** Ta'anit Bechorot */
124
124
  TAANIT_BECHOROT: "Ta'anit Bechorot",
125
+ /** Ta'anit BeHaB */
126
+ TAANIT_BEHAB: "Ta'anit BeHaB",
125
127
  /** Ta'anit Esther */
126
128
  TAANIT_ESTHER: "Ta'anit Esther",
127
129
  /** Tish'a B'Av */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hebcal/core",
3
- "version": "6.4.1",
3
+ "version": "6.5.1",
4
4
  "author": "Michael J. Radwin (https://github.com/mjradwin)",
5
5
  "contributors": [
6
6
  "Eyal Schachter (https://github.com/Scimonster)",
@@ -72,17 +72,17 @@
72
72
  "@rollup/plugin-node-resolve": "^16.0.3",
73
73
  "@rollup/plugin-terser": "^1.0.0",
74
74
  "@rollup/plugin-typescript": "^12.3.0",
75
- "@types/node": "^25.6.2",
76
- "@vitest/coverage-v8": "^4.1.5",
75
+ "@types/node": "^25.8.0",
76
+ "@vitest/coverage-v8": "^4.1.6",
77
77
  "gettext-parser": "^9.0.2",
78
78
  "gts": "^7.0.0",
79
79
  "pretty-bytes": "^7.1.0",
80
- "rollup": "^4.60.3",
80
+ "rollup": "^4.60.4",
81
81
  "rollup-plugin-bundle-size": "^1.0.3",
82
82
  "rollup-plugin-visualizer": "^7.0.1",
83
83
  "typedoc": "^0.28.19",
84
84
  "typescript": "^6.0.3",
85
- "vitest": "^4.1.5"
85
+ "vitest": "^4.1.6"
86
86
  },
87
87
  "dependencies": {
88
88
  "@hebcal/hdate": "^0.22.2",