luxon-hijri/CHANGELOG.md
Aric Camarata eea0bc808d test: align day-boundary tests and docs with hijri-core's UTC-day contract
Convert all LOCAL-noon Date anchors (new Date(y, m, d, 12)) to UTC-explicit
anchors (new Date(Date.UTC(y, m-1, d))) in test.mjs and test-cjs.cjs.
Add UAQ default-engine round-trip regression suite (5 cases).
Extend FCNA round-trips; update vitest header comment.

README: add "Day boundaries and time zones" section explaining the UTC-day
contract, the correct pattern for zone-aware Luxon DateTimes, and ISO-string
parsing behaviour. Quick Start examples updated to use Date.UTC.

CHANGELOG: document inherited UTC-day fix under [Unreleased].

Lock-step dependency: requires hijri-core fix (commit 3419378,
branch fix/utc-day-boundary). Both packages release together per ADR-013.

Verified: TZ={UTC,America/New_York,Pacific/Auckland} × {test.mjs,
test-cjs.cjs, test-crossval.mjs, vitest} — all pass (88+26+120+15 tests).
2026-06-10 16:38:29 -04:00

1.9 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.

[Unreleased]

Fixed

  • Inherits hijri-core's UTC-day fix: toHijri with UTC-midnight Dates is now exact on all hosts (previously, LOCAL date components were read, causing off-by-one errors west of UTC and on UTC+13+).
  • Round-trips (toGregorian then toHijri) are now exact for both the UAQ (default) and FCNA engines.
  • Tests updated to use new Date(Date.UTC(...)) anchors throughout; UAQ engine round-trip regression suite added. Lock-step release with hijri-core fix (commit 3419378).

[3.0.1] - 2026-05-30

Fixed

  • Improved type safety in formatHijriDate: explicit return type annotation on replace callback and non-null assertions on array lookups with JSDoc justification comments.
  • Added in-code comment blocks to all source modules documenting purpose, inputs, outputs, constraints, and SPORT references.

[3.0.0] - 2026-05-28

Changed

  • BREAKING: luxon and hijri-core moved from dependencies to peerDependencies. Consumers must now install both alongside luxon-hijri. See the migration note below.
  • Peer range for luxon widened from ^3.5.0 to ^3.0.0 — any Luxon 3.x release is compatible.

Migration from v2.x

pnpm add luxon-hijri luxon hijri-core
# or
npm install luxon-hijri luxon hijri-core

Prior to v3.0.0, luxon and hijri-core were bundled as runtime dependencies. This caused Luxon to appear twice in bundled applications where it was already installed. v3.0.0 aligns with the peer-dependency pattern used by all other hijri wrapper packages (date-fns-hijri, dayjs-hijri-plus, moment-hijri-plus, temporal-hijri).

[2.1.0] - 2026-05-28

Added

  • Initial release