ConstEnumerates every offline resource for a MapLibre vector style. Network failures degrade gracefully (a sub-step returning nothing never aborts the others); the caller decides whether the partial set is usable.
Absolute URL of the style JSON.
bbox + zoom ceiling chosen by the user (null → tiles skipped).
Fetches and parses a JSON document, returning null on any failure.
The URL is scheme-guarded first. This is not defence in depth: _fetchJson is
called BOTH with the style URL from config AND with source.url read out of that
fetched style — i.e. with remote content. A hostile style could therefore point
source.url at javascript:/data: and have it fetched (CAPACITÉS B.10).
A refusal is logged and mapped to null, like every other failure here: the
enumeration of the other sources must not abort over one poisoned entry. Same
shape as cache/metrics.ts:_fetchHeadContentLengths.
Resolves each vector source to a tile template + source maxzoom, then enumerates the .pbf URLs over the zone. Caps maxZoom at the source maxzoom so MapLibre overzooms from there (no requests for non-existent tiles).
Enumerates glyph ranges for every fontstack used by the style's layers.
MapLibre requests {fontstack} URL-encoded and {range} as a 256-block;
the cached key must byte-match that request.
Enumerates the sprite sheet: .json + .png, plus optional @2x variants (the runtime devicePixelRatio is unknown at download time).
Resolves a possibly-relative URL against the style URL.
Glyph ranges cached per fontstack. Each range is a 256-codepoint block: