@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-index29 zero-dependency, MIT-licensed npm packages for Node.js — weather and climate math, geo and astronomy calculations, parsers for the config and pattern languages that sit beside your code, and small utility helpers. Several of them also power a Polyatic tool you can try in the browser first. All source lives in one monorepo at github.com/verifyhash/libs — a mirror we push by hand, so it can lag the registry; npm install is the authoritative build.
We built these and we say so. Every package below is written and maintained by us, has an empty dependencies field, and is published on npm today — this page never links a package that isn't live. All but two ship TypeScript declaration files: @verifyhash/sky-planner and @verifyhash/sun-site-planner are plain CommonJS with no .d.ts in the published tarball yet. Descriptions are taken verbatim from each package's own package.json.
Atmospheric math you would otherwise transcribe from papers and agency PDFs: EPA AQI breakpoints, NOAA heat index, Köppen–Geiger rules, WBGT approximations.
Zero-dependency US EPA Air Quality Index (AQI) calculator for PM2.5, PM10, O3, CO, SO2 and NO2.
npm install @verifyhash/air-quality-indexZero-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-normalsZero-dependency Köppen–Geiger climate classifier from 12 monthly mean-temperature and precipitation values (hemisphere-aware).
npm install @verifyhash/koppen-classifierZero-dependency humidity & moist-air math: saturation vapour pressure, dew point, relative & absolute humidity, NOAA heat index, and Stull wet-bulb temperature.
npm install @verifyhash/psychrometricsZero-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-indexZero-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-stressZero-dependency wind speed conversions plus Beaufort, Saffir-Simpson, and the official 2001 NWS wind-chill formula.
npm install @verifyhash/wind-scalePosition math for the real, curved, tilted world — the engines behind our distance, moon phase and sunrise/sunset tools, plus two higher-level planners that turn that math into an answer about a night or a site.
Zero-dependency great-circle and WGS-84 ellipsoidal geodesy: haversine/Vincenty distance, bearings, destination point, midpoint, and unit conversions.
npm install @verifyhash/geo-distanceZero-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-phaseOffline astronomy/photography night planner engine: solar events (sunrise/sunset/solar noon, civil+nautical+astronomical twilight, golden & blue hour), moon events (rise/set/phase/illumination), and a moonless-dark stargazing score for any lat/lon/date. Zero dependencies, no network.
npm install @verifyhash/sky-plannerZero-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-calcOffline zero-dependency daytime sun-exposure planner: sun path, sunrise/sunset/solar-noon, noon altitude, and mask-aware hours-of-direct-sun for solar siting, gardening, and real-estate sun checks.
npm install @verifyhash/sun-site-plannerSmall, spec-faithful replacements for the utility dependencies most projects reach for: an RFC 4180 CSV parser, SemVer 2.0.0 comparisons, ISO 8601 durations, CIDR math, query-string parsing, structural deep equality, retry-with-backoff, mojibake repair, Unicode forensics and subtitle timing.
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/bytesizeZero-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-liteZero-dependency structural deep equality for Node.js: plain objects, arrays (sparse-hole aware), Date, RegExp, Map/Set with structural object keys, ArrayBuffer/TypedArray/DataView (byte-wise), boxed primitives, NaN-equals-NaN with +0/-0 distinction, and cyclic structures — fully typed from birth.
npm install @verifyhash/deep-equalZero-dependency heuristic repair for the classic UTF-8-decoded-as-Windows-1252 mojibake chain (é -> é, ’ -> ', “ -> "): an ftfy-for-JS wedge that refuses clean text and is idempotent.
npm install @verifyhash/fix-encodingZero-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-timeZero-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-cidrZero-dependency ISO 8601 duration parse, format, calendar-correct date arithmetic, and English humanize for Node.js.
npm install @verifyhash/iso-durationZero-dependency URL query-string parse + stringify for Node.js: leading-'?' tolerance, repeated keys to arrays, bracket arrays (a[]=), one documented level of bracket nesting (a[b]=c), '+'-as-space decoding, and malformed percent-sequences that never throw.
npm install @verifyhash/query-stringZero-dependency async retry for Node.js with exponential backoff and full jitter (AWS-style), AbortSignal support that cancels even mid-sleep, shouldRetry/onRetry hooks, and injectable sleep + rand so tests are exact and instant without fake-timer libraries.
npm install @verifyhash/retryZero-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-liteZero-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-liteZero-dependency subtitle timing and format toolkit — shift, linearly resync, and convert between SRT, VTT, ASS, LRC and more in pure JavaScript with no DOM and no network.
npm install @verifyhash/subtitle-toolsReveals, names, and categorizes invisible and deceptive Unicode codepoints for developer debugging, security review, and phishing analysis.
npm install @verifyhash/unicode-inspectorParsers and differs for the text a project versions alongside its code: crontab expressions across three dialects, .env files, GraphQL schemas and regular expressions — each turned into a structure you can assert on, or a classified diff of two revisions.
Zero-dependency, multi-dialect cron parser: Unix 5-field, Quartz 6/7-field, and AWS EventBridge — with the field-count and day-of-week (0/7=Sun vs 1=Sun) and ? no-specific-value differences parsed correctly instead of silently mis-read.
npm install @verifyhash/cron-dialectKEY-aware .env differ and .env.example generator: a zero-dependency, pure dotenv-subset parser + semantic key-level diff that reports unparsed lines and duplicate keys honestly and never leaks a value.
npm install @verifyhash/env-diffPure, dependency-free-at-runtime diff of two GraphQL SDL strings into a classified list of breaking / dangerous / safe changes, built on a vendored graphql-js.
npm install @verifyhash/graphql-sdl-diffES2018+ JavaScript regex parser that turns any pattern into a normalized AST, an SVG railroad diagram, and a plain-English explanation — zero dependencies.
npm install @verifyhash/regex-railroadEvery 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. @verifyhash/fix-encoding repairs one specific damage chain — UTF-8 bytes decoded as Windows-1252 — and deliberately refuses text that is already clean; it will not rescue a string mangled through some other pair of encodings. @verifyhash/graphql-sdl-diff vendors a copy of graphql-js instead of depending on it, so your install stays a single entry, but it is a bundled parser rather than one we wrote.
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 29 packages are MIT-licensed and ship CommonJS; all of them except @verifyhash/sky-planner and @verifyhash/sun-site-planner also ship TypeScript declaration files. Every one of them lives in one public monorepo at github.com/verifyhash/libs — each README documents the full API with runnable examples. That monorepo is a mirror we push by hand, so it can lag the registry: npm install is the authoritative build. Before you rely on a specific number you read there — a breakpoint, a lookup-table row, a rounding rule — check the version in the mirror's package.json against the one npm put in your node_modules, and trust npm where they disagree. 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.