Polyatic Open-Source Libraries

Free Open-Source JavaScript Libraries

17 zero-dependency, MIT-licensed npm packages for Node.js — the same weather, geo/astronomy and utility math that powers several Polyatic tools, published so you can use it in your own projects. All source lives in one monorepo: github.com/verifyhash/libs.

We built these and we say so. Every package below is written and maintained by us, has zero runtime dependencies, ships TypeScript declarations, and is published on npm today — this page never links a package that isn't live. Descriptions are taken verbatim from each package's own package.json.

Weather & climate

Atmospheric math you would otherwise transcribe from papers and agency PDFs: EPA AQI breakpoints, NOAA heat index, Köppen–Geiger rules, WBGT approximations.

@verifyhash/air-quality-index

Zero-dependency US EPA Air Quality Index (AQI) calculator for PM2.5, PM10, O3, CO, SO2 and NO2.

npm install @verifyhash/air-quality-index

@verifyhash/climate-normals

Zero-dependency climate math over monthly normals: heating/cooling degree-days, apparent ("feels like") temperature, diurnal range, a continentality index, and a monthly pleasantness score.

npm install @verifyhash/climate-normals

@verifyhash/koppen-classifier

Zero-dependency Köppen–Geiger climate classifier from 12 monthly mean-temperature and precipitation values (hemisphere-aware).

npm install @verifyhash/koppen-classifier

@verifyhash/psychrometrics

Zero-dependency humidity & moist-air math: saturation vapour pressure, dew point, relative & absolute humidity, NOAA heat index, and Stull wet-bulb temperature.

npm install @verifyhash/psychrometrics

@verifyhash/uv-index

Zero-dependency, network-free clear-sky UV-index estimator: solar-elevation-driven UVI, WHO exposure category, and burn-time guidance from lat/lon/date/time (+ optional ozone and elevation).

npm install @verifyhash/uv-index

@verifyhash/wbgt-heat-stress

Zero-dependency heat-stress indices: NWS heat index, Environment Canada humidex, and a Wet-Bulb Globe Temperature (WBGT) approximation with risk flags.

npm install @verifyhash/wbgt-heat-stress

@verifyhash/wind-scale

Zero-dependency wind speed conversions plus Beaufort, Saffir-Simpson, and the official 2001 NWS wind-chill formula.

npm install @verifyhash/wind-scale

Geo & astronomy

Position math for the real, curved, tilted world — the engines behind our distance, moon phase and sunrise/sunset tools.

@verifyhash/geo-distance

Zero-dependency great-circle and WGS-84 ellipsoidal geodesy: haversine/Vincenty distance, bearings, destination point, midpoint, and unit conversions.

npm install @verifyhash/geo-distance

@verifyhash/moon-phase

Zero-dependency lunar phase & illumination math (simplified Meeus method): phase angle, illuminated fraction, synodic age, canonical phase name, and Brown lunation number for any UTC instant.

npm install @verifyhash/moon-phase

@verifyhash/solar-calc

Zero-dependency solar position & daylight math (NOAA algorithm): sunrise, sunset, solar noon, day length, elevation, azimuth, civil twilight, and golden hour for any latitude/longitude/date.

npm install @verifyhash/solar-calc

Developer utilities

Small, spec-faithful replacements for utility dependencies: an RFC 4180 CSV parser, SemVer 2.0.0 comparisons, ISO 8601 durations, CIDR math and friends.

@verifyhash/bytesize

Zero-dependency byte-size humanizer and parser for Node.js — decimal (SI, base 1000) and binary (IEC, base 1024) with round-trippable format() and parse().

npm install @verifyhash/bytesize

@verifyhash/csv-lite

Zero-dependency RFC 4180 CSV parser and stringifier for Node.js: quoted fields, embedded delimiters/newlines, doubled-quote escapes, header-object mode, custom delimiters.

npm install @verifyhash/csv-lite

@verifyhash/human-time

Zero-dependency human-readable relative time ('5 minutes ago', 'in 3 days') plus compact ms-style duration format/parse ('2h30m' <-> ms) for Node.js. English-only.

npm install @verifyhash/human-time

@verifyhash/ip-cidr

Zero-dependency IPv4 (and basic IPv6) address/CIDR toolkit for Node.js: validate/parse, CIDR math (network, broadcast, first/last host, host count), ip<->integer, and containment.

npm install @verifyhash/ip-cidr

@verifyhash/iso-duration

Zero-dependency ISO 8601 duration parse, format, calendar-correct date arithmetic, and English humanize for Node.js.

npm install @verifyhash/iso-duration

@verifyhash/semver-lite

Zero-dependency SemVer 2.0.0 parse, precedence compare, and a documented practical subset of npm-style range matching for Node.js.

npm install @verifyhash/semver-lite

@verifyhash/slugify-lite

Zero-dependency, zero-network string-to-URL-slug library for Node.js: Latin-1/accent transliteration via a pinned in-repo map, custom separator, word-boundary maxLength truncation, and custom replacement overrides.

npm install @verifyhash/slugify-lite

Why zero-dependency libraries?

Every package on this page has an empty dependencies field — installing one adds exactly one entry to your node_modules, not a tree of transitive packages you never audited. That matters for two concrete reasons. First, supply-chain risk scales with dependency count: each transitive package is another maintainer account that can be compromised and another install script that can run on your machine. Second, small trees stay installable for years; a package with zero dependencies cannot be broken by someone else's breaking release.

The trade-off is scope, and we state it plainly per package rather than hiding it. @verifyhash/human-time is English-only. @verifyhash/semver-lite implements full SemVer 2.0.0 precedence but only a documented practical subset of npm's range grammar — if you need || chains of exotic ranges, use the full semver package. @verifyhash/uv-index is a clear-sky estimator: it does not model cloud cover, so treat its output as an upper bound. @verifyhash/ip-cidr handles IPv6 at a basic level only.

A worked example: require('@verifyhash/solar-calc') and one function call gives you sunrise, sunset and civil twilight for any latitude/longitude/date using NOAA's published algorithm — accurate to within about a minute for most latitudes, degrading near the poles, exactly as NOAA documents. The same math drives our sunrise & sunset tool, so the library is exercised by real traffic, not just its test suite.

All 17 are MIT-licensed, ship CommonJS with TypeScript declaration files, and live in one public monorepo at github.com/verifyhash/libs — each README documents the full API with runnable examples. No download-count badges here: these are young packages, and we would rather you judge them by reading the source, which is short enough that you actually can.