mirror of
https://github.com/acamarata/hijri-core.git
synced 2026-06-30 18:54:27 +00:00
Zero-dependency Hijri calendar engine with pluggable calendar registry. Built-in Umm al-Qura (UAQ) and FCNA/ISNA calendar engines. Supports N additional calendars via registerCalendar(). Pure Date.UTC arithmetic, binary search on 184-entry UAQ table, Meeus Ch.49 new moon formula for FCNA. 39 ESM + 20 CJS tests passing. Dual CJS/ESM build with full TypeScript declarations.
1.2 KiB
1.2 KiB
Changelog
All notable changes to this project will be documented in this file.
The format follows Keep a Changelog.
[1.0.0] - 2026-02-25
Added
- UAQ (Umm al-Qura) calendar engine with binary search over a 184-year reference table (1318-1500 H / 1900-2076 CE)
- FCNA/ISNA calendar engine based on Jean Meeus Chapter 49 new moon algorithm with the FCNA conjunction criterion
- Calendar registry (
registerCalendar,getCalendar,listCalendars) for pluggable calendar support toHijri(date, options?)convenience wrappertoGregorian(hy, hm, hd, options?)convenience wrapperisValidHijriDate(hy, hm, hd, options?)validation functiondaysInHijriMonth(hy, hm, options?)month-length functionhDatesTableexport of the full Umm al-Qura datahmLong,hmMedium,hmShortHijri month name arrayshwLong,hwShort,hwNumericHijri weekday name arrays- Full TypeScript type declarations for all exports
- Dual CJS and ESM build (tsup)
CalendarEngineinterface for writing custom calendar implementations- Node 20/22/24 CI matrix
- GitHub Wiki with API reference and architecture documentation