Aric Camarata
a8d15bc85d
fix: chronological order test fails in UTC environments
...
The test called getTimes without an explicit tz, so it fell back to
-date.getTimezoneOffset()/60. On the developer machine (EDT = UTC-4)
this worked; on CI (Ubuntu, UTC = 0) NY's Maghrib crossed midnight,
returning ~0.51h instead of ~24.5h, which sorted before Asr (~21h).
Add tz=-4 explicitly. All section-8 geographic tests already do this;
the chronological test was the only one missing it.
2026-02-25 18:34:59 -05:00
Aric Camarata
c02f197ece
v2.0.0 — TypeScript rewrite, dual ESM/CJS, 14 methods + PCD dynamic algorithm
...
Complete rewrite from plain JavaScript to TypeScript with dual CJS/ESM output
via tsup. Removes all legacy .js source files and the old CommonJS-only index.
Key changes:
- Full TypeScript source in src/ with strict mode and declaration maps
- tsup build: dist/index.cjs + dist/index.mjs + dual .d.ts / .d.mts types
- 14 traditional fixed-angle methods (UOIF through MUIS) + MSC seasonal method
- PCD dynamic algorithm: MSC seasonal base + Earth-Sun distance correction +
ecliptic geometry + atmospheric refraction + observer elevation
- getTimesAll() batches all 14x2 zenith angles into a single SPA call
- getMscFajr() / getMscIsha() expose MSC seasonal reference directly
- getAngles() returns the PCD-computed fajrAngle and ishaAngle
- High-latitude bounds: angles clipped to [10, 20] above 55N
- 106 tests across ESM and CJS (test.mjs + test-cjs.cjs)
- CI matrix: Node 20/22/24, typecheck, pack-check
- Wiki: 12 reference pages + 6-page research section with global accuracy study,
home-territory comparison, observational evidence, and field observation matrix
- Moon functions removed (migrated to moon-sighting package)
- pnpm-only, Node >=20, sideEffects: false
2026-02-25 18:11:20 -05:00