@mostlyrightmd/weather
v1.17.0
Published
Weather data for TypeScript / Node — live METAR (AWC), ASOS archive (IEM), historical observations (GHCNh), and NWS climate text products (CLI). For quants, ML training pipelines, and weather-bot agents. Direct public-API access, no hosted backend.
Downloads
1,072
Maintainers
Readme
@mostlyrightmd/weather
Weather data fetchers and parsers for the mostlyright TypeScript SDK — live METAR (AWC), ASOS archive (IEM), IEM CLI, historical observations (GHCNh), NWS climate text products (CLI), plus the local-first cache layer — for quants, ML training pipelines, and weather-bot agents. Direct public-API access; no hosted backend, no API key. Mirrors the Python mostlyrightmd-weather distribution. Declares @mostlyrightmd/core as a peer dependency.
Install
pnpm add @mostlyrightmd/weather @mostlyrightmd/coreDocs
See https://mostlyright.md/docs/sdk/quickstart-typescript/ for a 60-second quickstart, or the full API reference at https://mostlyright.md/docs/sdk/.
What's NOT in the TypeScript SDK (yet)
forecastNwp()is a typed stub in v1.x. Gridded NWP forecasts (HRRR, GFS, NBM, …) require GRIB2 decode, which depends on native libraries (eccodes / cfgrib) that don't run in browser or Node.js without an impractical WASM bundle. The function signature is stable — you can write code today that keeps working when v2.0+ lands the execution body. Calls throwNwpNotAvailableError(subclass ofDataAvailabilityError).climateGaps()is a typed stub in v1.x. Climate cache is server-only (GHCNh CSVs are 10+ MB per station-year).
For gridded NWP today, use the Python SDK — mostlyrightmd-weather
ships 11 NCEP-family models (HRRR, GFS, NBM, RAP, RRFS, …) end-to-end.
See docs/nwp-forecasts.md
for the architectural rationale, workaround paths, and v2.0+ roadmap.
For the 7 major US stations with IEM MOS coverage (KNYC, KLAX, KORD,
KMIA, KDEN, KSEA, KATL), iemMosForecasts() ships today as the
recommended TS-side workaround.
The 1.17 registry redesign — what changed for TypeScript
The Python SDK's 1.17 release introduces the align / spine / sources
ladder (mr.align(spine, *sources), per-domain pairs(), the .label.
axis). The TypeScript surface you use is unchanged in 1.17:
research() / dataset() keep working exactly as before. The new ladder
verbs (align / spine / pairs) are Python-only on 1.17 — the async
TS align() is deferred and tracked as parity ticket PT-3401 (see
.planning/CROSS-SDK-SYNC.md). The shared cross-SDK conformance fixtures
(tests/fixtures/parity/conformance/) are the standing acceptance gate for
when the TS aligner lands.
Full symbol-move and where-did-each-kwarg-go tables: docs/migration/v117-align-spine-sources.md.
