mirror of
https://github.com/acamarata/temporal-hijri.git
synced 2026-06-30 19:04:29 +00:00
Temporal Calendar Protocol implementation for Hijri calendar via hijri-core. Provides HijriCalendar base class, UaqCalendar (UAQ engine), FcnaCalendar (FCNA engine), and convenience singletons uaqCalendar/fcnaCalendar. Calendar protocol: year, month, monthCode, day, daysInMonth, daysInYear, monthsInYear, inLeapYear, dayOfWeek, dayOfYear, weekOfYear, daysInWeek, dateFromFields, yearMonthFromFields, monthDayFromFields, dateAdd, dateUntil, mergeFields. dateAdd applies year/month increments in Hijri coordinate space (correct semantics for variable-length lunar months), then applies days/weeks in ISO space. Day-of-month clamped on month boundary changes. 18 ESM + 8 CJS tests passing. Dual CJS/ESM build.
1 KiB
1 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0] - 2026-02-25
Added
HijriCalendarbase class implementing the TC39 Temporal Calendar ProtocolUaqCalendar— Umm al-Qura calendar (table-driven, 1318-1500 AH coverage)FcnaCalendar— FCNA/ISNA calendar (astronomical new moon calculation via Meeus)uaqCalendarandfcnaCalendarconvenience singletons- Full Temporal protocol:
year,month,monthCode,day,daysInMonth,daysInYear,monthsInYear,inLeapYear,dayOfWeek,dayOfYear,weekOfYear,daysInWeek,dateFromFields,yearMonthFromFields,monthDayFromFields,dateAdd,dateUntil,mergeFields,toString - Dual CJS and ESM builds with TypeScript declarations
- Peer dependency on
hijri-core ^1.0.0for conversion logic - Optional peer dependency on
@js-temporal/polyfill ^0.4.0