@hebcal/core 6.9.0 → 6.9.2

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 (102) hide show
  1. package/dist/bundle.js +258 -70
  2. package/dist/bundle.js.map +1 -1
  3. package/dist/bundle.min.js +8 -8
  4. package/dist/bundle.min.js.map +1 -1
  5. package/dist/esm/CalOptions.d.ts +1 -1
  6. package/dist/esm/DailyLearning.d.ts +1 -1
  7. package/dist/esm/DailyLearning.js +1 -1
  8. package/dist/esm/DailyLearning.js.map +1 -1
  9. package/dist/esm/HebrewDateEvent.d.ts +2 -2
  10. package/dist/esm/HebrewDateEvent.js +1 -1
  11. package/dist/esm/HebrewDateEvent.js.map +1 -1
  12. package/dist/esm/HolidayEvent.d.ts +2 -2
  13. package/dist/esm/HolidayEvent.js +1 -1
  14. package/dist/esm/HolidayEvent.js.map +1 -1
  15. package/dist/esm/MevarchimChodeshEvent.d.ts +2 -2
  16. package/dist/esm/MevarchimChodeshEvent.js +1 -1
  17. package/dist/esm/MevarchimChodeshEvent.js.map +1 -1
  18. package/dist/esm/ParshaEvent.d.ts +3 -3
  19. package/dist/esm/ParshaEvent.js +1 -1
  20. package/dist/esm/ParshaEvent.js.map +1 -1
  21. package/dist/esm/TimedEvent.d.ts +4 -4
  22. package/dist/esm/TimedEvent.js +1 -1
  23. package/dist/esm/TimedEvent.js.map +1 -1
  24. package/dist/esm/YomKippurKatanEvent.d.ts +2 -2
  25. package/dist/esm/YomKippurKatanEvent.js +1 -1
  26. package/dist/esm/YomKippurKatanEvent.js.map +1 -1
  27. package/dist/esm/ashkenazi.po.js +1 -1
  28. package/dist/esm/calendar.d.ts +2 -2
  29. package/dist/esm/calendar.js +1 -1
  30. package/dist/esm/calendar.js.map +1 -1
  31. package/dist/esm/candles.d.ts +5 -5
  32. package/dist/esm/candles.js +1 -1
  33. package/dist/esm/candles.js.map +1 -1
  34. package/dist/esm/cities.json.d.ts +2 -0
  35. package/dist/esm/cities.json.js +68 -2
  36. package/dist/esm/cities.json.js.map +1 -1
  37. package/dist/esm/event.d.ts +1 -1
  38. package/dist/esm/event.js +1 -1
  39. package/dist/esm/event.js.map +1 -1
  40. package/dist/esm/getStartAndEnd.d.ts +1 -1
  41. package/dist/esm/getStartAndEnd.js +1 -1
  42. package/dist/esm/getStartAndEnd.js.map +1 -1
  43. package/dist/esm/hallel.d.ts +1 -1
  44. package/dist/esm/hallel.js +1 -1
  45. package/dist/esm/hallel.js.map +1 -1
  46. package/dist/esm/he-x-NoNikud.po.js +1 -1
  47. package/dist/esm/he.po.js +1 -1
  48. package/dist/esm/hebcal.d.ts +7 -7
  49. package/dist/esm/hebcal.js +1 -1
  50. package/dist/esm/hebcal.js.map +1 -1
  51. package/dist/esm/holidays.d.ts +1 -1
  52. package/dist/esm/holidays.js +1 -1
  53. package/dist/esm/holidays.js.map +1 -1
  54. package/dist/esm/index.d.ts +29 -29
  55. package/dist/esm/index.js +1 -1
  56. package/dist/esm/isAssurBemlacha.d.ts +1 -1
  57. package/dist/esm/isAssurBemlacha.js +1 -1
  58. package/dist/esm/isAssurBemlacha.js.map +1 -1
  59. package/dist/esm/isAveilut.js +1 -1
  60. package/dist/esm/isFastDay.js +1 -1
  61. package/dist/esm/isFastDay.js.map +1 -1
  62. package/dist/esm/locale.js +1 -1
  63. package/dist/esm/locale.js.map +1 -1
  64. package/dist/esm/location.js +1 -1
  65. package/dist/esm/location.js.map +1 -1
  66. package/dist/esm/modern.js +1 -1
  67. package/dist/esm/molad.d.ts +3 -3
  68. package/dist/esm/molad.js +1 -1
  69. package/dist/esm/molad.js.map +1 -1
  70. package/dist/esm/moladBase.js +1 -1
  71. package/dist/esm/moladDate.d.ts +1 -1
  72. package/dist/esm/moladDate.js +1 -1
  73. package/dist/esm/moladDate.js.map +1 -1
  74. package/dist/esm/omer.d.ts +2 -2
  75. package/dist/esm/omer.js +1 -1
  76. package/dist/esm/omer.js.map +1 -1
  77. package/dist/esm/parshaName.js +1 -1
  78. package/dist/esm/parshaName.js.map +1 -1
  79. package/dist/esm/parshaYear.d.ts +1 -1
  80. package/dist/esm/parshaYear.js +1 -1
  81. package/dist/esm/parshaYear.js.map +1 -1
  82. package/dist/esm/pkgVersion.d.ts +1 -1
  83. package/dist/esm/pkgVersion.js +2 -2
  84. package/dist/esm/pkgVersion.js.map +1 -1
  85. package/dist/esm/reformatTimeStr.d.ts +1 -1
  86. package/dist/esm/reformatTimeStr.js +1 -1
  87. package/dist/esm/reformatTimeStr.js.map +1 -1
  88. package/dist/esm/sedra.d.ts +1 -1
  89. package/dist/esm/sedra.js +1 -1
  90. package/dist/esm/sedra.js.map +1 -1
  91. package/dist/esm/sefira.json.d.ts +6 -0
  92. package/dist/esm/sefira.json.js +65 -3
  93. package/dist/esm/sefira.json.js.map +1 -1
  94. package/dist/esm/staticHolidays.js +1 -1
  95. package/dist/esm/staticHolidays.js.map +1 -1
  96. package/dist/esm/string.js +1 -1
  97. package/dist/esm/tachanun.js +1 -1
  98. package/dist/esm/tachanun.js.map +1 -1
  99. package/dist/esm/zmanim.d.ts +18 -1
  100. package/dist/esm/zmanim.js +86 -55
  101. package/dist/esm/zmanim.js.map +1 -1
  102. package/package.json +18 -13
@@ -1 +1 @@
1
- {"version":3,"file":"sedra.js","sources":["../../../src/sedra.ts"],"sourcesContent":["/*\n Hebcal - A Jewish Calendar Generator\n Copyright (c) 1994-2020 Danny Sadinoff\n Portions copyright Eyal Schachter and Michael J. Radwin\n\n https://github.com/hebcal/hebcal-es6\n\n This program is free software; you can redistribute it and/or\n modify it under the terms of the GNU General Public License\n as published by the Free Software Foundation; either version 2\n of the License, or (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/*\n * Many of the following algorithms were taken from hebrew calendar\n * routines by Maimonedes, from his Mishneh Torah, and implemented by\n * Nachum Dershowitz Department of Computer Science\n * (217) 333-4219 University of Illinois at Urbana-Champaign\n * nachum@cs.uiuedu 1304 West Springfield Avenue\n * Urbana, Illinois 61801\n *\n * The routines were included in the emacs 19 distribution.\n *\n */\nimport {HDate, months} from '@hebcal/hdate';\nimport QuickLRU from 'quick-lru';\nimport './locale'; // Adds Hebrew and Ashkenazic translations\n\nconst INCOMPLETE = 0;\nconst REGULAR = 1;\nconst COMPLETE = 2;\n\nfunction yearType(hyear: number): number {\n const longC = HDate.longCheshvan(hyear);\n const shortK = HDate.shortKislev(hyear);\n if (longC && !shortK) {\n return COMPLETE;\n }\n if (!longC && shortK) {\n return INCOMPLETE;\n }\n return REGULAR;\n}\n\n/** The result from `Sedra.lookup()` */\nexport type SedraResult = {\n /**\n * Name of the parsha (or parshiyot) read on\n * Hebrew date, e.g. `['Noach']` or `['Matot', 'Masei']`\n */\n parsha: string[];\n /**\n * False if this is a regular parashat HaShavua reading.\n * True if it's a special holiday reading.\n */\n chag: boolean;\n /**\n * The parsha number (or numbers) using 1-indexing.\n * A `number` for a regular (single) parsha, and a `number[]`\n * for a doubled parsha.\n * For Parashat *Bereshit*, `num` would be equal to `1`, and for\n * *Matot-Masei* it would be `[42, 43]`\n * For a chag (holiday) reading, `num` will be `0`.\n */\n num: number | number[];\n /** The date of the Shabbat this parsha is read */\n hdate: HDate;\n /** true if Israel, false for Diaspora */\n il: boolean;\n};\n\n/**\n * Represents the weekly Torah-reading (Parashat HaShavua) schedule for an\n * entire Hebrew year.\n *\n * The schedule depends on the year's *keviyah* — the day of week of Rosh\n * Hashana, whether the year is leap, whether Cheshvan/Kislev are long or\n * short, and whether the schedule is for Israel or the Diaspora (since\n * Israel and the Diaspora diverge in some years when the 8th day of Pesach\n * or the 2nd day of Shavuot fall on Shabbat).\n *\n * Prefer {@link getSedra} over\n * calling this constructor directly, since both cache their results.\n *\n * @example\n * import {Sedra, HDate, months} from '@hebcal/core';\n * const sedra = new Sedra(5784, false);\n * const result = sedra.lookup(new HDate(15, months.CHESHVAN, 5784));\n * console.log(result.parsha); // ['Vayera']\n */\nexport class Sedra {\n private readonly year: number;\n private readonly il: boolean;\n private readonly rh: number;\n private readonly firstSaturday: number;\n private readonly theSedraArray: readonly NumberOrString[];\n private readonly yearKey: string;\n /**\n * Calculates the Parashat HaShavua schedule for an entire Hebrew year.\n * @param hyear - Hebrew year (e.g. 5749)\n * @param il - Use Israel sedra schedule (false for Diaspora)\n */\n constructor(hyear: number, il: boolean) {\n hyear = +hyear;\n this.year = hyear;\n\n const rh0 = new HDate(1, months.TISHREI, hyear);\n const rh = (this.rh = rh0.abs());\n const rhDay = rh0.getDay() + 1;\n\n // find the first Saturday on or after Rosh Hashana\n this.firstSaturday = HDate.dayOnOrBefore(6, rh + 6);\n const leap = +HDate.isLeapYear(hyear);\n this.il = Boolean(il);\n\n const type = yearType(hyear);\n let key = `${leap}${rhDay}${type}`;\n if (types[key]) {\n this.theSedraArray = types[key];\n this.yearKey = key;\n } else {\n key = key + +this.il; // cast to num, then concat\n this.theSedraArray = types[key];\n this.yearKey = key;\n }\n\n if (!this.theSedraArray) {\n throw new Error(`improper sedra year type ${key} calculated for ${hyear}`);\n }\n }\n\n /**\n * Returns the date a parsha is read this year, or `null` if it does not\n * occur in this year's schedule.\n *\n * A doubled parsha (e.g. `'Matot-Masei'`) will only return a date in years\n * where that pair is actually read together; in years where they are read\n * separately, this returns `null`. Use {@link findContaining} to find the\n * date a parsha is read regardless of whether it is doubled.\n *\n * Throws `RangeError` for an out-of-range numeric input or an invalid\n * doubled-parsha pair, and `TypeError` for a malformed array argument.\n * @example\n * import {Sedra} from '@hebcal/core';\n * const sedra = new Sedra(5784, false);\n * sedra.find('Noach')?.toString(); // '6 Cheshvan 5784'\n * sedra.find(1)?.toString(); // '6 Cheshvan 5784', by 0-based index\n * // Matot and Masei are doubled in 5784, so the pair has a date...\n * sedra.find('Matot-Masei')?.toString(); // '28 Tamuz 5784'\n * sedra.find(['Matot', 'Masei'])?.toString(); // '28 Tamuz 5784'\n * // ...but neither half is read on its own that year:\n * sedra.find('Matot'); // null\n * @param parsha if a `string`, specified with Sephardic transliterations\n * like `'Noach'` or `'Matot-Masei'`. If an array, must be a 1- or 2-element\n * array such as `['Noach']` or `['Matot', 'Masei']`. If a `number`, should\n * be a 0-based parsha index (`0` for Bereshit, `1` for Noach) or a negative\n * number for a doubled parsha (e.g. `-21` for Vayakhel-Pekudei).\n * Note that this index is 0-based, unlike {@link SedraResult.num} which\n * is 1-based.\n */\n find(parsha: number | string | string[]): HDate | null {\n if (typeof parsha === 'number') {\n if (parsha >= parshiot.length || (parsha < 0 && !isValidDouble(parsha))) {\n throw new RangeError(`Invalid parsha number: ${parsha}`);\n }\n return this.findInternal(parsha);\n }\n if (typeof parsha === 'string') {\n const num = parsha2id.get(parsha);\n if (typeof num === 'number') {\n return this.find(num);\n }\n if (parsha.includes('-')) {\n if (parsha === CHMPESACH || parsha === CHMSUKOT) {\n return this.findInternal(parsha);\n }\n return this.find(parsha.split('-'));\n }\n // try to find Saturday holiday like 'Yom Kippur'\n return this.findInternal(parsha);\n }\n if (Array.isArray(parsha)) {\n const plen = parsha.length;\n if ((plen !== 1 && plen !== 2) || typeof parsha[0] !== 'string') {\n throw new TypeError(`Invalid parsha argument: ${JSON.stringify(parsha)}`);\n }\n if (plen === 1) {\n return this.find(parsha[0]);\n }\n const p1 = parsha[0];\n const p2 = parsha[1];\n const num1 = parsha2id.get(p1);\n const num2 = parsha2id.get(p2);\n if (\n typeof num1 !== 'number' ||\n typeof num2 !== 'number' ||\n num2 !== num1 + 1 ||\n !isValidDouble(-num1)\n ) {\n throw new RangeError(`Unrecognized parsha name: ${p1}-${p2}`);\n }\n return this.find(-num1);\n }\n return null; /* NOTREACHED */\n }\n\n private findInternal(parsha: NumberOrString): HDate | null {\n const idx = this.theSedraArray.indexOf(parsha);\n if (idx === -1) {\n return null; // doesn't occur this year\n }\n return new HDate(this.firstSaturday + idx * 7);\n }\n\n /**\n * Returns the date a parsha is read this year, looking through both\n * single and doubled forms.\n *\n * For example, if `'Matot'` is read individually this year, this returns\n * its date; if it is read as part of `'Matot-Masei'` this year, this\n * returns the date of `'Matot-Masei'` (and similarly for `'Masei'`).\n * Conversely, asking for `'Matot-Masei'` in a year where they are split\n * will return the date of `'Matot'` alone.\n * @example\n * import {Sedra} from '@hebcal/core';\n * // Matot and Masei are doubled in 5784, so each half resolves to the\n * // date of the combined reading:\n * const sedra = new Sedra(5784, false);\n * sedra.findContaining('Matot')?.toString(); // '28 Tamuz 5784'\n * sedra.findContaining('Masei')?.toString(); // '28 Tamuz 5784'\n * @example\n * import {Sedra} from '@hebcal/core';\n * // They are read separately in 5795, so each half has its own date, and\n * // asking for the doubled name returns the date of the first half:\n * const sedra = new Sedra(5795, false);\n * sedra.findContaining('Matot')?.toString(); // '21 Tamuz 5795'\n * sedra.findContaining('Masei')?.toString(); // '28 Tamuz 5795'\n * sedra.findContaining('Matot-Masei')?.toString(); // '21 Tamuz 5795'\n */\n findContaining(parsha: number | string): HDate | null {\n const hdate = this.find(parsha);\n if (hdate) {\n return hdate;\n }\n if (typeof parsha === 'number') {\n // a valid negative number (double parsha in a year where they are\n // combined) would've been found above, and a invalid negative number\n // would've thrown an error, so this parsha must be a positive number\n // representing either p1 or p2\n const p1 = -parsha;\n if (isValidDouble(p1)) {\n return this.find(p1);\n } else {\n // this must be the second individual parsha of a doubled pair\n // for example 29 for Kedoshim, so check for -28 for Achrei Mot-Kedoshim\n return this.find(p1 + 1);\n }\n } else {\n const num = parsha2id.get(parsha);\n if (num) {\n // parsha is either the first or second individual parsha of\n // a pair that is doubled this year\n const p1 = -num;\n if (isValidDouble(p1)) {\n return this.find(p1);\n } else {\n return this.find(p1 + 1);\n }\n } else {\n // this was indeed a doubled parsha, so return date of the first half\n const [p1] = parsha.split('-');\n return this.find(p1);\n }\n }\n }\n\n /**\n * Returns the underlying annual reading schedule as an array, where each\n * entry corresponds to one Saturday (starting from the first Shabbat on\n * or after Rosh Hashana). Entries are either:\n * - a non-negative `number`: a 0-based parsha index (e.g. `0` for\n * *Bereshit*)\n * - a negative `number`: the negated first index of a doubled parsha\n * (e.g. `-21` for *Vayakhel-Pekudei*)\n * - a `string`: a holiday name when a Yom Tov displaces the weekly reading\n * (e.g. `'Pesach Shabbat Chol ha-Moed'`, `'Yom Kippur'`)\n *\n * Used by `@hebcal/triennial`.\n */\n getSedraArray(): readonly NumberOrString[] {\n return this.theSedraArray;\n }\n\n /**\n * Returns the R.D. (Rata Die / Fixed Date) absolute day number of the\n * first Saturday on or after Rosh Hashana of this year. This is the\n * anchor point for {@link getSedraArray} — index `0` of that array\n * corresponds to this date.\n */\n getFirstSaturday(): number {\n return this.firstSaturday;\n }\n\n /** Returns the Hebrew year this `Sedra` instance covers. */\n getYear(): number {\n return this.year;\n }\n\n /**\n * Returns details about the parsha read on the first Saturday on or after\n * `hd`. If `hd` is itself a Saturday, the reading for that date is\n * returned; otherwise the reading for the upcoming Saturday is returned.\n *\n * If the given date falls in the final days of the Hebrew year (after\n * the last reading of this year's schedule), this method transparently\n * delegates to the next year's `Sedra`.\n * @example\n * import {Sedra, HDate, months} from '@hebcal/core';\n * const sedra = new Sedra(5784, false);\n * // A Friday — returns the upcoming Shabbat's reading\n * const result = sedra.lookup(new HDate(12, months.CHESHVAN, 5784));\n * console.log(result.parsha); // ['Lech-Lecha']\n * console.log(result.chag); // false\n * console.log(result.hdate.toString()); // '13 Cheshvan 5784' (Saturday)\n * @param hd Hebrew date or R.D. days\n */\n lookup(hd: HDate | number): SedraResult {\n const abs = typeof hd === 'number' ? hd : HDate.isHDate(hd) ? hd.abs() : NaN;\n\n if (isNaN(abs)) {\n throw new TypeError(`Bad date argument: ${hd}`);\n }\n if (abs < this.rh) {\n throw new RangeError(`Date ${hd} before start of Hebrew year ${this.year}`);\n }\n\n // find the first saturday on or after today's date\n const saturday = HDate.dayOnOrBefore(6, abs + 6);\n\n const weekNum = (saturday - this.firstSaturday) / 7;\n const index = this.theSedraArray[weekNum];\n\n if (index === undefined) {\n const sedra = getSedra(this.year + 1, this.il);\n return sedra.lookup(saturday); // must be next year\n }\n const hdate = new HDate(saturday);\n if (typeof index === 'string') {\n // Shabbat has a chag. Return a description\n return {parsha: [index], chag: true, hdate, il: this.il, num: 0};\n }\n if (index >= 0) {\n return {\n parsha: [parshiot[index]],\n chag: false,\n num: index + 1,\n hdate,\n il: this.il,\n };\n }\n\n const p1 = D(index); // undouble the parsha\n return {\n parsha: [parshiot[p1], parshiot[p1 + 1]],\n chag: false,\n num: [p1 + 1, p1 + 2],\n hdate,\n il: this.il,\n };\n }\n\n /**\n * Returns details about the parsha read on Monday or Thursday for `hd`, or\n * `undefined` if `hd` is not a Monday or Thursday.\n *\n * Weekday Torah readings generally begin the upcoming Shabbat parsha. When\n * the upcoming Shabbat is a holiday, this method returns the next regular\n * parsha instead.\n *\n * For the Tishrei weekdays before Sukkot or Simchat Torah, the weekday\n * reading is *Vezot Haberakhah* even though it is not read on Shabbat.\n * @example\n * import {Sedra, HDate, months} from '@hebcal/core';\n * const sedra = new Sedra(5784, false);\n * // Monday 8 Cheshvan — begins the upcoming Shabbat's parsha\n * sedra.lookupWeekday(new HDate(8, months.CHESHVAN, 5784))?.parsha; // ['Lech-Lecha']\n * // Tuesday is neither Monday nor Thursday\n * sedra.lookupWeekday(new HDate(9, months.CHESHVAN, 5784)); // undefined\n * // Thursday 17 Nisan — the upcoming Shabbat is Chol ha-Moed Pesach,\n * // so the next regular parsha is returned instead\n * sedra.lookupWeekday(new HDate(17, months.NISAN, 5784))?.parsha; // ['Achrei Mot']\n * @param hd Hebrew date or R.D. days\n */\n lookupWeekday(hd: HDate | number): SedraResult | undefined {\n const abs = typeof hd === 'number' ? hd : HDate.isHDate(hd) ? hd.abs() : NaN;\n\n if (isNaN(abs)) {\n throw new TypeError(`Bad date argument: ${hd}`);\n }\n if (abs < this.rh) {\n throw new RangeError(`Date ${hd} before start of Hebrew year ${this.year}`);\n }\n\n const hdate = new HDate(abs);\n const day = hdate.getDay();\n if (day !== 1 && day !== 4) {\n return undefined;\n }\n\n const saturday = new HDate(HDate.dayOnOrBefore(6, abs + 6));\n const parsha = this.lookup(saturday);\n if (!parsha.chag) {\n return parsha;\n }\n return this.findWeekdayParsha(saturday);\n }\n\n private findWeekdayParsha(saturday: HDate): SedraResult {\n const hyear = saturday.getFullYear();\n const il = this.il;\n\n if (saturday.getMonth() === months.TISHREI) {\n const dd = saturday.getDate();\n const simchatTorah = il ? 22 : 23;\n if (dd > 2 && dd <= simchatTorah) {\n return {\n parsha: ['Vezot Haberakhah'],\n chag: false,\n num: 54,\n hdate: saturday,\n il,\n };\n }\n }\n\n const sedra = hyear === this.year ? this : getSedra(hyear, il);\n const endOfYear = new HDate(1, months.TISHREI, hyear + 1).abs() - 1;\n const endAbs = endOfYear + 30;\n for (let sat2 = saturday.abs() + 7; sat2 <= endAbs; sat2 += 7) {\n const sedra2 = sat2 > endOfYear ? getSedra(hyear + 1, il) : sedra;\n const parsha2 = sedra2.lookup(sat2);\n if (!parsha2.chag) {\n return parsha2;\n }\n }\n /* NOTREACHED */\n throw new Error(`can't find weekday parsha for ${saturday}/${il}`);\n }\n}\n\n/**\n * The 54 parshiyot of the Torah as transilterated strings.\n * * parshiot[0] == `Bereshit`\n * * parshiot[1] == `Noach`\n * * parshiot[52] == `Ha'azinu`\n * * parshiot[53] == `Vezot Haberakhah`\n * @readonly\n * @type {string[]}\n */\nexport const parshiot: readonly string[] = [\n 'Bereshit',\n 'Noach',\n 'Lech-Lecha',\n 'Vayera',\n 'Chayei Sara',\n 'Toldot',\n 'Vayetzei',\n 'Vayishlach',\n 'Vayeshev',\n 'Miketz',\n 'Vayigash',\n 'Vayechi',\n 'Shemot',\n 'Vaera',\n 'Bo',\n 'Beshalach',\n 'Yitro',\n 'Mishpatim',\n 'Terumah',\n 'Tetzaveh',\n 'Ki Tisa',\n 'Vayakhel',\n 'Pekudei',\n 'Vayikra',\n 'Tzav',\n 'Shmini',\n 'Tazria',\n 'Metzora',\n 'Achrei Mot',\n 'Kedoshim',\n 'Emor',\n 'Behar',\n 'Bechukotai',\n 'Bamidbar',\n 'Nasso',\n \"Beha'alotcha\",\n \"Sh'lach\",\n 'Korach',\n 'Chukat',\n 'Balak',\n 'Pinchas',\n 'Matot',\n 'Masei',\n 'Devarim',\n 'Vaetchanan',\n 'Eikev',\n \"Re'eh\",\n 'Shoftim',\n 'Ki Teitzei',\n 'Ki Tavo',\n 'Nitzavim',\n 'Vayeilech',\n \"Ha'azinu\",\n 'Vezot Haberakhah',\n] as const;\n\n// 0-based parsha IDs\nconst parsha2id = new Map<string, number>();\nfor (let id = 0; id < parshiot.length; id++) {\n const name = parshiot[id];\n parsha2id.set(name, id);\n}\n\n// 0-based parsha IDs\nconst doubles = new Set([\n 21, // Vayakhel-Pekudei\n 26, // Tazria-Metzora\n 28, // Achrei Mot-Kedoshim\n 31, // Behar-Bechukotai\n 38, // Chukat-Balak\n 41, // Matot-Masei\n 50, // Nitzavim-Vayeilech\n]);\n\n/**\n * @private\n * @param id a negative number\n */\nfunction isValidDouble(id: number): boolean {\n return doubles.has(-id);\n}\n\n/**\n * parsha doubler/undoubler\n * @private\n * @param p\n */\nfunction D(p: number): number {\n return -p;\n}\n\nconst RH = 'Rosh Hashana'; // 0\nconst YK = 'Yom Kippur'; // 1\n\nconst SUKKOT = 'Sukkot'; // 0\nconst CHMSUKOT = 'Sukkot Shabbat Chol ha-Moed'; // 0\nconst SHMINI = 'Shmini Atzeret'; // 0\n\nconst PESACH = 'Pesach'; // 25\nconst PESACH1 = 'Pesach I';\nconst CHMPESACH = 'Pesach Shabbat Chol ha-Moed'; // 25\nconst PESACH7 = 'Pesach VII'; // 25\nconst PESACH8 = 'Pesach VIII';\nconst SHAVUOT = 'Shavuot'; // 33\n\n/**\n * Returns an array from start to end\n * @private\n * @param start beginning number, inclusive\n * @param stop ending number, inclusive\n */\nfunction range(start: number, stop: number): readonly number[] {\n return Array.from({length: stop - start + 1}, (v, k) => k + start);\n}\n\n/**\n * An entry in the array returned by {@link Sedra.getSedraArray}: either a\n * `number` identifying a parsha (or, when negative, a doubled parsha) or a\n * `string` naming the holiday that displaces the weekly reading.\n */\nexport type NumberOrString = number | string;\n\nconst yearStartVayeilech: readonly NumberOrString[] = [51, 52, CHMSUKOT];\nconst yearStartHaazinu: readonly NumberOrString[] = [52, YK, CHMSUKOT];\nconst yearStartRH: readonly NumberOrString[] = [RH, 52, SUKKOT, SHMINI];\nconst r020 = range(0, 20);\nconst r027 = range(0, 27);\nconst r3340 = range(33, 40);\nconst r4349 = range(43, 49);\nconst r4350 = range(43, 50);\n\n/**\n * The ordinary year types (keviot)\n * names are leap/nonleap - day - incomplete/regular/complete - diaspora/Israel\n * @private\n * @readonly\n */\nconst types: Record<string, readonly NumberOrString[]> = {\n /* Hebrew year that starts on Monday, is `incomplete' (Heshvan and\n * Kislev each have 29 days), and has Passover start on Tuesday. */\n // e.g. 5753\n '020': yearStartVayeilech.concat(\n r020,\n D(21),\n 23,\n 24,\n CHMPESACH,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4349,\n D(50)\n ),\n\n /* Hebrew year that starts on Monday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Thursday. */\n // e.g. 5756\n '0220': yearStartVayeilech.concat(\n r020,\n D(21),\n 23,\n 24,\n CHMPESACH,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n 33,\n SHAVUOT,\n range(34, 37),\n D(38),\n 40,\n D(41),\n r4349,\n D(50)\n ),\n\n /* Hebrew year that starts on Thursday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Saturday. */\n // e.g. 5701\n '0510': yearStartHaazinu.concat(\n r020,\n D(21),\n 23,\n 24,\n PESACH1,\n PESACH8,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Thursday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Saturday. */\n // e.g. 5745\n '0511': yearStartHaazinu.concat(\n r020,\n D(21),\n 23,\n 24,\n PESACH,\n 25,\n D(26),\n D(28),\n range(30, 40),\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Thursday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Sunday. */\n // e.g. 5754\n '052': yearStartHaazinu.concat(\n range(0, 24),\n PESACH7,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Saturday, is `incomplete' (Heshvan and Kislev\n * each have 29 days), and has Passover start on Sunday. */\n // e.g. 5761\n '070': yearStartRH.concat(\n r020,\n D(21),\n 23,\n 24,\n PESACH7,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Saturday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Tuesday. */\n // e.g. 5716\n '072': yearStartRH.concat(\n r020,\n D(21),\n 23,\n 24,\n CHMPESACH,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4349,\n D(50)\n ),\n\n /* -- The leap year types (keviot) -- */\n /* Hebrew year that starts on Monday, is `incomplete' (Heshvan and\n * Kislev each have 29 days), and has Passover start on Thursday. */\n // e.g. 5746\n '1200': yearStartVayeilech.concat(\n r027,\n CHMPESACH,\n range(28, 33),\n SHAVUOT,\n range(34, 37),\n D(38),\n 40,\n D(41),\n r4349,\n D(50)\n ),\n\n /* Hebrew year that starts on Monday, is `incomplete' (Heshvan and\n * Kislev each have 29 days), and has Passover start on Thursday. */\n // e.g. 5746\n '1201': yearStartVayeilech.concat(\n r027,\n CHMPESACH,\n range(28, 40),\n D(41),\n r4349,\n D(50)\n ),\n\n /* Hebrew year that starts on Monday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Saturday. */\n // e.g.5752\n '1220': yearStartVayeilech.concat(\n r027,\n PESACH1,\n PESACH8,\n range(28, 40),\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Monday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Saturday. */\n // e.g.5752\n '1221': yearStartVayeilech.concat(r027, PESACH, range(28, 50)),\n\n /* Hebrew year that starts on Thursday, is `incomplete' (Heshvan and\n * Kislev both have 29 days), and has Passover start on Sunday. */\n // e.g. 5768\n '150': yearStartHaazinu.concat(range(0, 28), PESACH7, range(29, 50)),\n\n /* Hebrew year that starts on Thursday, is `complete' (Heshvan and\n * Kislev both have 30 days), and has Passover start on Tuesday. */\n // eg. 5771\n '152': yearStartHaazinu.concat(range(0, 28), CHMPESACH, range(29, 49), D(50)),\n\n /* Hebrew year that starts on Saturday, is `incomplete' (Heshvan and\n * Kislev each have 29 days), and has Passover start on Tuesday. */\n // e.g.5757\n '170': yearStartRH.concat(r027, CHMPESACH, range(28, 40), D(41), r4349, D(50)),\n\n /* Hebrew year that starts on Saturday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Thursday. */\n '1720': yearStartRH.concat(\n r027,\n CHMPESACH,\n range(28, 33),\n SHAVUOT,\n range(34, 37),\n D(38),\n 40,\n D(41),\n r4349,\n D(50)\n ),\n} as const;\n\n/* Hebrew year that starts on Monday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Thursday. */\ntypes['0221'] = types['020'];\n\n/* Hebrew year that starts on Tuesday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Thursday. */\n// e.g. 5715\ntypes['0310'] = types['0220'];\n\n/* Hebrew year that starts on Tuesday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Thursday. */\ntypes['0311'] = types['020'];\n\n/* Hebrew year that starts on Tuesday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Saturday. */\n// e.g. 5715\ntypes['1310'] = types['1220'];\n/* Hebrew year that starts on Tuesday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Saturday. */\ntypes['1311'] = types['1221'];\n\n/* Hebrew year that starts on Saturday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Thursday. */\ntypes['1721'] = types['170'];\n\nconst sedraCache = new QuickLRU<string, Sedra>({maxSize: 120});\n\n/**\n * Convenience function to create an instance of {@link Sedra} or reuse a\n * previously created and cached instance for the same year and schedule.\n *\n * Prefer this over `new Sedra(...)` when calling repeatedly — an internal\n * LRU cache (~120 entries) avoids recomputing the keviyah-specific schedule.\n * @example\n * import {getSedra, HDate, months} from '@hebcal/core';\n * const sedra = getSedra(5784, false);\n * const {parsha} = sedra.lookup(new HDate(15, months.CHESHVAN, 5784));\n * console.log(parsha); // ['Vayera']\n * @param hyear Hebrew year\n * @param il Use Israel sedra schedule (`false` for Diaspora)\n */\nexport function getSedra(hyear: number, il: boolean): Sedra {\n const cacheKey = `${hyear}-${il ? 1 : 0}`;\n let sedra = sedraCache.get(cacheKey);\n if (!sedra) {\n sedra = new Sedra(hyear, il);\n sedraCache.set(cacheKey, sedra);\n }\n return sedra;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sedra.js","sources":["../../../src/sedra.ts"],"sourcesContent":["/*\n Hebcal - A Jewish Calendar Generator\n Copyright (c) 1994-2020 Danny Sadinoff\n Portions copyright Eyal Schachter and Michael J. Radwin\n\n https://github.com/hebcal/hebcal-es6\n\n This program is free software; you can redistribute it and/or\n modify it under the terms of the GNU General Public License\n as published by the Free Software Foundation; either version 2\n of the License, or (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/*\n * Many of the following algorithms were taken from hebrew calendar\n * routines by Maimonedes, from his Mishneh Torah, and implemented by\n * Nachum Dershowitz Department of Computer Science\n * (217) 333-4219 University of Illinois at Urbana-Champaign\n * nachum@cs.uiuedu 1304 West Springfield Avenue\n * Urbana, Illinois 61801\n *\n * The routines were included in the emacs 19 distribution.\n *\n */\nimport {HDate, months} from '@hebcal/hdate';\nimport QuickLRU from 'quick-lru';\nimport './locale.js'; // Adds Hebrew and Ashkenazic translations\n\nconst INCOMPLETE = 0;\nconst REGULAR = 1;\nconst COMPLETE = 2;\n\nfunction yearType(hyear: number): number {\n const longC = HDate.longCheshvan(hyear);\n const shortK = HDate.shortKislev(hyear);\n if (longC && !shortK) {\n return COMPLETE;\n }\n if (!longC && shortK) {\n return INCOMPLETE;\n }\n return REGULAR;\n}\n\n/** The result from `Sedra.lookup()` */\nexport type SedraResult = {\n /**\n * Name of the parsha (or parshiyot) read on\n * Hebrew date, e.g. `['Noach']` or `['Matot', 'Masei']`\n */\n parsha: string[];\n /**\n * False if this is a regular parashat HaShavua reading.\n * True if it's a special holiday reading.\n */\n chag: boolean;\n /**\n * The parsha number (or numbers) using 1-indexing.\n * A `number` for a regular (single) parsha, and a `number[]`\n * for a doubled parsha.\n * For Parashat *Bereshit*, `num` would be equal to `1`, and for\n * *Matot-Masei* it would be `[42, 43]`\n * For a chag (holiday) reading, `num` will be `0`.\n */\n num: number | number[];\n /** The date of the Shabbat this parsha is read */\n hdate: HDate;\n /** true if Israel, false for Diaspora */\n il: boolean;\n};\n\n/**\n * Represents the weekly Torah-reading (Parashat HaShavua) schedule for an\n * entire Hebrew year.\n *\n * The schedule depends on the year's *keviyah* — the day of week of Rosh\n * Hashana, whether the year is leap, whether Cheshvan/Kislev are long or\n * short, and whether the schedule is for Israel or the Diaspora (since\n * Israel and the Diaspora diverge in some years when the 8th day of Pesach\n * or the 2nd day of Shavuot fall on Shabbat).\n *\n * Prefer {@link getSedra} over\n * calling this constructor directly, since both cache their results.\n *\n * @example\n * import {Sedra, HDate, months} from '@hebcal/core';\n * const sedra = new Sedra(5784, false);\n * const result = sedra.lookup(new HDate(15, months.CHESHVAN, 5784));\n * console.log(result.parsha); // ['Vayera']\n */\nexport class Sedra {\n private readonly year: number;\n private readonly il: boolean;\n private readonly rh: number;\n private readonly firstSaturday: number;\n private readonly theSedraArray: readonly NumberOrString[];\n private readonly yearKey: string;\n /**\n * Calculates the Parashat HaShavua schedule for an entire Hebrew year.\n * @param hyear - Hebrew year (e.g. 5749)\n * @param il - Use Israel sedra schedule (false for Diaspora)\n */\n constructor(hyear: number, il: boolean) {\n hyear = +hyear;\n this.year = hyear;\n\n const rh0 = new HDate(1, months.TISHREI, hyear);\n const rh = (this.rh = rh0.abs());\n const rhDay = rh0.getDay() + 1;\n\n // find the first Saturday on or after Rosh Hashana\n this.firstSaturday = HDate.dayOnOrBefore(6, rh + 6);\n const leap = +HDate.isLeapYear(hyear);\n this.il = Boolean(il);\n\n const type = yearType(hyear);\n let key = `${leap}${rhDay}${type}`;\n if (types[key]) {\n this.theSedraArray = types[key];\n this.yearKey = key;\n } else {\n key = key + +this.il; // cast to num, then concat\n this.theSedraArray = types[key];\n this.yearKey = key;\n }\n\n if (!this.theSedraArray) {\n throw new Error(`improper sedra year type ${key} calculated for ${hyear}`);\n }\n }\n\n /**\n * Returns the date a parsha is read this year, or `null` if it does not\n * occur in this year's schedule.\n *\n * A doubled parsha (e.g. `'Matot-Masei'`) will only return a date in years\n * where that pair is actually read together; in years where they are read\n * separately, this returns `null`. Use {@link findContaining} to find the\n * date a parsha is read regardless of whether it is doubled.\n *\n * Throws `RangeError` for an out-of-range numeric input or an invalid\n * doubled-parsha pair, and `TypeError` for a malformed array argument.\n * @example\n * import {Sedra} from '@hebcal/core';\n * const sedra = new Sedra(5784, false);\n * sedra.find('Noach')?.toString(); // '6 Cheshvan 5784'\n * sedra.find(1)?.toString(); // '6 Cheshvan 5784', by 0-based index\n * // Matot and Masei are doubled in 5784, so the pair has a date...\n * sedra.find('Matot-Masei')?.toString(); // '28 Tamuz 5784'\n * sedra.find(['Matot', 'Masei'])?.toString(); // '28 Tamuz 5784'\n * // ...but neither half is read on its own that year:\n * sedra.find('Matot'); // null\n * @param parsha if a `string`, specified with Sephardic transliterations\n * like `'Noach'` or `'Matot-Masei'`. If an array, must be a 1- or 2-element\n * array such as `['Noach']` or `['Matot', 'Masei']`. If a `number`, should\n * be a 0-based parsha index (`0` for Bereshit, `1` for Noach) or a negative\n * number for a doubled parsha (e.g. `-21` for Vayakhel-Pekudei).\n * Note that this index is 0-based, unlike {@link SedraResult.num} which\n * is 1-based.\n */\n find(parsha: number | string | string[]): HDate | null {\n if (typeof parsha === 'number') {\n if (parsha >= parshiot.length || (parsha < 0 && !isValidDouble(parsha))) {\n throw new RangeError(`Invalid parsha number: ${parsha}`);\n }\n return this.findInternal(parsha);\n }\n if (typeof parsha === 'string') {\n const num = parsha2id.get(parsha);\n if (typeof num === 'number') {\n return this.find(num);\n }\n if (parsha.includes('-')) {\n if (parsha === CHMPESACH || parsha === CHMSUKOT) {\n return this.findInternal(parsha);\n }\n return this.find(parsha.split('-'));\n }\n // try to find Saturday holiday like 'Yom Kippur'\n return this.findInternal(parsha);\n }\n if (Array.isArray(parsha)) {\n const plen = parsha.length;\n if ((plen !== 1 && plen !== 2) || typeof parsha[0] !== 'string') {\n throw new TypeError(`Invalid parsha argument: ${JSON.stringify(parsha)}`);\n }\n if (plen === 1) {\n return this.find(parsha[0]);\n }\n const p1 = parsha[0];\n const p2 = parsha[1];\n const num1 = parsha2id.get(p1);\n const num2 = parsha2id.get(p2);\n if (\n typeof num1 !== 'number' ||\n typeof num2 !== 'number' ||\n num2 !== num1 + 1 ||\n !isValidDouble(-num1)\n ) {\n throw new RangeError(`Unrecognized parsha name: ${p1}-${p2}`);\n }\n return this.find(-num1);\n }\n return null; /* NOTREACHED */\n }\n\n private findInternal(parsha: NumberOrString): HDate | null {\n const idx = this.theSedraArray.indexOf(parsha);\n if (idx === -1) {\n return null; // doesn't occur this year\n }\n return new HDate(this.firstSaturday + idx * 7);\n }\n\n /**\n * Returns the date a parsha is read this year, looking through both\n * single and doubled forms.\n *\n * For example, if `'Matot'` is read individually this year, this returns\n * its date; if it is read as part of `'Matot-Masei'` this year, this\n * returns the date of `'Matot-Masei'` (and similarly for `'Masei'`).\n * Conversely, asking for `'Matot-Masei'` in a year where they are split\n * will return the date of `'Matot'` alone.\n * @example\n * import {Sedra} from '@hebcal/core';\n * // Matot and Masei are doubled in 5784, so each half resolves to the\n * // date of the combined reading:\n * const sedra = new Sedra(5784, false);\n * sedra.findContaining('Matot')?.toString(); // '28 Tamuz 5784'\n * sedra.findContaining('Masei')?.toString(); // '28 Tamuz 5784'\n * @example\n * import {Sedra} from '@hebcal/core';\n * // They are read separately in 5795, so each half has its own date, and\n * // asking for the doubled name returns the date of the first half:\n * const sedra = new Sedra(5795, false);\n * sedra.findContaining('Matot')?.toString(); // '21 Tamuz 5795'\n * sedra.findContaining('Masei')?.toString(); // '28 Tamuz 5795'\n * sedra.findContaining('Matot-Masei')?.toString(); // '21 Tamuz 5795'\n */\n findContaining(parsha: number | string): HDate | null {\n const hdate = this.find(parsha);\n if (hdate) {\n return hdate;\n }\n if (typeof parsha === 'number') {\n // a valid negative number (double parsha in a year where they are\n // combined) would've been found above, and a invalid negative number\n // would've thrown an error, so this parsha must be a positive number\n // representing either p1 or p2\n const p1 = -parsha;\n if (isValidDouble(p1)) {\n return this.find(p1);\n } else {\n // this must be the second individual parsha of a doubled pair\n // for example 29 for Kedoshim, so check for -28 for Achrei Mot-Kedoshim\n return this.find(p1 + 1);\n }\n } else {\n const num = parsha2id.get(parsha);\n if (num) {\n // parsha is either the first or second individual parsha of\n // a pair that is doubled this year\n const p1 = -num;\n if (isValidDouble(p1)) {\n return this.find(p1);\n } else {\n return this.find(p1 + 1);\n }\n } else {\n // this was indeed a doubled parsha, so return date of the first half\n const [p1] = parsha.split('-');\n return this.find(p1);\n }\n }\n }\n\n /**\n * Returns the underlying annual reading schedule as an array, where each\n * entry corresponds to one Saturday (starting from the first Shabbat on\n * or after Rosh Hashana). Entries are either:\n * - a non-negative `number`: a 0-based parsha index (e.g. `0` for\n * *Bereshit*)\n * - a negative `number`: the negated first index of a doubled parsha\n * (e.g. `-21` for *Vayakhel-Pekudei*)\n * - a `string`: a holiday name when a Yom Tov displaces the weekly reading\n * (e.g. `'Pesach Shabbat Chol ha-Moed'`, `'Yom Kippur'`)\n *\n * Used by `@hebcal/triennial`.\n */\n getSedraArray(): readonly NumberOrString[] {\n return this.theSedraArray;\n }\n\n /**\n * Returns the R.D. (Rata Die / Fixed Date) absolute day number of the\n * first Saturday on or after Rosh Hashana of this year. This is the\n * anchor point for {@link getSedraArray} — index `0` of that array\n * corresponds to this date.\n */\n getFirstSaturday(): number {\n return this.firstSaturday;\n }\n\n /** Returns the Hebrew year this `Sedra` instance covers. */\n getYear(): number {\n return this.year;\n }\n\n /**\n * Returns details about the parsha read on the first Saturday on or after\n * `hd`. If `hd` is itself a Saturday, the reading for that date is\n * returned; otherwise the reading for the upcoming Saturday is returned.\n *\n * If the given date falls in the final days of the Hebrew year (after\n * the last reading of this year's schedule), this method transparently\n * delegates to the next year's `Sedra`.\n * @example\n * import {Sedra, HDate, months} from '@hebcal/core';\n * const sedra = new Sedra(5784, false);\n * // A Friday — returns the upcoming Shabbat's reading\n * const result = sedra.lookup(new HDate(12, months.CHESHVAN, 5784));\n * console.log(result.parsha); // ['Lech-Lecha']\n * console.log(result.chag); // false\n * console.log(result.hdate.toString()); // '13 Cheshvan 5784' (Saturday)\n * @param hd Hebrew date or R.D. days\n */\n lookup(hd: HDate | number): SedraResult {\n const abs = typeof hd === 'number' ? hd : HDate.isHDate(hd) ? hd.abs() : NaN;\n\n if (isNaN(abs)) {\n throw new TypeError(`Bad date argument: ${hd}`);\n }\n if (abs < this.rh) {\n throw new RangeError(`Date ${hd} before start of Hebrew year ${this.year}`);\n }\n\n // find the first saturday on or after today's date\n const saturday = HDate.dayOnOrBefore(6, abs + 6);\n\n const weekNum = (saturday - this.firstSaturday) / 7;\n const index = this.theSedraArray[weekNum];\n\n if (index === undefined) {\n const sedra = getSedra(this.year + 1, this.il);\n return sedra.lookup(saturday); // must be next year\n }\n const hdate = new HDate(saturday);\n if (typeof index === 'string') {\n // Shabbat has a chag. Return a description\n return {parsha: [index], chag: true, hdate, il: this.il, num: 0};\n }\n if (index >= 0) {\n return {\n parsha: [parshiot[index]],\n chag: false,\n num: index + 1,\n hdate,\n il: this.il,\n };\n }\n\n const p1 = D(index); // undouble the parsha\n return {\n parsha: [parshiot[p1], parshiot[p1 + 1]],\n chag: false,\n num: [p1 + 1, p1 + 2],\n hdate,\n il: this.il,\n };\n }\n\n /**\n * Returns details about the parsha read on Monday or Thursday for `hd`, or\n * `undefined` if `hd` is not a Monday or Thursday.\n *\n * Weekday Torah readings generally begin the upcoming Shabbat parsha. When\n * the upcoming Shabbat is a holiday, this method returns the next regular\n * parsha instead.\n *\n * For the Tishrei weekdays before Sukkot or Simchat Torah, the weekday\n * reading is *Vezot Haberakhah* even though it is not read on Shabbat.\n * @example\n * import {Sedra, HDate, months} from '@hebcal/core';\n * const sedra = new Sedra(5784, false);\n * // Monday 8 Cheshvan — begins the upcoming Shabbat's parsha\n * sedra.lookupWeekday(new HDate(8, months.CHESHVAN, 5784))?.parsha; // ['Lech-Lecha']\n * // Tuesday is neither Monday nor Thursday\n * sedra.lookupWeekday(new HDate(9, months.CHESHVAN, 5784)); // undefined\n * // Thursday 17 Nisan — the upcoming Shabbat is Chol ha-Moed Pesach,\n * // so the next regular parsha is returned instead\n * sedra.lookupWeekday(new HDate(17, months.NISAN, 5784))?.parsha; // ['Achrei Mot']\n * @param hd Hebrew date or R.D. days\n */\n lookupWeekday(hd: HDate | number): SedraResult | undefined {\n const abs = typeof hd === 'number' ? hd : HDate.isHDate(hd) ? hd.abs() : NaN;\n\n if (isNaN(abs)) {\n throw new TypeError(`Bad date argument: ${hd}`);\n }\n if (abs < this.rh) {\n throw new RangeError(`Date ${hd} before start of Hebrew year ${this.year}`);\n }\n\n const hdate = new HDate(abs);\n const day = hdate.getDay();\n if (day !== 1 && day !== 4) {\n return undefined;\n }\n\n const saturday = new HDate(HDate.dayOnOrBefore(6, abs + 6));\n const parsha = this.lookup(saturday);\n if (!parsha.chag) {\n return parsha;\n }\n return this.findWeekdayParsha(saturday);\n }\n\n private findWeekdayParsha(saturday: HDate): SedraResult {\n const hyear = saturday.getFullYear();\n const il = this.il;\n\n if (saturday.getMonth() === months.TISHREI) {\n const dd = saturday.getDate();\n const simchatTorah = il ? 22 : 23;\n if (dd > 2 && dd <= simchatTorah) {\n return {\n parsha: ['Vezot Haberakhah'],\n chag: false,\n num: 54,\n hdate: saturday,\n il,\n };\n }\n }\n\n const sedra = hyear === this.year ? this : getSedra(hyear, il);\n const endOfYear = new HDate(1, months.TISHREI, hyear + 1).abs() - 1;\n const endAbs = endOfYear + 30;\n for (let sat2 = saturday.abs() + 7; sat2 <= endAbs; sat2 += 7) {\n const sedra2 = sat2 > endOfYear ? getSedra(hyear + 1, il) : sedra;\n const parsha2 = sedra2.lookup(sat2);\n if (!parsha2.chag) {\n return parsha2;\n }\n }\n /* NOTREACHED */\n throw new Error(`can't find weekday parsha for ${saturday}/${il}`);\n }\n}\n\n/**\n * The 54 parshiyot of the Torah as transilterated strings.\n * * parshiot[0] == `Bereshit`\n * * parshiot[1] == `Noach`\n * * parshiot[52] == `Ha'azinu`\n * * parshiot[53] == `Vezot Haberakhah`\n * @readonly\n * @type {string[]}\n */\nexport const parshiot: readonly string[] = [\n 'Bereshit',\n 'Noach',\n 'Lech-Lecha',\n 'Vayera',\n 'Chayei Sara',\n 'Toldot',\n 'Vayetzei',\n 'Vayishlach',\n 'Vayeshev',\n 'Miketz',\n 'Vayigash',\n 'Vayechi',\n 'Shemot',\n 'Vaera',\n 'Bo',\n 'Beshalach',\n 'Yitro',\n 'Mishpatim',\n 'Terumah',\n 'Tetzaveh',\n 'Ki Tisa',\n 'Vayakhel',\n 'Pekudei',\n 'Vayikra',\n 'Tzav',\n 'Shmini',\n 'Tazria',\n 'Metzora',\n 'Achrei Mot',\n 'Kedoshim',\n 'Emor',\n 'Behar',\n 'Bechukotai',\n 'Bamidbar',\n 'Nasso',\n \"Beha'alotcha\",\n \"Sh'lach\",\n 'Korach',\n 'Chukat',\n 'Balak',\n 'Pinchas',\n 'Matot',\n 'Masei',\n 'Devarim',\n 'Vaetchanan',\n 'Eikev',\n \"Re'eh\",\n 'Shoftim',\n 'Ki Teitzei',\n 'Ki Tavo',\n 'Nitzavim',\n 'Vayeilech',\n \"Ha'azinu\",\n 'Vezot Haberakhah',\n] as const;\n\n// 0-based parsha IDs\nconst parsha2id = new Map<string, number>();\nfor (let id = 0; id < parshiot.length; id++) {\n const name = parshiot[id];\n parsha2id.set(name, id);\n}\n\n// 0-based parsha IDs\nconst doubles = new Set([\n 21, // Vayakhel-Pekudei\n 26, // Tazria-Metzora\n 28, // Achrei Mot-Kedoshim\n 31, // Behar-Bechukotai\n 38, // Chukat-Balak\n 41, // Matot-Masei\n 50, // Nitzavim-Vayeilech\n]);\n\n/**\n * @private\n * @param id a negative number\n */\nfunction isValidDouble(id: number): boolean {\n return doubles.has(-id);\n}\n\n/**\n * parsha doubler/undoubler\n * @private\n * @param p\n */\nfunction D(p: number): number {\n return -p;\n}\n\nconst RH = 'Rosh Hashana'; // 0\nconst YK = 'Yom Kippur'; // 1\n\nconst SUKKOT = 'Sukkot'; // 0\nconst CHMSUKOT = 'Sukkot Shabbat Chol ha-Moed'; // 0\nconst SHMINI = 'Shmini Atzeret'; // 0\n\nconst PESACH = 'Pesach'; // 25\nconst PESACH1 = 'Pesach I';\nconst CHMPESACH = 'Pesach Shabbat Chol ha-Moed'; // 25\nconst PESACH7 = 'Pesach VII'; // 25\nconst PESACH8 = 'Pesach VIII';\nconst SHAVUOT = 'Shavuot'; // 33\n\n/**\n * Returns an array from start to end\n * @private\n * @param start beginning number, inclusive\n * @param stop ending number, inclusive\n */\nfunction range(start: number, stop: number): readonly number[] {\n return Array.from({length: stop - start + 1}, (v, k) => k + start);\n}\n\n/**\n * An entry in the array returned by {@link Sedra.getSedraArray}: either a\n * `number` identifying a parsha (or, when negative, a doubled parsha) or a\n * `string` naming the holiday that displaces the weekly reading.\n */\nexport type NumberOrString = number | string;\n\nconst yearStartVayeilech: readonly NumberOrString[] = [51, 52, CHMSUKOT];\nconst yearStartHaazinu: readonly NumberOrString[] = [52, YK, CHMSUKOT];\nconst yearStartRH: readonly NumberOrString[] = [RH, 52, SUKKOT, SHMINI];\nconst r020 = range(0, 20);\nconst r027 = range(0, 27);\nconst r3340 = range(33, 40);\nconst r4349 = range(43, 49);\nconst r4350 = range(43, 50);\n\n/**\n * The ordinary year types (keviot)\n * names are leap/nonleap - day - incomplete/regular/complete - diaspora/Israel\n * @private\n * @readonly\n */\nconst types: Record<string, readonly NumberOrString[]> = {\n /* Hebrew year that starts on Monday, is `incomplete' (Heshvan and\n * Kislev each have 29 days), and has Passover start on Tuesday. */\n // e.g. 5753\n '020': yearStartVayeilech.concat(\n r020,\n D(21),\n 23,\n 24,\n CHMPESACH,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4349,\n D(50)\n ),\n\n /* Hebrew year that starts on Monday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Thursday. */\n // e.g. 5756\n '0220': yearStartVayeilech.concat(\n r020,\n D(21),\n 23,\n 24,\n CHMPESACH,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n 33,\n SHAVUOT,\n range(34, 37),\n D(38),\n 40,\n D(41),\n r4349,\n D(50)\n ),\n\n /* Hebrew year that starts on Thursday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Saturday. */\n // e.g. 5701\n '0510': yearStartHaazinu.concat(\n r020,\n D(21),\n 23,\n 24,\n PESACH1,\n PESACH8,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Thursday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Saturday. */\n // e.g. 5745\n '0511': yearStartHaazinu.concat(\n r020,\n D(21),\n 23,\n 24,\n PESACH,\n 25,\n D(26),\n D(28),\n range(30, 40),\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Thursday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Sunday. */\n // e.g. 5754\n '052': yearStartHaazinu.concat(\n range(0, 24),\n PESACH7,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Saturday, is `incomplete' (Heshvan and Kislev\n * each have 29 days), and has Passover start on Sunday. */\n // e.g. 5761\n '070': yearStartRH.concat(\n r020,\n D(21),\n 23,\n 24,\n PESACH7,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Saturday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Tuesday. */\n // e.g. 5716\n '072': yearStartRH.concat(\n r020,\n D(21),\n 23,\n 24,\n CHMPESACH,\n 25,\n D(26),\n D(28),\n 30,\n D(31),\n r3340,\n D(41),\n r4349,\n D(50)\n ),\n\n /* -- The leap year types (keviot) -- */\n /* Hebrew year that starts on Monday, is `incomplete' (Heshvan and\n * Kislev each have 29 days), and has Passover start on Thursday. */\n // e.g. 5746\n '1200': yearStartVayeilech.concat(\n r027,\n CHMPESACH,\n range(28, 33),\n SHAVUOT,\n range(34, 37),\n D(38),\n 40,\n D(41),\n r4349,\n D(50)\n ),\n\n /* Hebrew year that starts on Monday, is `incomplete' (Heshvan and\n * Kislev each have 29 days), and has Passover start on Thursday. */\n // e.g. 5746\n '1201': yearStartVayeilech.concat(\n r027,\n CHMPESACH,\n range(28, 40),\n D(41),\n r4349,\n D(50)\n ),\n\n /* Hebrew year that starts on Monday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Saturday. */\n // e.g.5752\n '1220': yearStartVayeilech.concat(\n r027,\n PESACH1,\n PESACH8,\n range(28, 40),\n D(41),\n r4350\n ),\n\n /* Hebrew year that starts on Monday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Saturday. */\n // e.g.5752\n '1221': yearStartVayeilech.concat(r027, PESACH, range(28, 50)),\n\n /* Hebrew year that starts on Thursday, is `incomplete' (Heshvan and\n * Kislev both have 29 days), and has Passover start on Sunday. */\n // e.g. 5768\n '150': yearStartHaazinu.concat(range(0, 28), PESACH7, range(29, 50)),\n\n /* Hebrew year that starts on Thursday, is `complete' (Heshvan and\n * Kislev both have 30 days), and has Passover start on Tuesday. */\n // eg. 5771\n '152': yearStartHaazinu.concat(range(0, 28), CHMPESACH, range(29, 49), D(50)),\n\n /* Hebrew year that starts on Saturday, is `incomplete' (Heshvan and\n * Kislev each have 29 days), and has Passover start on Tuesday. */\n // e.g.5757\n '170': yearStartRH.concat(r027, CHMPESACH, range(28, 40), D(41), r4349, D(50)),\n\n /* Hebrew year that starts on Saturday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Thursday. */\n '1720': yearStartRH.concat(\n r027,\n CHMPESACH,\n range(28, 33),\n SHAVUOT,\n range(34, 37),\n D(38),\n 40,\n D(41),\n r4349,\n D(50)\n ),\n} as const;\n\n/* Hebrew year that starts on Monday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Thursday. */\ntypes['0221'] = types['020'];\n\n/* Hebrew year that starts on Tuesday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Thursday. */\n// e.g. 5715\ntypes['0310'] = types['0220'];\n\n/* Hebrew year that starts on Tuesday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Thursday. */\ntypes['0311'] = types['020'];\n\n/* Hebrew year that starts on Tuesday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Saturday. */\n// e.g. 5715\ntypes['1310'] = types['1220'];\n/* Hebrew year that starts on Tuesday, is `regular' (Heshvan has 29\n * days and Kislev has 30 days), and has Passover start on Saturday. */\ntypes['1311'] = types['1221'];\n\n/* Hebrew year that starts on Saturday, is `complete' (Heshvan and\n * Kislev each have 30 days), and has Passover start on Thursday. */\ntypes['1721'] = types['170'];\n\nconst sedraCache = new QuickLRU<string, Sedra>({maxSize: 120});\n\n/**\n * Convenience function to create an instance of {@link Sedra} or reuse a\n * previously created and cached instance for the same year and schedule.\n *\n * Prefer this over `new Sedra(...)` when calling repeatedly — an internal\n * LRU cache (~120 entries) avoids recomputing the keviyah-specific schedule.\n * @example\n * import {getSedra, HDate, months} from '@hebcal/core';\n * const sedra = getSedra(5784, false);\n * const {parsha} = sedra.lookup(new HDate(15, months.CHESHVAN, 5784));\n * console.log(parsha); // ['Vayera']\n * @param hyear Hebrew year\n * @param il Use Israel sedra schedule (`false` for Diaspora)\n */\nexport function getSedra(hyear: number, il: boolean): Sedra {\n const cacheKey = `${hyear}-${il ? 1 : 0}`;\n let sedra = sedraCache.get(cacheKey);\n if (!sedra) {\n sedra = new Sedra(hyear, il);\n sedraCache.set(cacheKey, sedra);\n }\n return sedra;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ ps67lines: string[];
3
+ lamnatzeachLetters: string;
4
+ anaBekoach: string[];
5
+ };
6
+ export default _default;
@@ -1,5 +1,67 @@
1
- /*! @hebcal/core v6.9.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
- const ps67lines=["אֱלֹהִים יְחָנֵּנוּ וִיבָרְכֵנוּ יָאֵר־פָּנָיו אִתָּנוּ סֶלָה","לָדַעַת בָּאָרֶץ דַּרְכֶּךָ בְּכָל־גּוֹיִם יְשׁוּעָתֶךָ","יוֹדוּךָ עַמִּים אֱלֹהִים יוֹדוּךָ עַמִּים כֻּלָּם","יִשְׂמְחוּ וִירַנְּנוּ לְאֻמִּים כִּי־תִשְׁפֹּט עַמִּים מִישׁוֹר וּלְאֻמִּים בָּאָרֶץ תַּנחֵם סֶלָה","יוֹדוּךָ עַמִּים אֱלֹהִים יוֹדוּךָ עַמִּים כֻּלָּם","אֶרֶץ נָתְנָה יְבוּלָהּ יְבָרְכֵנוּ אֱלֹהִים אֱלֹהֵינוּ","יְבָרְכֵנוּ אֱלֹהִים וְיִירְאוּ אוֹתוֹ כָּל־אַפְסֵי־אָרֶץ"];const lamnatzeachLetters="ישמחווירננולאמיםכיתשפוטעמיםמישורולאמיםבארץתנחםסלה";const anaBekoach=["אָנָּא","בְּכֹחַ","גְּדֻלַּת","יְמִינְךָ","תַּתִּיר","צְרוּרָה","אב״ג ית״ץ","קַבֵּל","רִנַּת","עַמְּךָ","שַׂגְּבֵנוּ","טַהֲרֵנוּ","נוֹרָא","קר״ע שט״ן","נָא","גִבּוֹר","דּוֹרְשֵׁי","יִחוּדְךָ","כְּבָבַת","שָׁמְרֵם","נג״ד יכ״ש","בָּרְכֵם","טַהֲרֵם","רַחֲמֵי","צִדְקָתְךָ","תָּמִיד","גָּמְלֵם","בט״ר צת״ג","חֲסִין","קָדוֹשׁ","בְּרֹב","טוּבְךָ","נַהֵל","עֲדָתֶךָ","חק״ב תנ״ע","יָחִיד","גֵּאֶה","לְעַמְּךָ","פְּנֵה","זוֹכְרֵי","קְדֻשָּׁתֶךָ","יג״ל פז״ק","שַׁוְעָתֵנוּ","קַבֵּל","וּשְׁמַע","צַעֲקָתֵנוּ","יוֹדֵעַ","תַּעֲלוּמוֹת","שק״ו צי״ת"];var sefira = {ps67lines:ps67lines,lamnatzeachLetters:lamnatzeachLetters,anaBekoach:anaBekoach};
1
+ /*! @hebcal/core v6.9.2, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
+ var sefira = {
3
+ "ps67lines": [
4
+ "אֱלֹהִים יְחָנֵּנוּ וִיבָרְכֵנוּ יָאֵר־פָּנָיו אִתָּנוּ סֶלָה",
5
+ "לָדַעַת בָּאָרֶץ דַּרְכֶּךָ בְּכָל־גּוֹיִם יְשׁוּעָתֶךָ",
6
+ "יוֹדוּךָ עַמִּים אֱלֹהִים יוֹדוּךָ עַמִּים כֻּלָּם",
7
+ "יִשְׂמְחוּ וִירַנְּנוּ לְאֻמִּים כִּי־תִשְׁפֹּט עַמִּים מִישׁוֹר וּלְאֻמִּים בָּאָרֶץ תַּנחֵם סֶלָה",
8
+ "יוֹדוּךָ עַמִּים אֱלֹהִים יוֹדוּךָ עַמִּים כֻּלָּם",
9
+ "אֶרֶץ נָתְנָה יְבוּלָהּ יְבָרְכֵנוּ אֱלֹהִים אֱלֹהֵינוּ",
10
+ "יְבָרְכֵנוּ אֱלֹהִים וְיִירְאוּ אוֹתוֹ כָּל־אַפְסֵי־אָרֶץ"
11
+ ],
12
+ "lamnatzeachLetters": "ישמחווירננולאמיםכיתשפוטעמיםמישורולאמיםבארץתנחםסלה",
13
+ "anaBekoach": [
14
+ "אָנָּא",
15
+ "בְּכֹחַ",
16
+ "גְּדֻלַּת",
17
+ "יְמִינְךָ",
18
+ "תַּתִּיר",
19
+ "צְרוּרָה",
20
+ "אב״ג ית״ץ",
21
+ "קַבֵּל",
22
+ "רִנַּת",
23
+ "עַמְּךָ",
24
+ "שַׂגְּבֵנוּ",
25
+ "טַהֲרֵנוּ",
26
+ "נוֹרָא",
27
+ "קר״ע שט״ן",
28
+ "נָא",
29
+ "גִבּוֹר",
30
+ "דּוֹרְשֵׁי",
31
+ "יִחוּדְךָ",
32
+ "כְּבָבַת",
33
+ "שָׁמְרֵם",
34
+ "נג״ד יכ״ש",
35
+ "בָּרְכֵם",
36
+ "טַהֲרֵם",
37
+ "רַחֲמֵי",
38
+ "צִדְקָתְךָ",
39
+ "תָּמִיד",
40
+ "גָּמְלֵם",
41
+ "בט״ר צת״ג",
42
+ "חֲסִין",
43
+ "קָדוֹשׁ",
44
+ "בְּרֹב",
45
+ "טוּבְךָ",
46
+ "נַהֵל",
47
+ "עֲדָתֶךָ",
48
+ "חק״ב תנ״ע",
49
+ "יָחִיד",
50
+ "גֵּאֶה",
51
+ "לְעַמְּךָ",
52
+ "פְּנֵה",
53
+ "זוֹכְרֵי",
54
+ "קְדֻשָּׁתֶךָ",
55
+ "יג״ל פז״ק",
56
+ "שַׁוְעָתֵנוּ",
57
+ "קַבֵּל",
58
+ "וּשְׁמַע",
59
+ "צַעֲקָתֵנוּ",
60
+ "יוֹדֵעַ",
61
+ "תַּעֲלוּמוֹת",
62
+ "שק״ו צי״ת"
63
+ ]
64
+ };
3
65
 
4
- export { anaBekoach, sefira as default, lamnatzeachLetters, ps67lines };
66
+ export { sefira as default };
5
67
  //# sourceMappingURL=sefira.json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sefira.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"sefira.json.js","sources":["../../../src/sefira.json.ts"],"sourcesContent":["export default\n{\n \"ps67lines\": [\n \"אֱלֹהִים יְחָנֵּנוּ וִיבָרְכֵנוּ יָאֵר־פָּנָיו אִתָּנוּ סֶלָה\",\n \"לָדַעַת בָּאָרֶץ דַּרְכֶּךָ בְּכָל־גּוֹיִם יְשׁוּעָתֶךָ\",\n \"יוֹדוּךָ עַמִּים אֱלֹהִים יוֹדוּךָ עַמִּים כֻּלָּם\",\n \"יִשְׂמְחוּ וִירַנְּנוּ לְאֻמִּים כִּי־תִשְׁפֹּט עַמִּים מִישׁוֹר וּלְאֻמִּים בָּאָרֶץ תַּנחֵם סֶלָה\",\n \"יוֹדוּךָ עַמִּים אֱלֹהִים יוֹדוּךָ עַמִּים כֻּלָּם\",\n \"אֶרֶץ נָתְנָה יְבוּלָהּ יְבָרְכֵנוּ אֱלֹהִים אֱלֹהֵינוּ\",\n \"יְבָרְכֵנוּ אֱלֹהִים וְיִירְאוּ אוֹתוֹ כָּל־אַפְסֵי־אָרֶץ\"\n ],\n \"lamnatzeachLetters\": \"ישמחווירננולאמיםכיתשפוטעמיםמישורולאמיםבארץתנחםסלה\",\n \"anaBekoach\": [\n \"אָנָּא\",\n \"בְּכֹחַ\",\n \"גְּדֻלַּת\",\n \"יְמִינְךָ\",\n \"תַּתִּיר\",\n \"צְרוּרָה\",\n \"אב״ג ית״ץ\",\n\n \"קַבֵּל\",\n \"רִנַּת\",\n \"עַמְּךָ\",\n \"שַׂגְּבֵנוּ\",\n \"טַהֲרֵנוּ\",\n \"נוֹרָא\",\n \"קר״ע שט״ן\",\n\n \"נָא\",\n \"גִבּוֹר\",\n \"דּוֹרְשֵׁי\",\n \"יִחוּדְךָ\",\n \"כְּבָבַת\",\n \"שָׁמְרֵם\",\n \"נג״ד יכ״ש\",\n\n \"בָּרְכֵם\",\n \"טַהֲרֵם\",\n \"רַחֲמֵי\",\n \"צִדְקָתְךָ\",\n \"תָּמִיד\",\n \"גָּמְלֵם\",\n \"בט״ר צת״ג\",\n\n \"חֲסִין\",\n \"קָדוֹשׁ\",\n \"בְּרֹב\",\n \"טוּבְךָ\",\n \"נַהֵל\",\n \"עֲדָתֶךָ\",\n \"חק״ב תנ״ע\",\n\n \"יָחִיד\",\n \"גֵּאֶה\",\n \"לְעַמְּךָ\",\n \"פְּנֵה\",\n \"זוֹכְרֵי\",\n \"קְדֻשָּׁתֶךָ\",\n \"יג״ל פז״ק\",\n\n \"שַׁוְעָתֵנוּ\",\n \"קַבֵּל\",\n \"וּשְׁמַע\",\n \"צַעֲקָתֵנוּ\",\n \"יוֹדֵעַ\",\n \"תַּעֲלוּמוֹת\",\n \"שק״ו צי״ת\"\n ]\n}\n"],"names":[],"mappings":";AAAA,aACA;AACE,IAAA,WAAW,EAAE;QACX,+DAA+D;QAC/D,yDAAyD;QACzD,oDAAoD;QACpD,qGAAqG;QACrG,oDAAoD;QACpD,yDAAyD;QACzD;AACD,KAAA;AACD,IAAA,oBAAoB,EAAE,mDAAmD;AACzE,IAAA,YAAY,EAAE;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,WAAW;QACX,UAAU;QACV,UAAU;QACV,WAAW;QAEX,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,aAAa;QACb,WAAW;QACX,QAAQ;QACR,WAAW;QAEX,KAAK;QACL,SAAS;QACT,YAAY;QACZ,WAAW;QACX,UAAU;QACV,UAAU;QACV,WAAW;QAEX,UAAU;QACV,SAAS;QACT,SAAS;QACT,YAAY;QACZ,SAAS;QACT,UAAU;QACV,WAAW;QAEX,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,UAAU;QACV,WAAW;QAEX,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,UAAU;QACV,cAAc;QACd,WAAW;QAEX,cAAc;QACd,QAAQ;QACR,UAAU;QACV,aAAa;QACb,SAAS;QACT,cAAc;QACd;AACD;CACF;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.9.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.9.2, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  import { months } from '@hebcal/hdate';
3
3
  import { flags } from './event.js';
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"staticHolidays.js","sources":["../../../src/staticHolidays.ts"],"sourcesContent":["import {months} from '@hebcal/hdate';\nimport {flags} from './event';\n\nconst Nisan = months.NISAN;\nconst Iyyar = months.IYYAR;\nconst Sivan = months.SIVAN;\nconst Tamuz = months.TAMUZ;\nconst Av = months.AV;\nconst Elul = months.ELUL;\nconst Tishrei = months.TISHREI;\nconst Cheshvan = months.CHESHVAN;\nconst Kislev = months.KISLEV;\nconst Shvat = months.SHVAT;\nconst Adar2 = months.ADAR_II;\n\nconst CHAG = flags.CHAG;\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 MAJOR_FAST = flags.MAJOR_FAST;\nconst MINOR_HOLIDAY = flags.MINOR_HOLIDAY;\nconst EREV = flags.EREV;\nconst CHOL_HAMOED = flags.CHOL_HAMOED;\n\nconst emojiPesach = '🫓';\nconst emojiSukkot = '🌿🍋';\n\nconst ROSH_HASHANA_II = 'Rosh Hashana II';\nconst EREV_YOM_KIPPUR = 'Erev Yom Kippur';\nconst YOM_KIPPUR = 'Yom Kippur';\nconst EREV_SUKKOT = 'Erev Sukkot';\nconst SUKKOT_I = 'Sukkot I';\nconst SUKKOT_II = 'Sukkot II';\nconst SUKKOT_III_CHM = \"Sukkot III (CH''M)\";\nconst SUKKOT_IV_CHM = \"Sukkot IV (CH''M)\";\nconst SUKKOT_V_CHM = \"Sukkot V (CH''M)\";\nconst SUKKOT_VI_CHM = \"Sukkot VI (CH''M)\";\nconst SHMINI_ATZERET = 'Shmini Atzeret';\nconst SIMCHAT_TORAH = 'Simchat Torah';\nconst SUKKOT_II_CHM = \"Sukkot II (CH''M)\";\nconst SUKKOT_VII_HOSHANA_RABA = 'Sukkot VII (Hoshana Raba)';\nconst CHANUKAH_1_CANDLE = 'Chanukah: 1 Candle';\nconst TU_BISHVAT = 'Tu BiShvat';\nconst EREV_PURIM = 'Erev Purim';\nconst PURIM = 'Purim';\nconst SHUSHAN_PURIM = 'Shushan Purim';\nconst EREV_PESACH = 'Erev Pesach';\nconst PESACH_I = 'Pesach I';\nconst PESACH_II = 'Pesach II';\nconst PESACH_II_CHM = \"Pesach II (CH''M)\";\nconst PESACH_III_CHM = \"Pesach III (CH''M)\";\nconst PESACH_IV_CHM = \"Pesach IV (CH''M)\";\nconst PESACH_V_CHM = \"Pesach V (CH''M)\";\nconst PESACH_VI_CHM = \"Pesach VI (CH''M)\";\nconst PESACH_VII = 'Pesach VII';\nconst PESACH_VIII = 'Pesach VIII';\nconst PESACH_SHENI = 'Pesach Sheni';\nconst LAG_BAOMER = 'Lag BaOmer';\nconst EREV_SHAVUOT = 'Erev Shavuot';\nconst SHAVUOT = 'Shavuot';\nconst SHAVUOT_I = 'Shavuot I';\nconst SHAVUOT_II = 'Shavuot II';\nconst TU_BAV = \"Tu B'Av\";\nconst ROSH_HASHANA_LABEHEMOT = 'Rosh Hashana LaBehemot';\nconst EREV_ROSH_HASHANA = 'Erev Rosh Hashana';\nconst YOM_YERUSHALAYIM = 'Yom Yerushalayim';\nconst BEN_GURION_DAY = 'Ben-Gurion Day';\nconst FAMILY_DAY = 'Family Day';\nconst YITZHAK_RABIN_MEMORIAL_DAY = 'Yitzhak Rabin Memorial Day';\nconst HERZL_DAY = 'Herzl Day';\nconst JABOTINSKY_DAY = 'Jabotinsky Day';\nconst SIGD = 'Sigd';\nconst YOM_HAALIYAH = 'Yom HaAliyah';\nconst YOM_HAALIYAH_SCHOOL_OBSERVANCE = 'Yom HaAliyah School Observance';\nconst HEBREW_LANGUAGE_DAY = 'Hebrew Language Day';\nconst CANDLE_LIGHTING = 'Candle lighting';\nconst HAVDALAH = 'Havdalah';\nconst FAST_BEGINS = 'Fast begins';\nconst FAST_ENDS = 'Fast ends';\nconst BIUR_CHAMETZ = 'Biur Chametz';\nconst SOF_ZMAN_ACHILAT_CHAMETZ = 'Finish eating chametz';\nconst YIZKOR = 'Yizkor';\n\n/**\n * Transliterated names of holidays, used by `Event.getDesc()`\n */\nexport const holidayDesc = {\n /** Asara B'Tevet */\n ASARA_BTEVET: \"Asara B'Tevet\",\n /** Birkat Hachamah */\n BIRKAT_HACHAMAH: 'Birkat Hachamah',\n /** Chag HaBanot */\n CHAG_HABANOT: 'Chag HaBanot',\n /** Chanukah: 8th Day */\n CHANUKAH_8TH_DAY: 'Chanukah: 8th Day',\n /** Erev Tish'a B'Av */\n EREV_TISHA_BAV: \"Erev Tish'a B'Av\",\n /** Leil Selichot */\n LEIL_SELICHOT: 'Leil Selichot',\n /** Purim Katan */\n PURIM_KATAN: 'Purim Katan',\n /** Purim Meshulash */\n PURIM_MESHULASH: 'Purim Meshulash',\n /** Shabbat Chazon */\n SHABBAT_CHAZON: 'Shabbat Chazon',\n /** Shabbat HaChodesh */\n SHABBAT_HACHODESH: 'Shabbat HaChodesh',\n /** Shabbat HaGadol */\n SHABBAT_HAGADOL: 'Shabbat HaGadol',\n /** Shabbat Nachamu */\n SHABBAT_NACHAMU: 'Shabbat Nachamu',\n /** Shabbat Parah */\n SHABBAT_PARAH: 'Shabbat Parah',\n /** Shabbat Shekalim */\n SHABBAT_SHEKALIM: 'Shabbat Shekalim',\n /** Shabbat Shirah */\n SHABBAT_SHIRAH: 'Shabbat Shirah',\n /** Shabbat Shuva */\n SHABBAT_SHUVA: 'Shabbat Shuva',\n /** Shabbat Zachor */\n SHABBAT_ZACHOR: 'Shabbat Zachor',\n /** Shushan Purim Katan */\n SHUSHAN_PURIM_KATAN: 'Shushan Purim Katan',\n /** Ta'anit Bechorot */\n TAANIT_BECHOROT: \"Ta'anit Bechorot\",\n /** Ta'anit BeHaB */\n TAANIT_BEHAB: \"Ta'anit BeHaB\",\n /** Ta'anit Esther */\n TAANIT_ESTHER: \"Ta'anit Esther\",\n /** Tish'a B'Av */\n TISHA_BAV: \"Tish'a B'Av\",\n /** Tzom Gedaliah */\n TZOM_GEDALIAH: 'Tzom Gedaliah',\n /** Tzom Tammuz */\n TZOM_TAMMUZ: 'Tzom Tammuz',\n /** Yom HaAtzma'ut */\n YOM_HAATZMA_UT: \"Yom HaAtzma'ut\",\n /** Yom HaShoah */\n YOM_HASHOAH: 'Yom HaShoah',\n /** Yom HaZikaron */\n YOM_HAZIKARON: 'Yom HaZikaron',\n\n /** Ben-Gurion Day */\n BEN_GURION_DAY,\n /** Chanukah: 1 Candle */\n CHANUKAH_1_CANDLE,\n /** Erev Pesach */\n EREV_PESACH,\n /** Erev Purim */\n EREV_PURIM,\n /** Erev Rosh Hashana */\n EREV_ROSH_HASHANA,\n /** Erev Shavuot */\n EREV_SHAVUOT,\n /** Erev Sukkot */\n EREV_SUKKOT,\n /** Erev Yom Kippur */\n EREV_YOM_KIPPUR,\n /** Family Day */\n FAMILY_DAY,\n /** Hebrew Language Day */\n HEBREW_LANGUAGE_DAY,\n /** Herzl Day */\n HERZL_DAY,\n /** Jabotinsky Day */\n JABOTINSKY_DAY,\n /** Lag BaOmer */\n LAG_BAOMER,\n /** Pesach I */\n PESACH_I,\n /** Pesach II */\n PESACH_II,\n /** Pesach III (CH''M) */\n PESACH_III_CHM,\n /** Pesach II (CH''M) */\n PESACH_II_CHM,\n /** Pesach IV (CH''M) */\n PESACH_IV_CHM,\n /** Pesach Sheni */\n PESACH_SHENI,\n /** Pesach VII */\n PESACH_VII,\n /** Pesach VIII */\n PESACH_VIII,\n /** Pesach VI (CH''M) */\n PESACH_VI_CHM,\n /** Pesach V (CH''M) */\n PESACH_V_CHM,\n /** Purim */\n PURIM,\n /** Rosh Hashana II */\n ROSH_HASHANA_II,\n /** Rosh Hashana LaBehemot */\n ROSH_HASHANA_LABEHEMOT,\n /** Shavuot */\n SHAVUOT,\n /** Shavuot I */\n SHAVUOT_I,\n /** Shavuot II */\n SHAVUOT_II,\n /** Shmini Atzeret */\n SHMINI_ATZERET,\n /** Shushan Purim */\n SHUSHAN_PURIM,\n /** Sigd */\n SIGD,\n /** Simchat Torah */\n SIMCHAT_TORAH,\n /** Sukkot I */\n SUKKOT_I,\n /** Sukkot II */\n SUKKOT_II,\n /** Sukkot III (CH''M) */\n SUKKOT_III_CHM,\n /** Sukkot II (CH''M) */\n SUKKOT_II_CHM,\n /** Sukkot IV (CH''M) */\n SUKKOT_IV_CHM,\n /** Sukkot VII (Hoshana Raba) */\n SUKKOT_VII_HOSHANA_RABA,\n /** Sukkot VI (CH''M) */\n SUKKOT_VI_CHM,\n /** Sukkot V (CH''M) */\n SUKKOT_V_CHM,\n /** Tu B\\'Av */\n TU_BAV,\n /** Tu BiShvat */\n TU_BISHVAT,\n /** Yitzhak Rabin Memorial Day */\n YITZHAK_RABIN_MEMORIAL_DAY,\n /** Yom HaAliyah */\n YOM_HAALIYAH,\n /** Yom HaAliyah School Observance */\n YOM_HAALIYAH_SCHOOL_OBSERVANCE,\n /** Yom Kippur */\n YOM_KIPPUR,\n /** Yom Yerushalayim */\n YOM_YERUSHALAYIM,\n /** Candle lighting */\n CANDLE_LIGHTING,\n /** Havdalah */\n HAVDALAH,\n /** Fast begins */\n FAST_BEGINS,\n /** Fast ends */\n FAST_ENDS,\n /** Biur Chametz */\n BIUR_CHAMETZ,\n /** Finish eating chametz */\n SOF_ZMAN_ACHILAT_CHAMETZ,\n /** Yizkor */\n YIZKOR,\n} as const;\n\nexport interface Holiday {\n mm: number; // This should be an enum `Month` eventually\n dd: number;\n desc: string;\n flags: number;\n chmDay?: number;\n emoji?: string;\n}\n\nexport const staticHolidays: Holiday[] = [\n {\n mm: Tishrei,\n dd: 2,\n desc: ROSH_HASHANA_II,\n flags: CHAG | YOM_TOV_ENDS,\n emoji: '🍏🍯',\n },\n {mm: Tishrei, dd: 9, desc: EREV_YOM_KIPPUR, flags: EREV | LIGHT_CANDLES},\n {\n mm: Tishrei,\n dd: 10,\n desc: YOM_KIPPUR,\n flags: CHAG | MAJOR_FAST | YOM_TOV_ENDS,\n },\n\n {\n mm: Tishrei,\n dd: 14,\n desc: EREV_SUKKOT,\n flags: CHUL_ONLY | EREV | LIGHT_CANDLES,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 15,\n desc: SUKKOT_I,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 16,\n desc: SUKKOT_II,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 17,\n desc: SUKKOT_III_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 1,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 18,\n desc: SUKKOT_IV_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 2,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 19,\n desc: SUKKOT_V_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 3,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 20,\n desc: SUKKOT_VI_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 4,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 22,\n desc: SHMINI_ATZERET,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n },\n {\n mm: Tishrei,\n dd: 23,\n desc: SIMCHAT_TORAH,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n },\n\n {\n mm: Tishrei,\n dd: 14,\n desc: EREV_SUKKOT,\n flags: IL_ONLY | EREV | LIGHT_CANDLES,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 15,\n desc: SUKKOT_I,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 16,\n desc: SUKKOT_II_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 1,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 17,\n desc: SUKKOT_III_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 2,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 18,\n desc: SUKKOT_IV_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 3,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 19,\n desc: SUKKOT_V_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 4,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 20,\n desc: SUKKOT_VI_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 5,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 22,\n desc: SHMINI_ATZERET,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n },\n\n {\n mm: Tishrei,\n dd: 21,\n desc: SUKKOT_VII_HOSHANA_RABA,\n flags: LIGHT_CANDLES | CHOL_HAMOED,\n chmDay: -1,\n emoji: emojiSukkot,\n },\n {mm: Shvat, dd: 15, desc: TU_BISHVAT, flags: MINOR_HOLIDAY, emoji: '🌳'},\n {\n mm: Adar2,\n dd: 13,\n desc: EREV_PURIM,\n flags: EREV | MINOR_HOLIDAY,\n emoji: '🎭️📜',\n },\n {mm: Adar2, dd: 14, desc: PURIM, flags: MINOR_HOLIDAY, emoji: '🎭️📜'},\n {\n mm: Adar2,\n dd: 15,\n desc: SHUSHAN_PURIM,\n flags: MINOR_HOLIDAY,\n emoji: '🎭️📜',\n },\n // Pesach Israel\n {\n mm: Nisan,\n dd: 14,\n desc: EREV_PESACH,\n flags: IL_ONLY | EREV | LIGHT_CANDLES,\n emoji: '🫓🍷',\n },\n {\n mm: Nisan,\n dd: 15,\n desc: PESACH_I,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 16,\n desc: PESACH_II_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 1,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 17,\n desc: PESACH_III_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 2,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 18,\n desc: PESACH_IV_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 3,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 19,\n desc: PESACH_V_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 4,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 20,\n desc: PESACH_VI_CHM,\n flags: IL_ONLY | CHOL_HAMOED | LIGHT_CANDLES,\n chmDay: 5,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 21,\n desc: PESACH_VII,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiPesach,\n },\n // Pesach chutz l'aretz\n {\n mm: Nisan,\n dd: 14,\n desc: EREV_PESACH,\n flags: CHUL_ONLY | EREV | LIGHT_CANDLES,\n emoji: '🫓🍷',\n },\n {\n mm: Nisan,\n dd: 15,\n desc: PESACH_I,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n emoji: '🫓🍷',\n },\n {\n mm: Nisan,\n dd: 16,\n desc: PESACH_II,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 17,\n desc: PESACH_III_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 1,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 18,\n desc: PESACH_IV_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 2,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 19,\n desc: PESACH_V_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 3,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 20,\n desc: PESACH_VI_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED | LIGHT_CANDLES,\n chmDay: 4,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 21,\n desc: PESACH_VII,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 22,\n desc: PESACH_VIII,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiPesach,\n },\n\n {mm: Iyyar, dd: 14, desc: PESACH_SHENI, flags: MINOR_HOLIDAY},\n {mm: Iyyar, dd: 18, desc: LAG_BAOMER, flags: MINOR_HOLIDAY, emoji: '🔥'},\n {\n mm: Sivan,\n dd: 5,\n desc: EREV_SHAVUOT,\n flags: EREV | LIGHT_CANDLES,\n emoji: '⛰️🌸',\n },\n {\n mm: Sivan,\n dd: 6,\n desc: SHAVUOT,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: '⛰️🌸',\n },\n {\n mm: Sivan,\n dd: 6,\n desc: SHAVUOT_I,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n emoji: '⛰️🌸',\n },\n {\n mm: Sivan,\n dd: 7,\n desc: SHAVUOT_II,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: '⛰️🌸',\n },\n {mm: Av, dd: 15, desc: TU_BAV, flags: MINOR_HOLIDAY, emoji: '❤️'},\n {\n mm: Elul,\n dd: 1,\n desc: ROSH_HASHANA_LABEHEMOT,\n flags: MINOR_HOLIDAY,\n emoji: '🐑',\n },\n {\n mm: Elul,\n dd: 29,\n desc: EREV_ROSH_HASHANA,\n flags: EREV | LIGHT_CANDLES,\n emoji: '🍏🍯',\n },\n] as const;\n\nexport interface ModernHoliday {\n firstYear: number;\n mm: number; // This should be an enum `Month` eventually\n dd: number;\n desc: string;\n chul?: boolean;\n suppressEmoji?: boolean;\n satPostponeToSun?: boolean;\n friPostponeToSun?: boolean;\n friSatMovetoThu?: boolean;\n}\n\nexport const staticModernHolidays: ModernHoliday[] = [\n {firstYear: 5727, mm: Iyyar, dd: 28, desc: YOM_YERUSHALAYIM, chul: true},\n {\n firstYear: 5737,\n mm: Kislev,\n dd: 6,\n desc: BEN_GURION_DAY,\n satPostponeToSun: true,\n friPostponeToSun: true,\n },\n {firstYear: 5750, mm: Shvat, dd: 30, desc: FAMILY_DAY},\n {\n firstYear: 5758,\n mm: Cheshvan,\n dd: 12,\n desc: YITZHAK_RABIN_MEMORIAL_DAY,\n friSatMovetoThu: true,\n },\n {firstYear: 5764, mm: Iyyar, dd: 10, desc: HERZL_DAY, satPostponeToSun: true},\n {\n firstYear: 5765,\n mm: Tamuz,\n dd: 29,\n desc: JABOTINSKY_DAY,\n satPostponeToSun: true,\n },\n {\n firstYear: 5769,\n mm: Cheshvan,\n dd: 29,\n desc: SIGD,\n chul: true,\n suppressEmoji: true,\n friSatMovetoThu: true,\n },\n {firstYear: 5777, mm: Nisan, dd: 10, desc: YOM_HAALIYAH, chul: true},\n {firstYear: 5777, mm: Cheshvan, dd: 7, desc: YOM_HAALIYAH_SCHOOL_OBSERVANCE},\n // https://www.gov.il/he/departments/policies/2012_des5234\n {\n firstYear: 5773,\n mm: months.TEVET,\n dd: 21,\n desc: HEBREW_LANGUAGE_DAY,\n friSatMovetoThu: true,\n },\n] as const;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staticHolidays.js","sources":["../../../src/staticHolidays.ts"],"sourcesContent":["import {months} from '@hebcal/hdate';\nimport {flags} from './event.js';\n\nconst Nisan = months.NISAN;\nconst Iyyar = months.IYYAR;\nconst Sivan = months.SIVAN;\nconst Tamuz = months.TAMUZ;\nconst Av = months.AV;\nconst Elul = months.ELUL;\nconst Tishrei = months.TISHREI;\nconst Cheshvan = months.CHESHVAN;\nconst Kislev = months.KISLEV;\nconst Shvat = months.SHVAT;\nconst Adar2 = months.ADAR_II;\n\nconst CHAG = flags.CHAG;\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 MAJOR_FAST = flags.MAJOR_FAST;\nconst MINOR_HOLIDAY = flags.MINOR_HOLIDAY;\nconst EREV = flags.EREV;\nconst CHOL_HAMOED = flags.CHOL_HAMOED;\n\nconst emojiPesach = '🫓';\nconst emojiSukkot = '🌿🍋';\n\nconst ROSH_HASHANA_II = 'Rosh Hashana II';\nconst EREV_YOM_KIPPUR = 'Erev Yom Kippur';\nconst YOM_KIPPUR = 'Yom Kippur';\nconst EREV_SUKKOT = 'Erev Sukkot';\nconst SUKKOT_I = 'Sukkot I';\nconst SUKKOT_II = 'Sukkot II';\nconst SUKKOT_III_CHM = \"Sukkot III (CH''M)\";\nconst SUKKOT_IV_CHM = \"Sukkot IV (CH''M)\";\nconst SUKKOT_V_CHM = \"Sukkot V (CH''M)\";\nconst SUKKOT_VI_CHM = \"Sukkot VI (CH''M)\";\nconst SHMINI_ATZERET = 'Shmini Atzeret';\nconst SIMCHAT_TORAH = 'Simchat Torah';\nconst SUKKOT_II_CHM = \"Sukkot II (CH''M)\";\nconst SUKKOT_VII_HOSHANA_RABA = 'Sukkot VII (Hoshana Raba)';\nconst CHANUKAH_1_CANDLE = 'Chanukah: 1 Candle';\nconst TU_BISHVAT = 'Tu BiShvat';\nconst EREV_PURIM = 'Erev Purim';\nconst PURIM = 'Purim';\nconst SHUSHAN_PURIM = 'Shushan Purim';\nconst EREV_PESACH = 'Erev Pesach';\nconst PESACH_I = 'Pesach I';\nconst PESACH_II = 'Pesach II';\nconst PESACH_II_CHM = \"Pesach II (CH''M)\";\nconst PESACH_III_CHM = \"Pesach III (CH''M)\";\nconst PESACH_IV_CHM = \"Pesach IV (CH''M)\";\nconst PESACH_V_CHM = \"Pesach V (CH''M)\";\nconst PESACH_VI_CHM = \"Pesach VI (CH''M)\";\nconst PESACH_VII = 'Pesach VII';\nconst PESACH_VIII = 'Pesach VIII';\nconst PESACH_SHENI = 'Pesach Sheni';\nconst LAG_BAOMER = 'Lag BaOmer';\nconst EREV_SHAVUOT = 'Erev Shavuot';\nconst SHAVUOT = 'Shavuot';\nconst SHAVUOT_I = 'Shavuot I';\nconst SHAVUOT_II = 'Shavuot II';\nconst TU_BAV = \"Tu B'Av\";\nconst ROSH_HASHANA_LABEHEMOT = 'Rosh Hashana LaBehemot';\nconst EREV_ROSH_HASHANA = 'Erev Rosh Hashana';\nconst YOM_YERUSHALAYIM = 'Yom Yerushalayim';\nconst BEN_GURION_DAY = 'Ben-Gurion Day';\nconst FAMILY_DAY = 'Family Day';\nconst YITZHAK_RABIN_MEMORIAL_DAY = 'Yitzhak Rabin Memorial Day';\nconst HERZL_DAY = 'Herzl Day';\nconst JABOTINSKY_DAY = 'Jabotinsky Day';\nconst SIGD = 'Sigd';\nconst YOM_HAALIYAH = 'Yom HaAliyah';\nconst YOM_HAALIYAH_SCHOOL_OBSERVANCE = 'Yom HaAliyah School Observance';\nconst HEBREW_LANGUAGE_DAY = 'Hebrew Language Day';\nconst CANDLE_LIGHTING = 'Candle lighting';\nconst HAVDALAH = 'Havdalah';\nconst FAST_BEGINS = 'Fast begins';\nconst FAST_ENDS = 'Fast ends';\nconst BIUR_CHAMETZ = 'Biur Chametz';\nconst SOF_ZMAN_ACHILAT_CHAMETZ = 'Finish eating chametz';\nconst YIZKOR = 'Yizkor';\n\n/**\n * Transliterated names of holidays, used by `Event.getDesc()`\n */\nexport const holidayDesc = {\n /** Asara B'Tevet */\n ASARA_BTEVET: \"Asara B'Tevet\",\n /** Birkat Hachamah */\n BIRKAT_HACHAMAH: 'Birkat Hachamah',\n /** Chag HaBanot */\n CHAG_HABANOT: 'Chag HaBanot',\n /** Chanukah: 8th Day */\n CHANUKAH_8TH_DAY: 'Chanukah: 8th Day',\n /** Erev Tish'a B'Av */\n EREV_TISHA_BAV: \"Erev Tish'a B'Av\",\n /** Leil Selichot */\n LEIL_SELICHOT: 'Leil Selichot',\n /** Purim Katan */\n PURIM_KATAN: 'Purim Katan',\n /** Purim Meshulash */\n PURIM_MESHULASH: 'Purim Meshulash',\n /** Shabbat Chazon */\n SHABBAT_CHAZON: 'Shabbat Chazon',\n /** Shabbat HaChodesh */\n SHABBAT_HACHODESH: 'Shabbat HaChodesh',\n /** Shabbat HaGadol */\n SHABBAT_HAGADOL: 'Shabbat HaGadol',\n /** Shabbat Nachamu */\n SHABBAT_NACHAMU: 'Shabbat Nachamu',\n /** Shabbat Parah */\n SHABBAT_PARAH: 'Shabbat Parah',\n /** Shabbat Shekalim */\n SHABBAT_SHEKALIM: 'Shabbat Shekalim',\n /** Shabbat Shirah */\n SHABBAT_SHIRAH: 'Shabbat Shirah',\n /** Shabbat Shuva */\n SHABBAT_SHUVA: 'Shabbat Shuva',\n /** Shabbat Zachor */\n SHABBAT_ZACHOR: 'Shabbat Zachor',\n /** Shushan Purim Katan */\n SHUSHAN_PURIM_KATAN: 'Shushan Purim Katan',\n /** Ta'anit Bechorot */\n TAANIT_BECHOROT: \"Ta'anit Bechorot\",\n /** Ta'anit BeHaB */\n TAANIT_BEHAB: \"Ta'anit BeHaB\",\n /** Ta'anit Esther */\n TAANIT_ESTHER: \"Ta'anit Esther\",\n /** Tish'a B'Av */\n TISHA_BAV: \"Tish'a B'Av\",\n /** Tzom Gedaliah */\n TZOM_GEDALIAH: 'Tzom Gedaliah',\n /** Tzom Tammuz */\n TZOM_TAMMUZ: 'Tzom Tammuz',\n /** Yom HaAtzma'ut */\n YOM_HAATZMA_UT: \"Yom HaAtzma'ut\",\n /** Yom HaShoah */\n YOM_HASHOAH: 'Yom HaShoah',\n /** Yom HaZikaron */\n YOM_HAZIKARON: 'Yom HaZikaron',\n\n /** Ben-Gurion Day */\n BEN_GURION_DAY,\n /** Chanukah: 1 Candle */\n CHANUKAH_1_CANDLE,\n /** Erev Pesach */\n EREV_PESACH,\n /** Erev Purim */\n EREV_PURIM,\n /** Erev Rosh Hashana */\n EREV_ROSH_HASHANA,\n /** Erev Shavuot */\n EREV_SHAVUOT,\n /** Erev Sukkot */\n EREV_SUKKOT,\n /** Erev Yom Kippur */\n EREV_YOM_KIPPUR,\n /** Family Day */\n FAMILY_DAY,\n /** Hebrew Language Day */\n HEBREW_LANGUAGE_DAY,\n /** Herzl Day */\n HERZL_DAY,\n /** Jabotinsky Day */\n JABOTINSKY_DAY,\n /** Lag BaOmer */\n LAG_BAOMER,\n /** Pesach I */\n PESACH_I,\n /** Pesach II */\n PESACH_II,\n /** Pesach III (CH''M) */\n PESACH_III_CHM,\n /** Pesach II (CH''M) */\n PESACH_II_CHM,\n /** Pesach IV (CH''M) */\n PESACH_IV_CHM,\n /** Pesach Sheni */\n PESACH_SHENI,\n /** Pesach VII */\n PESACH_VII,\n /** Pesach VIII */\n PESACH_VIII,\n /** Pesach VI (CH''M) */\n PESACH_VI_CHM,\n /** Pesach V (CH''M) */\n PESACH_V_CHM,\n /** Purim */\n PURIM,\n /** Rosh Hashana II */\n ROSH_HASHANA_II,\n /** Rosh Hashana LaBehemot */\n ROSH_HASHANA_LABEHEMOT,\n /** Shavuot */\n SHAVUOT,\n /** Shavuot I */\n SHAVUOT_I,\n /** Shavuot II */\n SHAVUOT_II,\n /** Shmini Atzeret */\n SHMINI_ATZERET,\n /** Shushan Purim */\n SHUSHAN_PURIM,\n /** Sigd */\n SIGD,\n /** Simchat Torah */\n SIMCHAT_TORAH,\n /** Sukkot I */\n SUKKOT_I,\n /** Sukkot II */\n SUKKOT_II,\n /** Sukkot III (CH''M) */\n SUKKOT_III_CHM,\n /** Sukkot II (CH''M) */\n SUKKOT_II_CHM,\n /** Sukkot IV (CH''M) */\n SUKKOT_IV_CHM,\n /** Sukkot VII (Hoshana Raba) */\n SUKKOT_VII_HOSHANA_RABA,\n /** Sukkot VI (CH''M) */\n SUKKOT_VI_CHM,\n /** Sukkot V (CH''M) */\n SUKKOT_V_CHM,\n /** Tu B\\'Av */\n TU_BAV,\n /** Tu BiShvat */\n TU_BISHVAT,\n /** Yitzhak Rabin Memorial Day */\n YITZHAK_RABIN_MEMORIAL_DAY,\n /** Yom HaAliyah */\n YOM_HAALIYAH,\n /** Yom HaAliyah School Observance */\n YOM_HAALIYAH_SCHOOL_OBSERVANCE,\n /** Yom Kippur */\n YOM_KIPPUR,\n /** Yom Yerushalayim */\n YOM_YERUSHALAYIM,\n /** Candle lighting */\n CANDLE_LIGHTING,\n /** Havdalah */\n HAVDALAH,\n /** Fast begins */\n FAST_BEGINS,\n /** Fast ends */\n FAST_ENDS,\n /** Biur Chametz */\n BIUR_CHAMETZ,\n /** Finish eating chametz */\n SOF_ZMAN_ACHILAT_CHAMETZ,\n /** Yizkor */\n YIZKOR,\n} as const;\n\nexport interface Holiday {\n mm: number; // This should be an enum `Month` eventually\n dd: number;\n desc: string;\n flags: number;\n chmDay?: number;\n emoji?: string;\n}\n\nexport const staticHolidays: Holiday[] = [\n {\n mm: Tishrei,\n dd: 2,\n desc: ROSH_HASHANA_II,\n flags: CHAG | YOM_TOV_ENDS,\n emoji: '🍏🍯',\n },\n {mm: Tishrei, dd: 9, desc: EREV_YOM_KIPPUR, flags: EREV | LIGHT_CANDLES},\n {\n mm: Tishrei,\n dd: 10,\n desc: YOM_KIPPUR,\n flags: CHAG | MAJOR_FAST | YOM_TOV_ENDS,\n },\n\n {\n mm: Tishrei,\n dd: 14,\n desc: EREV_SUKKOT,\n flags: CHUL_ONLY | EREV | LIGHT_CANDLES,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 15,\n desc: SUKKOT_I,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 16,\n desc: SUKKOT_II,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 17,\n desc: SUKKOT_III_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 1,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 18,\n desc: SUKKOT_IV_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 2,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 19,\n desc: SUKKOT_V_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 3,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 20,\n desc: SUKKOT_VI_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 4,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 22,\n desc: SHMINI_ATZERET,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n },\n {\n mm: Tishrei,\n dd: 23,\n desc: SIMCHAT_TORAH,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n },\n\n {\n mm: Tishrei,\n dd: 14,\n desc: EREV_SUKKOT,\n flags: IL_ONLY | EREV | LIGHT_CANDLES,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 15,\n desc: SUKKOT_I,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 16,\n desc: SUKKOT_II_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 1,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 17,\n desc: SUKKOT_III_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 2,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 18,\n desc: SUKKOT_IV_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 3,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 19,\n desc: SUKKOT_V_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 4,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 20,\n desc: SUKKOT_VI_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 5,\n emoji: emojiSukkot,\n },\n {\n mm: Tishrei,\n dd: 22,\n desc: SHMINI_ATZERET,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n },\n\n {\n mm: Tishrei,\n dd: 21,\n desc: SUKKOT_VII_HOSHANA_RABA,\n flags: LIGHT_CANDLES | CHOL_HAMOED,\n chmDay: -1,\n emoji: emojiSukkot,\n },\n {mm: Shvat, dd: 15, desc: TU_BISHVAT, flags: MINOR_HOLIDAY, emoji: '🌳'},\n {\n mm: Adar2,\n dd: 13,\n desc: EREV_PURIM,\n flags: EREV | MINOR_HOLIDAY,\n emoji: '🎭️📜',\n },\n {mm: Adar2, dd: 14, desc: PURIM, flags: MINOR_HOLIDAY, emoji: '🎭️📜'},\n {\n mm: Adar2,\n dd: 15,\n desc: SHUSHAN_PURIM,\n flags: MINOR_HOLIDAY,\n emoji: '🎭️📜',\n },\n // Pesach Israel\n {\n mm: Nisan,\n dd: 14,\n desc: EREV_PESACH,\n flags: IL_ONLY | EREV | LIGHT_CANDLES,\n emoji: '🫓🍷',\n },\n {\n mm: Nisan,\n dd: 15,\n desc: PESACH_I,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 16,\n desc: PESACH_II_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 1,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 17,\n desc: PESACH_III_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 2,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 18,\n desc: PESACH_IV_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 3,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 19,\n desc: PESACH_V_CHM,\n flags: IL_ONLY | CHOL_HAMOED,\n chmDay: 4,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 20,\n desc: PESACH_VI_CHM,\n flags: IL_ONLY | CHOL_HAMOED | LIGHT_CANDLES,\n chmDay: 5,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 21,\n desc: PESACH_VII,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiPesach,\n },\n // Pesach chutz l'aretz\n {\n mm: Nisan,\n dd: 14,\n desc: EREV_PESACH,\n flags: CHUL_ONLY | EREV | LIGHT_CANDLES,\n emoji: '🫓🍷',\n },\n {\n mm: Nisan,\n dd: 15,\n desc: PESACH_I,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n emoji: '🫓🍷',\n },\n {\n mm: Nisan,\n dd: 16,\n desc: PESACH_II,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 17,\n desc: PESACH_III_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 1,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 18,\n desc: PESACH_IV_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 2,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 19,\n desc: PESACH_V_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED,\n chmDay: 3,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 20,\n desc: PESACH_VI_CHM,\n flags: CHUL_ONLY | CHOL_HAMOED | LIGHT_CANDLES,\n chmDay: 4,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 21,\n desc: PESACH_VII,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n emoji: emojiPesach,\n },\n {\n mm: Nisan,\n dd: 22,\n desc: PESACH_VIII,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: emojiPesach,\n },\n\n {mm: Iyyar, dd: 14, desc: PESACH_SHENI, flags: MINOR_HOLIDAY},\n {mm: Iyyar, dd: 18, desc: LAG_BAOMER, flags: MINOR_HOLIDAY, emoji: '🔥'},\n {\n mm: Sivan,\n dd: 5,\n desc: EREV_SHAVUOT,\n flags: EREV | LIGHT_CANDLES,\n emoji: '⛰️🌸',\n },\n {\n mm: Sivan,\n dd: 6,\n desc: SHAVUOT,\n flags: IL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: '⛰️🌸',\n },\n {\n mm: Sivan,\n dd: 6,\n desc: SHAVUOT_I,\n flags: CHUL_ONLY | CHAG | LIGHT_CANDLES_TZEIS,\n emoji: '⛰️🌸',\n },\n {\n mm: Sivan,\n dd: 7,\n desc: SHAVUOT_II,\n flags: CHUL_ONLY | CHAG | YOM_TOV_ENDS,\n emoji: '⛰️🌸',\n },\n {mm: Av, dd: 15, desc: TU_BAV, flags: MINOR_HOLIDAY, emoji: '❤️'},\n {\n mm: Elul,\n dd: 1,\n desc: ROSH_HASHANA_LABEHEMOT,\n flags: MINOR_HOLIDAY,\n emoji: '🐑',\n },\n {\n mm: Elul,\n dd: 29,\n desc: EREV_ROSH_HASHANA,\n flags: EREV | LIGHT_CANDLES,\n emoji: '🍏🍯',\n },\n] as const;\n\nexport interface ModernHoliday {\n firstYear: number;\n mm: number; // This should be an enum `Month` eventually\n dd: number;\n desc: string;\n chul?: boolean;\n suppressEmoji?: boolean;\n satPostponeToSun?: boolean;\n friPostponeToSun?: boolean;\n friSatMovetoThu?: boolean;\n}\n\nexport const staticModernHolidays: ModernHoliday[] = [\n {firstYear: 5727, mm: Iyyar, dd: 28, desc: YOM_YERUSHALAYIM, chul: true},\n {\n firstYear: 5737,\n mm: Kislev,\n dd: 6,\n desc: BEN_GURION_DAY,\n satPostponeToSun: true,\n friPostponeToSun: true,\n },\n {firstYear: 5750, mm: Shvat, dd: 30, desc: FAMILY_DAY},\n {\n firstYear: 5758,\n mm: Cheshvan,\n dd: 12,\n desc: YITZHAK_RABIN_MEMORIAL_DAY,\n friSatMovetoThu: true,\n },\n {firstYear: 5764, mm: Iyyar, dd: 10, desc: HERZL_DAY, satPostponeToSun: true},\n {\n firstYear: 5765,\n mm: Tamuz,\n dd: 29,\n desc: JABOTINSKY_DAY,\n satPostponeToSun: true,\n },\n {\n firstYear: 5769,\n mm: Cheshvan,\n dd: 29,\n desc: SIGD,\n chul: true,\n suppressEmoji: true,\n friSatMovetoThu: true,\n },\n {firstYear: 5777, mm: Nisan, dd: 10, desc: YOM_HAALIYAH, chul: true},\n {firstYear: 5777, mm: Cheshvan, dd: 7, desc: YOM_HAALIYAH_SCHOOL_OBSERVANCE},\n // https://www.gov.il/he/departments/policies/2012_des5234\n {\n firstYear: 5773,\n mm: months.TEVET,\n dd: 21,\n desc: HEBREW_LANGUAGE_DAY,\n friSatMovetoThu: true,\n },\n] as const;\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.9.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.9.2, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  function smartApostrophe(str) {
3
3
  return str.replaceAll("'", '’');
4
4
  }
@@ -1,4 +1,4 @@
1
- /*! @hebcal/core v6.9.0, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
1
+ /*! @hebcal/core v6.9.2, distributed under GPLv2 https://www.gnu.org/licenses/gpl-2.0.txt */
2
2
  import { HDate, months } from '@hebcal/hdate';
3
3
  import { dateYomHaZikaron } from './modern.js';
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"tachanun.js","sources":["../../../src/tachanun.ts"],"sourcesContent":["import {HDate, months} from '@hebcal/hdate';\nimport {dateYomHaZikaron} from './modern';\n\nfunction range(start: number, end: number): readonly number[] {\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n}\n\n/**\n * Is *tachanun* said today?\n */\nexport type TachanunResult = {\n /** Tachanun is said at Shacharit */\n shacharit: boolean;\n /** Tachanun is said at Mincha */\n mincha: boolean;\n /** All congregations say Tachanun on the day */\n allCongs: boolean;\n};\n\nconst NONE: TachanunResult = {\n shacharit: false,\n mincha: false,\n allCongs: false,\n} as const;\n\n/**\n * Return details on what Tachanun (or Tzidchatcha on Shabbat) is said on `hdate`.\n *\n * Tachanun is not said on Rosh Chodesh, the month of Nisan, Lag Baomer,\n * Rosh Chodesh Sivan until Isru Chag, Tisha B'av, 15 Av, Erev Rosh Hashanah,\n * Rosh Hashanah, Erev Yom Kippur until after Simchat Torah, Chanukah,\n * Tu B'shvat, Purim and Shushan Purim, and Purim and Shushan Purim Katan.\n *\n * In some congregations Tachanun is not said until from Rosh Chodesh Sivan\n * until 14th Sivan, Sukkot until after Rosh Chodesh Cheshvan, Pesach Sheini,\n * Yom Ha'atzmaut, and Yom Yerushalayim.\n *\n * Tachanun is not said at Mincha on days before it is not said at Shacharit.\n *\n * Tachanun is not said at Shacharit on Shabbat, but is at Mincha, usually.\n */\nexport function tachanun(hdate: HDate, il: boolean): TachanunResult {\n return tachanun0(hdate, il, true);\n}\n\nfunction tachanun0(hdate: HDate, il: boolean, checkNext: boolean): TachanunResult {\n const year = hdate.yy;\n const dates = tachanunYear(year, il);\n const abs = hdate.abs();\n if (dates.none.includes(abs)) {\n return NONE;\n }\n const dow = hdate.getDay();\n const ret: TachanunResult = {\n shacharit: false,\n mincha: false,\n allCongs: false,\n };\n if (!dates.some.includes(abs)) {\n ret.allCongs = true;\n }\n if (dow !== 6) {\n ret.shacharit = true;\n }\n const tomorrow = abs + 1;\n if (checkNext && !dates.yesPrev.includes(tomorrow)) {\n const tmp = tachanun0(new HDate(tomorrow), il, false);\n ret.mincha = tmp.shacharit;\n } else {\n ret.mincha = dow !== 5;\n }\n if (ret.allCongs && !ret.mincha && !ret.shacharit) {\n return NONE;\n }\n return ret;\n}\n\ntype TachanunYear = {\n none: number[];\n some: number[];\n yesPrev: number[];\n};\n\nfunction tachanunYear(year: number, il: boolean): TachanunYear {\n const leap = HDate.isLeapYear(year);\n const monthsInYear = HDate.monthsInYear(year);\n let av9dt = new HDate(9, months.AV, year);\n if (av9dt.getDay() === 6) {\n av9dt = av9dt.next();\n }\n let shushPurim = new HDate(15, months.ADAR_II, year);\n if (shushPurim.getDay() === 6) {\n shushPurim = shushPurim.next();\n }\n const none: readonly HDate[] = [\n new HDate(2, months.TISHREI, year), // Rosh Hashana II\n ].concat(\n // Rosh Chodesh - 1st of every month. Also includes RH day 1 (1 Tishrei)\n range(1, monthsInYear).map(month => new HDate(1, month, year)),\n // Rosh Chodesh - 30th of months that have one\n range(1, monthsInYear)\n .filter(month => HDate.daysInMonth(month, year) === 30)\n .map(month => new HDate(30, month, year)),\n // entire month of Nisan\n range(1, HDate.daysInMonth(months.NISAN, year)).map(\n mday => new HDate(mday, months.NISAN, year)\n ),\n new HDate(18, months.IYYAR, year), // Lag BaOmer\n // Rosh Chodesh Sivan thru Isru Chag\n range(1, 8 - (il ? 1 : 0)).map(mday => new HDate(mday, months.SIVAN, year)),\n av9dt, // Tisha B'Av\n new HDate(15, months.AV, year), // Tu B'Av\n new HDate(29, months.ELUL, year), // Erev Rosh Hashanah\n // Erev Yom Kippur thru Isru Chag\n range(9, 24 - (il ? 1 : 0)).map(mday => new HDate(mday, months.TISHREI, year)),\n // Chanukah\n range(25, 33).map(mday => new HDate(mday, months.KISLEV, year)),\n new HDate(15, months.SHVAT, year), // Tu BiShvat\n new HDate(14, months.ADAR_II, year), // Purim\n shushPurim,\n leap ? new HDate(14, months.ADAR_I, year) : [] // Purim Katan\n );\n const some: readonly HDate[] = [\n new HDate(14, months.IYYAR, year), // Pesach Sheini\n ].concat(\n // Until 14 Sivan\n range(1, 13).map(mday => new HDate(mday, months.SIVAN, year)),\n // Until after Rosh Chodesh Cheshvan\n range(20, 31).map(mday => new HDate(mday, months.TISHREI, year)),\n // Yom HaAtzma'ut, which changes based on day of week\n year >= 5708 ? (dateYomHaZikaron(year) as HDate).next() : [],\n // Yom Yerushalayim\n year >= 5727 ? new HDate(28, months.IYYAR, year) : []\n );\n const yesPrev: readonly HDate[] = [\n new HDate(29, months.ELUL, year - 1), // Erev Rosh Hashanah\n new HDate(9, months.TISHREI, year), // Erev Yom Kippur\n new HDate(14, months.IYYAR, year), // Pesach Sheini\n ];\n return {\n none: none.map(hd => hd.abs()).sort((a, b) => a - b),\n some: some.map(hd => hd.abs()).sort((a, b) => a - b),\n yesPrev: yesPrev.map(hd => hd.abs()).sort((a, b) => a - b),\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tachanun.js","sources":["../../../src/tachanun.ts"],"sourcesContent":["import {HDate, months} from '@hebcal/hdate';\nimport {dateYomHaZikaron} from './modern.js';\n\nfunction range(start: number, end: number): readonly number[] {\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n}\n\n/**\n * Is *tachanun* said today?\n */\nexport type TachanunResult = {\n /** Tachanun is said at Shacharit */\n shacharit: boolean;\n /** Tachanun is said at Mincha */\n mincha: boolean;\n /** All congregations say Tachanun on the day */\n allCongs: boolean;\n};\n\nconst NONE: TachanunResult = {\n shacharit: false,\n mincha: false,\n allCongs: false,\n} as const;\n\n/**\n * Return details on what Tachanun (or Tzidchatcha on Shabbat) is said on `hdate`.\n *\n * Tachanun is not said on Rosh Chodesh, the month of Nisan, Lag Baomer,\n * Rosh Chodesh Sivan until Isru Chag, Tisha B'av, 15 Av, Erev Rosh Hashanah,\n * Rosh Hashanah, Erev Yom Kippur until after Simchat Torah, Chanukah,\n * Tu B'shvat, Purim and Shushan Purim, and Purim and Shushan Purim Katan.\n *\n * In some congregations Tachanun is not said until from Rosh Chodesh Sivan\n * until 14th Sivan, Sukkot until after Rosh Chodesh Cheshvan, Pesach Sheini,\n * Yom Ha'atzmaut, and Yom Yerushalayim.\n *\n * Tachanun is not said at Mincha on days before it is not said at Shacharit.\n *\n * Tachanun is not said at Shacharit on Shabbat, but is at Mincha, usually.\n */\nexport function tachanun(hdate: HDate, il: boolean): TachanunResult {\n return tachanun0(hdate, il, true);\n}\n\nfunction tachanun0(hdate: HDate, il: boolean, checkNext: boolean): TachanunResult {\n const year = hdate.yy;\n const dates = tachanunYear(year, il);\n const abs = hdate.abs();\n if (dates.none.includes(abs)) {\n return NONE;\n }\n const dow = hdate.getDay();\n const ret: TachanunResult = {\n shacharit: false,\n mincha: false,\n allCongs: false,\n };\n if (!dates.some.includes(abs)) {\n ret.allCongs = true;\n }\n if (dow !== 6) {\n ret.shacharit = true;\n }\n const tomorrow = abs + 1;\n if (checkNext && !dates.yesPrev.includes(tomorrow)) {\n const tmp = tachanun0(new HDate(tomorrow), il, false);\n ret.mincha = tmp.shacharit;\n } else {\n ret.mincha = dow !== 5;\n }\n if (ret.allCongs && !ret.mincha && !ret.shacharit) {\n return NONE;\n }\n return ret;\n}\n\ntype TachanunYear = {\n none: number[];\n some: number[];\n yesPrev: number[];\n};\n\nfunction tachanunYear(year: number, il: boolean): TachanunYear {\n const leap = HDate.isLeapYear(year);\n const monthsInYear = HDate.monthsInYear(year);\n let av9dt = new HDate(9, months.AV, year);\n if (av9dt.getDay() === 6) {\n av9dt = av9dt.next();\n }\n let shushPurim = new HDate(15, months.ADAR_II, year);\n if (shushPurim.getDay() === 6) {\n shushPurim = shushPurim.next();\n }\n const none: readonly HDate[] = [\n new HDate(2, months.TISHREI, year), // Rosh Hashana II\n ].concat(\n // Rosh Chodesh - 1st of every month. Also includes RH day 1 (1 Tishrei)\n range(1, monthsInYear).map(month => new HDate(1, month, year)),\n // Rosh Chodesh - 30th of months that have one\n range(1, monthsInYear)\n .filter(month => HDate.daysInMonth(month, year) === 30)\n .map(month => new HDate(30, month, year)),\n // entire month of Nisan\n range(1, HDate.daysInMonth(months.NISAN, year)).map(\n mday => new HDate(mday, months.NISAN, year)\n ),\n new HDate(18, months.IYYAR, year), // Lag BaOmer\n // Rosh Chodesh Sivan thru Isru Chag\n range(1, 8 - (il ? 1 : 0)).map(mday => new HDate(mday, months.SIVAN, year)),\n av9dt, // Tisha B'Av\n new HDate(15, months.AV, year), // Tu B'Av\n new HDate(29, months.ELUL, year), // Erev Rosh Hashanah\n // Erev Yom Kippur thru Isru Chag\n range(9, 24 - (il ? 1 : 0)).map(mday => new HDate(mday, months.TISHREI, year)),\n // Chanukah\n range(25, 33).map(mday => new HDate(mday, months.KISLEV, year)),\n new HDate(15, months.SHVAT, year), // Tu BiShvat\n new HDate(14, months.ADAR_II, year), // Purim\n shushPurim,\n leap ? new HDate(14, months.ADAR_I, year) : [] // Purim Katan\n );\n const some: readonly HDate[] = [\n new HDate(14, months.IYYAR, year), // Pesach Sheini\n ].concat(\n // Until 14 Sivan\n range(1, 13).map(mday => new HDate(mday, months.SIVAN, year)),\n // Until after Rosh Chodesh Cheshvan\n range(20, 31).map(mday => new HDate(mday, months.TISHREI, year)),\n // Yom HaAtzma'ut, which changes based on day of week\n year >= 5708 ? (dateYomHaZikaron(year) as HDate).next() : [],\n // Yom Yerushalayim\n year >= 5727 ? new HDate(28, months.IYYAR, year) : []\n );\n const yesPrev: readonly HDate[] = [\n new HDate(29, months.ELUL, year - 1), // Erev Rosh Hashanah\n new HDate(9, months.TISHREI, year), // Erev Yom Kippur\n new HDate(14, months.IYYAR, year), // Pesach Sheini\n ];\n return {\n none: none.map(hd => hd.abs()).sort((a, b) => a - b),\n some: some.map(hd => hd.abs()).sort((a, b) => a - b),\n yesPrev: yesPrev.map(hd => hd.abs()).sort((a, b) => a - b),\n };\n}\n"],"names":[],"mappings":"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"}
@@ -70,6 +70,23 @@ export declare class Zmanim {
70
70
  * evening (after sunset)
71
71
  */
72
72
  timeAtAngle(angle: number, rising: boolean): Date;
73
+ /**
74
+ * Sunrise for a given zenith as epoch milliseconds, mirroring what
75
+ * `NOAACalculator.getSunrise()` / `getSeaLevelSunrise()` /
76
+ * `getSunriseOffsetByDegrees()` compute, minus the `ZonedDateTime`.
77
+ *
78
+ * Note that noaa's degree-based accessors pass `adjustForElevation = true`
79
+ * as well; the adjustment is a no-op unless the zenith is exactly
80
+ * {@link GEOMETRIC_ZENITH}, which is why degree-based zmanim are unaffected
81
+ * by elevation.
82
+ * @private
83
+ */
84
+ private sunriseMillis;
85
+ /**
86
+ * Sunset counterpart of {@link sunriseMillis}.
87
+ * @private
88
+ */
89
+ private sunsetMillis;
73
90
  /**
74
91
  * Upper edge of the Sun appears over the eastern horizon in the morning (0.833° above horizon)
75
92
  * If elevation is enabled, this function will include elevation in the calculation.
@@ -155,7 +172,7 @@ export declare class Zmanim {
155
172
  * the result is not impacted by elevation.
156
173
  */
157
174
  misheyakirMachmir(): Date;
158
- private getShaahZmanisBasedZmanZdt;
175
+ private getShaahZmanisBasedZmanMillis;
159
176
  /**
160
177
  * Utility method for using elevation-aware sunrise/sunset
161
178
  * @param hours number of _shaos zmaniyos_ (solar hours) after sunrise