diff --git a/packages/next/next-server/server/api-utils.ts b/packages/next/next-server/server/api-utils.ts index c13feb508c0e16290a7e35876ec1eaa65d771422..f1e933e26da7734f86bd8b625fcee6cba4c49a24 100644 --- a/packages/next/next-server/server/api-utils.ts +++ b/packages/next/next-server/server/api-utils.ts @@ -1,5 +1,5 @@ import { parse } from 'next/dist/compiled/content-type' -import { CookieSerializeOptions } from 'cookie' +import { CookieSerializeOptions } from 'next/dist/compiled/cookie' import { IncomingMessage, ServerResponse } from 'http' import { PageConfig } from 'next/types' import getRawBody from 'raw-body' @@ -181,7 +181,7 @@ export function getCookieParser(req: IncomingMessage) { return {} } - const { parse } = require('cookie') + const { parse } = require('next/dist/compiled/cookie') return parse(Array.isArray(header) ? header.join(';') : header) } } @@ -384,7 +384,9 @@ function setPreviewData( ) } - const { serialize } = require('cookie') as typeof import('cookie') + const { + serialize, + } = require('next/dist/compiled/cookie') as typeof import('cookie') const previous = res.getHeader('Set-Cookie') res.setHeader(`Set-Cookie`, [ ...(typeof previous === 'string' @@ -417,7 +419,9 @@ function clearPreviewData(res: NextApiResponse): NextApiResponse { return res } - const { serialize } = require('cookie') as typeof import('cookie') + const { + serialize, + } = require('next/dist/compiled/cookie') as typeof import('cookie') const previous = res.getHeader('Set-Cookie') res.setHeader(`Set-Cookie`, [ ...(typeof previous === 'string' diff --git a/packages/next/package.json b/packages/next/package.json index 70a07dcbdad17e14ada8099894ee1e8517e0e76a..ae9672e3181f7032915e11b3c7f9d64fdb7570aa 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -63,7 +63,6 @@ "autodll-webpack-plugin": "0.4.2", "cache-loader": "4.1.0", "conf": "5.0.0", - "cookie": "0.4.0", "css-loader": "3.3.0", "cssnano-simple": "1.0.0", "devalue": "2.0.1", @@ -191,6 +190,7 @@ "ci-info": "2.0.0", "compression": "1.7.4", "content-type": "1.0.4", + "cookie": "0.4.0", "dotenv": "8.2.0", "dotenv-expand": "5.1.0", "nanoid": "2.0.3", diff --git a/packages/next/taskfile.js b/packages/next/taskfile.js index 087adb2ff27fc8014b16ac4ea4195fffb042d4a9..eccf4ac69b65bb77cd8968bd0cd82e8b370378c3 100644 --- a/packages/next/taskfile.js +++ b/packages/next/taskfile.js @@ -284,6 +284,13 @@ export async function ncc_content_type(task, opts) { .target('dist/compiled/content-type') } // eslint-disable-next-line camelcase +export async function ncc_cookie(task, opts) { + await task + .source(opts.src || relative(__dirname, require.resolve('cookie'))) + .ncc({ packageName: 'cookie' }) + .target('dist/compiled/cookie') +} +// eslint-disable-next-line camelcase export async function ncc_dotenv(task, opts) { await task .source(opts.src || relative(__dirname, require.resolve('dotenv'))) @@ -357,6 +364,7 @@ export async function precompile(task) { 'ncc_ci_info', 'ncc_compression', 'ncc_content_type', + 'ncc_cookie', 'ncc_dotenv', 'ncc_dotenv_expand', 'ncc_nanoid', diff --git a/packages/next/types/misc.d.ts b/packages/next/types/misc.d.ts index d659317f3a36d95af33e4822024253cb79f19c21..eff1a265efec7e39413d021bcba6006b7ffa55e3 100644 --- a/packages/next/types/misc.d.ts +++ b/packages/next/types/misc.d.ts @@ -71,6 +71,10 @@ declare module 'next/dist/compiled/content-type' { import m from 'content-type' export = m } +declare module 'next/dist/compiled/cookie' { + import m from 'cookie' + export = m +} declare module 'next/dist/compiled/dotenv' { import m from 'dotenv' export = m