npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@hebcal/leyning

v8.1.9

Published

Torah Reading API for Parashat HaShavua and holidays

Downloads

380

Readme

@hebcal/leyning

Javascript Torah Reading API for Parashat HaShavua and holidays

Build Status

This package includes both traditional (full kriyah) and weekday Torah readings.

Triennial Torah Readings have moved to @hebcal/triennial

Installation

$ npm install @hebcal/leyning

Synopsis

import {HebrewCalendar, HDate, Event} from '@hebcal/core';
import {getLeyningForParshaHaShavua, formatAliyahWithBook} from '@hebcal/leyning';

const events = HebrewCalendar.calendar({sedrot: true, noHolidays: true});
const ev = events.find((ev) => ev.getDesc() == 'Parashat Pinchas');
const reading = getLeyningForParshaHaShavua(ev, false);
console.log(`${ev.getDesc()}: ${reading.summary}`);
console.log(`Haftara: ${reading.haftara}`);
for (const [num, aliyah] of Object.entries(reading.fullkriyah)) {
  const number = num == 'M' ? 'maftir' : `aliyah ${num}`;
  let str = formatAliyahWithBook(aliyah);
  if (reading.reason[num]) {
      str += ' | ' + reading.reason[num];
  }
  str += ` (${aliyah.v} verses)`;
  console.log(`${number}: ${str}`);
}

Constants

Functions

Typedefs

BOOK : Array.<string>

Names of the books of the Torah. BOOK[1] === 'Genesis'

Kind: global constant
Read only: true

parshaToString(parsha) ⇒ string

Formats parsha as a string

Kind: global function

| Param | Type | Description | | --- | --- | --- | | parsha | string | Array.<string> | untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei'] |

clone(src) ⇒ any

Makes a deep copy of the src object using JSON stringify and parse

Kind: global function

| Param | Type | | --- | --- | | src | any |

calculateNumVerses(aliyah) ⇒ number

Calculates the number of verses in an aliyah or haftara based on the b (begin verse), e (end verse) and k (book). Modifies aliyah by setting the v field.

Kind: global function

| Param | Type | | --- | --- | | aliyah | Aliyah |

formatAliyahWithBook(a) ⇒ string

Formats an aliyah object like "Numbers 28:9-28:15"

Kind: global function

| Param | Type | Description | | --- | --- | --- | | a | Aliyah | aliyah |

formatAliyahShort(aliyah, showBook) ⇒ string

Formats an aliyah object like "Numbers 28:9-15"

Kind: global function

| Param | Type | | --- | --- | | aliyah | Aliyah | | showBook | boolean |

sumVerses(aliyot) ⇒ number

Returns the total number of verses in an array of Aliyah (or haftarah) objects

Kind: global function

| Param | Type | | --- | --- | | aliyot | Aliyah | Array.<Aliyah> |

makeLeyningParts(aliyot) ⇒ Array.<Aliyah>

Summarizes an AliyotMap by collapsing all adjacent aliyot. Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)

Kind: global function

| Param | Type | | --- | --- | | aliyot | Object.<string, Aliyah> |

makeSummaryFromParts(parts) ⇒ string

Returns a string representation of the leyning parts. Separate verse ranges read from the same book are separated by commas, e.g. Isaiah 6:1-7:6, 9:5-6. Verse ranges from different books are separated by semicolons, e.g. Genesis 21:1-34; Numbers 29:1-6.

Kind: global function

| Param | Type | | --- | --- | | parts | Aliyah | Array.<Aliyah> |

makeLeyningSummary(aliyot) ⇒ string

Makes a summary of the leyning, like "Genesis 6:9-11:32"

Kind: global function

| Param | Type | | --- | --- | | aliyot | Object.<string, Aliyah> |

hasFestival(holiday) ⇒ boolean

Is there a special festival Torah Reading for holiday?

Kind: global function

| Param | Type | | --- | --- | | holiday | string |

lookupFestival(holiday) ⇒ any

Returns the raw metadata for festival reading for holiday

Kind: global function

| Param | Type | | --- | --- | | holiday | string |

getLeyningKeyForEvent(ev, [il]) ⇒ string

Based on the event date, type and title, finds the relevant leyning key

Kind: global function
Returns: string - key to look up in holiday-reading.json

| Param | Type | Default | Description | | --- | --- | --- | --- | | ev | Event | | event | | [il] | boolean | false | true if Israel holiday scheme |

specialReadings2(parsha, hd, il, aliyot) ⇒ SpecialReading

Determines if the regular parashat haShavua coincides with an event that requires a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh Chodesh or Machar Chodesh, etc.).

This function does not modify aliyot. Instead, it returns a deep copy with aliyot['M'] replaced and sets reason.M (and in some cases the 6th and 7th aliyah, setting reason['7']).

If a special Haftarah applies, the result will have a haft property pointing to Haftarah object and sets reason.haftara.

Kind: global function

| Param | Type | | --- | --- | | parsha | Array.<string> | | hd | HDate | | il | boolean | | aliyot | Object.<string, Aliyah> |

getLeyningForHolidayKey(key, [cholHaMoedDay], [il]) ⇒ Leyning

Looks up leyning for a given holiday key. Key should be an (untranslated) string used in holiday-readings.json. Returns some of full kriyah aliyot, special Maftir, special Haftarah

Kind: global function
Returns: Leyning - map of aliyot

| Param | Type | Description | | --- | --- | --- | | key | string | name from holiday-readings.json to find | | [cholHaMoedDay] | number | | | [il] | boolean | |

getLeyningForHoliday(ev, [il]) ⇒ Leyning

Looks up leyning for a given holiday. Returns some of full kriyah aliyot, special Maftir, special Haftarah

Kind: global function
Returns: Leyning - map of aliyot

| Param | Type | Default | Description | | --- | --- | --- | --- | | ev | Event | | the Hebcal event associated with this leyning | | [il] | boolean | false | true if Israel holiday scheme |

makeLeyningNames(parsha) ⇒ LeyningNames

Transliterated English and Hebrew names of this parsha

Kind: global function

| Param | Type | Description | | --- | --- | --- | | parsha | string | Array.<string> | untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei'] |

getWeekdayReading(parsha) ⇒ Object.<string, Aliyah>

Looks up Monday/Thursday aliyot for a regular parsha

Kind: global function
Returns: Object.<string, Aliyah> - map of aliyot

| Param | Type | Description | | --- | --- | --- | | parsha | string | Array.<string> | untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei'] |

getLeyningForParsha(parsha) ⇒ Leyning

Looks up regular leyning for a weekly parsha with no special readings

Kind: global function
Returns: Leyning - map of aliyot

| Param | Type | Description | | --- | --- | --- | | parsha | string | Array.<string> | untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei'] |

getLeyningForParshaHaShavua(ev, [il]) ⇒ Leyning

Looks up leyning for a regular Shabbat parsha, including any special maftir or Haftara.

Kind: global function
Returns: Leyning - map of aliyot

| Param | Type | Default | Description | | --- | --- | --- | --- | | ev | Event | | the Hebcal event associated with this leyning | | [il] | boolean | false | in Israel |

lookupParsha(parsha) ⇒ ParshaMeta

Returns the parsha metadata

Kind: global function

| Param | Type | Description | | --- | --- | --- | | parsha | string | Array.<string> | untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei'] |

getLeyningOnDate(hdate, il, [wantarray]) ⇒ Leyning | Array.<Leyning>

Looks up leyning for a regular Shabbat, Monday/Thursday weekday or holiday.

If hdate coincides with a holiday that has Torah reading, returns the reading for that day (see getLeyningForHoliday)

Otherwise, if hdate is a Saturday, returns getLeyningForParshaHaShavua

Otherwise, if hdate is a Monday or Thursday, returns Leyning for the Parashat haShavua, containing only the weekday aliyot (no fullkriyah).

Otherwise, returns undefined.

Kind: global function
Returns: Leyning | Array.<Leyning> - map of aliyot

| Param | Type | Default | Description | | --- | --- | --- | --- | | hdate | HDate | | Hebrew Date | | il | boolean | | in Israel | | [wantarray] | boolean | false | to return an array of 0 or more readings |

writeCsvLines(stream, ev, reading, il, isParsha)

Formats reading for CSV

Kind: global function

| Param | Type | | --- | --- | | stream | fs.WriteStream | | ev | Event | | reading | Leyning | | il | boolean | | isParsha | boolean |

Aliyah : Object

Represents an aliyah

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | k | string | Book (e.g. "Numbers") | | b | string | beginning verse (e.g. "28:9") | | e | string | ending verse (e.g. "28:15") | | [v] | number | number of verses | | [p] | number | parsha number (1=Bereshit, 54=Vezot HaBracha) |

SpecialReading : Object

Leyning for a parsha hashavua or holiday

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | aliyot | Object.<string, Aliyah> | Map of aliyot 1 through 7 plus M for maftir | | [reason] | Object.<string, string> | Explanations for special readings, keyed by aliyah number, M for maftir or haftara for Haftarah | | haft | Aliyah | Array.<Aliyah> | Haftarah object(s) | | seph | Aliyah | Array.<Aliyah> | Haftarah object(s) |

LeyningNames : Object

Name of the parsha hashavua or holiday

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | en | string | English | | he | string | Hebrew (with nikud) |

Leyning : Object

Leyning for a parsha hashavua or holiday

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | name | LeyningNames | | | [parsha] | Array.<string> | An array of either 1 (regular) or 2 (doubled parsha). undefined for holiday readings | | [parshaNum] | number | Array.<number> | 1 for Bereshit, 2 for Noach, etc. undefined for holiday readings | | summary | string | Such as Genesis 1:1 - 6:8 | | haft | Aliyah | Array.<Aliyah> | Haftarah object(s) | | haftara | string | Haftarah, such as Isaiah 42:5 – 43:11 | | [haftaraNumV] | number | Number of verses in the Haftarah | | [seph] | Aliyah | Array.<Aliyah> | Haftarah object(s) for Sephardim | | [sephardic] | string | Haftarah for Sephardim, such as Isaiah 42:5 - 42:21 | | [sephardicNumV] | number | Number of verses in the Haftarah for Sephardim | | fullkriyah | Object.<string, Aliyah> | Map of aliyot 1 through 7 plus M for maftir | | [weekday] | Object.<string, Aliyah> | Optional map of weekday Torah Readings aliyot 1 through 3 for Monday and Thursday | | [reason] | Object.<string, string> | Explanations for special readings, keyed by aliyah number, M for maftir or haftara for Haftarah | | [megillah] | Object.<string, Aliyah> | Optional map of megillah reading. Song of Songs is read on the sabbath of Passover week, the Book of Ruth on Shavuot, Lamentations on Tisha be-Av, Ecclesiastes on the sabbath of the week of Sukkoth, and the Book of Esther on Purim. |

ParshaMeta : Object

Parsha metadata

Kind: global typedef
Properties

| Name | Type | Description | | --- | --- | --- | | num | number | 1 for Bereshit, 2 for Noach, etc. undefined for holiday readings | | hebrew | string | parsha name in Hebrew with niqud | | book | number | 1 for Genesis, 2 for Exodus, 5 for Deuteronomy | | haft | Aliyah | Array.<Aliyah> | Haftarah object(s) | | [seph] | Aliyah | Array.<Aliyah> | Haftarah object(s) for Sephardim | | fullkriyah | Object.<string, Array.<string>> | Map of aliyot 1 through 7 plus M for maftir | | weekday | Object.<string, Array.<string>> | Map of weekday Torah Readings aliyot 1 through 3 for Monday and Thursday |