One group of release-note bullets, e.g. everything under an ### Added
heading.
A newer release than the one currently running.
Parses a GitHub release body into headed groups of bullets for display.
Recognizes ##/### headings and -/*/+ bullets, ignoring prose,
and drops the trailing "Full Changelog" link GitHub appends. Continuation
lines of a wrapped bullet are folded into that bullet.
Converts a GitHub release tag into a plain semver string, stripping a leading
v/V. Returns undefined for anything semver can't parse, so callers never
hand an invalid version to semver.gt (which throws).
Reports how the extension was installed, so callers know whether the browser will update it automatically.
Fetches the latest published release from the project's GitHub repository.
Never throws — network failures, non-2xx responses (notably the 403 returned
once the 60 req/hr unauthenticated rate limit is hit), and unrecognized bodies
all resolve to undefined.
Fetches a specific release by tag. Used on the Web Store path, where
chrome.runtime.onUpdateAvailable reports only a version number and the
release notes have to be looked up separately.
Looks up the release notes for a specific version.
Checks whether a stable release newer than the running build is available. Drafts and pre-releases are ignored, as are tags that aren't valid semver.
How the running extension was installed.
How long to wait between GitHub release polls on the manual-install path.
Release-update detection.
Two independent paths, chosen by getInstallSource:
chrome.runtime.onUpdateAvailablein the service worker; nothing here runs.Source