From 655ce2a666f241cf823e45aecfe464f3df8aaf73 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Fri, 9 Sep 2022 08:42:36 +0100 Subject: [PATCH 1/8] feat: add support for Next 12.3 middleware matchers --- .eslintignore | 1 + .vscode/settings.json | 1 + demos/base-path/package.json | 2 +- demos/custom-routes/package.json | 2 +- demos/default/package.json | 2 +- demos/middleware/package.json | 4 +- demos/middleware/tsconfig.json | 5 +- demos/next-auth/package.json | 2 +- demos/next-export/package.json | 2 +- demos/next-i18next/package-lock.json | 4 +- demos/next-i18next/package.json | 4 +- demos/server-components/package.json | 2 +- demos/static-root/package.json | 2 +- package-lock.json | 758 +++++++++++++----- package.json | 4 +- packages/next/package.json | 4 +- packages/runtime/package.json | 5 +- packages/runtime/src/helpers/edge.ts | 74 +- .../templates/{edge => edge-shared}/utils.ts | 0 .../runtime/src/templates/edge/runtime.ts | 2 +- packages/runtime/tsconfig.json | 3 +- 21 files changed, 659 insertions(+), 224 deletions(-) rename packages/runtime/src/templates/{edge => edge-shared}/utils.ts (100%) diff --git a/.eslintignore b/.eslintignore index 33b482eefb..17568bf9bf 100644 --- a/.eslintignore +++ b/.eslintignore @@ -4,5 +4,6 @@ test lib demos packages/runtime/src/templates/edge +packages/runtime/src/templates/edge-shared packages/runtime/lib packages/runtime/dist-types \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 032d621103..5e1acb3317 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,7 @@ { "deno.enablePaths": [ "packages/runtime/src/templates/edge", + "packages/runtime/src/templates/edge-shared", "demos/middleware/.netlify/edge-functions", "demos/server-components/.netlify/edge-functions", ], diff --git a/demos/base-path/package.json b/demos/base-path/package.json index aeafdb9690..c026033fe5 100644 --- a/demos/base-path/package.json +++ b/demos/base-path/package.json @@ -13,7 +13,7 @@ "typescript": "^4.6.3" }, "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" diff --git a/demos/custom-routes/package.json b/demos/custom-routes/package.json index d1f1ff6c8f..c2586faf96 100644 --- a/demos/custom-routes/package.json +++ b/demos/custom-routes/package.json @@ -14,7 +14,7 @@ "typescript": "^4.7.4" }, "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "scripts": { "build": "next build", diff --git a/demos/default/package.json b/demos/default/package.json index ff29743785..5043dc7c48 100644 --- a/demos/default/package.json +++ b/demos/default/package.json @@ -20,7 +20,7 @@ "dependencies": { "@reach/dialog": "^0.16.2", "@reach/visually-hidden": "^0.16.0", - "next": "^12.2.0", + "next": "^12.3.0", "react": "^18.0.0", "react-dom": "^18.0.0" }, diff --git a/demos/middleware/package.json b/demos/middleware/package.json index bef88c4795..a361e595ba 100644 --- a/demos/middleware/package.json +++ b/demos/middleware/package.json @@ -11,7 +11,7 @@ "dependencies": { "@netlify/next": "*", "@netlify/plugin-nextjs": "*", - "next": "^12.2.0", + "next": "^12.3.0", "react": "18.0.0", "react-dom": "18.0.0" }, @@ -24,4 +24,4 @@ "npm-run-all": "^4.1.5", "typescript": "^4.6.3" } -} +} \ No newline at end of file diff --git a/demos/middleware/tsconfig.json b/demos/middleware/tsconfig.json index 2ea20c6c5f..9b052cc0bd 100644 --- a/demos/middleware/tsconfig.json +++ b/demos/middleware/tsconfig.json @@ -17,11 +17,12 @@ }, "exclude": [ "node_modules", - "../../src/templates/edge/*" + "../../src/templates/edge/*", + "../../src/templates/edge-shared/*" ], "include": [ "next-env.d.ts", "**/*.ts", "**/*.tsx" ] -} +} \ No newline at end of file diff --git a/demos/next-auth/package.json b/demos/next-auth/package.json index f80956c131..5352f977c4 100644 --- a/demos/next-auth/package.json +++ b/demos/next-auth/package.json @@ -23,7 +23,7 @@ ], "license": "MIT", "dependencies": { - "next": "^12.2.0", + "next": "^12.3.0", "next-auth": "^4.7.0", "nodemailer": "^6.6.3", "react": "^18.0.0", diff --git a/demos/next-export/package.json b/demos/next-export/package.json index d053ffaf92..a70a70e1fd 100644 --- a/demos/next-export/package.json +++ b/demos/next-export/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "", "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "devDependencies": { "@netlify/plugin-nextjs": "*", diff --git a/demos/next-i18next/package-lock.json b/demos/next-i18next/package-lock.json index 97cb432c82..a303acef0a 100644 --- a/demos/next-i18next/package-lock.json +++ b/demos/next-i18next/package-lock.json @@ -8,7 +8,7 @@ "name": "next-i18next", "version": "0.1.0", "dependencies": { - "next": "^12.2.0", + "next": "^12.3.0", "next-i18next": "^11.0.0", "react": "18.1.0", "react-dom": "18.1.0" @@ -5541,4 +5541,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/demos/next-i18next/package.json b/demos/next-i18next/package.json index a5447cc98c..1c7722adc3 100644 --- a/demos/next-i18next/package.json +++ b/demos/next-i18next/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "next": "^12.2.0", + "next": "^12.3.0", "next-i18next": "^11.0.0", "react": "18.1.0", "react-dom": "18.1.0" @@ -18,4 +18,4 @@ "eslint": "8.22.0", "eslint-config-next": "12.2.4" } -} +} \ No newline at end of file diff --git a/demos/server-components/package.json b/demos/server-components/package.json index c121f075e9..a43cb21306 100644 --- a/demos/server-components/package.json +++ b/demos/server-components/package.json @@ -11,7 +11,7 @@ "private": true, "dependencies": { "ms": "2.1.3", - "next": "^12.2.0", + "next": "^12.3.0", "react": "^18.0.0", "react-dom": "^18.0.0" }, diff --git a/demos/static-root/package.json b/demos/static-root/package.json index dbf5cc7980..1a6e034c42 100644 --- a/demos/static-root/package.json +++ b/demos/static-root/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "", "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "devDependencies": { "@netlify/plugin-nextjs": "*", diff --git a/package-lock.json b/package-lock.json index 8aac9d8f48..990a2186aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "demos/next-with-edge-functions" ], "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "devDependencies": { "@babel/core": "^7.15.8", @@ -65,7 +65,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "devDependencies": { "@netlify/plugin-nextjs": "*", @@ -82,7 +82,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "devDependencies": { "@netlify/plugin-nextjs": "*", @@ -114,7 +114,7 @@ "dependencies": { "@reach/dialog": "^0.16.2", "@reach/visually-hidden": "^0.16.0", - "next": "^12.2.0", + "next": "^12.3.0", "react": "^18.0.0", "react-dom": "^18.0.0" }, @@ -192,7 +192,7 @@ "dependencies": { "@netlify/next": "*", "@netlify/plugin-nextjs": "*", - "next": "^12.2.0", + "next": "^12.3.0", "react": "18.0.0", "react-dom": "18.0.0" }, @@ -206,12 +206,291 @@ "typescript": "^4.6.3" } }, + "demos/middleware/node_modules/@next/env": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.6-canary.13.tgz", + "integrity": "sha512-YOVs7o6pqzj4nLC0t7cavb+rwbLJEkLu5zpe121LV48hmWk3cDMyOAGwlr3ubByN7/wrjIInbDAy1Bv0tS8low==" + }, + "demos/middleware/node_modules/@next/swc-android-arm-eabi": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.6-canary.13.tgz", + "integrity": "sha512-efya6Q/Ey6WzHsF3TwRmV6Fu1lWLz0lVH5Sd1ADAI+dsLbOxJfcFub54++5PSSmTPcHbMk9o88NC1RsTf5CLWw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-android-arm64": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.6-canary.13.tgz", + "integrity": "sha512-VHiD09zkPViVEieZLDEP8mvYKMmOom32sr+xoSJEpWxd9L5xgf5PyjH2dsRVyy/nic8jrtK4sjR4MSJNjC6HZA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-darwin-arm64": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.6-canary.13.tgz", + "integrity": "sha512-15fa5Au2DTFyCI4ZjRCUNqBWy3Xi5C0IcgWkeXeP+/pqDZOTEc1/n5I9DYShKF8VDEzFC61m2DCsp4bZpfHc0g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-darwin-x64": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.6-canary.13.tgz", + "integrity": "sha512-PTnwBJ3BxPimiKtKK1wS6WXwMEYOezu4sPV6Adt/+DRi07P4VVZ1UgRmLLqO23zMeL4tHwAG9R1WpXACKp28zQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-freebsd-x64": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.6-canary.13.tgz", + "integrity": "sha512-YHtFKdXJGAQEmQD72kZgGQ9/goa8oVAcRIQAyvirornonFHpX5rLEbegcEUG1780MCEFJ+UKHKMa9ywA6BS/wA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-linux-arm-gnueabihf": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.6-canary.13.tgz", + "integrity": "sha512-soMy3Y0lYy6zfcNDD1E3NfkeuNYE6Q6FdEKRRmWFfO+fhnzjLnnE3ODLjkwmf7X10mblLP9VDtLSlx7/PiW8BQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-linux-arm64-gnu": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.6-canary.13.tgz", + "integrity": "sha512-euC8+0PS/uhd5Bgm4wqWCH8sfeHAAf+PbXgZVgMxx9TgV2xRsfYZhzO/xp2xU5h1DcMG707Wj5DYMt/S4MHBcg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-linux-arm64-musl": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.6-canary.13.tgz", + "integrity": "sha512-UGt75FcfIoWRnBHwp6tmvvaAtMp2LZ1ir1Wy78pX5KyQrydSiNCWOi6QIkvZLGNefBE650r+W2QD3eLyFi2e0g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-linux-x64-gnu": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.6-canary.13.tgz", + "integrity": "sha512-ZltasXmjSeTLRK26wphgljYeDM/j5NEvUtyEGIuiR5omzGQG0nKcCvERK0mWBmKIzwyQiwhGAB40eOn6CNDtmg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-linux-x64-musl": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.6-canary.13.tgz", + "integrity": "sha512-nQKfQclE3/lFUnnDgajUkUUNtip/EdR+01mBLaJBdBy2gEL4ZSxu9pn/TOplpvaHFCX/OZTh35KxsnqZYWwycg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-win32-arm64-msvc": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.6-canary.13.tgz", + "integrity": "sha512-10B62MDFSs6X3hfdcBnKKYC/cnllQbXi404qTuccbHR2SLMoxgEppGIQXOFfRLitITPpLzB2G2/SGReUVWcw2g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-win32-ia32-msvc": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.6-canary.13.tgz", + "integrity": "sha512-1Jng4S3goSP5+XN6pVM+dMLli8O1Q67FQsneTjb0nNb4DEVlcrmNR3JPUEBPC+sERzKt5bOZegIkIx+MjpDScg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@next/swc-win32-x64-msvc": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.6-canary.13.tgz", + "integrity": "sha512-TiqJFJjyE4s4Tlubg7ur9zVMBiTwOJvevQ9TlFoa3CdFxBMF+bTB+fnikZFZrkSExXRVD0oJ1NCzHPlm6DGUoA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/middleware/node_modules/@swc/helpers": { + "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" + } + }, + "demos/middleware/node_modules/next": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.6-canary.13.tgz", + "integrity": "sha512-QoWAlbEZeFNKFAk4EE6bxnI515ftEMJFEslfMPGX5tOxVm6A48vLM39UFkFTb4qxXsZD1Vb8otXAIxU/iVSGOA==", + "dependencies": { + "@next/env": "12.2.6-canary.13", + "@swc/helpers": "0.4.11", + "caniuse-lite": "^1.0.30001332", + "postcss": "8.4.14", + "styled-jsx": "5.0.6", + "use-sync-external-store": "1.2.0" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=12.22.0" + }, + "optionalDependencies": { + "@next/swc-android-arm-eabi": "12.2.6-canary.13", + "@next/swc-android-arm64": "12.2.6-canary.13", + "@next/swc-darwin-arm64": "12.2.6-canary.13", + "@next/swc-darwin-x64": "12.2.6-canary.13", + "@next/swc-freebsd-x64": "12.2.6-canary.13", + "@next/swc-linux-arm-gnueabihf": "12.2.6-canary.13", + "@next/swc-linux-arm64-gnu": "12.2.6-canary.13", + "@next/swc-linux-arm64-musl": "12.2.6-canary.13", + "@next/swc-linux-x64-gnu": "12.2.6-canary.13", + "@next/swc-linux-x64-musl": "12.2.6-canary.13", + "@next/swc-win32-arm64-msvc": "12.2.6-canary.13", + "@next/swc-win32-ia32-msvc": "12.2.6-canary.13", + "@next/swc-win32-x64-msvc": "12.2.6-canary.13" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^6.0.0 || ^7.0.0", + "react": "^17.0.2 || ^18.0.0-0", + "react-dom": "^17.0.2 || ^18.0.0-0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "demos/middleware/node_modules/styled-jsx": { + "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" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, "demos/next-auth": { "name": "next-auth-demo", "version": "0.0.0", "license": "MIT", "dependencies": { - "next": "^12.2.0", + "next": "^12.3.0", "next-auth": "^4.7.0", "nodemailer": "^6.6.3", "react": "^18.0.0", @@ -247,7 +526,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "devDependencies": { "@netlify/plugin-nextjs": "*", @@ -321,7 +600,7 @@ "license": "MIT", "dependencies": { "ms": "2.1.3", - "next": "^12.2.0", + "next": "^12.3.0", "react": "^18.0.0", "react-dom": "^18.0.0" }, @@ -340,7 +619,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "devDependencies": { "@netlify/plugin-nextjs": "*", @@ -4541,9 +4820,9 @@ } }, "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.5", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.5.tgz", + "integrity": "sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw==" }, "node_modules/@next/eslint-plugin-next": { "version": "12.2.4", @@ -4587,9 +4866,9 @@ } }, "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz", + "integrity": "sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA==", "cpu": [ "arm" ], @@ -4602,9 +4881,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz", + "integrity": "sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg==", "cpu": [ "arm64" ], @@ -4617,9 +4896,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz", + "integrity": "sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg==", "cpu": [ "arm64" ], @@ -4632,9 +4911,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz", + "integrity": "sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A==", "cpu": [ "x64" ], @@ -4647,9 +4926,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz", + "integrity": "sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw==", "cpu": [ "x64" ], @@ -4662,9 +4941,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz", + "integrity": "sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg==", "cpu": [ "arm" ], @@ -4677,9 +4956,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz", + "integrity": "sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ==", "cpu": [ "arm64" ], @@ -4692,9 +4971,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz", + "integrity": "sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg==", "cpu": [ "arm64" ], @@ -4707,9 +4986,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz", + "integrity": "sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw==", "cpu": [ "x64" ], @@ -4722,9 +5001,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz", + "integrity": "sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g==", "cpu": [ "x64" ], @@ -4737,9 +5016,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz", + "integrity": "sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw==", "cpu": [ "arm64" ], @@ -4752,9 +5031,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz", + "integrity": "sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw==", "cpu": [ "ia32" ], @@ -4767,9 +5046,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.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz", + "integrity": "sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q==", "cpu": [ "x64" ], @@ -5233,13 +5512,13 @@ "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "devOptional": true + "dev": true }, "node_modules/@types/react": { "version": "17.0.49", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", - "devOptional": true, + "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -5265,7 +5544,7 @@ "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "devOptional": true + "dev": true }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", @@ -8796,7 +9075,7 @@ "version": "3.0.11", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", - "devOptional": true + "dev": true }, "node_modules/custom-routes": { "resolved": "demos/custom-routes", @@ -12807,7 +13086,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "devOptional": true + "dev": true }, "node_modules/import-fresh": { "version": "3.3.0", @@ -16898,15 +17177,15 @@ } }, "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.5", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.5.tgz", + "integrity": "sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA==", "dependencies": { - "@next/env": "12.2.4", + "@next/env": "12.2.5", "@swc/helpers": "0.4.3", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", - "styled-jsx": "5.0.2", + "styled-jsx": "5.0.4", "use-sync-external-store": "1.2.0" }, "bin": { @@ -16916,19 +17195,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.5", + "@next/swc-android-arm64": "12.2.5", + "@next/swc-darwin-arm64": "12.2.5", + "@next/swc-darwin-x64": "12.2.5", + "@next/swc-freebsd-x64": "12.2.5", + "@next/swc-linux-arm-gnueabihf": "12.2.5", + "@next/swc-linux-arm64-gnu": "12.2.5", + "@next/swc-linux-arm64-musl": "12.2.5", + "@next/swc-linux-x64-gnu": "12.2.5", + "@next/swc-linux-x64-musl": "12.2.5", + "@next/swc-win32-arm64-msvc": "12.2.5", + "@next/swc-win32-ia32-msvc": "12.2.5", + "@next/swc-win32-x64-msvc": "12.2.5" }, "peerDependencies": { "fibers": ">= 3.1.0", @@ -19998,7 +20277,7 @@ "version": "1.50.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz", "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==", - "devOptional": true, + "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -21163,9 +21442,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", - "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.4.tgz", + "integrity": "sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ==", "engines": { "node": ">= 12.0.0" }, @@ -22986,7 +23265,7 @@ "license": "MIT", "devDependencies": { "@types/node": "^17.0.25", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.6.3" }, @@ -23029,7 +23308,7 @@ "@types/jest": "^27.4.1", "@types/merge-stream": "^1.1.2", "@types/node": "^17.0.25", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.6.3" }, @@ -23162,7 +23441,7 @@ "@types/fs-extra": "^9.0.13", "@types/jest": "^27.4.1", "@types/node": "^17.0.25", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.6.3" }, @@ -25500,8 +25779,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", - "dev": true, - "requires": {} + "dev": true }, "chalk": { "version": "5.0.1", @@ -25843,8 +26121,7 @@ "version": "17.0.0", "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", - "dev": true, - "requires": {} + "dev": true }, "eslint-import-resolver-typescript": { "version": "3.3.0", @@ -25948,7 +26225,7 @@ "version": "file:packages/next", "requires": { "@types/node": "^17.0.25", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.6.3" } @@ -25978,7 +26255,7 @@ "globby": "^11.0.4", "merge-stream": "^2.0.0", "moize": "^6.1.0", - "next": "^12.2.0", + "next": "^12.3.0", "node-fetch": "^2.6.6", "node-stream-zip": "^1.15.0", "npm-run-all": "^4.1.5", @@ -26245,9 +26522,9 @@ } }, "@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.5", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.5.tgz", + "integrity": "sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw==" }, "@next/eslint-plugin-next": { "version": "12.2.4", @@ -26284,81 +26561,81 @@ } }, "@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.5", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz", + "integrity": "sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz", + "integrity": "sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz", + "integrity": "sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz", + "integrity": "sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz", + "integrity": "sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz", + "integrity": "sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz", + "integrity": "sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz", + "integrity": "sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz", + "integrity": "sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz", + "integrity": "sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz", + "integrity": "sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz", + "integrity": "sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw==", "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.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz", + "integrity": "sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q==", "optional": true }, "@nodelib/fs.scandir": { @@ -26757,13 +27034,13 @@ "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "devOptional": true + "dev": true }, "@types/react": { "version": "17.0.49", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", - "devOptional": true, + "dev": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -26789,7 +27066,7 @@ "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "devOptional": true + "dev": true }, "@types/sinonjs__fake-timers": { "version": "8.1.1", @@ -27097,8 +27374,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "acorn-walk": { "version": "7.2.0", @@ -27710,7 +27986,7 @@ "@types/node": "^17.0.25", "husky": "^7.0.4", "if-env": "^1.0.4", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.6.3" } @@ -29450,7 +29726,7 @@ "version": "3.0.11", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", - "devOptional": true + "dev": true }, "custom-routes": { "version": "file:demos/custom-routes", @@ -29462,7 +29738,7 @@ "@types/react": "^17.0.47", "husky": "^7.0.4", "if-env": "^1.0.4", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.7.4" }, @@ -29794,7 +30070,7 @@ "critters": "^0.0.16", "husky": "^7.0.4", "if-env": "^1.0.4", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "react": "^18.0.0", "react-dom": "^18.0.0", @@ -30579,8 +30855,7 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "requires": {} + "dev": true }, "eslint-formatter-codeframe": { "version": "7.32.1", @@ -31025,8 +31300,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz", "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==", - "dev": true, - "requires": {} + "dev": true }, "eslint-plugin-react": { "version": "7.29.4", @@ -31074,8 +31348,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz", "integrity": "sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==", - "dev": true, - "requires": {} + "dev": true }, "eslint-plugin-unicorn": { "version": "43.0.2", @@ -32540,7 +32813,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "devOptional": true + "dev": true }, "import-fresh": { "version": "3.3.0", @@ -33612,8 +33885,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "27.5.1", @@ -35321,11 +35593,135 @@ "@types/node": "^17.0.25", "@types/react": "^17.0.43", "husky": "^7.0.4", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "react": "18.0.0", "react-dom": "18.0.0", "typescript": "^4.6.3" + }, + "dependencies": { + "@next/env": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.6-canary.13.tgz", + "integrity": "sha512-YOVs7o6pqzj4nLC0t7cavb+rwbLJEkLu5zpe121LV48hmWk3cDMyOAGwlr3ubByN7/wrjIInbDAy1Bv0tS8low==" + }, + "@next/swc-android-arm-eabi": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.6-canary.13.tgz", + "integrity": "sha512-efya6Q/Ey6WzHsF3TwRmV6Fu1lWLz0lVH5Sd1ADAI+dsLbOxJfcFub54++5PSSmTPcHbMk9o88NC1RsTf5CLWw==", + "optional": true + }, + "@next/swc-android-arm64": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.6-canary.13.tgz", + "integrity": "sha512-VHiD09zkPViVEieZLDEP8mvYKMmOom32sr+xoSJEpWxd9L5xgf5PyjH2dsRVyy/nic8jrtK4sjR4MSJNjC6HZA==", + "optional": true + }, + "@next/swc-darwin-arm64": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.6-canary.13.tgz", + "integrity": "sha512-15fa5Au2DTFyCI4ZjRCUNqBWy3Xi5C0IcgWkeXeP+/pqDZOTEc1/n5I9DYShKF8VDEzFC61m2DCsp4bZpfHc0g==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.6-canary.13.tgz", + "integrity": "sha512-PTnwBJ3BxPimiKtKK1wS6WXwMEYOezu4sPV6Adt/+DRi07P4VVZ1UgRmLLqO23zMeL4tHwAG9R1WpXACKp28zQ==", + "optional": true + }, + "@next/swc-freebsd-x64": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.6-canary.13.tgz", + "integrity": "sha512-YHtFKdXJGAQEmQD72kZgGQ9/goa8oVAcRIQAyvirornonFHpX5rLEbegcEUG1780MCEFJ+UKHKMa9ywA6BS/wA==", + "optional": true + }, + "@next/swc-linux-arm-gnueabihf": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.6-canary.13.tgz", + "integrity": "sha512-soMy3Y0lYy6zfcNDD1E3NfkeuNYE6Q6FdEKRRmWFfO+fhnzjLnnE3ODLjkwmf7X10mblLP9VDtLSlx7/PiW8BQ==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.6-canary.13.tgz", + "integrity": "sha512-euC8+0PS/uhd5Bgm4wqWCH8sfeHAAf+PbXgZVgMxx9TgV2xRsfYZhzO/xp2xU5h1DcMG707Wj5DYMt/S4MHBcg==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.6-canary.13.tgz", + "integrity": "sha512-UGt75FcfIoWRnBHwp6tmvvaAtMp2LZ1ir1Wy78pX5KyQrydSiNCWOi6QIkvZLGNefBE650r+W2QD3eLyFi2e0g==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.6-canary.13.tgz", + "integrity": "sha512-ZltasXmjSeTLRK26wphgljYeDM/j5NEvUtyEGIuiR5omzGQG0nKcCvERK0mWBmKIzwyQiwhGAB40eOn6CNDtmg==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.6-canary.13.tgz", + "integrity": "sha512-nQKfQclE3/lFUnnDgajUkUUNtip/EdR+01mBLaJBdBy2gEL4ZSxu9pn/TOplpvaHFCX/OZTh35KxsnqZYWwycg==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.6-canary.13.tgz", + "integrity": "sha512-10B62MDFSs6X3hfdcBnKKYC/cnllQbXi404qTuccbHR2SLMoxgEppGIQXOFfRLitITPpLzB2G2/SGReUVWcw2g==", + "optional": true + }, + "@next/swc-win32-ia32-msvc": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.6-canary.13.tgz", + "integrity": "sha512-1Jng4S3goSP5+XN6pVM+dMLli8O1Q67FQsneTjb0nNb4DEVlcrmNR3JPUEBPC+sERzKt5bOZegIkIx+MjpDScg==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.6-canary.13.tgz", + "integrity": "sha512-TiqJFJjyE4s4Tlubg7ur9zVMBiTwOJvevQ9TlFoa3CdFxBMF+bTB+fnikZFZrkSExXRVD0oJ1NCzHPlm6DGUoA==", + "optional": true + }, + "@swc/helpers": { + "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" + } + }, + "next": { + "version": "12.2.6-canary.13", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.6-canary.13.tgz", + "integrity": "sha512-QoWAlbEZeFNKFAk4EE6bxnI515ftEMJFEslfMPGX5tOxVm6A48vLM39UFkFTb4qxXsZD1Vb8otXAIxU/iVSGOA==", + "requires": { + "@next/env": "12.2.6-canary.13", + "@next/swc-android-arm-eabi": "12.2.6-canary.13", + "@next/swc-android-arm64": "12.2.6-canary.13", + "@next/swc-darwin-arm64": "12.2.6-canary.13", + "@next/swc-darwin-x64": "12.2.6-canary.13", + "@next/swc-freebsd-x64": "12.2.6-canary.13", + "@next/swc-linux-arm-gnueabihf": "12.2.6-canary.13", + "@next/swc-linux-arm64-gnu": "12.2.6-canary.13", + "@next/swc-linux-arm64-musl": "12.2.6-canary.13", + "@next/swc-linux-x64-gnu": "12.2.6-canary.13", + "@next/swc-linux-x64-musl": "12.2.6-canary.13", + "@next/swc-win32-arm64-msvc": "12.2.6-canary.13", + "@next/swc-win32-ia32-msvc": "12.2.6-canary.13", + "@next/swc-win32-x64-msvc": "12.2.6-canary.13", + "@swc/helpers": "0.4.11", + "caniuse-lite": "^1.0.30001332", + "postcss": "8.4.14", + "styled-jsx": "5.0.6", + "use-sync-external-store": "1.2.0" + } + }, + "styled-jsx": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz", + "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==" + } } }, "mime-db": { @@ -35684,28 +36080,28 @@ } }, "next": { - "version": "12.2.4", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.4.tgz", - "integrity": "sha512-b1xlxEozmAWokAXzXsi5vlmU/IfJcFNIJA8dpU5UdkFbyDPio8wwb8mAQ/Y7rGtfTgG/t/u49BiyEA+xAgFvow==", - "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", + "version": "12.2.5", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.5.tgz", + "integrity": "sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA==", + "requires": { + "@next/env": "12.2.5", + "@next/swc-android-arm-eabi": "12.2.5", + "@next/swc-android-arm64": "12.2.5", + "@next/swc-darwin-arm64": "12.2.5", + "@next/swc-darwin-x64": "12.2.5", + "@next/swc-freebsd-x64": "12.2.5", + "@next/swc-linux-arm-gnueabihf": "12.2.5", + "@next/swc-linux-arm64-gnu": "12.2.5", + "@next/swc-linux-arm64-musl": "12.2.5", + "@next/swc-linux-x64-gnu": "12.2.5", + "@next/swc-linux-x64-musl": "12.2.5", + "@next/swc-win32-arm64-msvc": "12.2.5", + "@next/swc-win32-ia32-msvc": "12.2.5", + "@next/swc-win32-x64-msvc": "12.2.5", "@swc/helpers": "0.4.3", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", - "styled-jsx": "5.0.2", + "styled-jsx": "5.0.4", "use-sync-external-store": "1.2.0" } }, @@ -35734,7 +36130,7 @@ "@types/node": "^17.0.14", "@types/react": "^18.0.0", "husky": "^7.0.4", - "next": "^12.2.0", + "next": "^12.3.0", "next-auth": "^4.7.0", "nodemailer": "^6.6.3", "npm-run-all": "^4.1.5", @@ -35765,7 +36161,7 @@ "@types/node": "^17.0.25", "husky": "^7.0.4", "if-env": "^1.0.4", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.6.3" } @@ -38027,7 +38423,7 @@ "version": "1.50.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz", "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==", - "devOptional": true, + "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -38151,7 +38547,7 @@ "@types/node": "^17.0.25", "husky": "^7.0.4", "ms": "2.1.3", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "react": "^18.0.0", "react-dom": "^18.0.0", @@ -38736,7 +39132,7 @@ "@types/node": "^17.0.25", "husky": "^7.0.4", "if-env": "^1.0.4", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.6.3" } @@ -38964,10 +39360,9 @@ "dev": true }, "styled-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", - "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", - "requires": {} + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.4.tgz", + "integrity": "sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ==" }, "supports-color": { "version": "9.2.2", @@ -39689,8 +40084,7 @@ "ws": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==" } } }, @@ -39798,8 +40192,7 @@ "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==", - "requires": {} + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==" }, "util-deprecate": { "version": "1.0.2", @@ -40203,8 +40596,7 @@ "version": "7.5.7", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "dev": true, - "requires": {} + "dev": true }, "xdg-basedir": { "version": "4.0.0", @@ -40351,4 +40743,4 @@ } } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index a7906d2b4d..4542a29572 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "typescript": "^4.3.4" }, "dependencies": { - "next": "^12.2.0" + "next": "^12.3.0" }, "engines": { "node": ">=16.0.0" @@ -106,4 +106,4 @@ "demos/custom-routes", "demos/next-with-edge-functions" ] -} +} \ No newline at end of file diff --git a/packages/next/package.json b/packages/next/package.json index 27a05004c7..86e792115e 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -8,7 +8,7 @@ ], "devDependencies": { "@types/node": "^17.0.25", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.6.3" }, @@ -34,4 +34,4 @@ "engines": { "node": ">=12.0.0" } -} +} \ No newline at end of file diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 329e227200..6c1da6f285 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -6,6 +6,7 @@ "files": [ "lib/**/*", "src/templates/edge/*", + "src/templates/edge-shared/*", "manifest.yml" ], "dependencies": { @@ -36,7 +37,7 @@ "@types/jest": "^27.4.1", "@types/merge-stream": "^1.1.2", "@types/node": "^17.0.25", - "next": "^12.2.0", + "next": "^12.3.0", "npm-run-all": "^4.1.5", "typescript": "^4.6.3" }, @@ -62,4 +63,4 @@ "engines": { "node": ">=12.0.0" } -} +} \ No newline at end of file diff --git a/packages/runtime/src/helpers/edge.ts b/packages/runtime/src/helpers/edge.ts index 071f0c1050..0c3282c4fc 100644 --- a/packages/runtime/src/helpers/edge.ts +++ b/packages/runtime/src/helpers/edge.ts @@ -3,10 +3,35 @@ import { promises as fs, existsSync } from 'fs' import { resolve, join } from 'path' import type { NetlifyConfig, NetlifyPluginConstants } from '@netlify/build' -import { copyFile, emptyDir, ensureDir, readJSON, readJson, writeJSON, writeJson } from 'fs-extra' +import { copy, copyFile, emptyDir, ensureDir, readJSON, readJson, writeJSON, writeJson } from 'fs-extra' import type { MiddlewareManifest } from 'next/dist/build/webpack/plugins/middleware-plugin' +import type { RouteHas } from 'next/dist/lib/load-custom-routes' -type EdgeFunctionDefinition = MiddlewareManifest['middleware']['name'] +// This is the format as of next@12.2 +interface EdgeFunctionDefinitionV1 { + env: string[] + files: string[] + name: string + page: string + regexp: string +} + +export interface MiddlewareMatcher { + regexp: string + locale?: false + has?: RouteHas[] +} + +// This is the format after next@12.3.0 +interface EdgeFunctionDefinitionV2 { + env: string[] + files: string[] + name: string + page: string + matchers: MiddlewareMatcher[] +} + +type EdgeFunctionDefinition = EdgeFunctionDefinitionV1 | EdgeFunctionDefinitionV2 export interface FunctionManifest { version: 1 @@ -74,6 +99,8 @@ const getMiddlewareBundle = async ({ return chunks.join('\n') } +const getEdgeTemplatePath = (file: string) => join(__dirname, '..', '..', 'src', 'templates', 'edge', file) + const copyEdgeSourceFile = ({ file, target, @@ -82,10 +109,7 @@ const copyEdgeSourceFile = ({ file: string edgeFunctionDir: string target?: string -}) => fs.copyFile(join(__dirname, '..', '..', 'src', 'templates', 'edge', file), join(edgeFunctionDir, target ?? file)) - -// Edge functions don't support lookahead expressions -const stripLookahead = (regex: string) => regex.replace('^/(?!_next)', '^/') +}) => fs.copyFile(getEdgeTemplatePath(file), join(edgeFunctionDir, target ?? file)) const writeEdgeFunction = async ({ edgeFunctionDefinition, @@ -95,10 +119,12 @@ const writeEdgeFunction = async ({ edgeFunctionDefinition: EdgeFunctionDefinition edgeFunctionRoot: string netlifyConfig: NetlifyConfig -}): Promise<{ - function: string - pattern: string -}> => { +}): Promise< + Array<{ + function: string + pattern: string + }> +> => { const name = sanitizeName(edgeFunctionDefinition.name) const edgeFunctionDir = join(edgeFunctionRoot, name) @@ -116,11 +142,21 @@ const writeEdgeFunction = async ({ target: 'index.ts', }) - await copyEdgeSourceFile({ edgeFunctionDir, file: 'utils.ts' }) - return { - function: name, - pattern: stripLookahead(edgeFunctionDefinition.regexp), + const matchers: EdgeFunctionDefinitionV2['matchers'] = [] + + // The v1 middleware manifest has a single regexp, but the v2 has an array of matchers + if ('regexp' in edgeFunctionDefinition) { + matchers.push({ regexp: edgeFunctionDefinition.regexp }) + } else { + matchers.push(...edgeFunctionDefinition.matchers) } + await writeJson(join(edgeFunctionDir, 'matchers.json'), matchers) + + // We add a defintion for each matching path + return matchers.map((matcher) => { + const pattern = matcher.regexp + return { function: name, pattern } + }) } type NetlifyPluginConstantsWithEdgeFunctions = NetlifyPluginConstants & { @@ -168,6 +204,8 @@ export const writeEdgeFunctions = async (netlifyConfig: NetlifyConfig) => { const edgeFunctionRoot = resolve('.netlify', 'edge-functions') await emptyDir(edgeFunctionRoot) + await copy(getEdgeTemplatePath('../edge-shared'), join(edgeFunctionRoot, 'edge-shared')) + if (!process.env.NEXT_DISABLE_EDGE_IMAGES) { console.log( 'Using Netlify Edge Functions for image format detection. Set env var "NEXT_DISABLE_EDGE_IMAGES=true" to disable.', @@ -193,23 +231,23 @@ export const writeEdgeFunctions = async (netlifyConfig: NetlifyConfig) => { for (const middleware of middlewareManifest.sortedMiddleware) { const edgeFunctionDefinition = middlewareManifest.middleware[middleware] - const functionDefinition = await writeEdgeFunction({ + const functionDefinitions = await writeEdgeFunction({ edgeFunctionDefinition, edgeFunctionRoot, netlifyConfig, }) - manifest.functions.push(functionDefinition) + manifest.functions.push(...functionDefinitions) } // Older versions of the manifest format don't have the functions field // No, the version field was not incremented if (typeof middlewareManifest.functions === 'object') { for (const edgeFunctionDefinition of Object.values(middlewareManifest.functions)) { - const functionDefinition = await writeEdgeFunction({ + const functionDefinitions = await writeEdgeFunction({ edgeFunctionDefinition, edgeFunctionRoot, netlifyConfig, }) - manifest.functions.push(functionDefinition) + manifest.functions.push(...functionDefinitions) } } } diff --git a/packages/runtime/src/templates/edge/utils.ts b/packages/runtime/src/templates/edge-shared/utils.ts similarity index 100% rename from packages/runtime/src/templates/edge/utils.ts rename to packages/runtime/src/templates/edge-shared/utils.ts diff --git a/packages/runtime/src/templates/edge/runtime.ts b/packages/runtime/src/templates/edge/runtime.ts index 7f33da2954..e9468ef18a 100644 --- a/packages/runtime/src/templates/edge/runtime.ts +++ b/packages/runtime/src/templates/edge/runtime.ts @@ -1,7 +1,7 @@ import type { Context } from 'https://edge.netlify.com' import edgeFunction from './bundle.js' -import { buildResponse } from './utils.ts' +import { buildResponse } from '../edge-shared/utils.ts' export interface FetchEventResult { response: Response diff --git a/packages/runtime/tsconfig.json b/packages/runtime/tsconfig.json index 613e9aa2ac..b8b6b575cd 100644 --- a/packages/runtime/tsconfig.json +++ b/packages/runtime/tsconfig.json @@ -9,6 +9,7 @@ "src/**/*.js" ], "exclude": [ - "src/templates/edge/*" + "src/templates/edge/*", + "src/templates/edge-shared/*" ] } \ No newline at end of file From b70ab1135775e5f050a853b8d0d307fbfa1a7541 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Fri, 9 Sep 2022 08:55:12 +0100 Subject: [PATCH 2/8] fix: support legacy experimental config --- package-lock.json | 675 ++++++-------------------- packages/runtime/src/helpers/utils.ts | 6 +- 2 files changed, 141 insertions(+), 540 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9f84183c33..f732657aa9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -206,285 +206,6 @@ "typescript": "^4.6.3" } }, - "demos/middleware/node_modules/@next/env": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.6-canary.13.tgz", - "integrity": "sha512-YOVs7o6pqzj4nLC0t7cavb+rwbLJEkLu5zpe121LV48hmWk3cDMyOAGwlr3ubByN7/wrjIInbDAy1Bv0tS8low==" - }, - "demos/middleware/node_modules/@next/swc-android-arm-eabi": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.6-canary.13.tgz", - "integrity": "sha512-efya6Q/Ey6WzHsF3TwRmV6Fu1lWLz0lVH5Sd1ADAI+dsLbOxJfcFub54++5PSSmTPcHbMk9o88NC1RsTf5CLWw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-android-arm64": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.6-canary.13.tgz", - "integrity": "sha512-VHiD09zkPViVEieZLDEP8mvYKMmOom32sr+xoSJEpWxd9L5xgf5PyjH2dsRVyy/nic8jrtK4sjR4MSJNjC6HZA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-darwin-arm64": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.6-canary.13.tgz", - "integrity": "sha512-15fa5Au2DTFyCI4ZjRCUNqBWy3Xi5C0IcgWkeXeP+/pqDZOTEc1/n5I9DYShKF8VDEzFC61m2DCsp4bZpfHc0g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-darwin-x64": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.6-canary.13.tgz", - "integrity": "sha512-PTnwBJ3BxPimiKtKK1wS6WXwMEYOezu4sPV6Adt/+DRi07P4VVZ1UgRmLLqO23zMeL4tHwAG9R1WpXACKp28zQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-freebsd-x64": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.6-canary.13.tgz", - "integrity": "sha512-YHtFKdXJGAQEmQD72kZgGQ9/goa8oVAcRIQAyvirornonFHpX5rLEbegcEUG1780MCEFJ+UKHKMa9ywA6BS/wA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.6-canary.13.tgz", - "integrity": "sha512-soMy3Y0lYy6zfcNDD1E3NfkeuNYE6Q6FdEKRRmWFfO+fhnzjLnnE3ODLjkwmf7X10mblLP9VDtLSlx7/PiW8BQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.6-canary.13.tgz", - "integrity": "sha512-euC8+0PS/uhd5Bgm4wqWCH8sfeHAAf+PbXgZVgMxx9TgV2xRsfYZhzO/xp2xU5h1DcMG707Wj5DYMt/S4MHBcg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-linux-arm64-musl": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.6-canary.13.tgz", - "integrity": "sha512-UGt75FcfIoWRnBHwp6tmvvaAtMp2LZ1ir1Wy78pX5KyQrydSiNCWOi6QIkvZLGNefBE650r+W2QD3eLyFi2e0g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-linux-x64-gnu": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.6-canary.13.tgz", - "integrity": "sha512-ZltasXmjSeTLRK26wphgljYeDM/j5NEvUtyEGIuiR5omzGQG0nKcCvERK0mWBmKIzwyQiwhGAB40eOn6CNDtmg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-linux-x64-musl": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.6-canary.13.tgz", - "integrity": "sha512-nQKfQclE3/lFUnnDgajUkUUNtip/EdR+01mBLaJBdBy2gEL4ZSxu9pn/TOplpvaHFCX/OZTh35KxsnqZYWwycg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.6-canary.13.tgz", - "integrity": "sha512-10B62MDFSs6X3hfdcBnKKYC/cnllQbXi404qTuccbHR2SLMoxgEppGIQXOFfRLitITPpLzB2G2/SGReUVWcw2g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.6-canary.13.tgz", - "integrity": "sha512-1Jng4S3goSP5+XN6pVM+dMLli8O1Q67FQsneTjb0nNb4DEVlcrmNR3JPUEBPC+sERzKt5bOZegIkIx+MjpDScg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@next/swc-win32-x64-msvc": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.6-canary.13.tgz", - "integrity": "sha512-TiqJFJjyE4s4Tlubg7ur9zVMBiTwOJvevQ9TlFoa3CdFxBMF+bTB+fnikZFZrkSExXRVD0oJ1NCzHPlm6DGUoA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/middleware/node_modules/@swc/helpers": { - "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" - } - }, - "demos/middleware/node_modules/next": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.6-canary.13.tgz", - "integrity": "sha512-QoWAlbEZeFNKFAk4EE6bxnI515ftEMJFEslfMPGX5tOxVm6A48vLM39UFkFTb4qxXsZD1Vb8otXAIxU/iVSGOA==", - "dependencies": { - "@next/env": "12.2.6-canary.13", - "@swc/helpers": "0.4.11", - "caniuse-lite": "^1.0.30001332", - "postcss": "8.4.14", - "styled-jsx": "5.0.6", - "use-sync-external-store": "1.2.0" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=12.22.0" - }, - "optionalDependencies": { - "@next/swc-android-arm-eabi": "12.2.6-canary.13", - "@next/swc-android-arm64": "12.2.6-canary.13", - "@next/swc-darwin-arm64": "12.2.6-canary.13", - "@next/swc-darwin-x64": "12.2.6-canary.13", - "@next/swc-freebsd-x64": "12.2.6-canary.13", - "@next/swc-linux-arm-gnueabihf": "12.2.6-canary.13", - "@next/swc-linux-arm64-gnu": "12.2.6-canary.13", - "@next/swc-linux-arm64-musl": "12.2.6-canary.13", - "@next/swc-linux-x64-gnu": "12.2.6-canary.13", - "@next/swc-linux-x64-musl": "12.2.6-canary.13", - "@next/swc-win32-arm64-msvc": "12.2.6-canary.13", - "@next/swc-win32-ia32-msvc": "12.2.6-canary.13", - "@next/swc-win32-x64-msvc": "12.2.6-canary.13" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^6.0.0 || ^7.0.0", - "react": "^17.0.2 || ^18.0.0-0", - "react-dom": "^17.0.2 || ^18.0.0-0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "demos/middleware/node_modules/styled-jsx": { - "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" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, "demos/next-auth": { "name": "next-auth-demo", "version": "0.0.0", @@ -4820,9 +4541,9 @@ } }, "node_modules/@next/env": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.5.tgz", - "integrity": "sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw==" + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.0.tgz", + "integrity": "sha512-PTJpjAFVbzBQ9xXpzMTroShvD5YDIIy46jQ7d4LrWpY+/5a8H90Tm8hE3Hvkc5RBRspVo7kvEOnqQms0A+2Q6w==" }, "node_modules/@next/eslint-plugin-next": { "version": "12.2.4", @@ -4866,9 +4587,9 @@ } }, "node_modules/@next/swc-android-arm-eabi": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz", - "integrity": "sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.0.tgz", + "integrity": "sha512-/PuirPnAKsYBw93w/7Q9hqy+KGOU9mjYprZ/faxMUJh/dc6v3rYLxkZKNG9nFPIW4QKNTCnhP40xF9hLnxO+xg==", "cpu": [ "arm" ], @@ -4881,9 +4602,9 @@ } }, "node_modules/@next/swc-android-arm64": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz", - "integrity": "sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.0.tgz", + "integrity": "sha512-OaI+FhAM6P9B6Ybwbn0Zl8YwWido0lLwhDBi9WiYCh4RQmIXAyVIoIJPHo4fP05+mXaJ/k1trvDvuURvHOq2qw==", "cpu": [ "arm64" ], @@ -4896,9 +4617,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz", - "integrity": "sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.0.tgz", + "integrity": "sha512-9s4d3Mhii+WFce8o8Jok7WC3Bawkr9wEUU++SJRptjU1L5tsfYJMrSYCACHLhZujziNDLyExe4Hwwsccps1sfg==", "cpu": [ "arm64" ], @@ -4911,9 +4632,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz", - "integrity": "sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.0.tgz", + "integrity": "sha512-2scC4MqUTwGwok+wpVxP+zWp7WcCAVOtutki2E1n99rBOTnUOX6qXkgxSy083yBN6GqwuC/dzHeN7hIKjavfRA==", "cpu": [ "x64" ], @@ -4926,9 +4647,9 @@ } }, "node_modules/@next/swc-freebsd-x64": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz", - "integrity": "sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.0.tgz", + "integrity": "sha512-xAlruUREij/bFa+qsE1tmsP28t7vz02N4ZDHt2lh3uJUniE0Ne9idyIDLc1Ed0IF2RjfgOp4ZVunuS3OM0sngw==", "cpu": [ "x64" ], @@ -4941,9 +4662,9 @@ } }, "node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz", - "integrity": "sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.0.tgz", + "integrity": "sha512-jin2S4VT/cugc2dSZEUIabhYDJNgrUh7fufbdsaAezgcQzqfdfJqfxl4E9GuafzB4cbRPTaqA0V5uqbp0IyGkQ==", "cpu": [ "arm" ], @@ -4956,9 +4677,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz", - "integrity": "sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.0.tgz", + "integrity": "sha512-RqJHDKe0WImeUrdR0kayTkRWgp4vD/MS7g0r6Xuf8+ellOFH7JAAJffDW3ayuVZeMYOa7RvgNFcOoWnrTUl9Nw==", "cpu": [ "arm64" ], @@ -4971,9 +4692,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz", - "integrity": "sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.0.tgz", + "integrity": "sha512-nvNWoUieMjvDjpYJ/4SQe9lQs2xMj6ZRs8N+bmTrVu9leY2Fg3WD6W9p/1uU9hGO8u+OdF13wc4iRShu/WYIHg==", "cpu": [ "arm64" ], @@ -4986,9 +4707,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz", - "integrity": "sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.0.tgz", + "integrity": "sha512-4ajhIuVU9PeQCMMhdDgZTLrHmjbOUFuIyg6J19hZqwEwDTSqQyrSLkbJs2Nd7IRiM6Ul/XyrtEFCpk4k+xD2+w==", "cpu": [ "x64" ], @@ -5001,9 +4722,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz", - "integrity": "sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.0.tgz", + "integrity": "sha512-U092RBYbaGxoMAwpauePJEu2PuZSEoUCGJBvsptQr2/2XIMwAJDYM4c/M5NfYEsBr+yjvsYNsOpYfeQ88D82Yg==", "cpu": [ "x64" ], @@ -5016,9 +4737,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz", - "integrity": "sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.0.tgz", + "integrity": "sha512-pzSzaxjDEJe67bUok9Nxf9rykbJfHXW0owICFsPBsqHyc+cr8vpF7g9e2APTCddtVhvjkga9ILoZJ9NxWS7Yiw==", "cpu": [ "arm64" ], @@ -5031,9 +4752,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz", - "integrity": "sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.0.tgz", + "integrity": "sha512-MQGUpMbYhQmTZ06a9e0hPQJnxFMwETo2WtyAotY3GEzbNCQVbCGhsvqEKcl+ZEHgShlHXUWvSffq1ZscY6gK7A==", "cpu": [ "ia32" ], @@ -5046,9 +4767,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz", - "integrity": "sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.0.tgz", + "integrity": "sha512-C/nw6OgQpEULWqs+wgMHXGvlJLguPRFFGqR2TAqWBerQ8J+Sg3z1ZTqwelkSi4FoqStGuZ2UdFHIDN1ySmR1xA==", "cpu": [ "x64" ], @@ -5206,9 +4927,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" } @@ -17177,15 +16898,15 @@ } }, "node_modules/next": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.5.tgz", - "integrity": "sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/next/-/next-12.3.0.tgz", + "integrity": "sha512-GpzI6me9V1+XYtfK0Ae9WD0mKqHyzQlGq1xH1rzNIYMASo4Tkl4rTe9jSqtBpXFhOS33KohXs9ZY38Akkhdciw==", "dependencies": { - "@next/env": "12.2.5", - "@swc/helpers": "0.4.3", + "@next/env": "12.3.0", + "@swc/helpers": "0.4.11", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", - "styled-jsx": "5.0.4", + "styled-jsx": "5.0.6", "use-sync-external-store": "1.2.0" }, "bin": { @@ -17195,19 +16916,19 @@ "node": ">=12.22.0" }, "optionalDependencies": { - "@next/swc-android-arm-eabi": "12.2.5", - "@next/swc-android-arm64": "12.2.5", - "@next/swc-darwin-arm64": "12.2.5", - "@next/swc-darwin-x64": "12.2.5", - "@next/swc-freebsd-x64": "12.2.5", - "@next/swc-linux-arm-gnueabihf": "12.2.5", - "@next/swc-linux-arm64-gnu": "12.2.5", - "@next/swc-linux-arm64-musl": "12.2.5", - "@next/swc-linux-x64-gnu": "12.2.5", - "@next/swc-linux-x64-musl": "12.2.5", - "@next/swc-win32-arm64-msvc": "12.2.5", - "@next/swc-win32-ia32-msvc": "12.2.5", - "@next/swc-win32-x64-msvc": "12.2.5" + "@next/swc-android-arm-eabi": "12.3.0", + "@next/swc-android-arm64": "12.3.0", + "@next/swc-darwin-arm64": "12.3.0", + "@next/swc-darwin-x64": "12.3.0", + "@next/swc-freebsd-x64": "12.3.0", + "@next/swc-linux-arm-gnueabihf": "12.3.0", + "@next/swc-linux-arm64-gnu": "12.3.0", + "@next/swc-linux-arm64-musl": "12.3.0", + "@next/swc-linux-x64-gnu": "12.3.0", + "@next/swc-linux-x64-musl": "12.3.0", + "@next/swc-win32-arm64-msvc": "12.3.0", + "@next/swc-win32-ia32-msvc": "12.3.0", + "@next/swc-win32-x64-msvc": "12.3.0" }, "peerDependencies": { "fibers": ">= 3.1.0", @@ -21442,9 +21163,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.4.tgz", - "integrity": "sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ==", + "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" }, @@ -26522,9 +26243,9 @@ } }, "@next/env": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.5.tgz", - "integrity": "sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw==" + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.0.tgz", + "integrity": "sha512-PTJpjAFVbzBQ9xXpzMTroShvD5YDIIy46jQ7d4LrWpY+/5a8H90Tm8hE3Hvkc5RBRspVo7kvEOnqQms0A+2Q6w==" }, "@next/eslint-plugin-next": { "version": "12.2.4", @@ -26561,81 +26282,81 @@ } }, "@next/swc-android-arm-eabi": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz", - "integrity": "sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.0.tgz", + "integrity": "sha512-/PuirPnAKsYBw93w/7Q9hqy+KGOU9mjYprZ/faxMUJh/dc6v3rYLxkZKNG9nFPIW4QKNTCnhP40xF9hLnxO+xg==", "optional": true }, "@next/swc-android-arm64": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz", - "integrity": "sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.0.tgz", + "integrity": "sha512-OaI+FhAM6P9B6Ybwbn0Zl8YwWido0lLwhDBi9WiYCh4RQmIXAyVIoIJPHo4fP05+mXaJ/k1trvDvuURvHOq2qw==", "optional": true }, "@next/swc-darwin-arm64": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz", - "integrity": "sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.0.tgz", + "integrity": "sha512-9s4d3Mhii+WFce8o8Jok7WC3Bawkr9wEUU++SJRptjU1L5tsfYJMrSYCACHLhZujziNDLyExe4Hwwsccps1sfg==", "optional": true }, "@next/swc-darwin-x64": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz", - "integrity": "sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.0.tgz", + "integrity": "sha512-2scC4MqUTwGwok+wpVxP+zWp7WcCAVOtutki2E1n99rBOTnUOX6qXkgxSy083yBN6GqwuC/dzHeN7hIKjavfRA==", "optional": true }, "@next/swc-freebsd-x64": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz", - "integrity": "sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.0.tgz", + "integrity": "sha512-xAlruUREij/bFa+qsE1tmsP28t7vz02N4ZDHt2lh3uJUniE0Ne9idyIDLc1Ed0IF2RjfgOp4ZVunuS3OM0sngw==", "optional": true }, "@next/swc-linux-arm-gnueabihf": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz", - "integrity": "sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.0.tgz", + "integrity": "sha512-jin2S4VT/cugc2dSZEUIabhYDJNgrUh7fufbdsaAezgcQzqfdfJqfxl4E9GuafzB4cbRPTaqA0V5uqbp0IyGkQ==", "optional": true }, "@next/swc-linux-arm64-gnu": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz", - "integrity": "sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.0.tgz", + "integrity": "sha512-RqJHDKe0WImeUrdR0kayTkRWgp4vD/MS7g0r6Xuf8+ellOFH7JAAJffDW3ayuVZeMYOa7RvgNFcOoWnrTUl9Nw==", "optional": true }, "@next/swc-linux-arm64-musl": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz", - "integrity": "sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.0.tgz", + "integrity": "sha512-nvNWoUieMjvDjpYJ/4SQe9lQs2xMj6ZRs8N+bmTrVu9leY2Fg3WD6W9p/1uU9hGO8u+OdF13wc4iRShu/WYIHg==", "optional": true }, "@next/swc-linux-x64-gnu": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz", - "integrity": "sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.0.tgz", + "integrity": "sha512-4ajhIuVU9PeQCMMhdDgZTLrHmjbOUFuIyg6J19hZqwEwDTSqQyrSLkbJs2Nd7IRiM6Ul/XyrtEFCpk4k+xD2+w==", "optional": true }, "@next/swc-linux-x64-musl": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz", - "integrity": "sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.0.tgz", + "integrity": "sha512-U092RBYbaGxoMAwpauePJEu2PuZSEoUCGJBvsptQr2/2XIMwAJDYM4c/M5NfYEsBr+yjvsYNsOpYfeQ88D82Yg==", "optional": true }, "@next/swc-win32-arm64-msvc": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz", - "integrity": "sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.0.tgz", + "integrity": "sha512-pzSzaxjDEJe67bUok9Nxf9rykbJfHXW0owICFsPBsqHyc+cr8vpF7g9e2APTCddtVhvjkga9ILoZJ9NxWS7Yiw==", "optional": true }, "@next/swc-win32-ia32-msvc": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz", - "integrity": "sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.0.tgz", + "integrity": "sha512-MQGUpMbYhQmTZ06a9e0hPQJnxFMwETo2WtyAotY3GEzbNCQVbCGhsvqEKcl+ZEHgShlHXUWvSffq1ZscY6gK7A==", "optional": true }, "@next/swc-win32-x64-msvc": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz", - "integrity": "sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.0.tgz", + "integrity": "sha512-C/nw6OgQpEULWqs+wgMHXGvlJLguPRFFGqR2TAqWBerQ8J+Sg3z1ZTqwelkSi4FoqStGuZ2UdFHIDN1ySmR1xA==", "optional": true }, "@nodelib/fs.scandir": { @@ -26744,9 +26465,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" } @@ -35598,130 +35319,6 @@ "react": "18.0.0", "react-dom": "18.0.0", "typescript": "^4.6.3" - }, - "dependencies": { - "@next/env": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.6-canary.13.tgz", - "integrity": "sha512-YOVs7o6pqzj4nLC0t7cavb+rwbLJEkLu5zpe121LV48hmWk3cDMyOAGwlr3ubByN7/wrjIInbDAy1Bv0tS8low==" - }, - "@next/swc-android-arm-eabi": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.6-canary.13.tgz", - "integrity": "sha512-efya6Q/Ey6WzHsF3TwRmV6Fu1lWLz0lVH5Sd1ADAI+dsLbOxJfcFub54++5PSSmTPcHbMk9o88NC1RsTf5CLWw==", - "optional": true - }, - "@next/swc-android-arm64": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.6-canary.13.tgz", - "integrity": "sha512-VHiD09zkPViVEieZLDEP8mvYKMmOom32sr+xoSJEpWxd9L5xgf5PyjH2dsRVyy/nic8jrtK4sjR4MSJNjC6HZA==", - "optional": true - }, - "@next/swc-darwin-arm64": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.6-canary.13.tgz", - "integrity": "sha512-15fa5Au2DTFyCI4ZjRCUNqBWy3Xi5C0IcgWkeXeP+/pqDZOTEc1/n5I9DYShKF8VDEzFC61m2DCsp4bZpfHc0g==", - "optional": true - }, - "@next/swc-darwin-x64": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.6-canary.13.tgz", - "integrity": "sha512-PTnwBJ3BxPimiKtKK1wS6WXwMEYOezu4sPV6Adt/+DRi07P4VVZ1UgRmLLqO23zMeL4tHwAG9R1WpXACKp28zQ==", - "optional": true - }, - "@next/swc-freebsd-x64": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.6-canary.13.tgz", - "integrity": "sha512-YHtFKdXJGAQEmQD72kZgGQ9/goa8oVAcRIQAyvirornonFHpX5rLEbegcEUG1780MCEFJ+UKHKMa9ywA6BS/wA==", - "optional": true - }, - "@next/swc-linux-arm-gnueabihf": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.6-canary.13.tgz", - "integrity": "sha512-soMy3Y0lYy6zfcNDD1E3NfkeuNYE6Q6FdEKRRmWFfO+fhnzjLnnE3ODLjkwmf7X10mblLP9VDtLSlx7/PiW8BQ==", - "optional": true - }, - "@next/swc-linux-arm64-gnu": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.6-canary.13.tgz", - "integrity": "sha512-euC8+0PS/uhd5Bgm4wqWCH8sfeHAAf+PbXgZVgMxx9TgV2xRsfYZhzO/xp2xU5h1DcMG707Wj5DYMt/S4MHBcg==", - "optional": true - }, - "@next/swc-linux-arm64-musl": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.6-canary.13.tgz", - "integrity": "sha512-UGt75FcfIoWRnBHwp6tmvvaAtMp2LZ1ir1Wy78pX5KyQrydSiNCWOi6QIkvZLGNefBE650r+W2QD3eLyFi2e0g==", - "optional": true - }, - "@next/swc-linux-x64-gnu": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.6-canary.13.tgz", - "integrity": "sha512-ZltasXmjSeTLRK26wphgljYeDM/j5NEvUtyEGIuiR5omzGQG0nKcCvERK0mWBmKIzwyQiwhGAB40eOn6CNDtmg==", - "optional": true - }, - "@next/swc-linux-x64-musl": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.6-canary.13.tgz", - "integrity": "sha512-nQKfQclE3/lFUnnDgajUkUUNtip/EdR+01mBLaJBdBy2gEL4ZSxu9pn/TOplpvaHFCX/OZTh35KxsnqZYWwycg==", - "optional": true - }, - "@next/swc-win32-arm64-msvc": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.6-canary.13.tgz", - "integrity": "sha512-10B62MDFSs6X3hfdcBnKKYC/cnllQbXi404qTuccbHR2SLMoxgEppGIQXOFfRLitITPpLzB2G2/SGReUVWcw2g==", - "optional": true - }, - "@next/swc-win32-ia32-msvc": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.6-canary.13.tgz", - "integrity": "sha512-1Jng4S3goSP5+XN6pVM+dMLli8O1Q67FQsneTjb0nNb4DEVlcrmNR3JPUEBPC+sERzKt5bOZegIkIx+MjpDScg==", - "optional": true - }, - "@next/swc-win32-x64-msvc": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.6-canary.13.tgz", - "integrity": "sha512-TiqJFJjyE4s4Tlubg7ur9zVMBiTwOJvevQ9TlFoa3CdFxBMF+bTB+fnikZFZrkSExXRVD0oJ1NCzHPlm6DGUoA==", - "optional": true - }, - "@swc/helpers": { - "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" - } - }, - "next": { - "version": "12.2.6-canary.13", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.6-canary.13.tgz", - "integrity": "sha512-QoWAlbEZeFNKFAk4EE6bxnI515ftEMJFEslfMPGX5tOxVm6A48vLM39UFkFTb4qxXsZD1Vb8otXAIxU/iVSGOA==", - "requires": { - "@next/env": "12.2.6-canary.13", - "@next/swc-android-arm-eabi": "12.2.6-canary.13", - "@next/swc-android-arm64": "12.2.6-canary.13", - "@next/swc-darwin-arm64": "12.2.6-canary.13", - "@next/swc-darwin-x64": "12.2.6-canary.13", - "@next/swc-freebsd-x64": "12.2.6-canary.13", - "@next/swc-linux-arm-gnueabihf": "12.2.6-canary.13", - "@next/swc-linux-arm64-gnu": "12.2.6-canary.13", - "@next/swc-linux-arm64-musl": "12.2.6-canary.13", - "@next/swc-linux-x64-gnu": "12.2.6-canary.13", - "@next/swc-linux-x64-musl": "12.2.6-canary.13", - "@next/swc-win32-arm64-msvc": "12.2.6-canary.13", - "@next/swc-win32-ia32-msvc": "12.2.6-canary.13", - "@next/swc-win32-x64-msvc": "12.2.6-canary.13", - "@swc/helpers": "0.4.11", - "caniuse-lite": "^1.0.30001332", - "postcss": "8.4.14", - "styled-jsx": "5.0.6", - "use-sync-external-store": "1.2.0" - } - }, - "styled-jsx": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz", - "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==" - } } }, "mime-db": { @@ -36080,28 +35677,28 @@ } }, "next": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.5.tgz", - "integrity": "sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA==", - "requires": { - "@next/env": "12.2.5", - "@next/swc-android-arm-eabi": "12.2.5", - "@next/swc-android-arm64": "12.2.5", - "@next/swc-darwin-arm64": "12.2.5", - "@next/swc-darwin-x64": "12.2.5", - "@next/swc-freebsd-x64": "12.2.5", - "@next/swc-linux-arm-gnueabihf": "12.2.5", - "@next/swc-linux-arm64-gnu": "12.2.5", - "@next/swc-linux-arm64-musl": "12.2.5", - "@next/swc-linux-x64-gnu": "12.2.5", - "@next/swc-linux-x64-musl": "12.2.5", - "@next/swc-win32-arm64-msvc": "12.2.5", - "@next/swc-win32-ia32-msvc": "12.2.5", - "@next/swc-win32-x64-msvc": "12.2.5", - "@swc/helpers": "0.4.3", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/next/-/next-12.3.0.tgz", + "integrity": "sha512-GpzI6me9V1+XYtfK0Ae9WD0mKqHyzQlGq1xH1rzNIYMASo4Tkl4rTe9jSqtBpXFhOS33KohXs9ZY38Akkhdciw==", + "requires": { + "@next/env": "12.3.0", + "@next/swc-android-arm-eabi": "12.3.0", + "@next/swc-android-arm64": "12.3.0", + "@next/swc-darwin-arm64": "12.3.0", + "@next/swc-darwin-x64": "12.3.0", + "@next/swc-freebsd-x64": "12.3.0", + "@next/swc-linux-arm-gnueabihf": "12.3.0", + "@next/swc-linux-arm64-gnu": "12.3.0", + "@next/swc-linux-arm64-musl": "12.3.0", + "@next/swc-linux-x64-gnu": "12.3.0", + "@next/swc-linux-x64-musl": "12.3.0", + "@next/swc-win32-arm64-msvc": "12.3.0", + "@next/swc-win32-ia32-msvc": "12.3.0", + "@next/swc-win32-x64-msvc": "12.3.0", + "@swc/helpers": "0.4.11", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", - "styled-jsx": "5.0.4", + "styled-jsx": "5.0.6", "use-sync-external-store": "1.2.0" } }, @@ -39360,9 +38957,9 @@ "dev": true }, "styled-jsx": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.4.tgz", - "integrity": "sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ==" + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz", + "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==" }, "supports-color": { "version": "9.2.2", @@ -40743,4 +40340,4 @@ } } } -} \ No newline at end of file +} diff --git a/packages/runtime/src/helpers/utils.ts b/packages/runtime/src/helpers/utils.ts index ba377002eb..852f375003 100644 --- a/packages/runtime/src/helpers/utils.ts +++ b/packages/runtime/src/helpers/utils.ts @@ -10,6 +10,10 @@ import { OPTIONAL_CATCH_ALL_REGEX, CATCH_ALL_REGEX, DYNAMIC_PARAMETER_REGEX, HAN import { I18n } from './types' +type ExperimentalConfigWithLegacy = ExperimentalConfig & { + images?: Pick +} + export const toNetlifyRoute = (nextRoute: string): Array => { const netlifyRoutes = [nextRoute] @@ -209,7 +213,7 @@ export type ImagesConfig = Partial & Required & { remotePatterns?: RemotePattern[] } -export const getRemotePatterns = (experimental: ExperimentalConfig, images: ImagesConfig) => { +export const getRemotePatterns = (experimental: ExperimentalConfigWithLegacy, images: ImagesConfig) => { // Where remote patterns is configured pre-v12.2.5 if (experimental.images?.remotePatterns) { return experimental.images.remotePatterns From e6d42dedee444c56dac61898d744a2c45fc7eff1 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Fri, 9 Sep 2022 08:57:49 +0100 Subject: [PATCH 3/8] chore: make canary use old version --- demos/canary/package-lock.json | 247 ++++++++++++++++----------------- demos/canary/package.json | 2 +- 2 files changed, 123 insertions(+), 126 deletions(-) diff --git a/demos/canary/package-lock.json b/demos/canary/package-lock.json index cd82d41a4e..0f45cb4a54 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.2.6-canary.12", + "next": "^12.3.0", "react": "18.1.0", "react-dom": "18.1.0" }, @@ -65,14 +65,14 @@ "license": "BSD-3-Clause" }, "node_modules/@next/env": { - "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==" + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.0.tgz", + "integrity": "sha512-PTJpjAFVbzBQ9xXpzMTroShvD5YDIIy46jQ7d4LrWpY+/5a8H90Tm8hE3Hvkc5RBRspVo7kvEOnqQms0A+2Q6w==" }, "node_modules/@next/swc-android-arm-eabi": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.0.tgz", + "integrity": "sha512-/PuirPnAKsYBw93w/7Q9hqy+KGOU9mjYprZ/faxMUJh/dc6v3rYLxkZKNG9nFPIW4QKNTCnhP40xF9hLnxO+xg==", "cpu": [ "arm" ], @@ -85,9 +85,9 @@ } }, "node_modules/@next/swc-android-arm64": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.0.tgz", + "integrity": "sha512-OaI+FhAM6P9B6Ybwbn0Zl8YwWido0lLwhDBi9WiYCh4RQmIXAyVIoIJPHo4fP05+mXaJ/k1trvDvuURvHOq2qw==", "cpu": [ "arm64" ], @@ -100,9 +100,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.0.tgz", + "integrity": "sha512-9s4d3Mhii+WFce8o8Jok7WC3Bawkr9wEUU++SJRptjU1L5tsfYJMrSYCACHLhZujziNDLyExe4Hwwsccps1sfg==", "cpu": [ "arm64" ], @@ -115,9 +115,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.0.tgz", + "integrity": "sha512-2scC4MqUTwGwok+wpVxP+zWp7WcCAVOtutki2E1n99rBOTnUOX6qXkgxSy083yBN6GqwuC/dzHeN7hIKjavfRA==", "cpu": [ "x64" ], @@ -130,9 +130,9 @@ } }, "node_modules/@next/swc-freebsd-x64": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.0.tgz", + "integrity": "sha512-xAlruUREij/bFa+qsE1tmsP28t7vz02N4ZDHt2lh3uJUniE0Ne9idyIDLc1Ed0IF2RjfgOp4ZVunuS3OM0sngw==", "cpu": [ "x64" ], @@ -145,9 +145,9 @@ } }, "node_modules/@next/swc-linux-arm-gnueabihf": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.0.tgz", + "integrity": "sha512-jin2S4VT/cugc2dSZEUIabhYDJNgrUh7fufbdsaAezgcQzqfdfJqfxl4E9GuafzB4cbRPTaqA0V5uqbp0IyGkQ==", "cpu": [ "arm" ], @@ -160,9 +160,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.0.tgz", + "integrity": "sha512-RqJHDKe0WImeUrdR0kayTkRWgp4vD/MS7g0r6Xuf8+ellOFH7JAAJffDW3ayuVZeMYOa7RvgNFcOoWnrTUl9Nw==", "cpu": [ "arm64" ], @@ -175,9 +175,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.0.tgz", + "integrity": "sha512-nvNWoUieMjvDjpYJ/4SQe9lQs2xMj6ZRs8N+bmTrVu9leY2Fg3WD6W9p/1uU9hGO8u+OdF13wc4iRShu/WYIHg==", "cpu": [ "arm64" ], @@ -190,9 +190,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.0.tgz", + "integrity": "sha512-4ajhIuVU9PeQCMMhdDgZTLrHmjbOUFuIyg6J19hZqwEwDTSqQyrSLkbJs2Nd7IRiM6Ul/XyrtEFCpk4k+xD2+w==", "cpu": [ "x64" ], @@ -205,9 +205,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.0.tgz", + "integrity": "sha512-U092RBYbaGxoMAwpauePJEu2PuZSEoUCGJBvsptQr2/2XIMwAJDYM4c/M5NfYEsBr+yjvsYNsOpYfeQ88D82Yg==", "cpu": [ "x64" ], @@ -220,9 +220,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.0.tgz", + "integrity": "sha512-pzSzaxjDEJe67bUok9Nxf9rykbJfHXW0owICFsPBsqHyc+cr8vpF7g9e2APTCddtVhvjkga9ILoZJ9NxWS7Yiw==", "cpu": [ "arm64" ], @@ -235,9 +235,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.0.tgz", + "integrity": "sha512-MQGUpMbYhQmTZ06a9e0hPQJnxFMwETo2WtyAotY3GEzbNCQVbCGhsvqEKcl+ZEHgShlHXUWvSffq1ZscY6gK7A==", "cpu": [ "ia32" ], @@ -250,9 +250,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.0.tgz", + "integrity": "sha512-C/nw6OgQpEULWqs+wgMHXGvlJLguPRFFGqR2TAqWBerQ8J+Sg3z1ZTqwelkSi4FoqStGuZ2UdFHIDN1ySmR1xA==", "cpu": [ "x64" ], @@ -1084,11 +1084,11 @@ "license": "MIT" }, "node_modules/next": { - "version": "12.2.6-canary.12", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.6-canary.12.tgz", - "integrity": "sha512-pmiDm9+7nPTobfXjXzwmiaYRo9T9xK3RAuhTgjwFnquRVQ1Bdm6oYyU+tP2YdvkveukMR9nD8CS61sBWtbzUNA==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/next/-/next-12.3.0.tgz", + "integrity": "sha512-GpzI6me9V1+XYtfK0Ae9WD0mKqHyzQlGq1xH1rzNIYMASo4Tkl4rTe9jSqtBpXFhOS33KohXs9ZY38Akkhdciw==", "dependencies": { - "@next/env": "12.2.6-canary.12", + "@next/env": "12.3.0", "@swc/helpers": "0.4.11", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", @@ -1102,19 +1102,19 @@ "node": ">=12.22.0" }, "optionalDependencies": { - "@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" + "@next/swc-android-arm-eabi": "12.3.0", + "@next/swc-android-arm64": "12.3.0", + "@next/swc-darwin-arm64": "12.3.0", + "@next/swc-darwin-x64": "12.3.0", + "@next/swc-freebsd-x64": "12.3.0", + "@next/swc-linux-arm-gnueabihf": "12.3.0", + "@next/swc-linux-arm64-gnu": "12.3.0", + "@next/swc-linux-arm64-musl": "12.3.0", + "@next/swc-linux-x64-gnu": "12.3.0", + "@next/swc-linux-x64-musl": "12.3.0", + "@next/swc-win32-arm64-msvc": "12.3.0", + "@next/swc-win32-ia32-msvc": "12.3.0", + "@next/swc-win32-x64-msvc": "12.3.0" }, "peerDependencies": { "fibers": ">= 3.1.0", @@ -1635,86 +1635,86 @@ "dev": true }, "@next/env": { - "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==" + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.0.tgz", + "integrity": "sha512-PTJpjAFVbzBQ9xXpzMTroShvD5YDIIy46jQ7d4LrWpY+/5a8H90Tm8hE3Hvkc5RBRspVo7kvEOnqQms0A+2Q6w==" }, "@next/swc-android-arm-eabi": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.0.tgz", + "integrity": "sha512-/PuirPnAKsYBw93w/7Q9hqy+KGOU9mjYprZ/faxMUJh/dc6v3rYLxkZKNG9nFPIW4QKNTCnhP40xF9hLnxO+xg==", "optional": true }, "@next/swc-android-arm64": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.0.tgz", + "integrity": "sha512-OaI+FhAM6P9B6Ybwbn0Zl8YwWido0lLwhDBi9WiYCh4RQmIXAyVIoIJPHo4fP05+mXaJ/k1trvDvuURvHOq2qw==", "optional": true }, "@next/swc-darwin-arm64": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.0.tgz", + "integrity": "sha512-9s4d3Mhii+WFce8o8Jok7WC3Bawkr9wEUU++SJRptjU1L5tsfYJMrSYCACHLhZujziNDLyExe4Hwwsccps1sfg==", "optional": true }, "@next/swc-darwin-x64": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.0.tgz", + "integrity": "sha512-2scC4MqUTwGwok+wpVxP+zWp7WcCAVOtutki2E1n99rBOTnUOX6qXkgxSy083yBN6GqwuC/dzHeN7hIKjavfRA==", "optional": true }, "@next/swc-freebsd-x64": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.0.tgz", + "integrity": "sha512-xAlruUREij/bFa+qsE1tmsP28t7vz02N4ZDHt2lh3uJUniE0Ne9idyIDLc1Ed0IF2RjfgOp4ZVunuS3OM0sngw==", "optional": true }, "@next/swc-linux-arm-gnueabihf": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.0.tgz", + "integrity": "sha512-jin2S4VT/cugc2dSZEUIabhYDJNgrUh7fufbdsaAezgcQzqfdfJqfxl4E9GuafzB4cbRPTaqA0V5uqbp0IyGkQ==", "optional": true }, "@next/swc-linux-arm64-gnu": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.0.tgz", + "integrity": "sha512-RqJHDKe0WImeUrdR0kayTkRWgp4vD/MS7g0r6Xuf8+ellOFH7JAAJffDW3ayuVZeMYOa7RvgNFcOoWnrTUl9Nw==", "optional": true }, "@next/swc-linux-arm64-musl": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.0.tgz", + "integrity": "sha512-nvNWoUieMjvDjpYJ/4SQe9lQs2xMj6ZRs8N+bmTrVu9leY2Fg3WD6W9p/1uU9hGO8u+OdF13wc4iRShu/WYIHg==", "optional": true }, "@next/swc-linux-x64-gnu": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.0.tgz", + "integrity": "sha512-4ajhIuVU9PeQCMMhdDgZTLrHmjbOUFuIyg6J19hZqwEwDTSqQyrSLkbJs2Nd7IRiM6Ul/XyrtEFCpk4k+xD2+w==", "optional": true }, "@next/swc-linux-x64-musl": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.0.tgz", + "integrity": "sha512-U092RBYbaGxoMAwpauePJEu2PuZSEoUCGJBvsptQr2/2XIMwAJDYM4c/M5NfYEsBr+yjvsYNsOpYfeQ88D82Yg==", "optional": true }, "@next/swc-win32-arm64-msvc": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.0.tgz", + "integrity": "sha512-pzSzaxjDEJe67bUok9Nxf9rykbJfHXW0owICFsPBsqHyc+cr8vpF7g9e2APTCddtVhvjkga9ILoZJ9NxWS7Yiw==", "optional": true }, "@next/swc-win32-ia32-msvc": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.0.tgz", + "integrity": "sha512-MQGUpMbYhQmTZ06a9e0hPQJnxFMwETo2WtyAotY3GEzbNCQVbCGhsvqEKcl+ZEHgShlHXUWvSffq1ZscY6gK7A==", "optional": true }, "@next/swc-win32-x64-msvc": { - "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==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.0.tgz", + "integrity": "sha512-C/nw6OgQpEULWqs+wgMHXGvlJLguPRFFGqR2TAqWBerQ8J+Sg3z1ZTqwelkSi4FoqStGuZ2UdFHIDN1ySmR1xA==", "optional": true }, "@nodelib/fs.scandir": { @@ -1759,8 +1759,7 @@ }, "acorn-jsx": { "version": "5.3.2", - "dev": true, - "requires": {} + "dev": true }, "ajv": { "version": "6.12.6", @@ -2265,24 +2264,24 @@ "dev": true }, "next": { - "version": "12.2.6-canary.12", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.6-canary.12.tgz", - "integrity": "sha512-pmiDm9+7nPTobfXjXzwmiaYRo9T9xK3RAuhTgjwFnquRVQ1Bdm6oYyU+tP2YdvkveukMR9nD8CS61sBWtbzUNA==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/next/-/next-12.3.0.tgz", + "integrity": "sha512-GpzI6me9V1+XYtfK0Ae9WD0mKqHyzQlGq1xH1rzNIYMASo4Tkl4rTe9jSqtBpXFhOS33KohXs9ZY38Akkhdciw==", "requires": { - "@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", + "@next/env": "12.3.0", + "@next/swc-android-arm-eabi": "12.3.0", + "@next/swc-android-arm64": "12.3.0", + "@next/swc-darwin-arm64": "12.3.0", + "@next/swc-darwin-x64": "12.3.0", + "@next/swc-freebsd-x64": "12.3.0", + "@next/swc-linux-arm-gnueabihf": "12.3.0", + "@next/swc-linux-arm64-gnu": "12.3.0", + "@next/swc-linux-arm64-musl": "12.3.0", + "@next/swc-linux-x64-gnu": "12.3.0", + "@next/swc-linux-x64-musl": "12.3.0", + "@next/swc-win32-arm64-msvc": "12.3.0", + "@next/swc-win32-ia32-msvc": "12.3.0", + "@next/swc-win32-x64-msvc": "12.3.0", "@swc/helpers": "0.4.11", "caniuse-lite": "^1.0.30001332", "postcss": "8.4.14", @@ -2474,8 +2473,7 @@ "styled-jsx": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz", - "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==", - "requires": {} + "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==" }, "supports-color": { "version": "7.2.0", @@ -2523,8 +2521,7 @@ "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==", - "requires": {} + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==" }, "v8-compile-cache": { "version": "2.3.0", diff --git a/demos/canary/package.json b/demos/canary/package.json index 64b65d6ef3..3399496ecb 100644 --- a/demos/canary/package.json +++ b/demos/canary/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "next": "^12.2.6-canary.12", + "next": "^12.3.0", "react": "18.1.0", "react-dom": "18.1.0" }, From 514b65f2a0f1ca3e2d8f033f9d5b7f527259b986 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Fri, 9 Sep 2022 09:13:34 +0100 Subject: [PATCH 4/8] feat: support middleware `has` matchers --- packages/runtime/src/helpers/edge.ts | 14 +- .../src/templates/edge-shared/next-utils.ts | 396 ++++++++++++++++++ .../runtime/src/templates/edge/matchers.json | 1 + .../runtime/src/templates/edge/next-dev.js | 2 +- .../runtime/src/templates/edge/runtime.ts | 13 +- 5 files changed, 413 insertions(+), 13 deletions(-) create mode 100644 packages/runtime/src/templates/edge-shared/next-utils.ts create mode 100644 packages/runtime/src/templates/edge/matchers.json diff --git a/packages/runtime/src/helpers/edge.ts b/packages/runtime/src/helpers/edge.ts index 0c3282c4fc..e9ae695bd9 100644 --- a/packages/runtime/src/helpers/edge.ts +++ b/packages/runtime/src/helpers/edge.ts @@ -158,21 +158,13 @@ const writeEdgeFunction = async ({ return { function: name, pattern } }) } - -type NetlifyPluginConstantsWithEdgeFunctions = NetlifyPluginConstants & { - // Until https://github.com/netlify/build/pull/4481 lands - INTERNAL_EDGE_FUNCTIONS_SRC?: string -} - -export const cleanupEdgeFunctions = async ({ +export const cleanupEdgeFunctions = ({ INTERNAL_EDGE_FUNCTIONS_SRC = '.netlify/edge-functions', -}: NetlifyPluginConstantsWithEdgeFunctions) => { - await emptyDir(INTERNAL_EDGE_FUNCTIONS_SRC) -} +}: NetlifyPluginConstants) => emptyDir(INTERNAL_EDGE_FUNCTIONS_SRC) export const writeDevEdgeFunction = async ({ INTERNAL_EDGE_FUNCTIONS_SRC = '.netlify/edge-functions', -}: NetlifyPluginConstantsWithEdgeFunctions) => { +}: NetlifyPluginConstants) => { const manifest: FunctionManifest = { functions: [ { diff --git a/packages/runtime/src/templates/edge-shared/next-utils.ts b/packages/runtime/src/templates/edge-shared/next-utils.ts new file mode 100644 index 0000000000..5fdc34e7ce --- /dev/null +++ b/packages/runtime/src/templates/edge-shared/next-utils.ts @@ -0,0 +1,396 @@ +/** + * Various router utils ported to Deno from Next.js source + * https://github.com/vercel/next.js/blob/7280c3ced186bb9a7ae3d7012613ef93f20b0fa9/packages/next/shared/lib/router/utils/ + * Licence: https://github.com/vercel/next.js/blob/7280c3ced186bb9a7ae3d7012613ef93f20b0fa9/license.md + * + * Some types have been re-implemented to be more compatible with Deno or avoid chains of dependent files + */ + +// Deno imports +import type { Key } from 'https://deno.land/x/path_to_regexp@v6.2.1/index.ts' + +import { compile, pathToRegexp } from 'https://deno.land/x/path_to_regexp@v6.2.1/index.ts' +import { getCookies } from 'https://deno.land/std@0.148.0/http/cookie.ts' + +// Inlined/re-implemented types + +export interface ParsedUrlQuery { + [key: string]: string | string[] +} + +export interface Params { + // Yeah, best we get + // deno-lint-ignore no-explicit-any + [param: string]: any +} + +export type RouteHas = + | { + type: 'header' | 'query' | 'cookie' + key: string + value?: string + } + | { + type: 'host' + key?: undefined + value: string + } + +export type Rewrite = { + source: string + destination: string + basePath?: false + locale?: false + has?: RouteHas[] + regex: string +} + +export type Header = { + source: string + basePath?: false + locale?: false + headers: Array<{ key: string; value: string }> + has?: RouteHas[] + regex: string +} +export type Redirect = { + source: string + destination: string + basePath?: false + locale?: false + has?: RouteHas[] + statusCode?: number + permanent?: boolean + regex: string +} + +export type DynamicRoute = { + page: string + regex: string + namedRegex?: string + routeKeys?: { [key: string]: string } +} + +export type RoutesManifest = { + basePath: string + redirects: Redirect[] + headers: Header[] + rewrites: { + beforeFiles: Rewrite[] + afterFiles: Rewrite[] + fallback: Rewrite[] + } + dynamicRoutes: DynamicRoute[] +} +// escape-regexp.ts +// regexp is based on https://github.com/sindresorhus/escape-string-regexp +const reHasRegExp = /[|\\{}()[\]^$+*?.-]/ +const reReplaceRegExp = /[|\\{}()[\]^$+*?.-]/g + +export function escapeStringRegexp(str: string) { + // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23 + if (reHasRegExp.test(str)) { + return str.replace(reReplaceRegExp, '\\$&') + } + return str +} + +// querystring.ts +export function searchParamsToUrlQuery(searchParams: URLSearchParams): ParsedUrlQuery { + const query: ParsedUrlQuery = {} + searchParams.forEach((value, key) => { + if (typeof query[key] === 'undefined') { + query[key] = value + } else if (Array.isArray(query[key])) { + ;(query[key] as string[]).push(value) + } else { + query[key] = [query[key] as string, value] + } + }) + return query +} + +// parse-url.ts +interface ParsedUrl { + hash: string + hostname?: string | null + href: string + pathname: string + port?: string | null + protocol?: string | null + query: ParsedUrlQuery + search: string +} + +export function parseUrl(url: string): ParsedUrl { + const parsedURL = url.startsWith('/') ? new URL(url, 'http://n') : new URL(url) + return { + hash: parsedURL.hash, + hostname: parsedURL.hostname, + href: parsedURL.href, + pathname: parsedURL.pathname, + port: parsedURL.port, + protocol: parsedURL.protocol, + query: searchParamsToUrlQuery(parsedURL.searchParams), + search: parsedURL.search, + } +} + +// prepare-destination.ts +// Changed to use WHATWG Fetch Request instead of IncomingMessage +export function matchHas(req: Pick, has: RouteHas[], query: Params): false | Params { + const params: Params = {} + const cookies = getCookies(req.headers) + const url = new URL(req.url) + const allMatch = has.every((hasItem) => { + let value: undefined | string | null + let key = hasItem.key + + switch (hasItem.type) { + case 'header': { + key = hasItem.key.toLowerCase() + value = req.headers.get(key) + break + } + case 'cookie': { + value = cookies[hasItem.key] + break + } + case 'query': { + value = query[hasItem.key] + break + } + case 'host': { + value = url.hostname + break + } + default: { + break + } + } + if (!hasItem.value && value && key) { + params[getSafeParamName(key)] = value + return true + } else if (value) { + const matcher = new RegExp(`^${hasItem.value}$`) + const matches = Array.isArray(value) ? value.slice(-1)[0].match(matcher) : value.match(matcher) + + if (matches) { + if (Array.isArray(matches)) { + if (matches.groups) { + Object.keys(matches.groups).forEach((groupKey) => { + params[groupKey] = matches.groups![groupKey] + }) + } else if (hasItem.type === 'host' && matches[0]) { + params.host = matches[0] + } + } + return true + } + } + return false + }) + + if (allMatch) { + return params + } + return false +} + +export function compileNonPath(value: string, params: Params): string { + if (!value.includes(':')) { + return value + } + + for (const key of Object.keys(params)) { + if (value.includes(`:${key}`)) { + value = value + .replace(new RegExp(`:${key}\\*`, 'g'), `:${key}--ESCAPED_PARAM_ASTERISKS`) + .replace(new RegExp(`:${key}\\?`, 'g'), `:${key}--ESCAPED_PARAM_QUESTION`) + .replace(new RegExp(`:${key}\\+`, 'g'), `:${key}--ESCAPED_PARAM_PLUS`) + .replace(new RegExp(`:${key}(?!\\w)`, 'g'), `--ESCAPED_PARAM_COLON${key}`) + } + } + value = value + .replace(/(:|\*|\?|\+|\(|\)|\{|\})/g, '\\$1') + .replace(/--ESCAPED_PARAM_PLUS/g, '+') + .replace(/--ESCAPED_PARAM_COLON/g, ':') + .replace(/--ESCAPED_PARAM_QUESTION/g, '?') + .replace(/--ESCAPED_PARAM_ASTERISKS/g, '*') + // the value needs to start with a forward-slash to be compiled + // correctly + return compile(`/${value}`, { validate: false })(params).slice(1) +} + +export function prepareDestination(args: { + appendParamsToQuery: boolean + destination: string + params: Params + query: ParsedUrlQuery +}) { + const query = Object.assign({}, args.query) + delete query.__nextLocale + delete query.__nextDefaultLocale + delete query.__nextDataReq + + let escapedDestination = args.destination + + for (const param of Object.keys({ ...args.params, ...query })) { + escapedDestination = escapeSegment(escapedDestination, param) + } + + const parsedDestination: ParsedUrl = parseUrl(escapedDestination) + const destQuery = parsedDestination.query + const destPath = unescapeSegments(`${parsedDestination.pathname!}${parsedDestination.hash || ''}`) + const destHostname = unescapeSegments(parsedDestination.hostname || '') + const destPathParamKeys: Key[] = [] + const destHostnameParamKeys: Key[] = [] + pathToRegexp(destPath, destPathParamKeys) + pathToRegexp(destHostname, destHostnameParamKeys) + + const destParams: (string | number)[] = [] + + destPathParamKeys.forEach((key) => destParams.push(key.name)) + destHostnameParamKeys.forEach((key) => destParams.push(key.name)) + + const destPathCompiler = compile( + destPath, + // we don't validate while compiling the destination since we should + // have already validated before we got to this point and validating + // breaks compiling destinations with named pattern params from the source + // e.g. /something:hello(.*) -> /another/:hello is broken with validation + // since compile validation is meant for reversing and not for inserting + // params from a separate path-regex into another + { validate: false }, + ) + + const destHostnameCompiler = compile(destHostname, { validate: false }) + + // update any params in query values + for (const [key, strOrArray] of Object.entries(destQuery)) { + // the value needs to start with a forward-slash to be compiled + // correctly + if (Array.isArray(strOrArray)) { + destQuery[key] = strOrArray.map((value) => compileNonPath(unescapeSegments(value), args.params)) + } else { + destQuery[key] = compileNonPath(unescapeSegments(strOrArray), args.params) + } + } + + // add path params to query if it's not a redirect and not + // already defined in destination query or path + const paramKeys = Object.keys(args.params).filter((name) => name !== 'nextInternalLocale') + + if (args.appendParamsToQuery && !paramKeys.some((key) => destParams.includes(key))) { + for (const key of paramKeys) { + if (!(key in destQuery)) { + destQuery[key] = args.params[key] + } + } + } + + let newUrl + + try { + newUrl = destPathCompiler(args.params) + + const [pathname, hash] = newUrl.split('#') + parsedDestination.hostname = destHostnameCompiler(args.params) + parsedDestination.pathname = pathname + parsedDestination.hash = `${hash ? '#' : ''}${hash || ''}` + delete (parsedDestination as any).search + } catch (err: any) { + if (err.message.match(/Expected .*? to not repeat, but got an array/)) { + throw new Error( + `To use a multi-match in the destination you must add \`*\` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match`, + ) + } + throw err + } + + // Query merge order lowest priority to highest + // 1. initial URL query values + // 2. path segment values + // 3. destination specified query values + parsedDestination.query = { + ...query, + ...parsedDestination.query, + } + + return { + newUrl, + destQuery, + parsedDestination, + } +} + +/** + * Ensure only a-zA-Z are used for param names for proper interpolating + * with path-to-regexp + */ +function getSafeParamName(paramName: string) { + let newParamName = '' + + for (let i = 0; i < paramName.length; i++) { + const charCode = paramName.charCodeAt(i) + + if ( + (charCode > 64 && charCode < 91) || // A-Z + (charCode > 96 && charCode < 123) // a-z + ) { + newParamName += paramName[i] + } + } + return newParamName +} + +function escapeSegment(str: string, segmentName: string) { + return str.replace(new RegExp(`:${escapeStringRegexp(segmentName)}`, 'g'), `__ESC_COLON_${segmentName}`) +} + +function unescapeSegments(str: string) { + return str.replace(/__ESC_COLON_/gi, ':') +} + +// is-dynamic.ts +// Identify /[param]/ in route string +const TEST_ROUTE = /\/\[[^/]+?\](?=\/|$)/ + +export function isDynamicRoute(route: string): boolean { + return TEST_ROUTE.test(route) +} + +// packages/next/shared/lib/router/utils/middleware-route-matcher.ts +// 12.3 middleware route matcher + +export interface MiddlewareRouteMatch { + (pathname: string | null | undefined, request: Pick, query: Params): boolean +} + +export interface MiddlewareMatcher { + regexp: string + locale?: false + has?: RouteHas[] +} + +export function getMiddlewareRouteMatcher(matchers: MiddlewareMatcher[]): MiddlewareRouteMatch { + return (pathname: string | null | undefined, req: Pick, query: Params) => { + for (const matcher of matchers) { + const routeMatch = new RegExp(matcher.regexp).exec(pathname!) + if (!routeMatch) { + continue + } + + if (matcher.has) { + const hasParams = matchHas(req, matcher.has, query) + if (!hasParams) { + continue + } + } + + return true + } + + return false + } +} diff --git a/packages/runtime/src/templates/edge/matchers.json b/packages/runtime/src/templates/edge/matchers.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/packages/runtime/src/templates/edge/matchers.json @@ -0,0 +1 @@ +[] diff --git a/packages/runtime/src/templates/edge/next-dev.js b/packages/runtime/src/templates/edge/next-dev.js index e6ea2d5e00..8575fcb9e4 100644 --- a/packages/runtime/src/templates/edge/next-dev.js +++ b/packages/runtime/src/templates/edge/next-dev.js @@ -1,7 +1,7 @@ import { NextRequest } from 'https://esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/request.js' import { NextResponse } from 'https://esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/response.js' import { fromFileUrl } from 'https://deno.land/std@0.151.0/path/mod.ts' -import { buildResponse } from './utils.ts' +import { buildResponse } from '../edge-shared/utils.ts' globalThis.NFRequestContextMap ||= new Map() globalThis.__dirname = fromFileUrl(new URL('./', import.meta.url)).slice(0, -1) diff --git a/packages/runtime/src/templates/edge/runtime.ts b/packages/runtime/src/templates/edge/runtime.ts index e9468ef18a..da7c5e3278 100644 --- a/packages/runtime/src/templates/edge/runtime.ts +++ b/packages/runtime/src/templates/edge/runtime.ts @@ -1,7 +1,11 @@ import type { Context } from 'https://edge.netlify.com' - +// Available at build time +import matchers from './matchers.json' assert { type: 'json' } import edgeFunction from './bundle.js' import { buildResponse } from '../edge-shared/utils.ts' +import { getMiddlewareRouteMatcher, MiddlewareRouteMatch, searchParamsToUrlQuery } from '../edge-shared/next-utils.ts' + +const matchesMiddleware: MiddlewareRouteMatch = getMiddlewareRouteMatcher(matchers || []) export interface FetchEventResult { response: Response @@ -49,8 +53,15 @@ const handler = async (req: Request, context: Context) => { // Don't run in dev return } + const url = new URL(req.url) + // While we have already checked the path when mapping to the edge function, + // Next.js supports extra rules that we need to check here too. + if (!matchesMiddleware(url.pathname, req, searchParamsToUrlQuery(url.searchParams))) { + return + } + const geo = { country: context.geo.country?.code, region: context.geo.subdivision?.code, From 0f24e47da9b4c47a77085dae2291547f55b652f0 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Fri, 9 Sep 2022 08:57:49 +0100 Subject: [PATCH 5/8] chore: make canary use old version --- demos/canary/package-lock.json | 324 ++++++++++++++++----------------- demos/canary/package.json | 2 +- 2 files changed, 160 insertions(+), 166 deletions(-) diff --git a/demos/canary/package-lock.json b/demos/canary/package-lock.json index 0f45cb4a54..1cb781bd7e 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.3.0", + "next": "^12.2.0", "react": "18.1.0", "react-dom": "18.1.0" }, @@ -65,14 +65,14 @@ "license": "BSD-3-Clause" }, "node_modules/@next/env": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.0.tgz", - "integrity": "sha512-PTJpjAFVbzBQ9xXpzMTroShvD5YDIIy46jQ7d4LrWpY+/5a8H90Tm8hE3Hvkc5RBRspVo7kvEOnqQms0A+2Q6w==" + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.0.tgz", + "integrity": "sha512-/FCkDpL/8SodJEXvx/DYNlOD5ijTtkozf4PPulYPtkPOJaMPpBSOkzmsta4fnrnbdH6eZjbwbiXFdr6gSQCV4w==" }, "node_modules/@next/swc-android-arm-eabi": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.0.tgz", - "integrity": "sha512-/PuirPnAKsYBw93w/7Q9hqy+KGOU9mjYprZ/faxMUJh/dc6v3rYLxkZKNG9nFPIW4QKNTCnhP40xF9hLnxO+xg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.0.tgz", + "integrity": "sha512-hbneH8DNRB2x0Nf5fPCYoL8a0osvdTCe4pvOc9Rv5CpDsoOlf8BWBs2OWpeP0U2BktGvIsuUhmISmdYYGyrvTw==", "cpu": [ "arm" ], @@ -85,9 +85,9 @@ } }, "node_modules/@next/swc-android-arm64": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.0.tgz", - "integrity": "sha512-OaI+FhAM6P9B6Ybwbn0Zl8YwWido0lLwhDBi9WiYCh4RQmIXAyVIoIJPHo4fP05+mXaJ/k1trvDvuURvHOq2qw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.0.tgz", + "integrity": "sha512-1eEk91JHjczcJomxJ8X0XaUeNcp5Lx1U2Ic7j15ouJ83oRX+3GIslOuabW2oPkSgXbHkThMClhirKpvG98kwZg==", "cpu": [ "arm64" ], @@ -100,9 +100,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.0.tgz", - "integrity": "sha512-9s4d3Mhii+WFce8o8Jok7WC3Bawkr9wEUU++SJRptjU1L5tsfYJMrSYCACHLhZujziNDLyExe4Hwwsccps1sfg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.0.tgz", + "integrity": "sha512-x5U5gJd7ZvrEtTFnBld9O2bUlX8opu7mIQUqRzj7KeWzBwPhrIzTTsQXAiNqsaMuaRPvyHBVW/5d/6g6+89Y8g==", "cpu": [ "arm64" ], @@ -115,9 +115,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.0.tgz", - "integrity": "sha512-2scC4MqUTwGwok+wpVxP+zWp7WcCAVOtutki2E1n99rBOTnUOX6qXkgxSy083yBN6GqwuC/dzHeN7hIKjavfRA==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.0.tgz", + "integrity": "sha512-iwMNFsrAPjfedjKDv9AXPAV16PWIomP3qw/FfPaxkDVRbUls7BNdofBLzkQmqxqWh93WrawLwaqyXpJuAaiwJA==", "cpu": [ "x64" ], @@ -130,9 +130,9 @@ } }, "node_modules/@next/swc-freebsd-x64": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.0.tgz", - "integrity": "sha512-xAlruUREij/bFa+qsE1tmsP28t7vz02N4ZDHt2lh3uJUniE0Ne9idyIDLc1Ed0IF2RjfgOp4ZVunuS3OM0sngw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.0.tgz", + "integrity": "sha512-gRiAw8g3Akf6niTDLEm1Emfa7jXDjvaAj/crDO8hKASKA4Y1fS4kbi/tyWw5VtoFI4mUzRmCPmZ8eL0tBSG58A==", "cpu": [ "x64" ], @@ -145,9 +145,9 @@ } }, "node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.0.tgz", - "integrity": "sha512-jin2S4VT/cugc2dSZEUIabhYDJNgrUh7fufbdsaAezgcQzqfdfJqfxl4E9GuafzB4cbRPTaqA0V5uqbp0IyGkQ==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.0.tgz", + "integrity": "sha512-/TJZkxaIpeEwnXh6A40trgwd40C5+LJroLUOEQwMOJdavLl62PjCA6dGl1pgooWLCIb5YdBQ0EG4ylzvLwS2+Q==", "cpu": [ "arm" ], @@ -160,9 +160,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.0.tgz", - "integrity": "sha512-RqJHDKe0WImeUrdR0kayTkRWgp4vD/MS7g0r6Xuf8+ellOFH7JAAJffDW3ayuVZeMYOa7RvgNFcOoWnrTUl9Nw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.0.tgz", + "integrity": "sha512-++WAB4ElXCSOKG9H8r4ENF8EaV+w0QkrpjehmryFkQXmt5juVXz+nKDVlCRMwJU7A1O0Mie82XyEoOrf6Np1pA==", "cpu": [ "arm64" ], @@ -175,9 +175,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.0.tgz", - "integrity": "sha512-nvNWoUieMjvDjpYJ/4SQe9lQs2xMj6ZRs8N+bmTrVu9leY2Fg3WD6W9p/1uU9hGO8u+OdF13wc4iRShu/WYIHg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.0.tgz", + "integrity": "sha512-XrqkHi/VglEn5zs2CYK6ofJGQySrd+Lr4YdmfJ7IhsCnMKkQY1ma9Hv5THwhZVof3e+6oFHrQ9bWrw9K4WTjFA==", "cpu": [ "arm64" ], @@ -190,9 +190,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.0.tgz", - "integrity": "sha512-4ajhIuVU9PeQCMMhdDgZTLrHmjbOUFuIyg6J19hZqwEwDTSqQyrSLkbJs2Nd7IRiM6Ul/XyrtEFCpk4k+xD2+w==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.0.tgz", + "integrity": "sha512-MyhHbAKVjpn065WzRbqpLu2krj4kHLi6RITQdD1ee+uxq9r2yg5Qe02l24NxKW+1/lkmpusl4Y5Lks7rBiJn4w==", "cpu": [ "x64" ], @@ -205,9 +205,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.0.tgz", - "integrity": "sha512-U092RBYbaGxoMAwpauePJEu2PuZSEoUCGJBvsptQr2/2XIMwAJDYM4c/M5NfYEsBr+yjvsYNsOpYfeQ88D82Yg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.0.tgz", + "integrity": "sha512-Tz1tJZ5egE0S/UqCd5V6ZPJsdSzv/8aa7FkwFmIJ9neLS8/00za+OY5pq470iZQbPrkTwpKzmfTTIPRVD5iqDg==", "cpu": [ "x64" ], @@ -220,9 +220,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.0.tgz", - "integrity": "sha512-pzSzaxjDEJe67bUok9Nxf9rykbJfHXW0owICFsPBsqHyc+cr8vpF7g9e2APTCddtVhvjkga9ILoZJ9NxWS7Yiw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.0.tgz", + "integrity": "sha512-0iRO/CPMCdCYUzuH6wXLnsfJX1ykBX4emOOvH0qIgtiZM0nVYbF8lkEyY2ph4XcsurpinS+ziWuYCXVqrOSqiw==", "cpu": [ "arm64" ], @@ -235,9 +235,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.0.tgz", - "integrity": "sha512-MQGUpMbYhQmTZ06a9e0hPQJnxFMwETo2WtyAotY3GEzbNCQVbCGhsvqEKcl+ZEHgShlHXUWvSffq1ZscY6gK7A==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.0.tgz", + "integrity": "sha512-8A26RJVcJHwIKm8xo/qk2ePRquJ6WCI2keV2qOW/Qm+ZXrPXHMIWPYABae/nKN243YFBNyPiHytjX37VrcpUhg==", "cpu": [ "ia32" ], @@ -250,9 +250,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.0.tgz", - "integrity": "sha512-C/nw6OgQpEULWqs+wgMHXGvlJLguPRFFGqR2TAqWBerQ8J+Sg3z1ZTqwelkSi4FoqStGuZ2UdFHIDN1ySmR1xA==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.0.tgz", + "integrity": "sha512-OI14ozFLThEV3ey6jE47zrzSTV/6eIMsvbwozo+XfdWqOPwQ7X00YkRx4GVMKMC0rM44oGS2gmwMKYpe4EblnA==", "cpu": [ "x64" ], @@ -300,9 +300,9 @@ } }, "node_modules/@swc/helpers": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", - "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.2.tgz", + "integrity": "sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==", "dependencies": { "tslib": "^2.4.0" } @@ -1084,16 +1084,16 @@ "license": "MIT" }, "node_modules/next": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/next/-/next-12.3.0.tgz", - "integrity": "sha512-GpzI6me9V1+XYtfK0Ae9WD0mKqHyzQlGq1xH1rzNIYMASo4Tkl4rTe9jSqtBpXFhOS33KohXs9ZY38Akkhdciw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.0.tgz", + "integrity": "sha512-B4j7D3SHYopLYx6/Ark0fenwIar9tEaZZFAaxmKjgcMMexhVJzB3jt7X+6wcdXPPMeUD6r09weUtnDpjox/vIA==", "dependencies": { - "@next/env": "12.3.0", - "@swc/helpers": "0.4.11", + "@next/env": "12.2.0", + "@swc/helpers": "0.4.2", "caniuse-lite": "^1.0.30001332", - "postcss": "8.4.14", - "styled-jsx": "5.0.6", - "use-sync-external-store": "1.2.0" + "postcss": "8.4.5", + "styled-jsx": "5.0.2", + "use-sync-external-store": "1.1.0" }, "bin": { "next": "dist/bin/next" @@ -1102,19 +1102,19 @@ "node": ">=12.22.0" }, "optionalDependencies": { - "@next/swc-android-arm-eabi": "12.3.0", - "@next/swc-android-arm64": "12.3.0", - "@next/swc-darwin-arm64": "12.3.0", - "@next/swc-darwin-x64": "12.3.0", - "@next/swc-freebsd-x64": "12.3.0", - "@next/swc-linux-arm-gnueabihf": "12.3.0", - "@next/swc-linux-arm64-gnu": "12.3.0", - "@next/swc-linux-arm64-musl": "12.3.0", - "@next/swc-linux-x64-gnu": "12.3.0", - "@next/swc-linux-x64-musl": "12.3.0", - "@next/swc-win32-arm64-msvc": "12.3.0", - "@next/swc-win32-ia32-msvc": "12.3.0", - "@next/swc-win32-x64-msvc": "12.3.0" + "@next/swc-android-arm-eabi": "12.2.0", + "@next/swc-android-arm64": "12.2.0", + "@next/swc-darwin-arm64": "12.2.0", + "@next/swc-darwin-x64": "12.2.0", + "@next/swc-freebsd-x64": "12.2.0", + "@next/swc-linux-arm-gnueabihf": "12.2.0", + "@next/swc-linux-arm64-gnu": "12.2.0", + "@next/swc-linux-arm64-musl": "12.2.0", + "@next/swc-linux-x64-gnu": "12.2.0", + "@next/swc-linux-x64-musl": "12.2.0", + "@next/swc-win32-arm64-msvc": "12.2.0", + "@next/swc-win32-ia32-msvc": "12.2.0", + "@next/swc-win32-x64-msvc": "12.2.0" }, "peerDependencies": { "fibers": ">= 3.1.0", @@ -1252,26 +1252,20 @@ } }, "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.1.30", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.0.1" }, "engines": { "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, "node_modules/prelude-ls": { @@ -1463,9 +1457,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz", - "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", + "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", "engines": { "node": ">= 12.0.0" }, @@ -1545,9 +1539,9 @@ } }, "node_modules/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==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz", + "integrity": "sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } @@ -1635,86 +1629,86 @@ "dev": true }, "@next/env": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.0.tgz", - "integrity": "sha512-PTJpjAFVbzBQ9xXpzMTroShvD5YDIIy46jQ7d4LrWpY+/5a8H90Tm8hE3Hvkc5RBRspVo7kvEOnqQms0A+2Q6w==" + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.0.tgz", + "integrity": "sha512-/FCkDpL/8SodJEXvx/DYNlOD5ijTtkozf4PPulYPtkPOJaMPpBSOkzmsta4fnrnbdH6eZjbwbiXFdr6gSQCV4w==" }, "@next/swc-android-arm-eabi": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.0.tgz", - "integrity": "sha512-/PuirPnAKsYBw93w/7Q9hqy+KGOU9mjYprZ/faxMUJh/dc6v3rYLxkZKNG9nFPIW4QKNTCnhP40xF9hLnxO+xg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.0.tgz", + "integrity": "sha512-hbneH8DNRB2x0Nf5fPCYoL8a0osvdTCe4pvOc9Rv5CpDsoOlf8BWBs2OWpeP0U2BktGvIsuUhmISmdYYGyrvTw==", "optional": true }, "@next/swc-android-arm64": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.0.tgz", - "integrity": "sha512-OaI+FhAM6P9B6Ybwbn0Zl8YwWido0lLwhDBi9WiYCh4RQmIXAyVIoIJPHo4fP05+mXaJ/k1trvDvuURvHOq2qw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.0.tgz", + "integrity": "sha512-1eEk91JHjczcJomxJ8X0XaUeNcp5Lx1U2Ic7j15ouJ83oRX+3GIslOuabW2oPkSgXbHkThMClhirKpvG98kwZg==", "optional": true }, "@next/swc-darwin-arm64": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.0.tgz", - "integrity": "sha512-9s4d3Mhii+WFce8o8Jok7WC3Bawkr9wEUU++SJRptjU1L5tsfYJMrSYCACHLhZujziNDLyExe4Hwwsccps1sfg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.0.tgz", + "integrity": "sha512-x5U5gJd7ZvrEtTFnBld9O2bUlX8opu7mIQUqRzj7KeWzBwPhrIzTTsQXAiNqsaMuaRPvyHBVW/5d/6g6+89Y8g==", "optional": true }, "@next/swc-darwin-x64": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.0.tgz", - "integrity": "sha512-2scC4MqUTwGwok+wpVxP+zWp7WcCAVOtutki2E1n99rBOTnUOX6qXkgxSy083yBN6GqwuC/dzHeN7hIKjavfRA==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.0.tgz", + "integrity": "sha512-iwMNFsrAPjfedjKDv9AXPAV16PWIomP3qw/FfPaxkDVRbUls7BNdofBLzkQmqxqWh93WrawLwaqyXpJuAaiwJA==", "optional": true }, "@next/swc-freebsd-x64": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.0.tgz", - "integrity": "sha512-xAlruUREij/bFa+qsE1tmsP28t7vz02N4ZDHt2lh3uJUniE0Ne9idyIDLc1Ed0IF2RjfgOp4ZVunuS3OM0sngw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.0.tgz", + "integrity": "sha512-gRiAw8g3Akf6niTDLEm1Emfa7jXDjvaAj/crDO8hKASKA4Y1fS4kbi/tyWw5VtoFI4mUzRmCPmZ8eL0tBSG58A==", "optional": true }, "@next/swc-linux-arm-gnueabihf": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.0.tgz", - "integrity": "sha512-jin2S4VT/cugc2dSZEUIabhYDJNgrUh7fufbdsaAezgcQzqfdfJqfxl4E9GuafzB4cbRPTaqA0V5uqbp0IyGkQ==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.0.tgz", + "integrity": "sha512-/TJZkxaIpeEwnXh6A40trgwd40C5+LJroLUOEQwMOJdavLl62PjCA6dGl1pgooWLCIb5YdBQ0EG4ylzvLwS2+Q==", "optional": true }, "@next/swc-linux-arm64-gnu": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.0.tgz", - "integrity": "sha512-RqJHDKe0WImeUrdR0kayTkRWgp4vD/MS7g0r6Xuf8+ellOFH7JAAJffDW3ayuVZeMYOa7RvgNFcOoWnrTUl9Nw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.0.tgz", + "integrity": "sha512-++WAB4ElXCSOKG9H8r4ENF8EaV+w0QkrpjehmryFkQXmt5juVXz+nKDVlCRMwJU7A1O0Mie82XyEoOrf6Np1pA==", "optional": true }, "@next/swc-linux-arm64-musl": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.0.tgz", - "integrity": "sha512-nvNWoUieMjvDjpYJ/4SQe9lQs2xMj6ZRs8N+bmTrVu9leY2Fg3WD6W9p/1uU9hGO8u+OdF13wc4iRShu/WYIHg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.0.tgz", + "integrity": "sha512-XrqkHi/VglEn5zs2CYK6ofJGQySrd+Lr4YdmfJ7IhsCnMKkQY1ma9Hv5THwhZVof3e+6oFHrQ9bWrw9K4WTjFA==", "optional": true }, "@next/swc-linux-x64-gnu": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.0.tgz", - "integrity": "sha512-4ajhIuVU9PeQCMMhdDgZTLrHmjbOUFuIyg6J19hZqwEwDTSqQyrSLkbJs2Nd7IRiM6Ul/XyrtEFCpk4k+xD2+w==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.0.tgz", + "integrity": "sha512-MyhHbAKVjpn065WzRbqpLu2krj4kHLi6RITQdD1ee+uxq9r2yg5Qe02l24NxKW+1/lkmpusl4Y5Lks7rBiJn4w==", "optional": true }, "@next/swc-linux-x64-musl": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.0.tgz", - "integrity": "sha512-U092RBYbaGxoMAwpauePJEu2PuZSEoUCGJBvsptQr2/2XIMwAJDYM4c/M5NfYEsBr+yjvsYNsOpYfeQ88D82Yg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.0.tgz", + "integrity": "sha512-Tz1tJZ5egE0S/UqCd5V6ZPJsdSzv/8aa7FkwFmIJ9neLS8/00za+OY5pq470iZQbPrkTwpKzmfTTIPRVD5iqDg==", "optional": true }, "@next/swc-win32-arm64-msvc": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.0.tgz", - "integrity": "sha512-pzSzaxjDEJe67bUok9Nxf9rykbJfHXW0owICFsPBsqHyc+cr8vpF7g9e2APTCddtVhvjkga9ILoZJ9NxWS7Yiw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.0.tgz", + "integrity": "sha512-0iRO/CPMCdCYUzuH6wXLnsfJX1ykBX4emOOvH0qIgtiZM0nVYbF8lkEyY2ph4XcsurpinS+ziWuYCXVqrOSqiw==", "optional": true }, "@next/swc-win32-ia32-msvc": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.0.tgz", - "integrity": "sha512-MQGUpMbYhQmTZ06a9e0hPQJnxFMwETo2WtyAotY3GEzbNCQVbCGhsvqEKcl+ZEHgShlHXUWvSffq1ZscY6gK7A==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.0.tgz", + "integrity": "sha512-8A26RJVcJHwIKm8xo/qk2ePRquJ6WCI2keV2qOW/Qm+ZXrPXHMIWPYABae/nKN243YFBNyPiHytjX37VrcpUhg==", "optional": true }, "@next/swc-win32-x64-msvc": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.0.tgz", - "integrity": "sha512-C/nw6OgQpEULWqs+wgMHXGvlJLguPRFFGqR2TAqWBerQ8J+Sg3z1ZTqwelkSi4FoqStGuZ2UdFHIDN1ySmR1xA==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.0.tgz", + "integrity": "sha512-OI14ozFLThEV3ey6jE47zrzSTV/6eIMsvbwozo+XfdWqOPwQ7X00YkRx4GVMKMC0rM44oGS2gmwMKYpe4EblnA==", "optional": true }, "@nodelib/fs.scandir": { @@ -1744,9 +1738,9 @@ } }, "@swc/helpers": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", - "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.2.tgz", + "integrity": "sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==", "requires": { "tslib": "^2.4.0" } @@ -2264,29 +2258,29 @@ "dev": true }, "next": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/next/-/next-12.3.0.tgz", - "integrity": "sha512-GpzI6me9V1+XYtfK0Ae9WD0mKqHyzQlGq1xH1rzNIYMASo4Tkl4rTe9jSqtBpXFhOS33KohXs9ZY38Akkhdciw==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.0.tgz", + "integrity": "sha512-B4j7D3SHYopLYx6/Ark0fenwIar9tEaZZFAaxmKjgcMMexhVJzB3jt7X+6wcdXPPMeUD6r09weUtnDpjox/vIA==", "requires": { - "@next/env": "12.3.0", - "@next/swc-android-arm-eabi": "12.3.0", - "@next/swc-android-arm64": "12.3.0", - "@next/swc-darwin-arm64": "12.3.0", - "@next/swc-darwin-x64": "12.3.0", - "@next/swc-freebsd-x64": "12.3.0", - "@next/swc-linux-arm-gnueabihf": "12.3.0", - "@next/swc-linux-arm64-gnu": "12.3.0", - "@next/swc-linux-arm64-musl": "12.3.0", - "@next/swc-linux-x64-gnu": "12.3.0", - "@next/swc-linux-x64-musl": "12.3.0", - "@next/swc-win32-arm64-msvc": "12.3.0", - "@next/swc-win32-ia32-msvc": "12.3.0", - "@next/swc-win32-x64-msvc": "12.3.0", - "@swc/helpers": "0.4.11", + "@next/env": "12.2.0", + "@next/swc-android-arm-eabi": "12.2.0", + "@next/swc-android-arm64": "12.2.0", + "@next/swc-darwin-arm64": "12.2.0", + "@next/swc-darwin-x64": "12.2.0", + "@next/swc-freebsd-x64": "12.2.0", + "@next/swc-linux-arm-gnueabihf": "12.2.0", + "@next/swc-linux-arm64-gnu": "12.2.0", + "@next/swc-linux-arm64-musl": "12.2.0", + "@next/swc-linux-x64-gnu": "12.2.0", + "@next/swc-linux-x64-musl": "12.2.0", + "@next/swc-win32-arm64-msvc": "12.2.0", + "@next/swc-win32-ia32-msvc": "12.2.0", + "@next/swc-win32-x64-msvc": "12.2.0", + "@swc/helpers": "0.4.2", "caniuse-lite": "^1.0.30001332", - "postcss": "8.4.14", - "styled-jsx": "5.0.6", - "use-sync-external-store": "1.2.0" + "postcss": "8.4.5", + "styled-jsx": "5.0.2", + "use-sync-external-store": "1.1.0" } }, "once": { @@ -2365,13 +2359,13 @@ "dev": true }, "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.1.30", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.0.1" } }, "prelude-ls": { @@ -2471,9 +2465,9 @@ "dev": true }, "styled-jsx": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.6.tgz", - "integrity": "sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA==" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", + "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==" }, "supports-color": { "version": "7.2.0", @@ -2519,9 +2513,9 @@ } }, "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==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz", + "integrity": "sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==" }, "v8-compile-cache": { "version": "2.3.0", diff --git a/demos/canary/package.json b/demos/canary/package.json index 3399496ecb..c0f8c9cab3 100644 --- a/demos/canary/package.json +++ b/demos/canary/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "next": "^12.3.0", + "next": "^12.2.0", "react": "18.1.0", "react-dom": "18.1.0" }, From 8a6963425ec0c053fbac57bf31bfe0b4c6666b73 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Fri, 9 Sep 2022 09:30:03 +0100 Subject: [PATCH 6/8] chore: add test middleware --- demos/canary/middleware.ts | 13 + demos/custom-routes/middleware.ts | 30 ++ demos/server-components/package.json | 4 +- package-lock.json | 447 ++++++++++++++++++++++++++- 4 files changed, 490 insertions(+), 4 deletions(-) create mode 100644 demos/canary/middleware.ts create mode 100644 demos/custom-routes/middleware.ts diff --git a/demos/canary/middleware.ts b/demos/canary/middleware.ts new file mode 100644 index 0000000000..d695d442df --- /dev/null +++ b/demos/canary/middleware.ts @@ -0,0 +1,13 @@ +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' + +export async function middleware(req: NextRequest) { + const res = NextResponse.rewrite(new URL('/', req.url)) + res.headers.set('x-response-header', 'set in middleware') + res.headers.set('x-is-deno', 'Deno' in globalThis ? 'true' : 'false') + return res +} + +export const config = { + matcher: ['/foo'], +} diff --git a/demos/custom-routes/middleware.ts b/demos/custom-routes/middleware.ts new file mode 100644 index 0000000000..339b66dcf0 --- /dev/null +++ b/demos/custom-routes/middleware.ts @@ -0,0 +1,30 @@ +import { NextResponse } from 'next/server' +import type { NextRequest } from 'next/server' + +export async function middleware(req: NextRequest) { + const res = NextResponse.rewrite(new URL('/', req.url)) + res.headers.set('x-response-header', 'set in middleware') + res.headers.set('x-is-deno', 'Deno' in globalThis ? 'true' : 'false') + return res +} + +export const config = { + matcher: [ + '/foo', + { source: '/bar' }, + { + source: '/baz', + has: [ + { + type: 'header', + key: 'x-my-header', + value: 'my-value', + }, + ], + }, + { + source: '/en/asdf', + locale: false, + }, + ], +} diff --git a/demos/server-components/package.json b/demos/server-components/package.json index a43cb21306..293ab369c0 100644 --- a/demos/server-components/package.json +++ b/demos/server-components/package.json @@ -11,7 +11,7 @@ "private": true, "dependencies": { "ms": "2.1.3", - "next": "^12.3.0", + "next": "^12.2.1", "react": "^18.0.0", "react-dom": "^18.0.0" }, @@ -24,4 +24,4 @@ "npm-run-all": "^4.1.5", "typescript": "^4.6.3" } -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index f732657aa9..91fec7d765 100644 --- a/package-lock.json +++ b/package-lock.json @@ -321,7 +321,7 @@ "license": "MIT", "dependencies": { "ms": "2.1.3", - "next": "^12.3.0", + "next": "^12.2.1", "react": "^18.0.0", "react-dom": "^18.0.0" }, @@ -335,6 +335,310 @@ "typescript": "^4.6.3" } }, + "demos/server-components/node_modules/@next/env": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.1.tgz", + "integrity": "sha512-lz3TJKIvbdGRUsUr/+h3vy7XvBNGTGzHwhurk5AtqrABj4Zyo70xbshcI7YQTNUK4x9OA/E+SOcXvVx0DHmFRw==" + }, + "demos/server-components/node_modules/@next/swc-android-arm-eabi": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.1.tgz", + "integrity": "sha512-Gk7fvo1McA9gues9hixoeoxKnvvUusW0P+fya4ZAU3us+bQm1EqSoDrnOrUsdsgwIPQ3HobOJPY5C3xvKOl/tA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-android-arm64": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.1.tgz", + "integrity": "sha512-J+QwWRm2+bOtacZFahoplX3dCYGDpou86VjfcE+M5/E0UCtBmZ6JvItyV4scK8wSKHQQUWq8DmOEm/C0lhsSRQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-darwin-arm64": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.1.tgz", + "integrity": "sha512-teSfpKHdHQER4FVVCdvS0fHff35Gh4LB2DZ2eNAateIluP2Gnl+tT881MeM4Knvl2Mvm3Z3vtSJNthVoveJnMA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-darwin-x64": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.1.tgz", + "integrity": "sha512-flA1H+9krrINtdWoXBzeESkdIV34OKX0+Lnqd90J1nsERTXntYy6CNOMxMtv1otAcnFy7EHYJQIL8URuu/2XXg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-freebsd-x64": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.1.tgz", + "integrity": "sha512-SkAjp7B7aBxAsRVMZGiAp/qMkh65PLzYuLBTsBSu+4fxFuKF7MAEgaIUhvC8zzD58A+Y9yrY/3813bhtrwkcuA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-linux-arm-gnueabihf": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.1.tgz", + "integrity": "sha512-V7ov2LXrLWuYVH/syzrzpmwWumg5rCh0siwOPNCRzVkrpgP8WoIRNdeZ/NQIj0ng+kq7gDF1jib583Lk0wbDeQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-linux-arm64-gnu": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.1.tgz", + "integrity": "sha512-HlnDQD3r4YqCj2gu6uo86oEM0ixBsyKLaPcZcGwWAD5mFG5R4zzTZG7BO2wJkGWmkzijHluE14dlTmfzc8jdEQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-linux-arm64-musl": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.1.tgz", + "integrity": "sha512-P8AkWd4RHbuF24ol3jk2akXpntcDI0gv5uD7eMpAOXb8W2A6y/sv0tKNSGUV3efSutOyu23jNn2EiTNxHgU4NQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-linux-x64-gnu": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.1.tgz", + "integrity": "sha512-ZbsM+rIMqK6xi3lovspzPJoIPre3LglKrCXKLkln7rD0uiymzfLhS2VCj8u4qRynz22iAzuI4mJNpZa3AsJFrA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-linux-x64-musl": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.1.tgz", + "integrity": "sha512-JeATguMe37bviPwkIUjO7T3kcefMBQwJFLhkFTaJYGmPm12EsW1FtKcg87AI87xdGvfrHQKlM3phNaG/dkneTQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-win32-arm64-msvc": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.1.tgz", + "integrity": "sha512-8dal/MdrVshDKYBtloJw/RhJx140KUoRRYoRfpJ9oAdP8UXBdR0haKfg5EdOy98t8Q76apArxPsK7DfwoR1f3w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-win32-ia32-msvc": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.1.tgz", + "integrity": "sha512-uSAoOBpCp4oxVD9gTY1f27hr9xNLEOCglxZPH1+FonHpM5n9Sp4H01uQHWE/Y26iHmJeUJAWxtRxEYylnO4U9A==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@next/swc-win32-x64-msvc": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.1.tgz", + "integrity": "sha512-gx4aLMAZAVjtShiCrUSszoxnzBWJWf09Lkey6mcc0jFZjbz4xkyDbp53V229DtOYTUL4t0IZJ0I7+ftQ5CYIjg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "demos/server-components/node_modules/@swc/helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.2.tgz", + "integrity": "sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "demos/server-components/node_modules/next": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.1.tgz", + "integrity": "sha512-090KB5CZRlLG/GWxb8tA1ZFwqL8OfpUtH4mXA7POuisa6NL5ihiAZhfk5nRBdPHvkXuSt0n7zQaVym6SrT3Wiw==", + "dependencies": { + "@next/env": "12.2.1", + "@swc/helpers": "0.4.2", + "caniuse-lite": "^1.0.30001332", + "postcss": "8.4.5", + "styled-jsx": "5.0.2", + "use-sync-external-store": "1.1.0" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=12.22.0" + }, + "optionalDependencies": { + "@next/swc-android-arm-eabi": "12.2.1", + "@next/swc-android-arm64": "12.2.1", + "@next/swc-darwin-arm64": "12.2.1", + "@next/swc-darwin-x64": "12.2.1", + "@next/swc-freebsd-x64": "12.2.1", + "@next/swc-linux-arm-gnueabihf": "12.2.1", + "@next/swc-linux-arm64-gnu": "12.2.1", + "@next/swc-linux-arm64-musl": "12.2.1", + "@next/swc-linux-x64-gnu": "12.2.1", + "@next/swc-linux-x64-musl": "12.2.1", + "@next/swc-win32-arm64-msvc": "12.2.1", + "@next/swc-win32-ia32-msvc": "12.2.1", + "@next/swc-win32-x64-msvc": "12.2.1" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^6.0.0 || ^7.0.0", + "react": "^17.0.2 || ^18.0.0-0", + "react-dom": "^17.0.2 || ^18.0.0-0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "demos/server-components/node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "demos/server-components/node_modules/styled-jsx": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", + "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "demos/server-components/node_modules/use-sync-external-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz", + "integrity": "sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "demos/static-root": { "name": "static-root-demo", "version": "1.0.0", @@ -38144,11 +38448,150 @@ "@types/node": "^17.0.25", "husky": "^7.0.4", "ms": "2.1.3", - "next": "^12.3.0", + "next": "12.2.1", "npm-run-all": "^4.1.5", "react": "^18.0.0", "react-dom": "^18.0.0", "typescript": "^4.6.3" + }, + "dependencies": { + "@next/env": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.1.tgz", + "integrity": "sha512-lz3TJKIvbdGRUsUr/+h3vy7XvBNGTGzHwhurk5AtqrABj4Zyo70xbshcI7YQTNUK4x9OA/E+SOcXvVx0DHmFRw==" + }, + "@next/swc-android-arm-eabi": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.1.tgz", + "integrity": "sha512-Gk7fvo1McA9gues9hixoeoxKnvvUusW0P+fya4ZAU3us+bQm1EqSoDrnOrUsdsgwIPQ3HobOJPY5C3xvKOl/tA==", + "optional": true + }, + "@next/swc-android-arm64": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.1.tgz", + "integrity": "sha512-J+QwWRm2+bOtacZFahoplX3dCYGDpou86VjfcE+M5/E0UCtBmZ6JvItyV4scK8wSKHQQUWq8DmOEm/C0lhsSRQ==", + "optional": true + }, + "@next/swc-darwin-arm64": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.1.tgz", + "integrity": "sha512-teSfpKHdHQER4FVVCdvS0fHff35Gh4LB2DZ2eNAateIluP2Gnl+tT881MeM4Knvl2Mvm3Z3vtSJNthVoveJnMA==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.1.tgz", + "integrity": "sha512-flA1H+9krrINtdWoXBzeESkdIV34OKX0+Lnqd90J1nsERTXntYy6CNOMxMtv1otAcnFy7EHYJQIL8URuu/2XXg==", + "optional": true + }, + "@next/swc-freebsd-x64": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.1.tgz", + "integrity": "sha512-SkAjp7B7aBxAsRVMZGiAp/qMkh65PLzYuLBTsBSu+4fxFuKF7MAEgaIUhvC8zzD58A+Y9yrY/3813bhtrwkcuA==", + "optional": true + }, + "@next/swc-linux-arm-gnueabihf": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.1.tgz", + "integrity": "sha512-V7ov2LXrLWuYVH/syzrzpmwWumg5rCh0siwOPNCRzVkrpgP8WoIRNdeZ/NQIj0ng+kq7gDF1jib583Lk0wbDeQ==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.1.tgz", + "integrity": "sha512-HlnDQD3r4YqCj2gu6uo86oEM0ixBsyKLaPcZcGwWAD5mFG5R4zzTZG7BO2wJkGWmkzijHluE14dlTmfzc8jdEQ==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.1.tgz", + "integrity": "sha512-P8AkWd4RHbuF24ol3jk2akXpntcDI0gv5uD7eMpAOXb8W2A6y/sv0tKNSGUV3efSutOyu23jNn2EiTNxHgU4NQ==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.1.tgz", + "integrity": "sha512-ZbsM+rIMqK6xi3lovspzPJoIPre3LglKrCXKLkln7rD0uiymzfLhS2VCj8u4qRynz22iAzuI4mJNpZa3AsJFrA==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.1.tgz", + "integrity": "sha512-JeATguMe37bviPwkIUjO7T3kcefMBQwJFLhkFTaJYGmPm12EsW1FtKcg87AI87xdGvfrHQKlM3phNaG/dkneTQ==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.1.tgz", + "integrity": "sha512-8dal/MdrVshDKYBtloJw/RhJx140KUoRRYoRfpJ9oAdP8UXBdR0haKfg5EdOy98t8Q76apArxPsK7DfwoR1f3w==", + "optional": true + }, + "@next/swc-win32-ia32-msvc": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.1.tgz", + "integrity": "sha512-uSAoOBpCp4oxVD9gTY1f27hr9xNLEOCglxZPH1+FonHpM5n9Sp4H01uQHWE/Y26iHmJeUJAWxtRxEYylnO4U9A==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.1.tgz", + "integrity": "sha512-gx4aLMAZAVjtShiCrUSszoxnzBWJWf09Lkey6mcc0jFZjbz4xkyDbp53V229DtOYTUL4t0IZJ0I7+ftQ5CYIjg==", + "optional": true + }, + "@swc/helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.2.tgz", + "integrity": "sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==", + "requires": { + "tslib": "^2.4.0" + } + }, + "next": { + "version": "12.2.1", + "resolved": "https://registry.npmjs.org/next/-/next-12.2.1.tgz", + "integrity": "sha512-090KB5CZRlLG/GWxb8tA1ZFwqL8OfpUtH4mXA7POuisa6NL5ihiAZhfk5nRBdPHvkXuSt0n7zQaVym6SrT3Wiw==", + "requires": { + "@next/env": "12.2.1", + "@next/swc-android-arm-eabi": "12.2.1", + "@next/swc-android-arm64": "12.2.1", + "@next/swc-darwin-arm64": "12.2.1", + "@next/swc-darwin-x64": "12.2.1", + "@next/swc-freebsd-x64": "12.2.1", + "@next/swc-linux-arm-gnueabihf": "12.2.1", + "@next/swc-linux-arm64-gnu": "12.2.1", + "@next/swc-linux-arm64-musl": "12.2.1", + "@next/swc-linux-x64-gnu": "12.2.1", + "@next/swc-linux-x64-musl": "12.2.1", + "@next/swc-win32-arm64-msvc": "12.2.1", + "@next/swc-win32-ia32-msvc": "12.2.1", + "@next/swc-win32-x64-msvc": "12.2.1", + "@swc/helpers": "0.4.2", + "caniuse-lite": "^1.0.30001332", + "postcss": "8.4.5", + "styled-jsx": "5.0.2", + "use-sync-external-store": "1.1.0" + } + }, + "postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + } + }, + "styled-jsx": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", + "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==" + }, + "use-sync-external-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz", + "integrity": "sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==" + } } }, "set-blocking": { From f0fb695fe9b659d53806b7ca83f9b380f24d1360 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Fri, 9 Sep 2022 11:09:18 +0100 Subject: [PATCH 7/8] chore: add e2e tests --- .../integration/middleware/standard.spec.ts | 23 + demos/custom-routes/middleware.ts | 30 -- demos/middleware/middleware.ts | 28 ++ demos/middleware/pages/conditional.js | 11 + package-lock.json | 445 +----------------- 5 files changed, 63 insertions(+), 474 deletions(-) delete mode 100644 demos/custom-routes/middleware.ts create mode 100644 demos/middleware/pages/conditional.js diff --git a/cypress/integration/middleware/standard.spec.ts b/cypress/integration/middleware/standard.spec.ts index dd6b38dd97..6bc197bfa8 100644 --- a/cypress/integration/middleware/standard.spec.ts +++ b/cypress/integration/middleware/standard.spec.ts @@ -20,3 +20,26 @@ describe('Standard middleware', () => { }) }) }) + +describe('Middleware matchers', () => { + it('does not apply "has" matcher when headers are not sent', () => { + cy.request('/conditional').then((response) => { + expect(response.headers).not.to.have.property('x-is-deno', 'true') + expect(response.headers).not.to.have.property('x-modified-edge', 'true') + }) + }) + + it('matches when headers are sent', () => { + cy.request({ url: '/conditional', headers: { 'x-my-header': 'my-value' } }).then((response) => { + expect(response.headers).to.have.property('x-is-deno', 'true') + expect(response.headers).to.have.property('x-modified-edge', 'true') + }) + }) + + it('matches when headers are sent', () => { + cy.request('/_next/data/build-id/static.json').then((response) => { + expect(response.headers).to.have.property('x-is-deno', 'true') + expect(response.headers).to.have.property('x-modified-edge', 'true') + }) + }) +}) diff --git a/demos/custom-routes/middleware.ts b/demos/custom-routes/middleware.ts deleted file mode 100644 index 339b66dcf0..0000000000 --- a/demos/custom-routes/middleware.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { NextResponse } from 'next/server' -import type { NextRequest } from 'next/server' - -export async function middleware(req: NextRequest) { - const res = NextResponse.rewrite(new URL('/', req.url)) - res.headers.set('x-response-header', 'set in middleware') - res.headers.set('x-is-deno', 'Deno' in globalThis ? 'true' : 'false') - return res -} - -export const config = { - matcher: [ - '/foo', - { source: '/bar' }, - { - source: '/baz', - has: [ - { - type: 'header', - key: 'x-my-header', - value: 'my-value', - }, - ], - }, - { - source: '/en/asdf', - locale: false, - }, - ], -} diff --git a/demos/middleware/middleware.ts b/demos/middleware/middleware.ts index 1344f60949..f670c665ae 100644 --- a/demos/middleware/middleware.ts +++ b/demos/middleware/middleware.ts @@ -18,6 +18,8 @@ export async function middleware(req: NextRequest) { res.setPageProp('message', message) res.setPageProp('showAd', true) + res.headers.set('x-modified-edge', 'true') + res.headers.set('x-is-deno', 'Deno' in globalThis ? 'true' : 'false') return res } @@ -39,6 +41,13 @@ export async function middleware(req: NextRequest) { return response } + if (pathname.startsWith('/conditional')) { + response = NextResponse.next() + response.headers.set('x-modified-edge', 'true') + response.headers.set('x-is-deno', 'Deno' in globalThis ? 'true' : 'false') + return response + } + if (pathname.startsWith('/shows')) { if (pathname.startsWith('/shows/rewrite-absolute')) { response = NextResponse.rewrite(new URL('/shows/100', req.url)) @@ -79,3 +88,22 @@ export async function middleware(req: NextRequest) { return response } } + +export const config = { + matcher: [ + '/api/:all*', + '/headers', + { source: '/static' }, + { source: '/shows/:all*' }, + { + source: '/conditional', + has: [ + { + type: 'header', + key: 'x-my-header', + value: 'my-value', + }, + ], + }, + ], +} diff --git a/demos/middleware/pages/conditional.js b/demos/middleware/pages/conditional.js new file mode 100644 index 0000000000..97d062839d --- /dev/null +++ b/demos/middleware/pages/conditional.js @@ -0,0 +1,11 @@ +import * as React from 'react' + +const Page = () => { + return ( +
+

Will set middleware headers only if request header is set

+
+ ) +} + +export default Page diff --git a/package-lock.json b/package-lock.json index 91fec7d765..36cbcde026 100644 --- a/package-lock.json +++ b/package-lock.json @@ -335,310 +335,6 @@ "typescript": "^4.6.3" } }, - "demos/server-components/node_modules/@next/env": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.1.tgz", - "integrity": "sha512-lz3TJKIvbdGRUsUr/+h3vy7XvBNGTGzHwhurk5AtqrABj4Zyo70xbshcI7YQTNUK4x9OA/E+SOcXvVx0DHmFRw==" - }, - "demos/server-components/node_modules/@next/swc-android-arm-eabi": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.1.tgz", - "integrity": "sha512-Gk7fvo1McA9gues9hixoeoxKnvvUusW0P+fya4ZAU3us+bQm1EqSoDrnOrUsdsgwIPQ3HobOJPY5C3xvKOl/tA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-android-arm64": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.1.tgz", - "integrity": "sha512-J+QwWRm2+bOtacZFahoplX3dCYGDpou86VjfcE+M5/E0UCtBmZ6JvItyV4scK8wSKHQQUWq8DmOEm/C0lhsSRQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-darwin-arm64": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.1.tgz", - "integrity": "sha512-teSfpKHdHQER4FVVCdvS0fHff35Gh4LB2DZ2eNAateIluP2Gnl+tT881MeM4Knvl2Mvm3Z3vtSJNthVoveJnMA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-darwin-x64": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.1.tgz", - "integrity": "sha512-flA1H+9krrINtdWoXBzeESkdIV34OKX0+Lnqd90J1nsERTXntYy6CNOMxMtv1otAcnFy7EHYJQIL8URuu/2XXg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-freebsd-x64": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.1.tgz", - "integrity": "sha512-SkAjp7B7aBxAsRVMZGiAp/qMkh65PLzYuLBTsBSu+4fxFuKF7MAEgaIUhvC8zzD58A+Y9yrY/3813bhtrwkcuA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.1.tgz", - "integrity": "sha512-V7ov2LXrLWuYVH/syzrzpmwWumg5rCh0siwOPNCRzVkrpgP8WoIRNdeZ/NQIj0ng+kq7gDF1jib583Lk0wbDeQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.1.tgz", - "integrity": "sha512-HlnDQD3r4YqCj2gu6uo86oEM0ixBsyKLaPcZcGwWAD5mFG5R4zzTZG7BO2wJkGWmkzijHluE14dlTmfzc8jdEQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-linux-arm64-musl": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.1.tgz", - "integrity": "sha512-P8AkWd4RHbuF24ol3jk2akXpntcDI0gv5uD7eMpAOXb8W2A6y/sv0tKNSGUV3efSutOyu23jNn2EiTNxHgU4NQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-linux-x64-gnu": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.1.tgz", - "integrity": "sha512-ZbsM+rIMqK6xi3lovspzPJoIPre3LglKrCXKLkln7rD0uiymzfLhS2VCj8u4qRynz22iAzuI4mJNpZa3AsJFrA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-linux-x64-musl": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.1.tgz", - "integrity": "sha512-JeATguMe37bviPwkIUjO7T3kcefMBQwJFLhkFTaJYGmPm12EsW1FtKcg87AI87xdGvfrHQKlM3phNaG/dkneTQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.1.tgz", - "integrity": "sha512-8dal/MdrVshDKYBtloJw/RhJx140KUoRRYoRfpJ9oAdP8UXBdR0haKfg5EdOy98t8Q76apArxPsK7DfwoR1f3w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.1.tgz", - "integrity": "sha512-uSAoOBpCp4oxVD9gTY1f27hr9xNLEOCglxZPH1+FonHpM5n9Sp4H01uQHWE/Y26iHmJeUJAWxtRxEYylnO4U9A==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@next/swc-win32-x64-msvc": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.1.tgz", - "integrity": "sha512-gx4aLMAZAVjtShiCrUSszoxnzBWJWf09Lkey6mcc0jFZjbz4xkyDbp53V229DtOYTUL4t0IZJ0I7+ftQ5CYIjg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "demos/server-components/node_modules/@swc/helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.2.tgz", - "integrity": "sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "demos/server-components/node_modules/next": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.1.tgz", - "integrity": "sha512-090KB5CZRlLG/GWxb8tA1ZFwqL8OfpUtH4mXA7POuisa6NL5ihiAZhfk5nRBdPHvkXuSt0n7zQaVym6SrT3Wiw==", - "dependencies": { - "@next/env": "12.2.1", - "@swc/helpers": "0.4.2", - "caniuse-lite": "^1.0.30001332", - "postcss": "8.4.5", - "styled-jsx": "5.0.2", - "use-sync-external-store": "1.1.0" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=12.22.0" - }, - "optionalDependencies": { - "@next/swc-android-arm-eabi": "12.2.1", - "@next/swc-android-arm64": "12.2.1", - "@next/swc-darwin-arm64": "12.2.1", - "@next/swc-darwin-x64": "12.2.1", - "@next/swc-freebsd-x64": "12.2.1", - "@next/swc-linux-arm-gnueabihf": "12.2.1", - "@next/swc-linux-arm64-gnu": "12.2.1", - "@next/swc-linux-arm64-musl": "12.2.1", - "@next/swc-linux-x64-gnu": "12.2.1", - "@next/swc-linux-x64-musl": "12.2.1", - "@next/swc-win32-arm64-msvc": "12.2.1", - "@next/swc-win32-ia32-msvc": "12.2.1", - "@next/swc-win32-x64-msvc": "12.2.1" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^6.0.0 || ^7.0.0", - "react": "^17.0.2 || ^18.0.0-0", - "react-dom": "^17.0.2 || ^18.0.0-0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "demos/server-components/node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "demos/server-components/node_modules/styled-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", - "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "demos/server-components/node_modules/use-sync-external-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz", - "integrity": "sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "demos/static-root": { "name": "static-root-demo", "version": "1.0.0", @@ -38448,150 +38144,11 @@ "@types/node": "^17.0.25", "husky": "^7.0.4", "ms": "2.1.3", - "next": "12.2.1", + "next": "^12.2.1", "npm-run-all": "^4.1.5", "react": "^18.0.0", "react-dom": "^18.0.0", "typescript": "^4.6.3" - }, - "dependencies": { - "@next/env": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.1.tgz", - "integrity": "sha512-lz3TJKIvbdGRUsUr/+h3vy7XvBNGTGzHwhurk5AtqrABj4Zyo70xbshcI7YQTNUK4x9OA/E+SOcXvVx0DHmFRw==" - }, - "@next/swc-android-arm-eabi": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.1.tgz", - "integrity": "sha512-Gk7fvo1McA9gues9hixoeoxKnvvUusW0P+fya4ZAU3us+bQm1EqSoDrnOrUsdsgwIPQ3HobOJPY5C3xvKOl/tA==", - "optional": true - }, - "@next/swc-android-arm64": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.1.tgz", - "integrity": "sha512-J+QwWRm2+bOtacZFahoplX3dCYGDpou86VjfcE+M5/E0UCtBmZ6JvItyV4scK8wSKHQQUWq8DmOEm/C0lhsSRQ==", - "optional": true - }, - "@next/swc-darwin-arm64": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.1.tgz", - "integrity": "sha512-teSfpKHdHQER4FVVCdvS0fHff35Gh4LB2DZ2eNAateIluP2Gnl+tT881MeM4Knvl2Mvm3Z3vtSJNthVoveJnMA==", - "optional": true - }, - "@next/swc-darwin-x64": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.1.tgz", - "integrity": "sha512-flA1H+9krrINtdWoXBzeESkdIV34OKX0+Lnqd90J1nsERTXntYy6CNOMxMtv1otAcnFy7EHYJQIL8URuu/2XXg==", - "optional": true - }, - "@next/swc-freebsd-x64": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.1.tgz", - "integrity": "sha512-SkAjp7B7aBxAsRVMZGiAp/qMkh65PLzYuLBTsBSu+4fxFuKF7MAEgaIUhvC8zzD58A+Y9yrY/3813bhtrwkcuA==", - "optional": true - }, - "@next/swc-linux-arm-gnueabihf": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.1.tgz", - "integrity": "sha512-V7ov2LXrLWuYVH/syzrzpmwWumg5rCh0siwOPNCRzVkrpgP8WoIRNdeZ/NQIj0ng+kq7gDF1jib583Lk0wbDeQ==", - "optional": true - }, - "@next/swc-linux-arm64-gnu": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.1.tgz", - "integrity": "sha512-HlnDQD3r4YqCj2gu6uo86oEM0ixBsyKLaPcZcGwWAD5mFG5R4zzTZG7BO2wJkGWmkzijHluE14dlTmfzc8jdEQ==", - "optional": true - }, - "@next/swc-linux-arm64-musl": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.1.tgz", - "integrity": "sha512-P8AkWd4RHbuF24ol3jk2akXpntcDI0gv5uD7eMpAOXb8W2A6y/sv0tKNSGUV3efSutOyu23jNn2EiTNxHgU4NQ==", - "optional": true - }, - "@next/swc-linux-x64-gnu": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.1.tgz", - "integrity": "sha512-ZbsM+rIMqK6xi3lovspzPJoIPre3LglKrCXKLkln7rD0uiymzfLhS2VCj8u4qRynz22iAzuI4mJNpZa3AsJFrA==", - "optional": true - }, - "@next/swc-linux-x64-musl": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.1.tgz", - "integrity": "sha512-JeATguMe37bviPwkIUjO7T3kcefMBQwJFLhkFTaJYGmPm12EsW1FtKcg87AI87xdGvfrHQKlM3phNaG/dkneTQ==", - "optional": true - }, - "@next/swc-win32-arm64-msvc": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.1.tgz", - "integrity": "sha512-8dal/MdrVshDKYBtloJw/RhJx140KUoRRYoRfpJ9oAdP8UXBdR0haKfg5EdOy98t8Q76apArxPsK7DfwoR1f3w==", - "optional": true - }, - "@next/swc-win32-ia32-msvc": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.1.tgz", - "integrity": "sha512-uSAoOBpCp4oxVD9gTY1f27hr9xNLEOCglxZPH1+FonHpM5n9Sp4H01uQHWE/Y26iHmJeUJAWxtRxEYylnO4U9A==", - "optional": true - }, - "@next/swc-win32-x64-msvc": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.1.tgz", - "integrity": "sha512-gx4aLMAZAVjtShiCrUSszoxnzBWJWf09Lkey6mcc0jFZjbz4xkyDbp53V229DtOYTUL4t0IZJ0I7+ftQ5CYIjg==", - "optional": true - }, - "@swc/helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.2.tgz", - "integrity": "sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==", - "requires": { - "tslib": "^2.4.0" - } - }, - "next": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/next/-/next-12.2.1.tgz", - "integrity": "sha512-090KB5CZRlLG/GWxb8tA1ZFwqL8OfpUtH4mXA7POuisa6NL5ihiAZhfk5nRBdPHvkXuSt0n7zQaVym6SrT3Wiw==", - "requires": { - "@next/env": "12.2.1", - "@next/swc-android-arm-eabi": "12.2.1", - "@next/swc-android-arm64": "12.2.1", - "@next/swc-darwin-arm64": "12.2.1", - "@next/swc-darwin-x64": "12.2.1", - "@next/swc-freebsd-x64": "12.2.1", - "@next/swc-linux-arm-gnueabihf": "12.2.1", - "@next/swc-linux-arm64-gnu": "12.2.1", - "@next/swc-linux-arm64-musl": "12.2.1", - "@next/swc-linux-x64-gnu": "12.2.1", - "@next/swc-linux-x64-musl": "12.2.1", - "@next/swc-win32-arm64-msvc": "12.2.1", - "@next/swc-win32-ia32-msvc": "12.2.1", - "@next/swc-win32-x64-msvc": "12.2.1", - "@swc/helpers": "0.4.2", - "caniuse-lite": "^1.0.30001332", - "postcss": "8.4.5", - "styled-jsx": "5.0.2", - "use-sync-external-store": "1.1.0" - } - }, - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "styled-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", - "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==" - }, - "use-sync-external-store": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz", - "integrity": "sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==" - } } }, "set-blocking": { From 9b1ae7bc8d384485e9462feefd4c01428ee3a9ef Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Fri, 9 Sep 2022 13:11:53 +0100 Subject: [PATCH 8/8] fix: handle json headers --- packages/runtime/src/templates/edge-shared/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/runtime/src/templates/edge-shared/utils.ts b/packages/runtime/src/templates/edge-shared/utils.ts index 9897c77c03..b741bab623 100644 --- a/packages/runtime/src/templates/edge-shared/utils.ts +++ b/packages/runtime/src/templates/edge-shared/utils.ts @@ -83,7 +83,7 @@ export const buildResponse = async ({ const transformed = response.dataTransforms.reduce((prev, transform) => { return transform(prev) }, props) - return context.json(transformed) + return new Response(JSON.stringify(transformed), response) } // This var will hold the contents of the script tag let buffer = ''