Fedify 2.0.17
Released on May 15, 2026.
@fedify/fedify
-
Fixed
doubleKnock()so transient transport failures such as DNS hiccups no longer leak rawTypeErrors. Idempotent authenticated document fetches are retried once, and remaining transport failures are reported asFetchErrorwith the original error as the cause. [#762, #763] -
Fixed a
TypeErrorthrown when Activity Vocabulary constructors received aTemporal.InstantorTemporal.Durationproduced by an implementation other than the bundled@js-temporal/polyfill(for example, the nativeTemporalshipped with Node.js 26+). Internalinstanceofchecks have been replaced withSymbol.toStringTag-based guards so any spec-conformant Temporal value is accepted. Generated *.d.ts declarations no longer import from@js-temporal/polyfill; they reference the ambientTemporalnamespace through theesnext.temporallib instead, which removes the nominal mismatch with native Temporal types. TypeScript 6.0 or later is required to consume the type declarations. [#767, #768]
@fedify/vocab-runtime
-
Added
isTemporalInstant()andisTemporalDuration()type guards that accept both polyfill and nativeTemporalvalues viaSymbol.toStringTag. [#767, #768] -
Added the
@fedify/vocab-runtime/temporalsubpath export so consumers can import the newTemporaltype guards without pulling in the rest of the runtime. [#767, #768]
@fedify/postgres
- Generated *.d.ts declarations no longer import from
@js-temporal/polyfill; they reference the ambientTemporalnamespace through theesnext.temporallib instead, sopollIntervalandhandlerTimeoutaccept nativeTemporal.Durationvalues from Node.js 26+ without a nominal type mismatch. TypeScript 6.0 or later is required to consume the type declarations. [#767, #768]
@fedify/redis
- Generated *.d.ts declarations no longer import from
@js-temporal/polyfill; they reference the ambientTemporalnamespace through theesnext.temporallib instead, sopollIntervalaccepts nativeTemporal.Durationvalues from Node.js 26+ without a nominal type mismatch. TypeScript 6.0 or later is required to consume the type declarations. [#767, #768]
@fedify/sqlite
- Generated *.d.ts declarations no longer import from
@js-temporal/polyfill; they reference the ambientTemporalnamespace through theesnext.temporallib instead, sopollIntervalaccepts nativeTemporal.Durationvalues from Node.js 26+ without a nominal type mismatch. TypeScript 6.0 or later is required to consume the type declarations. [#767, #768]