TypeScript library for birth charts, transits and progressions, validated against NASA, JPL Horizons and Swiss Ephemeris. Zero dependencies, MIT.
Celestine is a TypeScript library for building serious astrological software: birth charts, transits, progressions and the astronomy underneath them. Its calculations are validated against NASA reference data, JPL Horizons and Swiss Ephemeris, and the project carries more than 2,400 unit tests, so a wrong result shows up as a failing test rather than a quiet error.
The ephemeris covers the Sun, Moon and all planets, Chiron, four major asteroids, the lunar nodes and Lilith. Time functions handle Julian dates, sidereal time and Delta T corrections. Seven house systems are included - Placidus, Koch, Equal, Whole Sign, Porphyry, Regiomontanus and Campanus - along with the tropical zodiac, planetary rulerships and essential dignities after Ptolemy and Lilly, and retrograde detection for every body.
On the predictive side there are 14 aspect types with orbs, patterns and applying or separating motion, transits with exact timing and house ingresses, secondary progressions and solar arc directions. A single calculateChart call combines the modules into one result, and each module can also be used on its own.
Celestine is fully typed, has zero runtime dependencies, runs on Node.js 18 and later and is MIT licensed. It is installed from npm as celestine, and the documentation site has the full API reference. The astrology site Cosmolytic is built on it and serves as a live demo.