mirror of
https://github.com/acamarata/luxon-hijri.git
synced 2026-06-30 18:54:28 +00:00
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).
45 lines
1.9 KiB
Markdown
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
|