Commit Graph
6 Commits
Author SHA1 Message Date
jwinterm c5dcf5cd2b web checkout: fail-closed CTA -> OIDC PKCE -> shop -> redemption
- app-config.js: public config placeholder (all null/false -> INERT). Operations
  populates OIDC client + shop tenant + checkout URL at deploy; no secrets.
- checkout.js: Authorization Code + S256 PKCE (public client, no secret), state CSRF
  guard, token in sessionStorage, code/state scrubbed from URL. Resolves premium via
  the ledger's per-user /me/entitlements (user's own OIDC token, never the shared
  read token) and sets window.SUCH_APP.premium for WebBillingManager. Redemption also
  resolves on page reload / next login (crypto is webhook-driven).
- index.html: load config+checkout in <head>; CTA calls SUCH_APP_startCheckout, else
  falls through to the store links (fail-closed). Store/itch buttons unchanged.
2026-08-01 10:34:19 -04:00
jwinterm 9d6dca9ad7 v1.5.0 web build — Puzzle mode + screensavers + free-pack; premium CTAs (primary funnel, secondary stores) 2026-07-31 12:59:21 -04:00
jwinterm 1eeac016ba fix ad display 2026-03-05 08:56:48 -05:00
jwinterm 291d492732 Add nag overlay + AdSense 2026-03-04 12:11:48 -05:00
jwinterm d8bd1b2111 Fix web: hide Remove Ads, fix music autoplay, filter assets.txt 404s, replace logo, add favicon 2026-02-19 16:48:23 -05:00
jwinterm 50ff7c9b20 Initial HTML5 build v0.3.0 2026-02-19 14:11:17 -05:00