Releases: macbre/phantomas
http/3 support and Docker image on ghcr.io public repository
This release of phantomas brings support for HTTP/3 (#929). For the first time this version will also be pushed to ghcr.io public Docker repository. You can fetch phantomas container image by either:
docker pull macbre/phantomas:latest
or
docker pull ghcr.io/macbre/phantomas:latest
Internally dependabot pull requests are now merged automatically (#949). jest is used as our tests framework (#942) and the code coverage is tracked by Coveralls (#943).
Enjoy 🚀
Changelog
- #920
docker- Update CHROMIUM_VERSION env - #921
external dependency- build(deps-dev): bump eslint from 7.23.0 to 7.24.0 (by @dependabot[bot]) - #922
external dependency- build(deps-dev): bump eslint-config-prettier from 8.1.0 to 8.2.0 (by @dependabot[bot]) - #923
external dependency- build(deps): bump js-yaml from 4.0.0 to 4.1.0 (by @dependabot[bot]) - #924
internals- Test using Node.js 16 too - #925
external dependency- build(deps): bump puppeteer from 8.0.0 to 9.0.0 (by @dependabot[bot]) - #926
external dependency- build(deps-dev): bump eslint from 7.24.0 to 7.25.0 (by @dependabot[bot]) - #927
external dependency- build(deps-dev): bump eslint-config-prettier from 8.2.0 to 8.3.0 (by @dependabot[bot]) - #929
http3- Add support for HTTP/3 - #930
external dependency- build(deps): bump puppeteer from 9.0.0 to 9.1.0 (by @dependabot[bot]) - #931
external dependency- build(deps): bump puppeteer from 9.1.0 to 9.1.1 (by @dependabot[bot]) - #932
external dependency- build(deps): bump lodash from 4.17.20 to 4.17.21 (by @dependabot[bot]) - #933
external dependency- build(deps-dev): bump glob from 7.1.6 to 7.1.7 (by @dependabot[bot]) - #934
external dependency- build(deps-dev): bump prettier from 2.2.1 to 2.3.0 (by @dependabot[bot]) - #935
external dependency- build(deps-dev): bump eslint from 7.25.0 to 7.26.0 (by @dependabot[bot]) - #936
internals- Add "node-version" to cache key - #937
external dependency- build(deps): bump hosted-git-info from 2.8.8 to 2.8.9 (by @dependabot[bot]) - #938
http3- Tests - use nginx with http/3 support - #939
external dependency- build(deps-dev): bump eslint from 7.26.0 to 7.27.0 (by @dependabot[bot]) - #940
docker- Docker now uses Chromium 90 - #941
http3- http/3 protocol support - #942
internals- Migrate tests to use jest - #943
internals- Set up and improve code coverage - #944
external dependency- build(deps): bump ws from 7.4.5 to 7.4.6 (by @dependabot[bot]) - #945
external dependency- build(deps-dev): bump jest from 27.0.1 to 27.0.3 (by @dependabot[bot]) - #947
external dependency- build(deps): bump puppeteer from 9.1.1 to 10.0.0 (by @dependabot[bot]) - #948
external dependency- build(deps-dev): bump jest from 27.0.3 to 27.0.4 (by @dependabot[bot]) - #949
internals- Automerge dependabot pull requests - #953
external dependency- build(deps): bump analyze-css from 0.13.0 to 1.0.0 (by @dependabot[bot]) - #954
external dependency- build(deps-dev): bump eslint from 7.28.0 to 7.29.0 (by @dependabot[bot]) - #955
docker- Dockerfile - using Chromium 91 - #957
external dependency- build(deps): bump commander from 7.2.0 to 8.0.0 (by @dependabot[bot]) - #961
docker- Use docker/build-push-action@v2 - #962
docker- Publish Docker image to ghcr.io public repository
AWS Lambda support
This release of phantomas brings the support running it in AWS Lambda env (#917), MP4 videos detection (#855) and fixes an issue with some CLI options not being handled correctly (#904).
Thanks @gmetais for providing bug fixes and improvements for this and previous releases.
Changelog
- #847
bug- Fix for neverending runs (by @gmetais) - #848
docker- Use BuildKit - #849
docker- Use BUILDKIT_INLINE_CACHE - #850
external dependency- build(deps): bump commander from 6.2.1 to 7.0.0 (by @dependabot[bot]) - #851
external dependency- build(deps-dev): bump eslint from 7.17.0 to 7.18.0 (by @dependabot[bot]) - #852
external dependency- build(deps-dev): bump eslint-config-prettier from 7.1.0 to 7.2.0 (by @dependabot[bot]) - #853
bug- Issues with full page screenshots (by @gmetais) - #854
enhancement- Add a full page screenshot option and make it false by default (by @gmetais) - #855
enhancement- Detect MP4 videos (by @gmetais) - #856
external dependency- build(deps-dev): bump eslint from 7.18.0 to 7.19.0 (by @dependabot[bot]) - #857
Chrome-headless- build(deps): bump puppeteer from 5.5.0 to 6.0.0 (by @dependabot[bot]) - #858
external dependency- build(deps): bump puppeteer from 6.0.0 to 7.0.0 (by @dependabot[bot]) - #859
external dependency- build(deps): bump puppeteer from 7.0.0 to 7.0.1 (by @dependabot[bot]) - #861
pr- User Agent adjustments (by @gmetais) - #862
enhancement- Improve User Agents (by @gmetais) - #863
bug- CLI options are camel cased, then do not work (by @gmetais) - #864
external dependency- build(deps): bump puppeteer from 7.0.1 to 7.0.3 (by @dependabot[bot]) - #865
external dependency- build(deps): bump puppeteer from 7.0.3 to 7.0.4 (by @dependabot[bot]) - #866
external dependency- build(deps-dev): bump eslint from 7.19.0 to 7.20.0 (by @dependabot[bot]) - #867
external dependency- build(deps): bump puppeteer from 7.0.4 to 7.1.0 (by @dependabot[bot]) - #868
external dependency- build(deps): bump commander from 7.0.0 to 7.1.0 (by @dependabot[bot]) - #870
external dependency- build(deps): bump analyze-css from 0.12.12 to 0.12.13 (by @dependabot[bot]) - #871
internals- CI - use macbre/nginx-brotli:1.19.7 - #872
docker- Dockerfile - use node:lts-alpine3.13 and Chromium 88 - #873
external dependency- build(deps-dev): bump eslint-config-prettier from 8.0.0 to 8.1.0 (by @dependabot[bot]) - #874
external dependency- build(deps): bump puppeteer from 7.1.0 to 8.0.0 (by @dependabot[bot]) - #875
external dependency- build(deps-dev): bump eslint from 7.20.0 to 7.21.0 (by @dependabot[bot]) - #876
docker- Label the image with git URL and commit hash - #877
security- Configure WhiteSource Bolt for GitHub (by @whitesource-bolt-for-github[bot]) - #880
security vulnerability- CVE-2021-23337 (High) detected in lodash-4.17.20.tgz (by @whitesource-bolt-for-github[bot]) - #902
internals- npm update - #903
internals- Use macbre/nginx-brotli:1.19.8 - #904
bug- CLI - make sure options are not "camelCased" but "have-dashes" instead - #906
internals- Refactor bin/program.js script - #910
enhancement- Accept absolute paths for screenshots (by @gmetais) - #911
external dependency- build(deps-dev): bump eslint from 7.21.0 to 7.22.0 (by @dependabot[bot]) - #912
docs- Removed dead link from readme (by @binyamin) - #913
aws-lambda- Handle some unhandled exceptions (by @gmetais) - #915
external dependency- build(deps): bump commander from 7.1.0 to 7.2.0 (by @dependabot[bot]) - #916
external dependency- build(deps): bump analyze-css from 0.12.13 to 0.13.0 (by @dependabot[bot]) - #917
aws-lambda- Detect if ran from an AWS Lambda and set additional Chrome flags (by @gmetais) - #918
external dependency- build(deps-dev): bump eslint from 7.22.0 to 7.23.0 (by @dependabot[bot]) - #919
internals- Update nginx-docker-compose.yaml
CPU and protocols related metrics
This release brings two new metrics and a few bug fixes (thanks to @gmetais):
- #816
new metric- Add protocols related metrics (by @gmetais) - #841
new metric- Expose CPU related metrics from page.metrics() as phantomas metrics (by @gmetais) - #836
bug- Fix pragma: no-cache automatically added to all requests (by @gmetais) - #840
bug- Fix error with blob urls (by @gmetais) - #843
bug- Fix object errors (by @gmetais)
Integration tests stability has been improved and many dependencies updated.
Other changes
- #804
external dependency- build(deps): bump puppeteer from 5.3.1 to 5.4.0 (by @dependabot[bot]) - #810
external dependency- build(deps-dev): bump eslint from 7.12.0 to 7.12.1 (by @dependabot[bot]) - #811
internals- Improve integration tests stability - #812
external dependency- build(deps): bump puppeteer from 5.4.0 to 5.4.1 (by @dependabot[bot]) - #813
external dependency- build(deps-dev): bump eslint-config-prettier from 6.14.0 to 6.15.0 (by @dependabot[bot]) - #814
internals- CI: cache npm dependencies - #815
docker- Docker | build using Node.js 15.x and Chromium 86 - #817
internals- eslint: add plugin:node/recommended - #818
internals- Remove reporters - #820
external dependency- build(deps-dev): bump eslint from 7.12.1 to 7.13.0 (by @dependabot[bot]) - #821
internals- Browser.init - pass Phantomas options + set ignoreHTTPSErrors when required - #822
pr- lazyLoadableImages/scope.js: bind to window.load event - #824
external dependency- build(deps): bump puppeteer from 5.4.1 to 5.5.0 (by @dependabot[bot]) - #825
external dependency- build(deps): bump debug from 4.2.0 to 4.3.1 (by @dependabot[bot]) - #826
external dependency- build(deps-dev): bump prettier from 2.1.2 to 2.2.0 (by @dependabot[bot]) - #827
external dependency- build(deps-dev): bump eslint from 7.13.0 to 7.14.0 (by @dependabot[bot]) - #829
external dependency- build(deps-dev): bump prettier from 2.2.0 to 2.2.1 (by @dependabot[bot]) - #831
external dependency- build(deps-dev): bump eslint-config-prettier from 6.15.0 to 7.0.0 (by @dependabot[bot]) - #832
external dependency- build(deps-dev): bump eslint from 7.14.0 to 7.15.0 (by @dependabot[bot]) - #833
external dependency- build(deps): bump js-yaml from 3.14.0 to 3.14.1 (by @dependabot[bot]) - #837
external dependency- build(deps-dev): bump eslint from 7.15.0 to 7.16.0 (by @dependabot[bot]) - #838
external dependency- build(deps-dev): bump eslint-config-prettier from 7.0.0 to 7.1.0 (by @dependabot[bot]) - #839
pr- Tests | use the latest brotli-nginx build- v1.19.6 - #842
internals- Use Docker layers cache to speed up CI builds
Use headless Chromium instead of PhantomJS
- #477
Chrome-headless- DNS and Connect timings (by @gnublin) - #618
Chrome-headless- New metric proposal "synchronousXHR" (by @gmetais) - #620
bug- Timeout caused by synchronous XMLHttpRequests (by @gmetais) - #707
Chrome-headless- Switch from PhantomJS to Chrome's headless mode - #726
Chrome-headless- Refactor Phantomas to run using headless Chrome - #728
documentation- Move metrics description to docs/metrics.md and generate it automatically - #729
documentation- Automatically generate events documentation - #730
documentation- Add events, extensions and modules to metadata JSON file - #732
Chrome-headless- windowPerformance in headless Chrome (by @sundarv85) - #734
pr- New metric proposal "synchronousXHR" - #736
internals- Update dependencies - #741
Chrome-headless- Prepare a Docker image with Puppeteer installed - #742
Chrome-headless- Puppeteer v1.15.0 - #743
enhancement- Upgrade js-yaml to resolve security issues - #744
Chrome-headless- Puppeteer in docker - #747
external dependency- build(deps): bump eslint-utils from 1.3.1 to 1.4.3 (by @dependabot[bot]) - #748
external dependency- build(deps): bump lodash from 4.17.11 to 4.17.15 (by @dependabot[bot]) - #749
bug- Failed to parse JSON with the results (by @jatin85) - #750
external dependency- build(deps): bump acorn from 6.1.0 to 6.4.1 (by @dependabot[bot]) - #751
external dependency- build(deps): bump https-proxy-agent from 2.2.1 to 2.2.4 (by @dependabot[bot]) - #752
external dependency- build(deps): bump lodash from 4.17.15 to 4.17.19 (by @dependabot[bot]) - #753
pr- Phantomas V2 - the final merge into the main branch - #754
external dependency- build(deps): bump async from 2.6.3 to 3.2.0 (by @dependabot[bot]) - #755
external dependency- build(deps): bump csv-string from 3.2.0 to 4.0.1 (by @dependabot[bot]) - #756
external dependency- build(deps-dev): bump eslint from 7.5.0 to 7.6.0 (by @dependabot[bot]) - #757
pr- Run tests using Node.js 12.x too - #758
pr- Use http-server for tests (fixes qs security issue) - #759
pr- Browser.close - check if there is a browser to call close() on - #760
external dependency- build(deps): bump analyze-css from 0.12.10 to 0.12.11 (by @dependabot[bot]) - #761
security- Use commander module - #762
pr- Make npm package a bit smaller - #763
pr- Fix bin/phantomas.js - #764
Chrome-headless- [Phantomas v2] Navigation failed because browser has disconnected! (by @gmetais) - #766
external dependency- build(deps-dev): bump js-beautify from 1.11.0 to 1.12.0 (by @dependabot[bot]) - #767
external dependency- build(deps-dev): bump eslint from 7.6.0 to 7.7.0 (by @dependabot[bot]) - #768
external dependency- build(deps-dev): bump js-beautify from 1.12.0 to 1.13.0 (by @dependabot[bot]) - #769
Chrome-headless- Node.js 14.x integration tests are failing on response size asserts - #771
enhancement- Add WOFF2 detection (by @gmetais) - #772
external dependency- build(deps-dev): bump eslint from 7.7.0 to 7.8.0 (by @dependabot[bot]) - #773
docker- Use nginx to make integration tests more deterministic - #774
external dependency- build(deps-dev): bump eslint from 7.8.0 to 7.8.1 (by @dependabot[bot]) - #777
internals- Improve tests with shorter expire policy + no gzip - #778
external dependency- build(deps): bump analyze-css from 0.12.11 to 0.12.12 (by @dependabot[bot]) - #779
external dependency- build(deps-dev): bump eslint from 7.8.1 to 7.9.0 (by @dependabot[bot]) - #780
external dependency- build(deps): bump puppeteer from 5.2.1 to 5.3.0 (by @dependabot[bot]) - #781
external dependency- build(deps): bump debug from 4.1.1 to 4.2.0 (by @dependabot[bot]) - #782
external dependency- build(deps): bump puppeteer from 5.3.0 to 5.3.1 (by @dependabot[bot]) - #783
external dependency- build(deps-dev): bump eslint from 7.9.0 to 7.10.0 (by @dependabot[bot]) - #784
Chrome-headless- Add support for viewport option (by @gmetais) - #786
internals- Tests: use the latest macbre/nginx-brotli - 1.19.3 - #787
bug- Adjustments to lazyloadable images (by @gmetais) - #788
pr- waitFor is now deprecated - #789
internals- Dockerfile - use node:14-stretch-slim base image - #791
internals- Introduce Prettier - #792
bug- [Phantomas v2] Scope seems to be initialized twice (by @gmetais) - #793
internals- core/scope.js: log window URL and whether it is an iframe - #794
external dependency- build(deps-dev): bump eslint from 7.10.0 to 7.11.0 (by @dependabot[bot]) - #796
external dependency- build(deps-dev): bump eslint-config-prettier from 6.12.0 to 6.13.0 (by @dependabot[bot]) - #797
docker- Try to use Alpine as a base Docker image - #798
pr- Docker - use alpine3.12 base image - #799
external dependency- build(deps-dev): bump eslint-config-prettier from 6.13.0 to 6.14.0 (by @dependabot[bot]) - #800
docker- Fixing "No usable sandbox" when running inside Docker container - #802
cli- bin/phantomas.js should output Browser.visit() promise rejections to stderr - #803
internals- Update CI build names - #808
internals- Makes tests crash on unhandled rejections instead of silently ignoring them
Smaller docker image and security fixes
Prettier introduced
- dependencies kept up to date
- Improve tests with shorter expire policy + no gzip #777
- Add support for
viewportoption #784 (thanks @gmetais) - Adjustments to
lazyloadableimages #787 (thanks @gmetais) waitForis now deprecated #788- Update Dockerfile, Use
node:14-stretch-slimbase image #789 - Tests: use the latest
macbre/nginx-brotli- 1.19.3 #786
npm version 2.0.0-alpha3
npm publish --tag next
Stable tests
- nginx is used as a static assets HTTP server when running integration tests - #773
- all tests pass now (Node.js 10.x, Node.js 12.x, inside phantomas Docker container)
npm version v2.0.0-alpha2 prerelease
npm publish --tag next
v2.0 - first alpha version
See #753 for the progress
v1.20.1
phantomas v1.20.0 - The Last Episode with PhantomJS
v1.20.0 is the last release that will be powered by no-longer developed PhantomJS. Work in #707 will begin that will move phantomas towards headless Chromium.
Here's what's new in v1.20.0:
Bug fixes
Enhancements
- #706 - Try out PhantomJS 2.5 beta
- #709 - Added support for
film-strip-zoom-factoras an optional parameter (by @rosswilson)