Releases: sitespeedio/pagexray
Releases · sitespeedio/pagexray
v5.0.0
Changed
- Node.js 22 is minumium.
Fixed
- Classify
HTTP/3/HTTP/3.0connections ash3(previously only the lowercaseh3/h3-29shorthand was recognised — the canonical form fell through toh1) #128. - Parse
Cache-Controldirectives case-insensitively (RFC 7234 §5.2).Max-Age=42is now read as 42 instead of 0, andNo-Cache/No-Storeare honoured #128. - Replace the deprecated
url.parse(Node DEP0169) with the WHATWGURLparser ingetHostname#128. - Stop throwing in
getDocumentRequestswhen a page has no matching entries — return an empty array instead #128. missingCompressionwas flagging every large text asset, including gzipped ones, becauseheaders.flattenwraps values in arrays and the encoding check compared the array to a string. Unwrap before comparing, accept compound codings (br, gzip), and recognisezstd#129.- Match the
Domain=cookie attribute case-insensitively (RFC 6265 §5.2) so third-party cookies set with lowercasedomain=are detected #129. - Recognise common two-label public suffixes (
.co.jp,.com.br,.com.au, ...) ingetMainDomainso the auto-generated first-party regex isn't wrong for non-.co.ukcountry domains #129. defaultContentTypesnow includesfaviconso every page has a consistent shape (matches the example in the README) #129.xmlis now considered formissingCompressionreporting #129.engines.nodebumped from>=8.9.0to>=22.0.0(the current Node.js LTS), and the GitHub Actions matrix now runs on Node 22 + 24 #132, #133.- Test runner switched from Mocha + Chai to AVA, matching the rest of the sitespeed.io / browsertime ecosystem. Test helpers no longer depend on bluebird or lodash #133.
- ESLint upgraded from 8 to 9 with the new flat config (
eslint.config.jsreplaces.eslintrc.jsonand.eslintignore) #133. - All devDependencies bumped to current major versions: prettier 3, browserify 17, browserify-banner 2, @babel/core + preset-env 7.29, jsdoc 4. The abandoned
uglify-esis replaced byterser, andmkdirpis dropped in favour of nativefs.mkdirSync({recursive:true})in the browserify script #133.
Added
- CLI can now read a HAR from stdin:
pagexray -or piping intopagexraywith no path argument #131. - CLI prints a friendly error to stderr and exits 1 when the file is missing or the input isn't valid JSON (previously threw a raw Node stack trace) #131.
- README updated to drop the long-removed
cookieStatsexample block and document fields added across 3.x / 4.x (fullyLoaded,afterOnLoad,afterOnContentLoad,renderBlocking,googleWebVitals,cpu,firstPartyRegEx) #130.
v4.5.0
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.1
- Add missing in_body_parser_blocking 1ef1829