Skip to main content

Eol Lifecycle

@hmcrum/eol-lifecyclev2026.09.17.1· 19d agoMODELS
01README

Support/end-of-life lifecycle lookups against the public endoflife.date API.

"Is this still supported?" has a real, citable answer sitting behind a free public API — a release date, an end-of-life date, a latest patch version. This model fetches it and hands back the API's own fields plus one computed boolean, supported, so callers don't re-derive it from endoflife.date's own three-state eol field (a date, or the literal true/false) at every call site.

Method

  • lifecycle — one fan-out call per product: every matching release cycle (optionally narrowed to one cycle), each with releaseDate, the raw eolDate, latest, and computed supported, plus a top-level anyEol flag.

Design notes

No product is hardcoded — the product name is always supplied by the caller. A product name endoflife.date doesn't recognize is the single most likely input, not an exceptional one, so it degrades to found: false with a note and catalog-derived suggestions rather than throwing.

Host-locked: every request goes through a guard that refuses any hostname other than endoflife.date, checked before the request and again after following any redirect.

Read-only throughout — this model only ever reads a public API.

Quick Start

swamp extension pull @hmcrum/eol-lifecycle
swamp model create @hmcrum/eol-lifecycle eol
swamp model method run eol lifecycle --input product=python swamp model method run eol lifecycle --input product=python --input cycle=3.11 ```
02Models1
@hmcrum/eol-lifecyclev2026.09.17.1eol_lifecycle.ts

Global Arguments

ArgumentTypeDescription
userAgentstringUser-Agent sent to endoflife.date — identify yourself honestly
fn lifecycle(product: string, cycle?: string)
Look up the release-cycle lifecycle (release date, EOL date, latest version, computed support status) for a product on endoflife.date. Degrades to an empty, noted result on an unrecognized product instead of throwing.
ArgumentTypeDescription
productstringendoflife.date product identifier, e.g. python, ubuntu, postgresql
cycle?stringNarrow to one release cycle, e.g. '3.11' — omit for every cycle

Resources

lifecycle(30m)— Support/end-of-life lifecycle for one product from endoflife.date, with a computed supported boolean per release cycle
03Stats
A
100 / 100
Downloads
14
Archive size
14.8 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License declared1/1earned
  • Verified public repository2/2earned
04Platforms
05Labels