🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

kenat

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kenat - npm Package Compare versions

Comparing version
2.0.1
to
2.0.2
+1
-1
package.json
{
"name": "kenat",
"version": "2.0.1",
"version": "2.0.2",
"description": "A JavaScript library for the Ethiopian calendar with date and time support.",

@@ -5,0 +5,0 @@ "main": "src/index.js",

@@ -15,3 +15,2 @@ import { validateNumericInputs, getWeekday } from './utils.js';

/**

@@ -29,30 +28,11 @@ * Calculates all Bahire Hasab values for a given Ethiopian year, including all movable feasts.

const ameteAlem = 5500 + ethiopianYear;
const meteneRabiet = Math.floor(ameteAlem / 4);
const evangelistRemainder = ameteAlem % 4;
const base = _calculateBahireHasabBase(ethiopianYear);
const evangelistRemainder = base.ameteAlem % 4;
const evangelistName = evangelistNames[lang]?.[evangelistRemainder] || evangelistNames.english[evangelistRemainder];
const tinteQemer = (ameteAlem + meteneRabiet) % 7;
const tinteQemer = (base.ameteAlem + base.meteneRabiet) % 7;
const weekdayIndex = (tinteQemer + 1) % 7;
const newYearWeekday = daysOfWeek[lang]?.[weekdayIndex] || daysOfWeek.english[weekdayIndex];
const medeb = ameteAlem % 19;
const wenber = medeb === 0 ? 18 : medeb - 1;
const abektie = (wenber * 11) % 30;
const metqi = (wenber * 19) % 30;
const bealeMetqiMonth = metqi > 14 ? 1 : 2;
const bealeMetqiDay = metqi;
const bealeMetqiDate = { year: ethiopianYear, month: bealeMetqiMonth, day: bealeMetqiDay };
const bealeMetqiWeekday = daysOfWeek.english[getWeekday(bealeMetqiDate)];
const tewsak = tewsakMap[bealeMetqiWeekday];
const mebajaHamerSum = bealeMetqiDay + tewsak;
const mebajaHamer = mebajaHamerSum > 30 ? mebajaHamerSum % 30 : mebajaHamerSum;
let ninevehMonth = metqi > 14 ? 5 : 6;
if (mebajaHamerSum > 30) ninevehMonth++;
const ninevehDate = { year: ethiopianYear, month: ninevehMonth, day: mebajaHamer };
const movableFeasts = {};

@@ -66,3 +46,3 @@ const tewsakToKeyMap = Object.entries(keyToTewsakMap).reduce((acc, [key, val]) => {

if (holidayKey) {
const date = addDays(ninevehDate, movableHolidayTewsak[tewsakKey]);
const date = addDays(base.ninevehDate, movableHolidayTewsak[tewsakKey]);
const info = holidayInfo[holidayKey];

@@ -78,3 +58,3 @@ const rules = movableHolidays[holidayKey];

ethiopian: date,
gregorian: toGC(date.year, date.month, date.day) // <-- ADDED: Include Gregorian date
gregorian: toGC(date.year, date.month, date.day)
};

@@ -85,10 +65,13 @@ }

return {
ameteAlem,
meteneRabiet,
ameteAlem: base.ameteAlem,
meteneRabiet: base.meteneRabiet,
evangelist: { name: evangelistName, remainder: evangelistRemainder },
newYear: { dayName: newYearWeekday, tinteQemer: tinteQemer },
medeb, wenber, abektie, metqi,
bealeMetqi: { date: bealeMetqiDate, weekday: bealeMetqiWeekday },
mebajaHamer,
nineveh: ninevehDate,
medeb: base.medeb,
wenber: base.wenber,
abektie: base.abektie,
metqi: base.metqi,
bealeMetqi: { date: base.bealeMetqiDate, weekday: base.bealeMetqiWeekday },
mebajaHamer: base.mebajaHamer,
nineveh: base.ninevehDate,
movableFeasts

@@ -116,3 +99,3 @@ };

const { ninevehDate } = _calculateBahireHasabBase(ethiopianYear); // Using the DRY helper
const { ninevehDate } = _calculateBahireHasabBase(ethiopianYear);

@@ -124,20 +107,18 @@ return addDays(ninevehDate, tewsak);

/**
* Calculates base values for the Bahire Hasab system for a given Ethiopian year,
* primarily determining the date of the Fast of Nineveh (ጾመ ነነዌ - Tsome Nenewē).
* Calculates and returns all base values for the Bahire Hasab system for a given Ethiopian year.
* This helper is the single source of truth for the core computational logic.
*
* The Bahire Hasab is the traditional Ethiopian Orthodox Tewahedo Church system
* for calculating movable feasts and fasts. This function computes key intermediate
* values like 'Metqi' (the date on which the year's cycle is proclaimed) and uses
* them to find the start date of the Fast of Nineveh.
*
* Note: This function relies on external `tewsakMap`, `daysOfWeek.english`, and `getWeekday`
* which are not defined within its scope but are expected to be available.
*
* @param {number} ethiopianYear - The Ethiopian year for which to perform the calculations.
* @returns {{ ninevehDate: { year: number, month: number, day: number } }} An object containing the calculated date of the Fast of Nineveh.
* - ninevehDate: An object representing the date of the Fast of Nineveh.
* - year: The Ethiopian year (this will be the same as the input `ethiopianYear`).
* - month: The Ethiopian month (typically ranging from 5 to 7, e.g., Ter, Yekatit, or Megabit)
* in which the Fast of Nineveh begins. Ethiopian months are 1-indexed (1 for Meskerem, ..., 13 for Pagume).
* - day: The Ethiopian day of the month (1-30) on which the Fast of Nineveh begins.
* @returns {{
* ameteAlem: number,
* meteneRabiet: number,
* medeb: number,
* wenber: number,
* abektie: number,
* metqi: number,
* bealeMetqiDate: { year: number, month: number, day: number },
* bealeMetqiWeekday: string,
* mebajaHamer: number,
* ninevehDate: { year: number, month: number, day: number }
* }} An object containing all core calculated values.
*/

@@ -147,5 +128,5 @@ function _calculateBahireHasabBase(ethiopianYear) {

const meteneRabiet = Math.floor(ameteAlem / 4);
const medeb = ameteAlem % 19;
const wenber = medeb === 0 ? 18 : medeb - 1;
const abektie = (wenber * 11) % 30;
const metqi = (wenber * 19) % 30;

@@ -157,3 +138,4 @@

const tewsak = tewsakMap[daysOfWeek.english[getWeekday(bealeMetqiDate)]];
const bealeMetqiWeekday = daysOfWeek.english[getWeekday(bealeMetqiDate)];
const tewsak = tewsakMap[bealeMetqiWeekday];
const mebajaHamerSum = bealeMetqiDay + tewsak;

@@ -166,3 +148,14 @@ const mebajaHamer = mebajaHamerSum > 30 ? mebajaHamerSum % 30 : mebajaHamerSum;

return { ninevehDate };
}
return {
ameteAlem,
meteneRabiet,
medeb,
wenber,
abektie,
metqi,
bealeMetqiDate,
bealeMetqiWeekday,
mebajaHamer,
ninevehDate,
};
}