- `optimizer'
- #1358 AMP optimizer to support ampjs.org
- Dependency upgrades
cloudflare-optimizer-scripts
- #1318 Add support for Opaque redirects (@abdulhannanali)
optimizer
optimizer
- #1319 Fix i-amphtml-sizer responsive issue (@ediamin)
- #1312 More robust auto extension import (@sebastianbenz)
- #1303 Fix for issue #1302: "SSR: Duplicated ids in rendered markup, if there are nodes with attributes 'media', 'heights' or 'sizes'" (@DK-Stern)
- #1305 Fix for issue #1304: "SSR: Transforming of nodes with attribute 'heights' fails, if value contains multiple media queries" (@DK-Stern)
cache-url
,cli
,cloudflare-optimizer-scripts
,linter
,optimizer-docker
,optimizer
,page-experience
,update-cache
- #1331 Update dependencies to fix critical security issues (@sebastianbenz)
cache-list
,cache-url
,cli
,cloudflare-optimizer-scripts
,core
,cors
,linter
,optimizer-docker
,optimizer-express
,optimizer
,page-experience
,runtime-fetch
,runtime-version
,script-csp
,update-cache
,validator-rules
- #1326 Reset main branch to v2.8.10 (@sebastianbenz)
- Edi Amin (@ediamin)
- Hannan Ali (@abdulhannanali)
- Pascal Birchler (@swissspidy)
- Sebastian Benz (@sebastianbenz)
- @DK-Stern
- erwin mombay (@erwinmombay)
optimizer
- #1312 More robust auto extension import
optimizer
linter
- Upgrade to latest amphtml validator version
optimizer
- Pull in latest version from bundles.legacy-latest-versions.jsonc
optimizer
- Migrate to htmlparser2 v7.2.0
- Sebastian Benz (@sebastianbenz)
optimizer
- #1254 Handle empty src attributes (@sebastianbenz)
- #1251 Avoid duplicate auto generated ids (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #1248 Disable preloading runtime script/style by default (@westonruter)
optimizer-docker
,optimizer
- #1240 feat: add monitoring to the docker image (@mathieu-pousse)
optimizer
- #1247 Fix: don't import amp-inputmask for svg masks (@sebastianbenz)
optimizer-docker
- #1239 fix docker image: transform environment variable values to boolean when possible (@mathieu-pousse)
- Alain Schlesser (@schlessera)
- Mathieu POUSSE (@mathieu-pousse)
- Sebastian Benz (@sebastianbenz)
- Weston Ruter (@westonruter)
optimizer
- #1232 Add SSR support for fluid layout (@westonruter)
- #1236 Update error handler to support module and nomodule version (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
- Weston Ruter (@westonruter)
optimizer
- #1217 Enable OptimizeAmpBind transformer by default (@schlessera)
- #1195 Add AmpBoilerplateErrorHandler transformer (@schlessera)
- #1194 Add crossorigin=anonymous to nomodule scripts the same as module ones (@westonruter)
- #1196 Prevent SSR for amp-img occurring after second paragraph (@westonruter)
- #1192 Filter duplicate extensions by src URL (@sebastianbenz)
- #1180 Add minimal Optimizer Transformer Config (@sebastianbenz)
- #1181 Disable cache warmup on install (@sebastianbenz)
- #1170 👽 Remove postcss deprecation warning (@lluerich)
- #1147 Add amp-bind optimizer (@jridgewell)
- #1143 Add extension scripts in logical order (@schlessera)
core
- #1182 Use os.tmpDir for file system cache (@sebastianbenz)
- #1142 Don't remove sizes for hero images (@sebastianbenz)
- #1140 Enable ESM module version of AMP Runtime and Components by default (@sebastianbenz)
page-experience
- #1174 PX: enable mobile device emulation (@sebastianbenz)
- #1173 PX:ignore invinsible elements (@sebastianbenz)
- #1172 PX: escape html in suggestions (@sebastianbenz)
- #1171 PX: detect hero images (@sebastianbenz)
- #1168 Check for early iframes (@patrickkettner)
- #1169 Give page specific advice on how to fix fonts (@sebastianbenz)
linter
,page-experience
- #1164 Add more detailed info to font checks (@sebastianbenz)
linter
- #1165 Check for latest component versions (@lluerich)
- #1160 Run amp-linter checks as part of this module (@sebastianbenz)
- #1156 Add page experience guide (@sebastianbenz)
- #1153 ♻️ Refactor icon font detection (@lluerich)
- #1149 🔧 Add icomoon (@lluerich)
- #1148 ♻️ Refine icon font detection (@lluerich)
- #1145 🚀 Add icon font linter rule (@lluerich)
optimizer
- #1235 Pull latest component versions from amphtml repo (@sebastianbenz)
- #1234 Fix: don't auto import experimental bento components (@sebastianbenz)
- #1198 Improve logic to detect explicitly marked hero images (@schlessera)
- #1188 Make ES modules option consistent (@schlessera)
- #1151 Show blurredPlaceholders warning only when enabled (@att55)
- #1143 Add extension scripts in logical order (@schlessera)
- #1137 Drop the final width descriptor in a generated srcset. (@kristoferbaxter)
- #1139 fix missing custom-element attribute from nomodule import (@sebastianbenz)
- #1135 Add missing amp-ad ending tag (@schlessera)
page-experience
- #1186 Skip fonts with a data: URL source from fontPreloading check (@westonruter)
- #1184 Remove hard-coded isTiny() result for intrinsic layout (@schlessera)
- #1161 when using module/nomodule make sure to use
modulepreload
instead ofpreload
for the priority hint (@erwinmombay) - #1166 Move result details to top level (@sebastianbenz)
optimizer
- #1188 Make ES modules option consistent (@schlessera)
- #1154 Add warning about esmModulesEnabled + amppkg (@twifkak)
cli
- #1190 correct the amp version output (@rajannpatel)
- Sebastian Benz (@sebastianbenz)
- Alain Schlesser (@schlessera)
- Jake Fried (@samouri)
- Sebastian Benz (@sebastianbenz)
- Weston Ruter (@westonruter)
- Rajan Patel (@rajannpatel)
- erwin mombay (@erwinmombay)
- @lluerich
- Devin Mullins (@twifkak)
- Atsuto Yamashita (@att55)
- Justin Ridgewell (@jridgewell)
optimizer-docker
,optimizer
- #1133 More flexible hero images and blurry placeholders (@sebastianbenz)
optimizer
- #1130 add warning about minification (@sebastianbenz)
optimizer
- #1132 Don't preload hero images (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #1128 account for cases when parentNode and nextNode are undefined (@patrickkettner)
- #1124 Only add space between classes if preexisting class is present (@schlessera)
cli
,linter
,optimizer
,update-cache
- #1125 Support script based templates (@sebastianbenz)
- Alain Schlesser (@schlessera)
- Jake Fried (@samouri)
- Sebastian Benz (@sebastianbenz)
- patrick kettner (@patrickkettner)
cli
,core
,linter
,optimizer
,runtime-fetch
,validator-rules
- #1118 Readd cross fetch (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
linter
- #1116 Improve viewport check (@sebastianbenz)
optimizer
- #1115 Auto add layout=responsive if missing (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #981 Encode SVG sizer with base64 (@schlessera)
linter
- #980 Add check for disabled tap delay (@sebastianbenz)
- #962 Add check for amp-img placeholder does not make additional request (@kevinkimball)
optimizer
- #1065 Split preconnect and dns-prefetch into two separate links (@schlessera)
- #974 Generate styles for amp-img object-fit / object-contain (@sebastianbenz)
cache-url
- #979 Check if "." before extension in font URL (@processprocess)
- #976 Check if "." before extension in image URL (@processprocess)
linter
,optimizer
- #975 Update dependency @ampproject/toolbox-optimizer (@renovate-bot)
- Alain Schlesser (@schlessera)
- Kevin Kimball (@kevinkimball)
- Philip Bell (@processprocess)
- Sebastian Benz (@sebastianbenz)
- patrick kettner (@patrickkettner)
linter
optimizer
optimizer
- #913 Use node instead of root for checking templates in PreloadHeroImages (@schlessera)
- #918 Add missing closing tags to elements (@schlessera)
- #914 Remove unneeded width & height checks (@schlessera)
- #930 Avoid trailing zeros and semicolons in sizer's padding (@schlessera)
- #909 Fix handling of malformed
sizes
andheights
strings (@chasefinch)
- Alain Schlesser (@schlessera)
- Arnav Jindal (@Daggy1234)
- Chase Finch (@chasefinch)
- Damani (@Dbrown910)
- Filip Stanis (@fstanis)
- Grace Tree (@TheTreeofGrace)
- Jake Fried (@samouri)
- James (@digijin)
- Justin Ridgewell (@jridgewell)
- Matthias Rohmer (@matthiasrohmer)
- Thorsten Harders (@tharders)
linter
- Thorsten Harders (@tharders)
linter
optimizer
- #896 Don't ssr amp-img in stories (@sebastianbenz)
cache-url
,cli
,cors
,linter
,optimizer
,runtime-fetch
,runtime-version
- #899 Make AMP Toolbox build on windows (@sebastianbenz)
linter
lighthouse-plugin-amp
,linter
,optimizer
,update-cache
- #893 update dependencies (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
- Shotaro Watanabe (@sangotaro)
- Thorsten Harders (@tharders)
optimizer
- #883 Keep nonces (@sebastianbenz)
- #880 Enable amp-img => img transformation for hero images (@sebastianbenz)
- #857 Proxy support for amp-optimizer (@todoa2c)
optimizer
- #887 Fix NPE during SSR when style block is empty (@sebastianbenz)
optimizer
- #882 add express demo (@sebastianbenz)
- #881 add gulp demo (@sebastianbenz)
optimizer
- #877 Cssnano simple (@sebastianbenz)
- Atsushi Kanaya (@todoa2c)
- Sebastian Benz (@sebastianbenz)
linter
- #871 Linter reporting (@Dbrown910)
optimizer
- #872 Fix: hero image not visible on load (@sebastianbenz)
- #870 Fix outdated parameter count (@schlessera)
- Alain Schlesser (@schlessera)
- Damani (@Dbrown910)
- Sebastian Benz (@sebastianbenz)
runtime-fetch
- #865 Fix: runtime download check (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #859 add experimental amp-img -> img transformation (@sebastianbenz)
linter
- #864 Story thumbnail dim req update (@Dbrown910)
- Damani (@Dbrown910)
- Sebastian Benz (@sebastianbenz)
optimizer
- #863 fix esm support for auto component import (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #856 Parallelize image optimization (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #855 Only inject runtime-host meta tag if host is given (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #854 Fix runtime-host meta tag when using relative URLs (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #852 Improve preload handling with runtime self hosting (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #850 Don't remove boilerplate for amp-stories (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #846 Fix: MinifyHtml cannot be disabled (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
- Kristoffer K. (@merceyz)
optimizer
- #835 More robust cache warmup (@sebastianbenz)
linter
- #831 Update dependency chalk to v4.1.0 (@renovate-bot)
optimizer
- #830 Update dependency @ampproject/toolbox-optimizer to v2.5.1 (@renovate-bot)
- Damani (@Dbrown910)
- Sebastian Benz (@sebastianbenz)
linter
- #826 Updated og image check to include name attr (@Dbrown910)
cache-list
,cli
,core
,cors
,lighthouse-plugin-amp
,linter
,optimizer-express
,optimizer
,runtime-fetch
,runtime-version
,update-cache
- #814 Move hero image preload out of experimental (@sebastianbenz)
cli
,linter
- #806 Sort linter output (@Dbrown910)
optimizer
- #828 Do not preload hero images using srcset (@sebastianbenz)
- Other
- #829 Update dependency lerna to v3.22.1 (@renovate-bot)
optimizer
- #812 Update dependency @ampproject/toolbox-optimizer to v2.5.0 (@renovate-bot)
- Damani (@Dbrown910)
- Sebastian Benz (@sebastianbenz)
optimizer
- #807 List all supported options in README (@sebastianbenz)
- #805 Support media attribute for hero image preloading (@sebastianbenz)
- #763 SSR: Add support for media, sizes and heights attribute (@sebastianbenz)
cli
,linter
,optimizer-express
,optimizer
- #772 Add option to generate image srcsets (@sebastianbenz)
linter
- #795 Added video subtitle and alt text checks (@Dbrown910)
- #780 Condense linter output for image alt text check (@Dbrown910)
- #779 Linter output changes (@Dbrown910)
core
,optimizer
- #799 [optimizer] add missing runtime dependencies (@sebastianbenz)
optimizer
- #781 Fix lts (@sebastianbenz)
- Other
- #808 Update dependency karma-jasmine to v3.3.1 (@renovate-bot)
- #803 Update dependency karma-jasmine to v3.3.0 (@renovate-bot)
optimizer-express
- #786 Update dependency http-proxy to v1.18.1 (@renovate-bot)
optimizer
- #789 Update dependency markdown-it to v11 (@renovate-bot)
- #773 Update dependency @ampproject/toolbox-optimizer to v2.4.0 (@renovate-bot)
- Damani (@Dbrown910)
- Kristoffer K. (@merceyz)
- Sebastian Benz (@sebastianbenz)
- patrick kettner (@patrickkettner)
optimizer
- #770 Fix postinstall failing on windows (@sebastianbenz)
optimizer
- #753 Fix typos in parameter documentation (@schlessera)
core
,optimizer
- #747 Optimizer: cache runtime artifacts on filesystem (@sebastianbenz)
linter
- #755 Added og:image and alt text checks to linter for Stories (@Dbrown910)
optimizer
- #752 Add missing command name to CLI documentation (@matthiasrohmer)
- Other
- #751 Update dependency rollup to v2.8.0 (@renovate-bot)
- #749 Update dependency fetch-mock to v9.5.0 (@renovate-bot)
lighthouse-plugin-amp
,linter
- #750 Update dependency amphtml-validator to v1.0.31 (@renovate-bot)
optimizer
- #748 Update dependency @ampproject/toolbox-optimizer to v2.3.1 (@renovate-bot)
- Alain Schlesser (@schlessera)
- Damani (@Dbrown910)
- Matthias Rohmer (@matthiasrohmer)
- Sebastian Benz (@sebastianbenz)
optimizer
- #736 Extract runtime parameters (@sebastianbenz)
- #730 Add experimental image preloading support (@sebastianbenz)
- #722 Add experimental module/no-module support (@sebastianbenz)
linter
- #744 WebP is okay for metadata (@ithinkihaveacat)
- Other
- #746 Update dependency jest to v26.0.1 (@renovate-bot)
- #714 Update dependency fetch-mock to v9.4.0 (@renovate-bot)
- #720 Update dependency jest to v25.4.0 (@renovate-bot)
- #717 Update dependency karma to v5.0.2 (@renovate-bot)
optimizer
- #713 Update dependency @ampproject/toolbox-optimizer to v2.3.0 (@renovate-bot)
- Alberto A. Medina (@amedina)
- Matt Mower (@mdmower)
- Michael Stillwell (@ithinkihaveacat)
- Naina Raisinghani (@nainar)
- Sebastian Benz (@sebastianbenz)
runtime-fetch
cli
,optimizer
cli
,runtime-version
cache-url
cache-url
,cli
cors
,optimizer-express
,optimizer
,update-cache
cli
optimizer
- #684 Update dependency @ampproject/toolbox-optimizer to v2.2.0 (@renovate-bot)
- Enrique Marroquin (@Enriqe)
- Matt Mower (@mdmower)
- Matthias Rohmer (@matthiasrohmer)
optimizer
cli
cli
,runtime-fetch
- #683 Rename download-runtime => runtime-fetch (@sebastianbenz)
optimizer
- #675 Update dependency @ampproject/toolbox-optimizer to v2.1.0 (@renovate-bot)
cli
- JJ Kasper (@ijjk)
- Matt Mower (@mdmower)
- Sebastian Benz (@sebastianbenz)
cli
,download-runtime
cache-url
,cli
- #666 Update CURLs hasing algorithm (@sebastianbenz)
optimizer
optimizer
- #653 Don't separate keyframes for AMP Stories (@sebastianbenz)
cache-list
linter
- #656 Fix linter README (@ithinkihaveacat)
optimizer
- #672 chore(deps): update dependency @ampproject/toolbox-optimizer to v2 (@renovate-bot)
- #627 Pin dependencies (@renovate-bot)
- Duncan Kolba (@dkolba)
- Matt Mower (@mdmower)
- Michael Stillwell (@ithinkihaveacat)
- Sebastian Benz (@sebastianbenz)
optimizer
- #649 Encode JSON values (@sebastianbenz)
- #618 Fix: auto extension import amp-access-laterpay & amp-subscriptions-google (@sebastianbenz)
linter
cli
,lighthouse-plugin-amp
,linter
,optimizer
- #648 update dependencies (@sebastianbenz)
- Other
- #624 Update dependency nock to v12 (@renovate-bot)
- #625 Update dependency @ampproject/rollup-plugin-closure-compiler to v0.22.2 (@renovate-bot)
- Dominik Ritter (@dritter)
- Matt Mower (@mdmower)
- Sebastian Benz (@sebastianbenz)
Migration notes:
-
The
SeparateKeyframe
transformer'scompress
option has been renamed tominify
. The same option will also be used by theMinifyHtml
transformer. The default value continues to betrue
. -
The API for implementing a custom transformer has changed. We no longer monkey patch the node class, but instead rely on helper methods defined in
NodeUtils
:const {firstChildByTag, appendChild, createElement} = require('@ampproject/toolbox-optimizer').NodeUtils; class CustomTransformer { constructor(config) { this.log_ = config.log.tag('CUSTOM'); } transform(tree, params) { this.log_.info('Running custom transformation for ', params.filePath); const html = firstChildByTag(tree, 'html'); if (!html) return; const head = firstChildByTag(html, 'head'); if (!head) return; const desc = createElement('meta', { name: 'description', content: 'this is just a demo', }); appendChild(head, desc); } }
core
,optimizer
- #588 Add MinifyHtml transformer (@sebastianbenz)
cli
,optimizer
- #576 migrate to htmlparser2 (@sebastianbenz)
- #573 Auto inject missing AMP boilerplate (@sebastianbenz)
optimizer
- #569 Add AutoExtensionImporter (@sebastianbenz)
- #596 Add Markdown transformer (@sebastianbenz)
cors
optimizer
- #591 Only trim whitespace in head (@sebastianbenz)
- #590 AutoExtensionImporter: fix amp-carousel adding amp-lightbox-gallery (@sebastianbenz)
- #581 Fix: Empty blocks boilerplate removal (@sebastianbenz)
- #580 Fix: ReorderHead priorities (@sebastianbenz)
cli
,core
,cors
,optimizer
,update-cache
- #575 Auto snapshot (@sebastianbenz)
linter
,optimizer-express
- #570 update dependencies (@sebastianbenz)
cache-list
,cache-url
,cli
,core
,cors
,lighthouse-plugin-amp
,linter
,optimizer-express
,optimizer
,runtime-version
,script-csp
,update-cache
,validator-rules
- Filip Stanis (@fstanis)
- Sebastian Benz (@sebastianbenz)
optimizer
- #527 Fix: dont' fail optimizer if inline amp-script is empty (@sebastianbenz)
- Sebastian Benz (@sebastianbenz)
optimizer
- #518 optimizer: Make dynamic component URL rewrites optional (@mattwomple)
optimizer
- #517 optimizer: Do not append rtv/{rtv}/ to ampUrlPrefix (@mattwomple)
- Matt Mower (@mattwomple)
- Michael Stillwell (@ithinkihaveacat)
linter
- #490 Improve SXG Vary test (@ithinkihaveacat)
- Juny (@ka2jun8)
- Matt Mower (@mattwomple)
- Matt Terenzio (@mterenzio)
- Michael Stillwell (@ithinkihaveacat)
optimizer
script-csp
cors
optimizer
- #467 Keyframes transformer (@sebastianbenz)
core
- Other
- #473 Update dependency eslint to v6.3.0 (@renovate-bot)
- #458 Update dependency rollup to v1.20.1 (@renovate-bot)
- #457 Update dependency rollup to v1.20.0 (@renovate-bot)
optimizer-express
- #468 Update dependency apicache to v1.5.2 (@renovate-bot)
- #452 Update dependency apicache to v1.5.1 (@renovate-bot)
linter
- #470 Pin dependencies (@renovate-bot)
- #441 Pin dependency typescript to 3.5.3 (@renovate-bot)
- Aaron Labiaga (@alabiaga)
- Filip Stanis (@fstanis)
- Jason Lee (@zerodevx)
- Michael Cruz (@MichaelRCruz)
- Sebastian Benz (@sebastianbenz)
- @wille