Aric Camarata
af34aef986
chore: remove .npmignore, add c8 coverage, fix ci.yml (T-E5-03)
...
- Remove .npmignore (violation: npm-package-standard requires files field in
package.json, not .npmignore; files field was already present and correct)
- Add c8@^10.1.3 to devDependencies for native V8 coverage (ADR-008)
- Fix coverage script: was 'node --test' (missing test.mjs), now correct
- Replace lint job in ci.yml with coverage job per ci-standard.md four-job
pattern (test/typecheck/pack-check/coverage); lint+format remain as local
scripts invocable manually
npm pack --dry-run: zero warnings, 11 files, expected contents verified.
Tests: 119 ESM + 15 CJS = 134 pass, 0 fail.
2026-05-30 15:40:23 -04:00
Aric Camarata
fbb2fa9179
chore: adopt shared config packages (tsconfig, eslint, prettier)
2026-05-30 15:06:05 -04:00
Aric Camarata
5b5466d8ad
ci: corepack before setup-node, scope prettier to src/, emit d.mts
2026-05-29 20:05:26 -04:00
Aric Camarata
cbe283aaf8
chore: bump to v2.1.1
...
- Flatten exports map to ADR-015 standard
- Add coverage script (c8)
- Migrate CI to corepack enable
2026-05-28 13:54:55 -04:00
Aric Camarata
4534b41957
feat: add getMidnight and Midnight field to prayer times output
...
Computes the midpoint of the night (Maghrib to Fajr), commonly used as
the Isha prayer endpoint. Also works with sunrise as the second anchor
for the astronomical variant.
Closes #1
2026-03-22 09:22:59 -04:00
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