temporal-hijri/CHANGELOG.md
Aric Camarata 51e07a65b3 feat: initial release of temporal-hijri v1.0.0
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.
2026-02-25 14:17:27 -05:00

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

  • HijriCalendar base class implementing the TC39 Temporal Calendar Protocol
  • UaqCalendar — Umm al-Qura calendar (table-driven, 1318-1500 AH coverage)
  • FcnaCalendar — FCNA/ISNA calendar (astronomical new moon calculation via Meeus)
  • uaqCalendar and fcnaCalendar convenience 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.0 for conversion logic
  • Optional peer dependency on @js-temporal/polyfill ^0.4.0