JS SDK v1.128.0

Added

  1. Sports namespace with getCompetitionById(competitionId, filters?, disableCache?) — sport-agnostic competition reads.
    1. filters is an optional CompetitionByIdFilters object
    2. Returns a fully-populated CompetitionModel (competition + optional season, stages and standings).
  2. HTTP response caching (stale-while-revalidate) for Sports and Search reads:
    1. Fresh → served instantly with no network call; stale → served instantly while revalidating in the background (deduplicated, serves stale on error); miss → blocking fetch.
    2. Revalidation via Last-Modified / If-Modified-Since (304-aware). Sports TTL is driven by the response Expires header.
    3. Multi-runtime storage backends: browser (in-memory L1 + IndexedDB L2), server node-cache), React Native (in-memory L1 + AsyncStorage L2), all degrading gracefully to memory-only.
  3. Configurable cache TTLs via the new cache config option config.cache.search), overriding the per-entity defaults.
  4. Automatic competition enrichment (on cache-miss): the competition entity, each stage's stageNameModel, and each standing's competitorModel are resolved from the Search API and attached to the response.
  5. Localization of enriched entity name / shortName using config.lang, falling back to the original value when no matching translation exists
  6. statscore added as a supported idSchema type in the SDK configuration.
  7. New Sports/Search models: CompetitionModel, CompetitionEntityModel, CompetitorModel, StageNameModel, SeasonModel, and related sub-models.
  8. disableCache also busts the server cache