Aric Camarata
8f39fcd82e
refactor: code quality improvements across the board
...
- Extract magic numbers into named constants (DHUHR_OFFSET_MINUTES,
ANGLE_MIN/MAX, LAT_SCALE) with source citations for MCW coefficients
- Add input validation (RangeError) for lat, lng, tz, elevation on all
public API functions (getTimes, getTimesAll)
- Optimize solar ephemeris: computeAngles() returns declination so
getTimes/getTimesAll reuse it for Asr instead of computing twice
- DRY: shared constants.ts for DEG, Dhuhr offset, angle bounds
- Improve MethodEntry type with labeled tuple elements and NaN docs
- Add stricter tsconfig (noImplicitReturns, noFallthroughCasesInSwitch)
- Switch tests to node:test framework (TAP output, describe/it blocks)
- Add 8 new input validation tests (104 ESM + 13 CJS total)
- Add ESLint + Prettier with CI lint job
- Remove src/ from npm package files (smaller published tarball)
- Document NaN return behavior in JSDoc for getTimes/getTimesAll
2026-03-08 11:10:22 -04: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
f020a844f0
Added tests
2025-05-14 15:15:32 -04:00
2f9155b567
Update to readme and meta
2025-05-14 15:12:52 -04:00
01e7e3487a
Update test case
2025-05-04 12:07:45 -04:00
b7684851c0
Updated package and research
2025-05-04 12:05:39 -04:00
269cb3bb11
Update packaging for 1.6.2
2025-05-04 09:38:05 -04:00
925b83b407
Package fix for 1.6.1
2025-05-04 09:35:16 -04:00
6950f5a291
Fixes for 1.6.1
2025-05-04 09:34:00 -04:00
b5ee3ca8b8
feat: improve Asr solver, dynamic twilight angles, and MSC algorithm
2025-05-04 08:59:31 -04:00
uny-dev
eb68c97b42
Updated package.json repository field for NPM
2025-03-18 06:14:01 -04:00
4403cb224c
Added MSC Method
2024-06-21 20:14:18 -04:00
aaf15ee624
moon visibility for start and end
2023-12-01 16:41:57 +07:00
0cb2267da6
updated to "pray-calc" and synodic accuracy
2023-11-14 12:25:53 +07:00
d7c449ece7
update index.d.ts
2023-11-13 22:39:50 +07:00
6380403cf7
add phase name and symbol
2023-11-13 22:24:17 +07:00
c1814c2783
added getMoon functions
2023-11-13 21:34:55 +07:00
bb49fc63fe
update version
2023-11-13 09:16:32 +07:00
b867162ace
updated for timezone handling and asr calc
2023-11-13 08:51:34 +07:00
f64a968a48
added info for npm publish
2023-11-12 11:28:20 +07:00
cf8aa20577
initial commit
2023-11-12 11:19:56 +07:00