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

45 lines
1.9 KiB
Markdown

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [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
```bash
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