diff --git a/package.json b/package.json index dc524b712d25..76c7cbffbb6e 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,7 @@ "gzip-size": "5.1.1", "html-validator": "5.1.18", "image-size": "0.9.3", - "is-animated": "2.0.0", + "is-animated": "2.0.2", "isomorphic-unfetch": "3.0.0", "jest": "27.0.6", "ky": "0.19.1", diff --git a/packages/next/compiled/is-animated/index.js b/packages/next/compiled/is-animated/index.js index 2709f77f2993..d13ab6438e95 100644 --- a/packages/next/compiled/is-animated/index.js +++ b/packages/next/compiled/is-animated/index.js @@ -1 +1 @@ -(()=>{var e={713:(e,r,t)=>{"use strict";var a=t(641);var i=t(751);var n=t(120);function isAnimated(e){if(a.isGIF(e)){return a.isAnimated(e)}if(i.isPNG(e)){return i.isAnimated(e)}if(n.isWebp(e)){return n.isAnimated(e)}return false}e.exports=isAnimated},641:(e,r)=>{"use strict";function getDataBlocksLength(e,r){var t=0;while(e[r+t]){t+=e[r+t]+1}return t+1}r.isGIF=function(e){var r=e.slice(0,3).toString("ascii");return r==="GIF"};r.isAnimated=function(e){var r,t,a;var i=0;var n=0;a=e.slice(0,3).toString("ascii");if(a!=="GIF"){return false}r=e[10]&128;t=e[10]&7;i+=6;i+=7;i+=r?3*Math.pow(2,t+1):0;while(n<2&&i1}},751:(e,r)=>{r.isPNG=function(e){var r=e.slice(0,8).toString("hex");return r==="89504e470d0a1a0a"};r.isAnimated=function(e){var r=false;var t=false;var a=false;var i=null;var n=8;while(n{r.isWebp=function(e){var r=[87,69,66,80];for(var t=0;t{var e={713:(e,r,t)=>{"use strict";var a=t(641);var i=t(751);var n=t(120);function isAnimated(e){if(a.isGIF(e)){return a.isAnimated(e)}if(i.isPNG(e)){return i.isAnimated(e)}if(n.isWebp(e)){return n.isAnimated(e)}return false}e.exports=isAnimated},641:(e,r)=>{"use strict";function getDataBlocksLength(e,r){var t=0;while(e[r+t]){t+=e[r+t]+1}return t+1}r.isGIF=function(e){var r=e.slice(0,3).toString("ascii");return r==="GIF"};r.isAnimated=function(e){var r,t,a;var i=0;var n=0;a=e.slice(0,3).toString("ascii");if(a!=="GIF"){return false}r=e[10]&128;t=e[10]&7;i+=6;i+=7;i+=r?3*Math.pow(2,t+1):0;while(n<2&&i1}},751:(e,r)=>{r.isPNG=function(e){var r=e.slice(0,8).toString("hex");return r==="89504e470d0a1a0a"};r.isAnimated=function(e){var r=false;var t=false;var a=false;var i=null;var n=8;while(n{r.isWebp=function(e){var r=[87,69,66,80];for(var t=0;t { + const query = { w: ctx.w, q: 90, url: '/animated2.png' } + const res = await fetchViaHTTP(ctx.appPort, '/_next/image', query, {}) + expect(res.status).toBe(200) + expect(res.headers.get('content-type')).toContain('image/png') + expect(res.headers.get('Cache-Control')).toBe( + `public, max-age=0, must-revalidate` + ) + expect(res.headers.get('Vary')).toBe('Accept') + expect(res.headers.get('etag')).toBeTruthy() + expect(res.headers.get('Content-Disposition')).toBe( + `inline; filename="animated2.png"` + ) + expect(isAnimated(await res.buffer())).toBe(true) + }) + it('should maintain animated webp', async () => { const query = { w: ctx.w, q: 90, url: '/animated.webp' } const res = await fetchViaHTTP(ctx.appPort, '/_next/image', query, {}) diff --git a/yarn.lock b/yarn.lock index 75099d90a78f..54bb510a44c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12056,10 +12056,10 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-animated@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-animated/-/is-animated-2.0.0.tgz#ffb1f180ff10782b8442dcb0955b5fc915e1a111" - integrity sha512-ZsfhGnSRUjto9owW5WpaDL7z/03H77Ny9JgP/BSyOQ/mAPAKNbdX30WNYbg2R5NhvT5VqKs2KL38znj5OG8tDg== +is-animated@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-animated/-/is-animated-2.0.2.tgz#579a5d30b0d28c71bfef9dc46ebec969269461ab" + integrity sha512-+Hi3UdXHV/3ZgxdO9Ik45ciNhDlYrDOIdGz7Cj7ybddWnYBi4kwBuGMn79Xa2Js4VldgX5e3943Djsr/KYSPbA== is-arguments@^1.0.4: version "1.0.4"