doxa-maps/library/packet
Doxa Maps 4fc4b8e9c8 Take a poster only if it is one: a host's fallback page is a miss
On a drop-in host's dev server a missing posters/<id>.webp answered
200 text/html (the app's own page), and export handed that page to the
print dialog as the image. The .html source path had the same hole: the
rasteriser lifts the first <svg> on whatever page it is given.

library/packet/poster-fetch.js now fetches both. A raster counts only if
it is an image: by content-type, or by its first bytes when a host labels
a WebP application/octet-stream. A source counts only if it is a poster
document (its class="stage" element); a 200 that is not one reports 404.
A thrown fetch on the raster stays a miss, so the source fallback still
runs; a thrown fetch on the source is still reported as itself.

Measured against a real local HTTP server with a single-page-app fallback:
real WebP accepted (image/webp and octet-stream), missing WebP refused
(200 fallback page and 404), real source accepted, missing source 404
(200 fallback page and 404), unreachable host a miss for the raster and
"fetch failed" for the source.

usePosterPrints uses it. PosterWall follows in its own commit.
2026-09-29 05:26:24 +00:00
..
card-render.js Card stocks are named in the page's language; their sizes stay as a printer's box prints them 2026-09-29 05:26:23 +00:00
evangelicalShare.js Each packet's % evangelical page states its own list's share 2026-09-29 02:16:31 +00:00
mapLabels.js Name the map's countries on page 1 in the packet's language 2026-09-29 02:16:33 +00:00
packet-render.js The prayer points name their scripture in the packet's language 2026-09-29 05:26:23 +00:00
packetSets.js The full packet's sets page gets its data, from every print path 2026-09-28 23:13:47 +00:00
poster-fetch.js Take a poster only if it is one: a host's fallback page is a miss 2026-09-29 05:26:24 +00:00
poster-raster.js feat(posters): generate the poster in the browser when none is shipped 2026-09-24 03:05:17 +00:00
qr.js feat(upg-100): the prayer card deck prints as CARDS, not as paper 2026-09-24 02:56:20 +00:00