diff --git a/demos/canary/next.config.js b/demos/canary/next.config.js index 64a2da9236..25e668cff3 100755 --- a/demos/canary/next.config.js +++ b/demos/canary/next.config.js @@ -8,17 +8,13 @@ const nextConfig = { }, images: { formats: ['image/avif', 'image/webp'], - }, - experimental: { - images: { - remotePatterns: [ - { - protocol: 'https', - hostname: '*.githubusercontent.com', - }, - ], - }, - }, + remotePatterns: [ + { + protocol: 'https', + hostname: '*.githubusercontent.com', + }, + ], + } } module.exports = nextConfig diff --git a/demos/canary/package-lock.json b/demos/canary/package-lock.json index 4881aeb5b3..cd82d41a4e 100644 --- a/demos/canary/package-lock.json +++ b/demos/canary/package-lock.json @@ -8,7 +8,7 @@ "name": "canary", "version": "0.1.0", "dependencies": { - "next": "^12.1.7-canary.29", + "next": "^12.2.6-canary.12", "react": "18.1.0", "react-dom": "18.1.0" }, @@ -65,14 +65,14 @@ "license": "BSD-3-Clause" }, "node_modules/@next/env": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz", - "integrity": "sha512-/gApFXWk5CCLFQJL5IYJXxPQuG5tz5nPX4l27A9Zm/+wJxiwFrRSP54AopDxIv4JRp/rGwcgk/lZS/0Clw8jYA==" + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.6-canary.12.tgz", + "integrity": "sha512-oGA2TXjlIeW4V5xdEAO1X9XSkTLBwPm4eCK8co5jV+6sM+ePN07kwjAcfrgK/P3pyJJDr8jEl0/liT4ZNEIwUw==" }, "node_modules/@next/swc-android-arm-eabi": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.4.tgz", - "integrity": "sha512-P4YSFNpmXXSnn3P1qsOAqz+MX3On9fHrlc8ovb/CFJJoU+YLCR53iCEwfw39e0IZEgDA7ttgr108plF8mxaX0g==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.6-canary.12.tgz", + "integrity": "sha512-8FMluek7Q2+34SbIu2zTB6T/3kHwI3n/f6b7nTDHT6NNGPaVfA3BEHgL6kXix9oWU8aKf5t66UPmUTHDEouK7g==", "cpu": [ "arm" ], @@ -85,9 +85,9 @@ } }, "node_modules/@next/swc-android-arm64": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.4.tgz", - "integrity": "sha512-4o2n14E18O+8xHlf6dgJsWPXN9gmSmfIe2Z0EqKDIPBBkFt/2CyrH0+vwHnL2l7xkDHhOGfZYcYIWVUR5aNu0A==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.6-canary.12.tgz", + "integrity": "sha512-B6quwKDfeUI2hcau1FXMpxJ3/l7jD03p9JfR7o/7PSob6jjaio+A8PBJUuvjCyRbmjcBnCz0Q51HagDDmfHV7w==", "cpu": [ "arm64" ], @@ -100,9 +100,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.4.tgz", - "integrity": "sha512-DcUO6MGBL9E3jj5o86MUnTOy4WawIJJhyCcFYO4f51sbl7+uPIYIx40eo98A6NwJEXazCqq1hLeqOaNTAIvDiQ==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.6-canary.12.tgz", + "integrity": "sha512-n1mU6b+FxVSduIocM0d6Bojb0ZnpQvNbsIJzPbb/QVDwB9H1j0GfQfIWHanKPRXh2W2D90oyLcu0MBzi2VQmxQ==", "cpu": [ "arm64" ], @@ -115,9 +115,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.4.tgz", - "integrity": "sha512-IUlFMqeLjdIzDorrGC2Dt+2Ae3DbKQbRzCzmDq4/CP1+jJGeDXo/2AHnlE+WYnwQAC4KtAz6pbVnd3KstZWsVA==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.6-canary.12.tgz", + "integrity": "sha512-KL1bVS14V2cuo+zxX71/cpGhf/fjD7NEgYZl5urke2GooGCNSq30+6Ndp9GSyw44BEbCs1885sEY1BDMNj0ILQ==", "cpu": [ "x64" ], @@ -130,9 +130,9 @@ } }, "node_modules/@next/swc-freebsd-x64": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.4.tgz", - "integrity": "sha512-475vwyWcjnyDVDWLgAATP0HI8W1rwByc+uXk1B6KkAVFhkoDgH387LW0uNqxavK+VxCzj3avQXX/58XDvxtSlg==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.6-canary.12.tgz", + "integrity": "sha512-kLRSsWO8LdRizHrduUeykWlHvyHpkGQP5W7rI6Z1qReAVSGd2rSa8BWUDr30O4n/ErNlyfH+6z3WqXDYiIv0yQ==", "cpu": [ "x64" ], @@ -145,9 +145,9 @@ } }, "node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.4.tgz", - "integrity": "sha512-qZW+L3iG3XSGtlOPmD5RRWXyk6ZNdscLV0BQjuDvP+exTg+uixqHXOHz0/GVATIJEBQOF0Kew7jAXVXEP+iRTQ==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.6-canary.12.tgz", + "integrity": "sha512-/djx+YxdPBz0G4mO8MaKALSbZc/lbJJi0s4WrHEQaJhFeXOgnvs+UC0OHxyyJAi+l9ImF3uFjhHGFyHaSzvYVw==", "cpu": [ "arm" ], @@ -160,9 +160,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.4.tgz", - "integrity": "sha512-fEPRjItWYaKyyG9N+2HIA59OBHIhk7WC+Rh+LwXsh0pQe870Ykpek3KQs0umjsrEGe57NyMomq3f80/N8taDvA==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.6-canary.12.tgz", + "integrity": "sha512-eEYzzp96hSqc8GSX9DiLLgx07fDZz6pLU5ozFz39g71/NodgZO0+cBZWDVkIGp6jXi5IzvkDoTYw4OCMed9NtQ==", "cpu": [ "arm64" ], @@ -175,9 +175,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.4.tgz", - "integrity": "sha512-rnCTzXII0EBCcFn9P5s/Dho2kPUMSX/bP0iOAj8wEI/IxUEfEElbin89zJoNW30cycHu19xY8YP4K2+hzciPzQ==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.6-canary.12.tgz", + "integrity": "sha512-DkyxDLYV1RjuydSmgqN9nO4LaVjrtVkXgWvPgNjhLgRTJ+xJLwympvVPea4GdGEhF+VkzizUgHJeQfKoy/0tJA==", "cpu": [ "arm64" ], @@ -190,9 +190,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.4.tgz", - "integrity": "sha512-PhXX6NSuIuhHInxPY2VkG2Bl7VllsD3Cjx+pQcS1wTym7Zt7UoLvn05PkRrkiyIkvR+UXnqPUM3TYiSbnemXEw==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.6-canary.12.tgz", + "integrity": "sha512-3h7uPxVCXqbTfbevTLnRjRAchoSDaAJQ9mJU+9sOUF++1Ct6C0bP/TsaWG7J9h0Q0zyoJ/RKAT0I9Kz3h9RHkQ==", "cpu": [ "x64" ], @@ -205,9 +205,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.4.tgz", - "integrity": "sha512-GmC/QROiUZpFirHRfPQqMyCXZ+5+ndbBZrMvL74HtQB/CKXB8K1VM+rvy9Gp/5OaU8Rxp48IcX79NOfI2LiXlA==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.6-canary.12.tgz", + "integrity": "sha512-hi5hdVSMh98vf7b7MSua4+8RnCrz4KnXW8A+6SmvVs50X9PR+dFe8GfrCEn0P3GAsvbtj3s6XjqIVsXByxNL5Q==", "cpu": [ "x64" ], @@ -220,9 +220,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.4.tgz", - "integrity": "sha512-9XKoCXbNZuaMRPtcKQz3+hgVpkMosaLlcxHFXT8/j4w61k7/qvEbrkMDS9WHNrD/xVcLycwhPRgXcns2K1BdBQ==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.6-canary.12.tgz", + "integrity": "sha512-7balFbuhk1eV5/sC/YzXy2tECwglYd41dpdgn43uwqoZBN/JzHX/jr0cp6oHZkOSu26m9n+ty9YyxthravXBcw==", "cpu": [ "arm64" ], @@ -235,9 +235,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.4.tgz", - "integrity": "sha512-hEyRieZKH9iw4AzvXaQ+Fyb98k0G/o9QcRGxA1/O/O/elf1+Qvuwb15phT8GbVtIeNziy66XTPOhKKfdr8KyUg==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.6-canary.12.tgz", + "integrity": "sha512-ktExRLgdZy3bjiJVcrTNPwdY1PODcVE4y/FPW6iJZhaoytF65u9YG3JfAKtgfES/fwmE6LNacCBC2XlWEM+fiQ==", "cpu": [ "ia32" ], @@ -250,9 +250,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.4.tgz", - "integrity": "sha512-5Pl1tdMJWLy4rvzU1ecx0nHWgDPqoYuvYoXE/5X0Clu9si/yOuBIj573F2kOTY7mu0LX2wgCJVSnyK0abHBxIw==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.6-canary.12.tgz", + "integrity": "sha512-RPM3ZnP0iGF5eVpEmfA5yJpOyA5Zu66+IrH3bmUpE+MbrG7XzSH8pU+m6LUPQadiPeHbGG7CZfTTNu3YQZC5xA==", "cpu": [ "x64" ], @@ -300,9 +300,9 @@ } }, "node_modules/@swc/helpers": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.3.tgz", - "integrity": "sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", + "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", "dependencies": { "tslib": "^2.4.0" } @@ -413,7 +413,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001344", + "version": "1.0.30001393", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001393.tgz", + "integrity": "sha512-N/od11RX+Gsk+1qY/jbPa0R6zJupEa0lxeBG598EbrtblxVCTJsQwbRBm6+V+rxpc5lHKdsXb9RY83cZIPLseA==", "funding": [ { "type": "opencollective", @@ -423,8 +425,7 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/chalk": { "version": "4.1.2", @@ -1068,7 +1069,8 @@ }, "node_modules/nanoid": { "version": "3.3.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -1082,15 +1084,15 @@ "license": "MIT" }, "node_modules/next": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.4.tgz", - "integrity": "sha512-b1xlxEozmAWokAXzXsi5vlmU/IfJcFNIJA8dpU5UdkFbyDPio8wwb8mAQ/Y7rGtfTgG/t/u49BiyEA+xAgFvow==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.6-canary.12.tgz", + "integrity": "sha512-pmiDm9+7nPTobfXjXzwmiaYRo9T9xK3RAuhTgjwFnquRVQ1Bdm6oYyU+tP2YdvkveukMR9nD8CS61sBWtbzUNA==", "dependencies": { - "@next/env": "12.2.4", - "@swc/helpers": "0.4.3", + "@next/env": "12.2.6-canary.12", + "@swc/helpers": "0.4.11", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", - "styled-jsx": "5.0.2", + "styled-jsx": "5.0.6", "use-sync-external-store": "1.2.0" }, "bin": { @@ -1100,19 +1102,19 @@ "node": ">=12.22.0" }, "optionalDependencies": { - "@next/swc-android-arm-eabi": "12.2.4", - "@next/swc-android-arm64": "12.2.4", - "@next/swc-darwin-arm64": "12.2.4", - "@next/swc-darwin-x64": "12.2.4", - "@next/swc-freebsd-x64": "12.2.4", - "@next/swc-linux-arm-gnueabihf": "12.2.4", - "@next/swc-linux-arm64-gnu": "12.2.4", - "@next/swc-linux-arm64-musl": "12.2.4", - "@next/swc-linux-x64-gnu": "12.2.4", - "@next/swc-linux-x64-musl": "12.2.4", - "@next/swc-win32-arm64-msvc": "12.2.4", - "@next/swc-win32-ia32-msvc": "12.2.4", - "@next/swc-win32-x64-msvc": "12.2.4" + "@next/swc-android-arm-eabi": "12.2.6-canary.12", + "@next/swc-android-arm64": "12.2.6-canary.12", + "@next/swc-darwin-arm64": "12.2.6-canary.12", + "@next/swc-darwin-x64": "12.2.6-canary.12", + "@next/swc-freebsd-x64": "12.2.6-canary.12", + "@next/swc-linux-arm-gnueabihf": "12.2.6-canary.12", + "@next/swc-linux-arm64-gnu": "12.2.6-canary.12", + "@next/swc-linux-arm64-musl": "12.2.6-canary.12", + "@next/swc-linux-x64-gnu": "12.2.6-canary.12", + "@next/swc-linux-x64-musl": "12.2.6-canary.12", + "@next/swc-win32-arm64-msvc": "12.2.6-canary.12", + "@next/swc-win32-ia32-msvc": "12.2.6-canary.12", + "@next/swc-win32-x64-msvc": "12.2.6-canary.12" }, "peerDependencies": { "fibers": ">= 3.1.0", @@ -1234,7 +1236,8 @@ }, "node_modules/picocolors": { "version": "1.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -1431,7 +1434,8 @@ }, "node_modules/source-map-js": { "version": "1.0.2", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "engines": { "node": ">=0.10.0" } @@ -1459,8 +1463,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.0.2", - "license": "MIT", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz", + "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==", "engines": { "node": ">= 12.0.0" }, @@ -1630,86 +1635,86 @@ "dev": true }, "@next/env": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.4.tgz", - "integrity": "sha512-/gApFXWk5CCLFQJL5IYJXxPQuG5tz5nPX4l27A9Zm/+wJxiwFrRSP54AopDxIv4JRp/rGwcgk/lZS/0Clw8jYA==" + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.6-canary.12.tgz", + "integrity": "sha512-oGA2TXjlIeW4V5xdEAO1X9XSkTLBwPm4eCK8co5jV+6sM+ePN07kwjAcfrgK/P3pyJJDr8jEl0/liT4ZNEIwUw==" }, "@next/swc-android-arm-eabi": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.4.tgz", - "integrity": "sha512-P4YSFNpmXXSnn3P1qsOAqz+MX3On9fHrlc8ovb/CFJJoU+YLCR53iCEwfw39e0IZEgDA7ttgr108plF8mxaX0g==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.6-canary.12.tgz", + "integrity": "sha512-8FMluek7Q2+34SbIu2zTB6T/3kHwI3n/f6b7nTDHT6NNGPaVfA3BEHgL6kXix9oWU8aKf5t66UPmUTHDEouK7g==", "optional": true }, "@next/swc-android-arm64": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.4.tgz", - "integrity": "sha512-4o2n14E18O+8xHlf6dgJsWPXN9gmSmfIe2Z0EqKDIPBBkFt/2CyrH0+vwHnL2l7xkDHhOGfZYcYIWVUR5aNu0A==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.6-canary.12.tgz", + "integrity": "sha512-B6quwKDfeUI2hcau1FXMpxJ3/l7jD03p9JfR7o/7PSob6jjaio+A8PBJUuvjCyRbmjcBnCz0Q51HagDDmfHV7w==", "optional": true }, "@next/swc-darwin-arm64": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.4.tgz", - "integrity": "sha512-DcUO6MGBL9E3jj5o86MUnTOy4WawIJJhyCcFYO4f51sbl7+uPIYIx40eo98A6NwJEXazCqq1hLeqOaNTAIvDiQ==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.6-canary.12.tgz", + "integrity": "sha512-n1mU6b+FxVSduIocM0d6Bojb0ZnpQvNbsIJzPbb/QVDwB9H1j0GfQfIWHanKPRXh2W2D90oyLcu0MBzi2VQmxQ==", "optional": true }, "@next/swc-darwin-x64": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.4.tgz", - "integrity": "sha512-IUlFMqeLjdIzDorrGC2Dt+2Ae3DbKQbRzCzmDq4/CP1+jJGeDXo/2AHnlE+WYnwQAC4KtAz6pbVnd3KstZWsVA==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.6-canary.12.tgz", + "integrity": "sha512-KL1bVS14V2cuo+zxX71/cpGhf/fjD7NEgYZl5urke2GooGCNSq30+6Ndp9GSyw44BEbCs1885sEY1BDMNj0ILQ==", "optional": true }, "@next/swc-freebsd-x64": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.4.tgz", - "integrity": "sha512-475vwyWcjnyDVDWLgAATP0HI8W1rwByc+uXk1B6KkAVFhkoDgH387LW0uNqxavK+VxCzj3avQXX/58XDvxtSlg==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.6-canary.12.tgz", + "integrity": "sha512-kLRSsWO8LdRizHrduUeykWlHvyHpkGQP5W7rI6Z1qReAVSGd2rSa8BWUDr30O4n/ErNlyfH+6z3WqXDYiIv0yQ==", "optional": true }, "@next/swc-linux-arm-gnueabihf": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.4.tgz", - "integrity": "sha512-qZW+L3iG3XSGtlOPmD5RRWXyk6ZNdscLV0BQjuDvP+exTg+uixqHXOHz0/GVATIJEBQOF0Kew7jAXVXEP+iRTQ==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.6-canary.12.tgz", + "integrity": "sha512-/djx+YxdPBz0G4mO8MaKALSbZc/lbJJi0s4WrHEQaJhFeXOgnvs+UC0OHxyyJAi+l9ImF3uFjhHGFyHaSzvYVw==", "optional": true }, "@next/swc-linux-arm64-gnu": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.4.tgz", - "integrity": "sha512-fEPRjItWYaKyyG9N+2HIA59OBHIhk7WC+Rh+LwXsh0pQe870Ykpek3KQs0umjsrEGe57NyMomq3f80/N8taDvA==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.6-canary.12.tgz", + "integrity": "sha512-eEYzzp96hSqc8GSX9DiLLgx07fDZz6pLU5ozFz39g71/NodgZO0+cBZWDVkIGp6jXi5IzvkDoTYw4OCMed9NtQ==", "optional": true }, "@next/swc-linux-arm64-musl": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.4.tgz", - "integrity": "sha512-rnCTzXII0EBCcFn9P5s/Dho2kPUMSX/bP0iOAj8wEI/IxUEfEElbin89zJoNW30cycHu19xY8YP4K2+hzciPzQ==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.6-canary.12.tgz", + "integrity": "sha512-DkyxDLYV1RjuydSmgqN9nO4LaVjrtVkXgWvPgNjhLgRTJ+xJLwympvVPea4GdGEhF+VkzizUgHJeQfKoy/0tJA==", "optional": true }, "@next/swc-linux-x64-gnu": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.4.tgz", - "integrity": "sha512-PhXX6NSuIuhHInxPY2VkG2Bl7VllsD3Cjx+pQcS1wTym7Zt7UoLvn05PkRrkiyIkvR+UXnqPUM3TYiSbnemXEw==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.6-canary.12.tgz", + "integrity": "sha512-3h7uPxVCXqbTfbevTLnRjRAchoSDaAJQ9mJU+9sOUF++1Ct6C0bP/TsaWG7J9h0Q0zyoJ/RKAT0I9Kz3h9RHkQ==", "optional": true }, "@next/swc-linux-x64-musl": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.4.tgz", - "integrity": "sha512-GmC/QROiUZpFirHRfPQqMyCXZ+5+ndbBZrMvL74HtQB/CKXB8K1VM+rvy9Gp/5OaU8Rxp48IcX79NOfI2LiXlA==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.6-canary.12.tgz", + "integrity": "sha512-hi5hdVSMh98vf7b7MSua4+8RnCrz4KnXW8A+6SmvVs50X9PR+dFe8GfrCEn0P3GAsvbtj3s6XjqIVsXByxNL5Q==", "optional": true }, "@next/swc-win32-arm64-msvc": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.4.tgz", - "integrity": "sha512-9XKoCXbNZuaMRPtcKQz3+hgVpkMosaLlcxHFXT8/j4w61k7/qvEbrkMDS9WHNrD/xVcLycwhPRgXcns2K1BdBQ==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.6-canary.12.tgz", + "integrity": "sha512-7balFbuhk1eV5/sC/YzXy2tECwglYd41dpdgn43uwqoZBN/JzHX/jr0cp6oHZkOSu26m9n+ty9YyxthravXBcw==", "optional": true }, "@next/swc-win32-ia32-msvc": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.4.tgz", - "integrity": "sha512-hEyRieZKH9iw4AzvXaQ+Fyb98k0G/o9QcRGxA1/O/O/elf1+Qvuwb15phT8GbVtIeNziy66XTPOhKKfdr8KyUg==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.6-canary.12.tgz", + "integrity": "sha512-ktExRLgdZy3bjiJVcrTNPwdY1PODcVE4y/FPW6iJZhaoytF65u9YG3JfAKtgfES/fwmE6LNacCBC2XlWEM+fiQ==", "optional": true }, "@next/swc-win32-x64-msvc": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.4.tgz", - "integrity": "sha512-5Pl1tdMJWLy4rvzU1ecx0nHWgDPqoYuvYoXE/5X0Clu9si/yOuBIj573F2kOTY7mu0LX2wgCJVSnyK0abHBxIw==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.6-canary.12.tgz", + "integrity": "sha512-RPM3ZnP0iGF5eVpEmfA5yJpOyA5Zu66+IrH3bmUpE+MbrG7XzSH8pU+m6LUPQadiPeHbGG7CZfTTNu3YQZC5xA==", "optional": true }, "@nodelib/fs.scandir": { @@ -1739,9 +1744,9 @@ } }, "@swc/helpers": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.3.tgz", - "integrity": "sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", + "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", "requires": { "tslib": "^2.4.0" } @@ -1754,7 +1759,8 @@ }, "acorn-jsx": { "version": "5.3.2", - "dev": true + "dev": true, + "requires": {} }, "ajv": { "version": "6.12.6", @@ -1813,7 +1819,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001344" + "version": "1.0.30001393", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001393.tgz", + "integrity": "sha512-N/od11RX+Gsk+1qY/jbPa0R6zJupEa0lxeBG598EbrtblxVCTJsQwbRBm6+V+rxpc5lHKdsXb9RY83cZIPLseA==" }, "chalk": { "version": "4.1.2", @@ -2248,35 +2256,37 @@ "dev": true }, "nanoid": { - "version": "3.3.4" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, "natural-compare": { "version": "1.4.0", "dev": true }, "next": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.4.tgz", - "integrity": "sha512-b1xlxEozmAWokAXzXsi5vlmU/IfJcFNIJA8dpU5UdkFbyDPio8wwb8mAQ/Y7rGtfTgG/t/u49BiyEA+xAgFvow==", + "version": "12.2.6-canary.12", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.6-canary.12.tgz", + "integrity": "sha512-pmiDm9+7nPTobfXjXzwmiaYRo9T9xK3RAuhTgjwFnquRVQ1Bdm6oYyU+tP2YdvkveukMR9nD8CS61sBWtbzUNA==", "requires": { - "@next/env": "12.2.4", - "@next/swc-android-arm-eabi": "12.2.4", - "@next/swc-android-arm64": "12.2.4", - "@next/swc-darwin-arm64": "12.2.4", - "@next/swc-darwin-x64": "12.2.4", - "@next/swc-freebsd-x64": "12.2.4", - "@next/swc-linux-arm-gnueabihf": "12.2.4", - "@next/swc-linux-arm64-gnu": "12.2.4", - "@next/swc-linux-arm64-musl": "12.2.4", - "@next/swc-linux-x64-gnu": "12.2.4", - "@next/swc-linux-x64-musl": "12.2.4", - "@next/swc-win32-arm64-msvc": "12.2.4", - "@next/swc-win32-ia32-msvc": "12.2.4", - "@next/swc-win32-x64-msvc": "12.2.4", - "@swc/helpers": "0.4.3", + "@next/env": "12.2.6-canary.12", + "@next/swc-android-arm-eabi": "12.2.6-canary.12", + "@next/swc-android-arm64": "12.2.6-canary.12", + "@next/swc-darwin-arm64": "12.2.6-canary.12", + "@next/swc-darwin-x64": "12.2.6-canary.12", + "@next/swc-freebsd-x64": "12.2.6-canary.12", + "@next/swc-linux-arm-gnueabihf": "12.2.6-canary.12", + "@next/swc-linux-arm64-gnu": "12.2.6-canary.12", + "@next/swc-linux-arm64-musl": "12.2.6-canary.12", + "@next/swc-linux-x64-gnu": "12.2.6-canary.12", + "@next/swc-linux-x64-musl": "12.2.6-canary.12", + "@next/swc-win32-arm64-msvc": "12.2.6-canary.12", + "@next/swc-win32-ia32-msvc": "12.2.6-canary.12", + "@next/swc-win32-x64-msvc": "12.2.6-canary.12", + "@swc/helpers": "0.4.11", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", - "styled-jsx": "5.0.2", + "styled-jsx": "5.0.6", "use-sync-external-store": "1.2.0" } }, @@ -2345,7 +2355,9 @@ "dev": true }, "picocolors": { - "version": "1.0.0" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { "version": "2.3.1", @@ -2444,7 +2456,9 @@ "dev": true }, "source-map-js": { - "version": "1.0.2" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, "strip-ansi": { "version": "6.0.1", @@ -2458,7 +2472,10 @@ "dev": true }, "styled-jsx": { - "version": "5.0.2" + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz", + "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==", + "requires": {} }, "supports-color": { "version": "7.2.0", @@ -2506,7 +2523,8 @@ "use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==" + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "requires": {} }, "v8-compile-cache": { "version": "2.3.0", diff --git a/demos/canary/package.json b/demos/canary/package.json index e9d9aa22d3..64b65d6ef3 100644 --- a/demos/canary/package.json +++ b/demos/canary/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "next": "^12.1.7-canary.29", + "next": "^12.2.6-canary.12", "react": "18.1.0", "react-dom": "18.1.0" }, diff --git a/packages/runtime/src/helpers/utils.ts b/packages/runtime/src/helpers/utils.ts index 08cc0a160b..ba377002eb 100644 --- a/packages/runtime/src/helpers/utils.ts +++ b/packages/runtime/src/helpers/utils.ts @@ -2,6 +2,8 @@ import type { NetlifyConfig } from '@netlify/build' import type { Header } from '@netlify/build/types/config/netlify_config' import globby from 'globby' +import type { ExperimentalConfig } from 'next/dist/server/config-shared' +import type { ImageConfigComplete, RemotePattern } from 'next/dist/shared/lib/image-config' import { join } from 'pathe' import { OPTIONAL_CATCH_ALL_REGEX, CATCH_ALL_REGEX, DYNAMIC_PARAMETER_REGEX, HANDLER_FUNCTION_PATH } from '../constants' @@ -199,4 +201,24 @@ export const getCustomImageResponseHeaders = (headers: Header[]): Record process.env.DISABLE_BUNDLE_ZIP_SIZE_CHECK === '1' || process.env.DISABLE_BUNDLE_ZIP_SIZE_CHECK === 'true' + +// In v12.2.6-canary.12 the types had not yet been updated. +// Once this type is available from the next package, this should +// be removed +export type ImagesConfig = Partial & + Required & { + remotePatterns?: RemotePattern[] + } +export const getRemotePatterns = (experimental: ExperimentalConfig, images: ImagesConfig) => { + // Where remote patterns is configured pre-v12.2.5 + if (experimental.images?.remotePatterns) { + return experimental.images.remotePatterns + } + + // Where remote patterns is configured after v12.2.5 + if (images.remotePatterns) { + return images.remotePatterns || [] + } + return [] +} /* eslint-enable max-lines */ diff --git a/packages/runtime/src/index.ts b/packages/runtime/src/index.ts index 2070bd281d..f15bf13192 100644 --- a/packages/runtime/src/index.ts +++ b/packages/runtime/src/index.ts @@ -25,7 +25,7 @@ import { import { moveStaticPages, movePublicFiles, patchNextFiles } from './helpers/files' import { generateFunctions, setupImageFunction, generatePagesResolver } from './helpers/functions' import { generateRedirects, generateStaticRedirects } from './helpers/redirects' -import { shouldSkip, isNextAuthInstalled, getCustomImageResponseHeaders } from './helpers/utils' +import { shouldSkip, isNextAuthInstalled, getCustomImageResponseHeaders, getRemotePatterns } from './helpers/utils' import { verifyNetlifyBuildVersion, checkNextSiteHasBuilt, @@ -78,14 +78,12 @@ const plugin: NetlifyPlugin = { checkNextSiteHasBuilt({ publish, failBuild }) - let experimentalRemotePatterns = [] const { appDir, basePath, i18n, images, target, ignore, trailingSlash, outdir, experimental } = await getNextConfig( { publish, failBuild, }, ) - await cleanupEdgeFunctions(constants) const middlewareManifest = await loadMiddlewareManifest(netlifyConfig) @@ -116,10 +114,6 @@ const plugin: NetlifyPlugin = { } } - if (experimental.images) { - experimentalRemotePatterns = experimental.images.remotePatterns || [] - } - if (isNextAuthInstalled()) { const config = await getRequiredServerFiles(publish) @@ -164,7 +158,7 @@ const plugin: NetlifyPlugin = { imageconfig: images, netlifyConfig, basePath, - remotePatterns: experimentalRemotePatterns, + remotePatterns: getRemotePatterns(experimental, images), responseHeaders: getCustomImageResponseHeaders(netlifyConfig.headers), }) diff --git a/test/helpers/utils.spec.ts b/test/helpers/utils.spec.ts index 940e1d27ed..c19622507a 100644 --- a/test/helpers/utils.spec.ts +++ b/test/helpers/utils.spec.ts @@ -1,5 +1,6 @@ import Chance from 'chance' -import { getCustomImageResponseHeaders } from '../../packages/runtime/src/helpers/utils' +import { ExperimentalConfig } from 'next/dist/server/config-shared' +import { getCustomImageResponseHeaders, getRemotePatterns, ImagesConfig } from '../../packages/runtime/src/helpers/utils' const chance = new Chance() @@ -31,3 +32,64 @@ describe('getCustomImageResponseHeaders', () => { }) }) }) + +describe('getRemotePatterns', () => { + let mockExperimentalConfig + let mockImages + beforeEach(() => { + mockExperimentalConfig = { + images: {} + } as ExperimentalConfig + + mockImages = { + deviceSizes: [ + 640, 750, 828, + 1080, 1200, 1920, + 2048, 3840 + ], + imageSizes: [ + 16, 32, 48, 64, + 96, 128, 256, 384 + ], + path: '/_next/image', + loader: 'default', + domains: [], + disableStaticImages: false, + minimumCacheTTL: 60, + formats: [ 'image/avif', 'image/webp' ], + dangerouslyAllowSVG: false, + contentSecurityPolicy: "script-src 'none'; frame-src 'none'; sandbox;", + unoptimized: false + } as ImagesConfig + + }) + + it('returns the remote patterns found under experimental.images', () => { + mockExperimentalConfig.images.remotePatterns = [ + { + protocol: 'https', + hostname: '*.githubusercontent.com', + }, + ] + const result = getRemotePatterns(mockExperimentalConfig, mockImages) + + expect(result).toStrictEqual(mockExperimentalConfig.images?.remotePatterns) + }) + + it('returns the remote patterns found under images', () => { + mockImages.remotePatterns = [ + { + protocol: 'https', + hostname: '*.githubusercontent.com', + }, + ] + const result = getRemotePatterns(mockExperimentalConfig, mockImages) + + expect(result).toStrictEqual(mockImages.remotePatterns) + }) + + it('returns an empty array', () => { + const result = getRemotePatterns(mockExperimentalConfig, mockImages) + expect(result).toStrictEqual([]) + }) +})