next 15.2.0-canary.26 → 15.2.0-canary.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of next might be problematic. Click here for more details.
- package/dist/bin/next +1 -1
- package/dist/build/index.js +2 -2
- package/dist/build/swc/index.js +1 -1
- package/dist/build/webpack/plugins/eval-source-map-dev-tool-plugin.js +0 -1
- package/dist/build/webpack/plugins/eval-source-map-dev-tool-plugin.js.map +1 -1
- package/dist/build/webpack-config.js +2 -2
- package/dist/client/app-bootstrap.js +1 -1
- package/dist/client/index.js +1 -1
- package/dist/compiled/next-server/app-page-experimental.runtime.dev.js +9 -9
- package/dist/compiled/next-server/app-page-experimental.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/app-page.runtime.dev.js +9 -9
- package/dist/compiled/next-server/app-page.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/app-route-experimental.runtime.dev.js +3 -3
- package/dist/compiled/next-server/app-route-experimental.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/app-route.runtime.dev.js +3 -3
- package/dist/compiled/next-server/app-route.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/dist_client_dev_noop-turbopack-hmr_js-experimental.runtime.dev.js +1 -1
- package/dist/compiled/next-server/dist_client_dev_noop-turbopack-hmr_js-experimental.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/dist_client_dev_noop-turbopack-hmr_js.runtime.dev.js +1 -1
- package/dist/compiled/next-server/dist_client_dev_noop-turbopack-hmr_js.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/pages-api.runtime.dev.js +2 -2
- package/dist/compiled/next-server/pages-api.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/pages.runtime.dev.js +18 -18
- package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
- package/dist/compiled/next-server/pages.runtime.prod.js +2 -2
- package/dist/compiled/next-server/pages.runtime.prod.js.map +1 -1
- package/dist/esm/build/index.js +2 -2
- package/dist/esm/build/swc/index.js +1 -1
- package/dist/esm/build/webpack/plugins/eval-source-map-dev-tool-plugin.js +0 -1
- package/dist/esm/build/webpack/plugins/eval-source-map-dev-tool-plugin.js.map +1 -1
- package/dist/esm/build/webpack-config.js +2 -2
- package/dist/esm/client/app-bootstrap.js +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/server/config.js +1 -1
- package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/esm/server/lib/app-info-log.js +1 -1
- package/dist/esm/server/lib/start-server.js +1 -1
- package/dist/server/config.js +1 -1
- package/dist/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/server/lib/app-info-log.js +1 -1
- package/dist/server/lib/start-server.js +1 -1
- package/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/telemetry/events/session-stopped.js +2 -2
- package/dist/telemetry/events/version.js +2 -2
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages-api.runtime.dev.js","sources":["webpack://next/./dist/compiled/@edge-runtime/cookies/index.js","webpack://next/./dist/compiled/bytes/index.js","webpack://next/./dist/compiled/content-type/index.js","webpack://next/./dist/compiled/cookie/index.js","webpack://next/./dist/compiled/fresh/index.js","webpack://next/./dist/src/server/crypto-utils.ts","webpack://next/./dist/src/server/web/spec-extension/adapters/reflect.ts","webpack://next/./dist/src/server/web/spec-extension/adapters/headers.ts","webpack://next/./dist/src/lib/constants.ts","webpack://next/./dist/src/server/lib/trace/constants.ts","webpack://next/./dist/src/server/api-utils/index.ts","webpack://next/./dist/src/server/route-modules/route-module.ts","webpack://next/./dist/src/server/lib/etag.ts","webpack://next/./dist/src/shared/lib/utils.ts","webpack://next/./dist/src/lib/is-error.ts","webpack://next/./dist/src/server/api-utils/node/parse-body.ts","webpack://next/./dist/src/server/api-utils/node/api-resolver.ts","webpack://next/./dist/src/server/api-utils/get-cookie-parser.ts","webpack://next/./dist/src/server/api-utils/node/try-get-preview-data.ts","webpack://next/./dist/src/server/send-payload.ts","webpack://next/./dist/src/lib/interop-default.ts","webpack://next/./dist/src/server/route-modules/pages-api/module.ts"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});\n","(()=>{\"use strict\";var e={56:e=>{\n/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\ne.exports=bytes;e.exports.format=format;e.exports.parse=parse;var r=/\\B(?=(\\d{3})+(?!\\d))/g;var a=/(?:\\.0*|(\\.[^0]+)0+)$/;var t={b:1,kb:1<<10,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)};var i=/^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;function bytes(e,r){if(typeof e===\"string\"){return parse(e)}if(typeof e===\"number\"){return format(e,r)}return null}function format(e,i){if(!Number.isFinite(e)){return null}var n=Math.abs(e);var o=i&&i.thousandsSeparator||\"\";var s=i&&i.unitSeparator||\"\";var f=i&&i.decimalPlaces!==undefined?i.decimalPlaces:2;var u=Boolean(i&&i.fixedDecimals);var p=i&&i.unit||\"\";if(!p||!t[p.toLowerCase()]){if(n>=t.pb){p=\"PB\"}else if(n>=t.tb){p=\"TB\"}else if(n>=t.gb){p=\"GB\"}else if(n>=t.mb){p=\"MB\"}else if(n>=t.kb){p=\"KB\"}else{p=\"B\"}}var b=e/t[p.toLowerCase()];var l=b.toFixed(f);if(!u){l=l.replace(a,\"$1\")}if(o){l=l.split(\".\").map((function(e,a){return a===0?e.replace(r,o):e})).join(\".\")}return l+s+p}function parse(e){if(typeof e===\"number\"&&!isNaN(e)){return e}if(typeof e!==\"string\"){return null}var r=i.exec(e);var a;var n=\"b\";if(!r){a=parseInt(e,10);n=\"b\"}else{a=parseFloat(r[1]);n=r[4].toLowerCase()}return Math.floor(t[n]*a)}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var i=r[a]={exports:{}};var n=true;try{e[a](i,i.exports,__nccwpck_require__);n=false}finally{if(n)delete r[a]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(56);module.exports=a})();","(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */var t=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;var a=/^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/;var n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;var i=/\\\\([\\u000b\\u0020-\\u00ff])/g;var o=/([\\\\\"])/g;var f=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;r.format=format;r.parse=parse;function format(e){if(!e||typeof e!==\"object\"){throw new TypeError(\"argument obj is required\")}var r=e.parameters;var t=e.type;if(!t||!f.test(t)){throw new TypeError(\"invalid type\")}var a=t;if(r&&typeof r===\"object\"){var i;var o=Object.keys(r).sort();for(var u=0;u<o.length;u++){i=o[u];if(!n.test(i)){throw new TypeError(\"invalid parameter name\")}a+=\"; \"+i+\"=\"+qstring(r[i])}}return a}function parse(e){if(!e){throw new TypeError(\"argument string is required\")}var r=typeof e===\"object\"?getcontenttype(e):e;if(typeof r!==\"string\"){throw new TypeError(\"argument string is required to be a string\")}var a=r.indexOf(\";\");var n=a!==-1?r.substr(0,a).trim():r.trim();if(!f.test(n)){throw new TypeError(\"invalid media type\")}var o=new ContentType(n.toLowerCase());if(a!==-1){var u;var p;var s;t.lastIndex=a;while(p=t.exec(r)){if(p.index!==a){throw new TypeError(\"invalid parameter format\")}a+=p[0].length;u=p[1].toLowerCase();s=p[2];if(s[0]==='\"'){s=s.substr(1,s.length-2).replace(i,\"$1\")}o.parameters[u]=s}if(a!==r.length){throw new TypeError(\"invalid parameter format\")}}return o}function getcontenttype(e){var r;if(typeof e.getHeader===\"function\"){r=e.getHeader(\"content-type\")}else if(typeof e.headers===\"object\"){r=e.headers&&e.headers[\"content-type\"]}if(typeof r!==\"string\"){throw new TypeError(\"content-type header is missing from object\")}return r}function qstring(e){var r=String(e);if(n.test(r)){return r}if(r.length>0&&!a.test(r)){throw new TypeError(\"invalid parameter value\")}return'\"'+r.replace(o,\"\\\\$1\")+'\"'}function ContentType(e){this.parameters=Object.create(null);this.type=e}})();module.exports=e})();","(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();","(()=>{\"use strict\";var e={695:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_<u.length;_++){var o=u[_];if(o===f||o===\"W/\"+f||\"W/\"+o===f){n=false;break}}if(n){return false}}if(t){var p=a[\"last-modified\"];var v=!p||!(parseHttpDate(p)<=parseHttpDate(t));if(v){return false}}return true}function parseHttpDate(e){var r=e&&Date.parse(e);return typeof r===\"number\"?r:NaN}function parseTokenList(e){var r=0;var a=[];var t=0;for(var s=0,i=e.length;s<i;s++){switch(e.charCodeAt(s)){case 32:if(t===r){t=r=s+1}break;case 44:a.push(e.substring(t,r));t=r=s+1;break;default:r=s+1;break}}a.push(e.substring(t,r));return a}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var s=r[a]={exports:{}};var i=true;try{e[a](s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete r[a]}return s.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(695);module.exports=a})();","import crypto from 'crypto'\n\n// Background:\n// https://security.stackexchange.com/questions/184305/why-would-i-ever-use-aes-256-cbc-if-aes-256-gcm-is-more-secure\n\nconst CIPHER_ALGORITHM = `aes-256-gcm`,\n CIPHER_KEY_LENGTH = 32, // https://stackoverflow.com/a/28307668/4397028\n CIPHER_IV_LENGTH = 16, // https://stackoverflow.com/a/28307668/4397028\n CIPHER_TAG_LENGTH = 16,\n CIPHER_SALT_LENGTH = 64\n\nconst PBKDF2_ITERATIONS = 100_000 // https://support.1password.com/pbkdf2/\n\nexport function encryptWithSecret(secret: Buffer, data: string): string {\n const iv = crypto.randomBytes(CIPHER_IV_LENGTH)\n const salt = crypto.randomBytes(CIPHER_SALT_LENGTH)\n\n // https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest\n const key = crypto.pbkdf2Sync(\n secret,\n salt,\n PBKDF2_ITERATIONS,\n CIPHER_KEY_LENGTH,\n `sha512`\n )\n\n const cipher = crypto.createCipheriv(CIPHER_ALGORITHM, key, iv)\n const encrypted = Buffer.concat([cipher.update(data, `utf8`), cipher.final()])\n\n // https://nodejs.org/api/crypto.html#crypto_cipher_getauthtag\n const tag = cipher.getAuthTag()\n\n return Buffer.concat([\n // Data as required by:\n // Salt for Key: https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest\n // IV: https://nodejs.org/api/crypto.html#crypto_class_decipher\n // Tag: https://nodejs.org/api/crypto.html#crypto_decipher_setauthtag_buffer\n salt,\n iv,\n tag,\n encrypted,\n ]).toString(`hex`)\n}\n\nexport function decryptWithSecret(\n secret: Buffer,\n encryptedData: string\n): string {\n const buffer = Buffer.from(encryptedData, `hex`)\n\n const salt = buffer.slice(0, CIPHER_SALT_LENGTH)\n const iv = buffer.slice(\n CIPHER_SALT_LENGTH,\n CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH\n )\n const tag = buffer.slice(\n CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH,\n CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH + CIPHER_TAG_LENGTH\n )\n const encrypted = buffer.slice(\n CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH + CIPHER_TAG_LENGTH\n )\n\n // https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest\n const key = crypto.pbkdf2Sync(\n secret,\n salt,\n PBKDF2_ITERATIONS,\n CIPHER_KEY_LENGTH,\n `sha512`\n )\n\n const decipher = crypto.createDecipheriv(CIPHER_ALGORITHM, key, iv)\n decipher.setAuthTag(tag)\n\n return decipher.update(encrypted) + decipher.final(`utf8`)\n}\n","export class ReflectAdapter {\n static get<T extends object>(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set<T extends object>(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has<T extends object>(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty<T extends object>(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n","import type { IncomingHttpHeaders } from 'http'\n\nimport { ReflectAdapter } from './reflect'\n\n/**\n * @internal\n */\nexport class ReadonlyHeadersError extends Error {\n constructor() {\n super(\n 'Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'\n )\n }\n\n public static callable() {\n throw new ReadonlyHeadersError()\n }\n}\n\nexport type ReadonlyHeaders = Headers & {\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n append(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n set(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n delete(...args: any[]): void\n}\nexport class HeadersAdapter extends Headers {\n private readonly headers: IncomingHttpHeaders\n\n constructor(headers: IncomingHttpHeaders) {\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super()\n\n this.headers = new Proxy(headers, {\n get(target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return\n\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return ReflectAdapter.set(target, prop, value, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.has(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false\n\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original)\n },\n deleteProperty(target, prop) {\n if (typeof prop === 'symbol')\n return ReflectAdapter.deleteProperty(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true\n\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original)\n },\n })\n }\n\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */\n public static seal(headers: Headers): ReadonlyHeaders {\n return new Proxy<ReadonlyHeaders>(headers, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */\n private merge(value: string | string[]): string {\n if (Array.isArray(value)) return value.join(', ')\n\n return value\n }\n\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */\n public static from(headers: IncomingHttpHeaders | Headers): Headers {\n if (headers instanceof Headers) return headers\n\n return new HeadersAdapter(headers)\n }\n\n public append(name: string, value: string): void {\n const existing = this.headers[name]\n if (typeof existing === 'string') {\n this.headers[name] = [existing, value]\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n this.headers[name] = value\n }\n }\n\n public delete(name: string): void {\n delete this.headers[name]\n }\n\n public get(name: string): string | null {\n const value = this.headers[name]\n if (typeof value !== 'undefined') return this.merge(value)\n\n return null\n }\n\n public has(name: string): boolean {\n return typeof this.headers[name] !== 'undefined'\n }\n\n public set(name: string, value: string): void {\n this.headers[name] = value\n }\n\n public forEach(\n callbackfn: (value: string, name: string, parent: Headers) => void,\n thisArg?: any\n ): void {\n for (const [name, value] of this.entries()) {\n callbackfn.call(thisArg, value, name, this)\n }\n }\n\n public *entries(): HeadersIterator<[string, string]> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name) as string\n\n yield [name, value] as [string, string]\n }\n }\n\n public *keys(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n yield name\n }\n }\n\n public *values(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key) as string\n\n yield value\n }\n }\n\n public [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries()\n }\n}\n","import type { ServerRuntime } from '../types'\n\nexport const NEXT_QUERY_PARAM_PREFIX = 'nxtP'\nexport const NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI'\n\nexport const MATCHED_PATH_HEADER = 'x-matched-path'\nexport const PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate'\nexport const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER =\n 'x-prerender-revalidate-if-generated'\n\nexport const RSC_PREFETCH_SUFFIX = '.prefetch.rsc'\nexport const RSC_SEGMENTS_DIR_SUFFIX = '.segments'\nexport const RSC_SEGMENT_SUFFIX = '.segment.rsc'\nexport const RSC_SUFFIX = '.rsc'\nexport const ACTION_SUFFIX = '.action'\nexport const NEXT_DATA_SUFFIX = '.json'\nexport const NEXT_META_SUFFIX = '.meta'\nexport const NEXT_BODY_SUFFIX = '.body'\n\nexport const NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags'\nexport const NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags'\nexport const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER =\n 'x-next-revalidate-tag-token'\n\nexport const NEXT_RESUME_HEADER = 'next-resume'\n\n// if these change make sure we update the related\n// documentation as well\nexport const NEXT_CACHE_TAG_MAX_ITEMS = 128\nexport const NEXT_CACHE_TAG_MAX_LENGTH = 256\nexport const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024\nexport const NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_'\n\n// in seconds\nexport const CACHE_ONE_YEAR = 31536000\n\n// in seconds, represents revalidate=false. I.e. never revaliate.\n// We use this value since it can be represented as a V8 SMI for optimal performance.\n// It can also be serialized as JSON if it ever leaks accidentally as an actual value.\nexport const INFINITE_CACHE = 0xfffffffe\n\n// Patterns to detect middleware files\nexport const MIDDLEWARE_FILENAME = 'middleware'\nexport const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`\n\n// Pattern to detect instrumentation hooks file\nexport const INSTRUMENTATION_HOOK_FILENAME = 'instrumentation'\n\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\nexport const PAGES_DIR_ALIAS = 'private-next-pages'\nexport const DOT_NEXT_ALIAS = 'private-dot-next'\nexport const ROOT_DIR_ALIAS = 'private-next-root-dir'\nexport const APP_DIR_ALIAS = 'private-next-app-dir'\nexport const RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy'\nexport const RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate'\nexport const RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference'\nexport const RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper'\nexport const RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption'\nexport const RSC_ACTION_CLIENT_WRAPPER_ALIAS =\n 'private-next-rsc-action-client-wrapper'\n\nexport const PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`\n\nexport const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`\n\nexport const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`\n\nexport const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`\n\nexport const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`\n\nexport const SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`\n\nexport const GSP_NO_RETURNED_VALUE =\n 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?'\nexport const GSSP_NO_RETURNED_VALUE =\n 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?'\n\nexport const UNSTABLE_REVALIDATE_RENAME_ERROR =\n 'The `unstable_revalidate` property is available for general use.\\n' +\n 'Please use `revalidate` instead.'\n\nexport const GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`\n\nexport const NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`\n\nexport const SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`\n\nexport const ESLINT_DEFAULT_DIRS = ['app', 'pages', 'components', 'lib', 'src']\n\nexport const SERVER_RUNTIME: Record<string, ServerRuntime> = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs',\n}\n\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */\nconst WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */\n shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */\n reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */\n serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */\n actionBrowser: 'action-browser',\n /**\n * The layer for the API routes.\n */\n api: 'api',\n /**\n * The layer for the middleware code.\n */\n middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */\n instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */\n edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */\n appPagesBrowser: 'app-pages-browser',\n} as const\n\nexport type WebpackLayerName =\n (typeof WEBPACK_LAYERS_NAMES)[keyof typeof WEBPACK_LAYERS_NAMES]\n\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware,\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.api,\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n },\n}\n\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__',\n}\n\nexport { WEBPACK_LAYERS, WEBPACK_RESOURCE_QUERIES }\n","/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/\n\n// eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */\n\nenum BaseServerSpan {\n handleRequest = 'BaseServer.handleRequest',\n run = 'BaseServer.run',\n pipe = 'BaseServer.pipe',\n getStaticHTML = 'BaseServer.getStaticHTML',\n render = 'BaseServer.render',\n renderToResponseWithComponents = 'BaseServer.renderToResponseWithComponents',\n renderToResponse = 'BaseServer.renderToResponse',\n renderToHTML = 'BaseServer.renderToHTML',\n renderError = 'BaseServer.renderError',\n renderErrorToResponse = 'BaseServer.renderErrorToResponse',\n renderErrorToHTML = 'BaseServer.renderErrorToHTML',\n render404 = 'BaseServer.render404',\n}\n\nenum LoadComponentsSpan {\n loadDefaultErrorComponents = 'LoadComponents.loadDefaultErrorComponents',\n loadComponents = 'LoadComponents.loadComponents',\n}\n\nenum NextServerSpan {\n getRequestHandler = 'NextServer.getRequestHandler',\n getServer = 'NextServer.getServer',\n getServerRequestHandler = 'NextServer.getServerRequestHandler',\n createServer = 'createServer.createServer',\n}\n\nenum NextNodeServerSpan {\n compression = 'NextNodeServer.compression',\n getBuildId = 'NextNodeServer.getBuildId',\n createComponentTree = 'NextNodeServer.createComponentTree',\n clientComponentLoading = 'NextNodeServer.clientComponentLoading',\n getLayoutOrPageModule = 'NextNodeServer.getLayoutOrPageModule',\n generateStaticRoutes = 'NextNodeServer.generateStaticRoutes',\n generateFsStaticRoutes = 'NextNodeServer.generateFsStaticRoutes',\n generatePublicRoutes = 'NextNodeServer.generatePublicRoutes',\n generateImageRoutes = 'NextNodeServer.generateImageRoutes.route',\n sendRenderResult = 'NextNodeServer.sendRenderResult',\n proxyRequest = 'NextNodeServer.proxyRequest',\n runApi = 'NextNodeServer.runApi',\n render = 'NextNodeServer.render',\n renderHTML = 'NextNodeServer.renderHTML',\n imageOptimizer = 'NextNodeServer.imageOptimizer',\n getPagePath = 'NextNodeServer.getPagePath',\n getRoutesManifest = 'NextNodeServer.getRoutesManifest',\n findPageComponents = 'NextNodeServer.findPageComponents',\n getFontManifest = 'NextNodeServer.getFontManifest',\n getServerComponentManifest = 'NextNodeServer.getServerComponentManifest',\n getRequestHandler = 'NextNodeServer.getRequestHandler',\n renderToHTML = 'NextNodeServer.renderToHTML',\n renderError = 'NextNodeServer.renderError',\n renderErrorToHTML = 'NextNodeServer.renderErrorToHTML',\n render404 = 'NextNodeServer.render404',\n startResponse = 'NextNodeServer.startResponse',\n\n // nested inner span, does not require parent scope name\n route = 'route',\n onProxyReq = 'onProxyReq',\n apiResolver = 'apiResolver',\n internalFetch = 'internalFetch',\n}\n\nenum StartServerSpan {\n startServer = 'startServer.startServer',\n}\n\nenum RenderSpan {\n getServerSideProps = 'Render.getServerSideProps',\n getStaticProps = 'Render.getStaticProps',\n renderToString = 'Render.renderToString',\n renderDocument = 'Render.renderDocument',\n createBodyResult = 'Render.createBodyResult',\n}\n\nenum AppRenderSpan {\n renderToString = 'AppRender.renderToString',\n renderToReadableStream = 'AppRender.renderToReadableStream',\n getBodyResult = 'AppRender.getBodyResult',\n fetch = 'AppRender.fetch',\n}\n\nenum RouterSpan {\n executeRoute = 'Router.executeRoute',\n}\n\nenum NodeSpan {\n runHandler = 'Node.runHandler',\n}\n\nenum AppRouteRouteHandlersSpan {\n runHandler = 'AppRouteRouteHandlers.runHandler',\n}\n\nenum ResolveMetadataSpan {\n generateMetadata = 'ResolveMetadata.generateMetadata',\n generateViewport = 'ResolveMetadata.generateViewport',\n}\n\nenum MiddlewareSpan {\n execute = 'Middleware.execute',\n}\n\ntype SpanTypes =\n | `${BaseServerSpan}`\n | `${LoadComponentsSpan}`\n | `${NextServerSpan}`\n | `${StartServerSpan}`\n | `${NextNodeServerSpan}`\n | `${RenderSpan}`\n | `${RouterSpan}`\n | `${AppRenderSpan}`\n | `${NodeSpan}`\n | `${AppRouteRouteHandlersSpan}`\n | `${ResolveMetadataSpan}`\n | `${MiddlewareSpan}`\n\n// This list is used to filter out spans that are not relevant to the user\nexport const NextVanillaSpanAllowlist = [\n MiddlewareSpan.execute,\n BaseServerSpan.handleRequest,\n RenderSpan.getServerSideProps,\n RenderSpan.getStaticProps,\n AppRenderSpan.fetch,\n AppRenderSpan.getBodyResult,\n RenderSpan.renderDocument,\n NodeSpan.runHandler,\n AppRouteRouteHandlersSpan.runHandler,\n ResolveMetadataSpan.generateMetadata,\n ResolveMetadataSpan.generateViewport,\n NextNodeServerSpan.createComponentTree,\n NextNodeServerSpan.findPageComponents,\n NextNodeServerSpan.getLayoutOrPageModule,\n NextNodeServerSpan.startResponse,\n NextNodeServerSpan.clientComponentLoading,\n]\n\n// These Spans are allowed to be always logged\n// when the otel log prefix env is set\nexport const LogSpanAllowList = [\n NextNodeServerSpan.findPageComponents,\n NextNodeServerSpan.createComponentTree,\n NextNodeServerSpan.clientComponentLoading,\n]\n\nexport {\n BaseServerSpan,\n LoadComponentsSpan,\n NextServerSpan,\n NextNodeServerSpan,\n StartServerSpan,\n RenderSpan,\n RouterSpan,\n AppRenderSpan,\n NodeSpan,\n AppRouteRouteHandlersSpan,\n ResolveMetadataSpan,\n MiddlewareSpan,\n}\n\nexport type { SpanTypes }\n","import type { IncomingMessage } from 'http'\nimport type { BaseNextRequest } from '../base-http'\nimport type { CookieSerializeOptions } from 'next/dist/compiled/cookie'\nimport type { NextApiResponse } from '../../shared/lib/utils'\n\nimport { HeadersAdapter } from '../web/spec-extension/adapters/headers'\nimport {\n PRERENDER_REVALIDATE_HEADER,\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER,\n} from '../../lib/constants'\nimport { getTracer } from '../lib/trace/tracer'\nimport { NodeSpan } from '../lib/trace/constants'\n\nexport type NextApiRequestCookies = Partial<{ [key: string]: string }>\nexport type NextApiRequestQuery = Partial<{ [key: string]: string | string[] }>\n\nexport type __ApiPreviewProps = {\n previewModeId: string\n previewModeEncryptionKey: string\n previewModeSigningKey: string\n}\n\nexport function wrapApiHandler<T extends (...args: any[]) => any>(\n page: string,\n handler: T\n): T {\n return ((...args) => {\n getTracer().setRootSpanAttribute('next.route', page)\n // Call API route method\n return getTracer().trace(\n NodeSpan.runHandler,\n {\n spanName: `executing api route (pages) ${page}`,\n },\n () => handler(...args)\n )\n }) as T\n}\n\n/**\n *\n * @param res response object\n * @param statusCode `HTTP` status code of response\n */\nexport function sendStatusCode(\n res: NextApiResponse,\n statusCode: number\n): NextApiResponse<any> {\n res.statusCode = statusCode\n return res\n}\n\n/**\n *\n * @param res response object\n * @param [statusOrUrl] `HTTP` status code of redirect\n * @param url URL of redirect\n */\nexport function redirect(\n res: NextApiResponse,\n statusOrUrl: string | number,\n url?: string\n): NextApiResponse<any> {\n if (typeof statusOrUrl === 'string') {\n url = statusOrUrl\n statusOrUrl = 307\n }\n if (typeof statusOrUrl !== 'number' || typeof url !== 'string') {\n throw new Error(\n `Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`\n )\n }\n res.writeHead(statusOrUrl, { Location: url })\n res.write(url)\n res.end()\n return res\n}\n\nexport function checkIsOnDemandRevalidate(\n req: Request | IncomingMessage | BaseNextRequest,\n previewProps: __ApiPreviewProps\n): {\n isOnDemandRevalidate: boolean\n revalidateOnlyGenerated: boolean\n} {\n const headers = HeadersAdapter.from(req.headers)\n\n const previewModeId = headers.get(PRERENDER_REVALIDATE_HEADER)\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId\n\n const revalidateOnlyGenerated = headers.has(\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER\n )\n\n return { isOnDemandRevalidate, revalidateOnlyGenerated }\n}\n\nexport const COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`\nexport const COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`\n\nexport const RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024\n\nexport const SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA)\nexport const SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS)\n\nexport function clearPreviewData<T>(\n res: NextApiResponse<T>,\n options: {\n path?: string\n } = {}\n): NextApiResponse<T> {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res\n }\n\n const { serialize } =\n require('next/dist/compiled/cookie') as typeof import('cookie')\n const previous = res.getHeader('Set-Cookie')\n res.setHeader(`Set-Cookie`, [\n ...(typeof previous === 'string'\n ? [previous]\n : Array.isArray(previous)\n ? previous\n : []),\n serialize(COOKIE_NAME_PRERENDER_BYPASS, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n ])\n\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false,\n })\n return res\n}\n\n/**\n * Custom error class\n */\nexport class ApiError extends Error {\n readonly statusCode: number\n\n constructor(statusCode: number, message: string) {\n super(message)\n this.statusCode = statusCode\n }\n}\n\n/**\n * Sends error in `response`\n * @param res response object\n * @param statusCode of response\n * @param message of response\n */\nexport function sendError(\n res: NextApiResponse,\n statusCode: number,\n message: string\n): void {\n res.statusCode = statusCode\n res.statusMessage = message\n res.end(message)\n}\n\ninterface LazyProps {\n req: IncomingMessage\n}\n\n/**\n * Execute getter function only if its needed\n * @param LazyProps `req` and `params` for lazyProp\n * @param prop name of property\n * @param getter function to get data\n */\nexport function setLazyProp<T>(\n { req }: LazyProps,\n prop: string,\n getter: () => T\n): void {\n const opts = { configurable: true, enumerable: true }\n const optsReset = { ...opts, writable: true }\n\n Object.defineProperty(req, prop, {\n ...opts,\n get: () => {\n const value = getter()\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, { ...optsReset, value })\n return value\n },\n set: (value) => {\n Object.defineProperty(req, prop, { ...optsReset, value })\n },\n })\n}\n","import type { RouteDefinition } from '../route-definitions/route-definition'\n\n/**\n * RouteModuleOptions is the options that are passed to the route module, other\n * route modules should extend this class to add specific options for their\n * route.\n */\nexport interface RouteModuleOptions<\n D extends RouteDefinition = RouteDefinition,\n U = unknown,\n> {\n readonly definition: Readonly<D>\n readonly userland: Readonly<U>\n}\n\n/**\n * RouteHandlerContext is the base context for a route handler.\n */\nexport interface RouteModuleHandleContext {\n /**\n * Any matched parameters for the request. This is only defined for dynamic\n * routes.\n */\n params: Record<string, string | string[] | undefined> | undefined\n}\n\n/**\n * RouteModule is the base class for all route modules. This class should be\n * extended by all route modules.\n */\nexport abstract class RouteModule<\n D extends RouteDefinition = RouteDefinition,\n U = unknown,\n> {\n /**\n * The userland module. This is the module that is exported from the user's\n * code. This is marked as readonly to ensure that the module is not mutated\n * because the module (when compiled) only provides getters.\n */\n public readonly userland: Readonly<U>\n\n /**\n * The definition of the route.\n */\n public readonly definition: Readonly<D>\n\n /**\n * The shared modules that are exposed and required for the route module.\n */\n public static readonly sharedModules: any\n\n constructor({ userland, definition }: RouteModuleOptions<D, U>) {\n this.userland = userland\n this.definition = definition\n }\n}\n","/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */\nexport const fnv1a52 = (str: string) => {\n const len = str.length\n let i = 0,\n t0 = 0,\n v0 = 0x2325,\n t1 = 0,\n v1 = 0x8422,\n t2 = 0,\n v2 = 0x9ce4,\n t3 = 0,\n v3 = 0xcbf2\n\n while (i < len) {\n v0 ^= str.charCodeAt(i++)\n t0 = v0 * 435\n t1 = v1 * 435\n t2 = v2 * 435\n t3 = v3 * 435\n t2 += v0 << 8\n t3 += v1 << 8\n t1 += t0 >>> 16\n v0 = t0 & 65535\n t2 += t1 >>> 16\n v1 = t1 & 65535\n v3 = (t3 + (t2 >>> 16)) & 65535\n v2 = t2 & 65535\n }\n\n return (\n (v3 & 15) * 281474976710656 +\n v2 * 4294967296 +\n v1 * 65536 +\n (v0 ^ (v3 >> 4))\n )\n}\n\nexport const generateETag = (payload: string, weak = false) => {\n const prefix = weak ? 'W/\"' : '\"'\n return (\n prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '\"'\n )\n}\n","import type { HtmlProps } from './html-context.shared-runtime'\nimport type { ComponentType, JSX } from 'react'\nimport type { DomainLocale } from '../../server/config'\nimport type { Env } from '@next/env'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextRouter } from './router/router'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { PreviewData } from '../../types'\nimport type { COMPILER_NAMES } from './constants'\nimport type fs from 'fs'\n\nexport type NextComponentType<\n Context extends BaseContext = NextPageContext,\n InitialProps = {},\n Props = {},\n> = ComponentType<Props> & {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param context Context of `page`\n */\n getInitialProps?(context: Context): InitialProps | Promise<InitialProps>\n}\n\nexport type DocumentType = NextComponentType<\n DocumentContext,\n DocumentInitialProps,\n DocumentProps\n>\n\nexport type AppType<P = {}> = NextComponentType<\n AppContextType,\n P,\n AppPropsType<any, P>\n>\n\nexport type AppTreeType = ComponentType<\n AppInitialProps & { [name: string]: any }\n>\n\n/**\n * Web vitals provided to _app.reportWebVitals by Core Web Vitals plugin developed by Google Chrome team.\n * https://nextjs.org/blog/next-9-4#integrated-web-vitals-reporting\n */\nexport const WEB_VITALS = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'] as const\nexport type NextWebVitalsMetric = {\n id: string\n startTime: number\n value: number\n attribution?: { [key: string]: unknown }\n} & (\n | {\n label: 'web-vital'\n name: (typeof WEB_VITALS)[number]\n }\n | {\n label: 'custom'\n name:\n | 'Next.js-hydration'\n | 'Next.js-route-change-to-render'\n | 'Next.js-render'\n }\n)\n\nexport type Enhancer<C> = (Component: C) => C\n\nexport type ComponentsEnhancer =\n | {\n enhanceApp?: Enhancer<AppType>\n enhanceComponent?: Enhancer<NextComponentType>\n }\n | Enhancer<NextComponentType>\n\nexport type RenderPageResult = {\n html: string\n head?: Array<JSX.Element | null>\n}\n\nexport type RenderPage = (\n options?: ComponentsEnhancer\n) => DocumentInitialProps | Promise<DocumentInitialProps>\n\nexport type BaseContext = {\n res?: ServerResponse\n [k: string]: any\n}\n\nexport type NEXT_DATA = {\n props: Record<string, any>\n page: string\n query: ParsedUrlQuery\n buildId: string\n assetPrefix?: string\n runtimeConfig?: { [key: string]: any }\n nextExport?: boolean\n autoExport?: boolean\n isFallback?: boolean\n isExperimentalCompile?: boolean\n dynamicIds?: (string | number)[]\n err?: Error & {\n statusCode?: number\n source?: typeof COMPILER_NAMES.server | typeof COMPILER_NAMES.edgeServer\n }\n gsp?: boolean\n gssp?: boolean\n customServer?: boolean\n gip?: boolean\n appGip?: boolean\n locale?: string\n locales?: readonly string[]\n defaultLocale?: string\n domainLocales?: readonly DomainLocale[]\n scriptLoader?: any[]\n isPreview?: boolean\n notFoundSrcPage?: string\n}\n\n/**\n * `Next` context\n */\nexport interface NextPageContext {\n /**\n * Error object if encountered during rendering\n */\n err?: (Error & { statusCode?: number }) | null\n /**\n * `HTTP` request object.\n */\n req?: IncomingMessage\n /**\n * `HTTP` response object.\n */\n res?: ServerResponse\n /**\n * Path section of `URL`.\n */\n pathname: string\n /**\n * Query string section of `URL` parsed as an object.\n */\n query: ParsedUrlQuery\n /**\n * `String` of the actual path including query.\n */\n asPath?: string\n /**\n * The currently active locale\n */\n locale?: string\n /**\n * All configured locales\n */\n locales?: readonly string[]\n /**\n * The configured default locale\n */\n defaultLocale?: string\n /**\n * `Component` the tree of the App to use if needing to render separately\n */\n AppTree: AppTreeType\n}\n\nexport type AppContextType<Router extends NextRouter = NextRouter> = {\n Component: NextComponentType<NextPageContext>\n AppTree: AppTreeType\n ctx: NextPageContext\n router: Router\n}\n\nexport type AppInitialProps<PageProps = any> = {\n pageProps: PageProps\n}\n\nexport type AppPropsType<\n Router extends NextRouter = NextRouter,\n PageProps = {},\n> = AppInitialProps<PageProps> & {\n Component: NextComponentType<NextPageContext, any, any>\n router: Router\n __N_SSG?: boolean\n __N_SSP?: boolean\n}\n\nexport type DocumentContext = NextPageContext & {\n renderPage: RenderPage\n defaultGetInitialProps(\n ctx: DocumentContext,\n options?: { nonce?: string }\n ): Promise<DocumentInitialProps>\n}\n\nexport type DocumentInitialProps = RenderPageResult & {\n styles?: React.ReactElement[] | Iterable<React.ReactNode> | JSX.Element\n}\n\nexport type DocumentProps = DocumentInitialProps & HtmlProps\n\n/**\n * Next `API` route request\n */\nexport interface NextApiRequest extends IncomingMessage {\n /**\n * Object of `query` values from url\n */\n query: Partial<{\n [key: string]: string | string[]\n }>\n /**\n * Object of `cookies` from header\n */\n cookies: Partial<{\n [key: string]: string\n }>\n\n body: any\n\n env: Env\n\n draftMode?: boolean\n\n preview?: boolean\n /**\n * Preview data set on the request, if any\n * */\n previewData?: PreviewData\n}\n\n/**\n * Send body of response\n */\ntype Send<T> = (body: T) => void\n\n/**\n * Next `API` route response\n */\nexport type NextApiResponse<Data = any> = ServerResponse & {\n /**\n * Send data `any` data in response\n */\n send: Send<Data>\n /**\n * Send data `json` data in response\n */\n json: Send<Data>\n status: (statusCode: number) => NextApiResponse<Data>\n redirect(url: string): NextApiResponse<Data>\n redirect(status: number, url: string): NextApiResponse<Data>\n\n /**\n * Set draft mode\n */\n setDraftMode: (options: { enable: boolean }) => NextApiResponse<Data>\n\n /**\n * Set preview data for Next.js' prerender mode\n */\n setPreviewData: (\n data: object | string,\n options?: {\n /**\n * Specifies the number (in seconds) for the preview session to last for.\n * The given number will be converted to an integer by rounding down.\n * By default, no maximum age is set and the preview session finishes\n * when the client shuts down (browser is closed).\n */\n maxAge?: number\n /**\n * Specifies the path for the preview session to work under. By default,\n * the path is considered the \"default path\", i.e., any pages under \"/\".\n */\n path?: string\n }\n ) => NextApiResponse<Data>\n\n /**\n * Clear preview data for Next.js' prerender mode\n */\n clearPreviewData: (options?: { path?: string }) => NextApiResponse<Data>\n\n /**\n * Revalidate a specific page and regenerate it using On-Demand Incremental\n * Static Regeneration.\n * The path should be an actual path, not a rewritten path. E.g. for\n * \"/blog/[slug]\" this should be \"/blog/post-1\".\n * @link https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration#on-demand-revalidation-with-revalidatepath\n */\n revalidate: (\n urlPath: string,\n opts?: {\n unstable_onlyGenerated?: boolean\n }\n ) => Promise<void>\n}\n\n/**\n * Next `API` route handler\n */\nexport type NextApiHandler<T = any> = (\n req: NextApiRequest,\n res: NextApiResponse<T>\n) => unknown | Promise<unknown>\n\n/**\n * Utils\n */\nexport function execOnce<T extends (...args: any[]) => ReturnType<T>>(\n fn: T\n): T {\n let used = false\n let result: ReturnType<T>\n\n return ((...args: any[]) => {\n if (!used) {\n used = true\n result = fn(...args)\n }\n return result\n }) as T\n}\n\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/\nexport const isAbsoluteUrl = (url: string) => ABSOLUTE_URL_REGEX.test(url)\n\nexport function getLocationOrigin() {\n const { protocol, hostname, port } = window.location\n return `${protocol}//${hostname}${port ? ':' + port : ''}`\n}\n\nexport function getURL() {\n const { href } = window.location\n const origin = getLocationOrigin()\n return href.substring(origin.length)\n}\n\nexport function getDisplayName<P>(Component: ComponentType<P>) {\n return typeof Component === 'string'\n ? Component\n : Component.displayName || Component.name || 'Unknown'\n}\n\nexport function isResSent(res: ServerResponse) {\n return res.finished || res.headersSent\n}\n\nexport function normalizeRepeatedSlashes(url: string) {\n const urlParts = url.split('?')\n const urlNoQuery = urlParts[0]\n\n return (\n urlNoQuery\n // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/')\n .replace(/\\/\\/+/g, '/') +\n (urlParts[1] ? `?${urlParts.slice(1).join('?')}` : '')\n )\n}\n\nexport async function loadGetInitialProps<\n C extends BaseContext,\n IP = {},\n P = {},\n>(App: NextComponentType<C, IP, P>, ctx: C): Promise<IP> {\n if (process.env.NODE_ENV !== 'production') {\n if (App.prototype?.getInitialProps) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.`\n throw new Error(message)\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || (ctx.ctx && ctx.ctx.res)\n\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx),\n }\n }\n return {} as IP\n }\n\n const props = await App.getInitialProps(ctx)\n\n if (res && isResSent(res)) {\n return props\n }\n\n if (!props) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" should resolve to an object. But found \"${props}\" instead.`\n throw new Error(message)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\n `${getDisplayName(\n App\n )} returned an empty object from \\`getInitialProps\\`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps`\n )\n }\n }\n\n return props\n}\n\nexport const SP = typeof performance !== 'undefined'\nexport const ST =\n SP &&\n (['mark', 'measure', 'getEntriesByName'] as const).every(\n (method) => typeof performance[method] === 'function'\n )\n\nexport class DecodeError extends Error {}\nexport class NormalizeError extends Error {}\nexport class PageNotFoundError extends Error {\n code: string\n\n constructor(page: string) {\n super()\n this.code = 'ENOENT'\n this.name = 'PageNotFoundError'\n this.message = `Cannot find module for page: ${page}`\n }\n}\n\nexport class MissingStaticPage extends Error {\n constructor(page: string, message: string) {\n super()\n this.message = `Failed to load static file for page: ${page} ${message}`\n }\n}\n\nexport class MiddlewareNotFoundError extends Error {\n code: string\n constructor() {\n super()\n this.code = 'ENOENT'\n this.message = `Cannot find the middleware module`\n }\n}\n\nexport interface CacheFs {\n existsSync: typeof fs.existsSync\n readFile: typeof fs.promises.readFile\n readFileSync: typeof fs.readFileSync\n writeFile(f: string, d: any): Promise<void>\n mkdir(dir: string): Promise<void | string>\n stat(f: string): Promise<{ mtime: Date }>\n}\n\nexport function stringifyError(error: Error) {\n return JSON.stringify({ message: error.message, stack: error.stack })\n}\n","import { isPlainObject } from '../shared/lib/is-plain-object'\n\n// We allow some additional attached properties for Next.js errors\nexport interface NextError extends Error {\n type?: string\n page?: string\n code?: string | number\n cancelled?: boolean\n digest?: number\n}\n\n/**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */\nexport default function isError(err: unknown): err is NextError {\n return (\n typeof err === 'object' && err !== null && 'name' in err && 'message' in err\n )\n}\n\nfunction safeStringify(obj: any) {\n const seen = new WeakSet()\n\n return JSON.stringify(obj, (_key, value) => {\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]'\n }\n seen.add(value)\n }\n return value\n })\n}\n\nexport function getProperError(err: unknown): Error {\n if (isError(err)) {\n return err\n }\n\n if (process.env.NODE_ENV === 'development') {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return new Error(\n 'An undefined error was thrown, ' +\n 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'\n )\n }\n\n if (err === null) {\n return new Error(\n 'A null error was thrown, ' +\n 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'\n )\n }\n }\n\n return new Error(isPlainObject(err) ? safeStringify(err) : err + '')\n}\n","import type { IncomingMessage } from 'http'\n\nimport { parse } from 'next/dist/compiled/content-type'\nimport isError from '../../../lib/is-error'\nimport type { SizeLimit } from '../../../types'\nimport { ApiError } from '../index'\n\n/**\n * Parse `JSON` and handles invalid `JSON` strings\n * @param str `JSON` string\n */\nfunction parseJson(str: string): object {\n if (str.length === 0) {\n // special-case empty json body, as it's a common client-side mistake\n return {}\n }\n\n try {\n return JSON.parse(str)\n } catch (e) {\n throw new ApiError(400, 'Invalid JSON')\n }\n}\n\n/**\n * Parse incoming message like `json` or `urlencoded`\n * @param req request object\n */\nexport async function parseBody(\n req: IncomingMessage,\n limit: SizeLimit\n): Promise<any> {\n let contentType\n try {\n contentType = parse(req.headers['content-type'] || 'text/plain')\n } catch {\n contentType = parse('text/plain')\n }\n const { type, parameters } = contentType\n const encoding = parameters.charset || 'utf-8'\n\n let buffer\n\n try {\n const getRawBody =\n require('next/dist/compiled/raw-body') as typeof import('next/dist/compiled/raw-body')\n buffer = await getRawBody(req, { encoding, limit })\n } catch (e) {\n if (isError(e) && e.type === 'entity.too.large') {\n throw new ApiError(413, `Body exceeded ${limit} limit`)\n } else {\n throw new ApiError(400, 'Invalid body')\n }\n }\n\n const body = buffer.toString()\n\n if (type === 'application/json' || type === 'application/ld+json') {\n return parseJson(body)\n } else if (type === 'application/x-www-form-urlencoded') {\n const qs = require('querystring')\n return qs.decode(body)\n } else {\n return body\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextApiRequest, NextApiResponse } from '../../../shared/lib/utils'\nimport type { PageConfig, ResponseLimit } from '../../../types'\nimport type { __ApiPreviewProps } from '../.'\nimport type { CookieSerializeOptions } from 'next/dist/compiled/cookie'\nimport type { ServerOnInstrumentationRequestError } from '../../app-render/types'\n\nimport bytes from 'next/dist/compiled/bytes'\nimport { generateETag } from '../../lib/etag'\nimport { sendEtagResponse } from '../../send-payload'\nimport { Stream } from 'stream'\nimport isError from '../../../lib/is-error'\nimport { isResSent } from '../../../shared/lib/utils'\nimport { interopDefault } from '../../../lib/interop-default'\nimport {\n setLazyProp,\n sendStatusCode,\n redirect,\n clearPreviewData,\n sendError,\n ApiError,\n COOKIE_NAME_PRERENDER_BYPASS,\n COOKIE_NAME_PRERENDER_DATA,\n RESPONSE_LIMIT_DEFAULT,\n} from './../index'\nimport { getCookieParser } from './../get-cookie-parser'\nimport {\n PRERENDER_REVALIDATE_HEADER,\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER,\n} from '../../../lib/constants'\nimport { tryGetPreviewData } from './try-get-preview-data'\nimport { parseBody } from './parse-body'\n\ntype RevalidateFn = (config: {\n urlPath: string\n revalidateHeaders: { [key: string]: string | string[] }\n opts: { unstable_onlyGenerated?: boolean }\n}) => Promise<void>\n\ntype ApiContext = __ApiPreviewProps & {\n trustHostHeader?: boolean\n allowedRevalidateHeaderKeys?: string[]\n hostname?: string\n revalidate?: RevalidateFn\n multiZoneDraftMode?: boolean\n}\n\nfunction getMaxContentLength(responseLimit?: ResponseLimit) {\n if (responseLimit && typeof responseLimit !== 'boolean') {\n return bytes.parse(responseLimit)\n }\n return RESPONSE_LIMIT_DEFAULT\n}\n\n/**\n * Send `any` body to response\n * @param req request object\n * @param res response object\n * @param body of response\n */\nfunction sendData(req: NextApiRequest, res: NextApiResponse, body: any): void {\n if (body === null || body === undefined) {\n res.end()\n return\n }\n\n // strip irrelevant headers/body\n if (res.statusCode === 204 || res.statusCode === 304) {\n res.removeHeader('Content-Type')\n res.removeHeader('Content-Length')\n res.removeHeader('Transfer-Encoding')\n\n if (process.env.NODE_ENV === 'development' && body) {\n console.warn(\n `A body was attempted to be set with a 204 statusCode for ${req.url}, this is invalid and the body was ignored.\\n` +\n `See more info here https://nextjs.org/docs/messages/invalid-api-status-body`\n )\n }\n res.end()\n return\n }\n\n const contentType = res.getHeader('Content-Type')\n\n if (body instanceof Stream) {\n if (!contentType) {\n res.setHeader('Content-Type', 'application/octet-stream')\n }\n body.pipe(res)\n return\n }\n\n const isJSONLike = ['object', 'number', 'boolean'].includes(typeof body)\n const stringifiedBody = isJSONLike ? JSON.stringify(body) : body\n const etag = generateETag(stringifiedBody)\n if (sendEtagResponse(req, res, etag)) {\n return\n }\n\n if (Buffer.isBuffer(body)) {\n if (!contentType) {\n res.setHeader('Content-Type', 'application/octet-stream')\n }\n res.setHeader('Content-Length', body.length)\n res.end(body)\n return\n }\n\n if (isJSONLike) {\n res.setHeader('Content-Type', 'application/json; charset=utf-8')\n }\n\n res.setHeader('Content-Length', Buffer.byteLength(stringifiedBody))\n res.end(stringifiedBody)\n}\n\n/**\n * Send `JSON` object\n * @param res response object\n * @param jsonBody of data\n */\nfunction sendJson(res: NextApiResponse, jsonBody: any): void {\n // Set header to application/json\n res.setHeader('Content-Type', 'application/json; charset=utf-8')\n\n // Use send to handle request\n res.send(JSON.stringify(jsonBody))\n}\n\nfunction isValidData(str: any): str is string {\n return typeof str === 'string' && str.length >= 16\n}\n\nfunction setDraftMode<T>(\n res: NextApiResponse<T>,\n options: {\n enable: boolean\n previewModeId?: string\n }\n): NextApiResponse<T> {\n if (!isValidData(options.previewModeId)) {\n throw new Error('invariant: invalid previewModeId')\n }\n const expires = options.enable ? undefined : new Date(0)\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n const { serialize } =\n require('next/dist/compiled/cookie') as typeof import('cookie')\n const previous = res.getHeader('Set-Cookie')\n res.setHeader(`Set-Cookie`, [\n ...(typeof previous === 'string'\n ? [previous]\n : Array.isArray(previous)\n ? previous\n : []),\n serialize(COOKIE_NAME_PRERENDER_BYPASS, options.previewModeId, {\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n expires,\n }),\n ])\n return res\n}\n\nfunction setPreviewData<T>(\n res: NextApiResponse<T>,\n data: object | string, // TODO: strict runtime type checking\n options: {\n maxAge?: number\n path?: string\n } & __ApiPreviewProps\n): NextApiResponse<T> {\n if (!isValidData(options.previewModeId)) {\n throw new Error('invariant: invalid previewModeId')\n }\n if (!isValidData(options.previewModeEncryptionKey)) {\n throw new Error('invariant: invalid previewModeEncryptionKey')\n }\n if (!isValidData(options.previewModeSigningKey)) {\n throw new Error('invariant: invalid previewModeSigningKey')\n }\n\n const jsonwebtoken =\n require('next/dist/compiled/jsonwebtoken') as typeof import('next/dist/compiled/jsonwebtoken')\n const { encryptWithSecret } =\n require('../../crypto-utils') as typeof import('../../crypto-utils')\n const payload = jsonwebtoken.sign(\n {\n data: encryptWithSecret(\n Buffer.from(options.previewModeEncryptionKey),\n JSON.stringify(data)\n ),\n },\n options.previewModeSigningKey,\n {\n algorithm: 'HS256',\n ...(options.maxAge !== undefined\n ? { expiresIn: options.maxAge }\n : undefined),\n }\n )\n\n // limit preview mode cookie to 2KB since we shouldn't store too much\n // data here and browsers drop cookies over 4KB\n if (payload.length > 2048) {\n throw new Error(\n `Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue`\n )\n }\n\n const { serialize } =\n require('next/dist/compiled/cookie') as typeof import('cookie')\n const previous = res.getHeader('Set-Cookie')\n res.setHeader(`Set-Cookie`, [\n ...(typeof previous === 'string'\n ? [previous]\n : Array.isArray(previous)\n ? previous\n : []),\n serialize(COOKIE_NAME_PRERENDER_BYPASS, options.previewModeId, {\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.maxAge !== undefined\n ? ({ maxAge: options.maxAge } as CookieSerializeOptions)\n : undefined),\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, payload, {\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.maxAge !== undefined\n ? ({ maxAge: options.maxAge } as CookieSerializeOptions)\n : undefined),\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n ])\n return res\n}\n\nasync function revalidate(\n urlPath: string,\n opts: {\n unstable_onlyGenerated?: boolean\n },\n req: IncomingMessage,\n context: ApiContext\n) {\n if (typeof urlPath !== 'string' || !urlPath.startsWith('/')) {\n throw new Error(\n `Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${urlPath}`\n )\n }\n const revalidateHeaders: HeadersInit = {\n [PRERENDER_REVALIDATE_HEADER]: context.previewModeId,\n ...(opts.unstable_onlyGenerated\n ? {\n [PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER]: '1',\n }\n : {}),\n }\n const allowedRevalidateHeaderKeys = [\n ...(context.allowedRevalidateHeaderKeys || []),\n ...(context.trustHostHeader\n ? ['cookie', 'x-vercel-protection-bypass']\n : []),\n ]\n\n for (const key of Object.keys(req.headers)) {\n if (allowedRevalidateHeaderKeys.includes(key)) {\n revalidateHeaders[key] = req.headers[key] as string\n }\n }\n\n try {\n if (context.trustHostHeader) {\n const res = await fetch(`https://${req.headers.host}${urlPath}`, {\n method: 'HEAD',\n headers: revalidateHeaders,\n })\n // we use the cache header to determine successful revalidate as\n // a non-200 status code can be returned from a successful revalidate\n // e.g. notFound: true returns 404 status code but is successful\n const cacheHeader =\n res.headers.get('x-vercel-cache') || res.headers.get('x-nextjs-cache')\n\n if (\n cacheHeader?.toUpperCase() !== 'REVALIDATED' &&\n !(res.status === 404 && opts.unstable_onlyGenerated)\n ) {\n throw new Error(`Invalid response ${res.status}`)\n }\n } else if (context.revalidate) {\n await context.revalidate({\n urlPath,\n revalidateHeaders,\n opts,\n })\n } else {\n throw new Error(\n `Invariant: required internal revalidate method not passed to api-utils`\n )\n }\n } catch (err: unknown) {\n throw new Error(\n `Failed to revalidate ${urlPath}: ${isError(err) ? err.message : err}`\n )\n }\n}\n\nexport async function apiResolver(\n req: IncomingMessage,\n res: ServerResponse,\n query: any,\n resolverModule: any,\n apiContext: ApiContext,\n propagateError: boolean,\n dev?: boolean,\n page?: string,\n onError?: ServerOnInstrumentationRequestError\n): Promise<void> {\n const apiReq = req as NextApiRequest\n const apiRes = res as NextApiResponse\n\n try {\n if (!resolverModule) {\n res.statusCode = 404\n res.end('Not Found')\n return\n }\n const config: PageConfig = resolverModule.config || {}\n const bodyParser = config.api?.bodyParser !== false\n const responseLimit = config.api?.responseLimit ?? true\n const externalResolver = config.api?.externalResolver || false\n\n // Parsing of cookies\n setLazyProp({ req: apiReq }, 'cookies', getCookieParser(req.headers))\n // Parsing query string\n apiReq.query = query\n // Parsing preview data\n setLazyProp({ req: apiReq }, 'previewData', () =>\n tryGetPreviewData(req, res, apiContext, !!apiContext.multiZoneDraftMode)\n )\n // Checking if preview mode is enabled\n setLazyProp({ req: apiReq }, 'preview', () =>\n apiReq.previewData !== false ? true : undefined\n )\n // Set draftMode to the same value as preview\n setLazyProp({ req: apiReq }, 'draftMode', () => apiReq.preview)\n\n // Parsing of body\n if (bodyParser && !apiReq.body) {\n apiReq.body = await parseBody(\n apiReq,\n config.api && config.api.bodyParser && config.api.bodyParser.sizeLimit\n ? config.api.bodyParser.sizeLimit\n : '1mb'\n )\n }\n\n let contentLength = 0\n const maxContentLength = getMaxContentLength(responseLimit)\n const writeData = apiRes.write\n const endResponse = apiRes.end\n apiRes.write = (...args: any[2]) => {\n contentLength += Buffer.byteLength(args[0] || '')\n return writeData.apply(apiRes, args)\n }\n apiRes.end = (...args: any[2]) => {\n if (args.length && typeof args[0] !== 'function') {\n contentLength += Buffer.byteLength(args[0] || '')\n }\n\n if (responseLimit && contentLength >= maxContentLength) {\n console.warn(\n `API response for ${req.url} exceeds ${bytes.format(\n maxContentLength\n )}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`\n )\n }\n\n return endResponse.apply(apiRes, args)\n }\n apiRes.status = (statusCode) => sendStatusCode(apiRes, statusCode)\n apiRes.send = (data) => sendData(apiReq, apiRes, data)\n apiRes.json = (data) => sendJson(apiRes, data)\n apiRes.redirect = (statusOrUrl: number | string, url?: string) =>\n redirect(apiRes, statusOrUrl, url)\n apiRes.setDraftMode = (options = { enable: true }) =>\n setDraftMode(apiRes, Object.assign({}, apiContext, options))\n apiRes.setPreviewData = (data, options = {}) =>\n setPreviewData(apiRes, data, Object.assign({}, apiContext, options))\n apiRes.clearPreviewData = (options = {}) =>\n clearPreviewData(apiRes, options)\n apiRes.revalidate = (\n urlPath: string,\n opts?: {\n unstable_onlyGenerated?: boolean\n }\n ) => revalidate(urlPath, opts || {}, req, apiContext)\n\n const resolver = interopDefault(resolverModule)\n let wasPiped = false\n\n if (process.env.NODE_ENV !== 'production') {\n // listen for pipe event and don't show resolve warning\n res.once('pipe', () => (wasPiped = true))\n }\n\n const apiRouteResult = await resolver(req, res)\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof apiRouteResult !== 'undefined') {\n if (apiRouteResult instanceof Response) {\n throw new Error(\n 'API route returned a Response object in the Node.js runtime, this is not supported. Please use `runtime: \"edge\"` instead: https://nextjs.org/docs/api-routes/edge-api-routes'\n )\n }\n console.warn(\n `API handler should not return a value, received ${typeof apiRouteResult}.`\n )\n }\n\n if (!externalResolver && !isResSent(res) && !wasPiped) {\n console.warn(\n `API resolved without sending a response for ${req.url}, this may result in stalled requests.`\n )\n }\n }\n } catch (err) {\n onError?.(err, req, {\n routerKind: 'Pages Router',\n routePath: page || '',\n routeType: 'route',\n revalidateReason: undefined,\n })\n\n if (err instanceof ApiError) {\n sendError(apiRes, err.statusCode, err.message)\n } else {\n if (dev) {\n if (isError(err)) {\n err.page = page\n }\n throw err\n }\n\n console.error(err)\n if (propagateError) {\n throw err\n }\n sendError(apiRes, 500, 'Internal Server Error')\n }\n }\n}\n","import type { NextApiRequestCookies } from '.'\n\n/**\n * Parse cookies from the `headers` of request\n * @param req request object\n */\n\nexport function getCookieParser(headers: {\n [key: string]: string | string[] | null | undefined\n}): () => NextApiRequestCookies {\n return function parseCookie(): NextApiRequestCookies {\n const { cookie } = headers\n\n if (!cookie) {\n return {}\n }\n\n const { parse: parseCookieFn } = require('next/dist/compiled/cookie')\n return parseCookieFn(Array.isArray(cookie) ? cookie.join('; ') : cookie)\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextApiResponse } from '../../../shared/lib/utils'\nimport { checkIsOnDemandRevalidate } from '../.'\nimport type { __ApiPreviewProps } from '../.'\nimport type { BaseNextRequest, BaseNextResponse } from '../../base-http'\nimport type { PreviewData } from '../../../types'\n\nimport {\n clearPreviewData,\n COOKIE_NAME_PRERENDER_BYPASS,\n COOKIE_NAME_PRERENDER_DATA,\n SYMBOL_PREVIEW_DATA,\n} from '../index'\nimport { RequestCookies } from '../../web/spec-extension/cookies'\nimport { HeadersAdapter } from '../../web/spec-extension/adapters/headers'\n\nexport function tryGetPreviewData(\n req: IncomingMessage | BaseNextRequest | Request,\n res: ServerResponse | BaseNextResponse,\n options: __ApiPreviewProps,\n multiZoneDraftMode: boolean\n): PreviewData {\n // if an On-Demand revalidation is being done preview mode\n // is disabled\n if (options && checkIsOnDemandRevalidate(req, options).isOnDemandRevalidate) {\n return false\n }\n\n // Read cached preview data if present\n // TODO: use request metadata instead of a symbol\n if (SYMBOL_PREVIEW_DATA in req) {\n return (req as any)[SYMBOL_PREVIEW_DATA] as any\n }\n\n const headers = HeadersAdapter.from(req.headers)\n const cookies = new RequestCookies(headers)\n\n const previewModeId = cookies.get(COOKIE_NAME_PRERENDER_BYPASS)?.value\n const tokenPreviewData = cookies.get(COOKIE_NAME_PRERENDER_DATA)?.value\n\n // Case: preview mode cookie set but data cookie is not set\n if (\n previewModeId &&\n !tokenPreviewData &&\n previewModeId === options.previewModeId\n ) {\n // This is \"Draft Mode\" which doesn't use\n // previewData, so we return an empty object\n // for backwards compat with \"Preview Mode\".\n const data = {}\n Object.defineProperty(req, SYMBOL_PREVIEW_DATA, {\n value: data,\n enumerable: false,\n })\n return data\n }\n\n // Case: neither cookie is set.\n if (!previewModeId && !tokenPreviewData) {\n return false\n }\n\n // Case: one cookie is set, but not the other.\n if (!previewModeId || !tokenPreviewData) {\n if (!multiZoneDraftMode) {\n clearPreviewData(res as NextApiResponse)\n }\n return false\n }\n\n // Case: preview session is for an old build.\n if (previewModeId !== options.previewModeId) {\n if (!multiZoneDraftMode) {\n clearPreviewData(res as NextApiResponse)\n }\n return false\n }\n\n let encryptedPreviewData: {\n data: string\n }\n try {\n const jsonwebtoken =\n require('next/dist/compiled/jsonwebtoken') as typeof import('next/dist/compiled/jsonwebtoken')\n encryptedPreviewData = jsonwebtoken.verify(\n tokenPreviewData,\n options.previewModeSigningKey\n ) as typeof encryptedPreviewData\n } catch {\n // TODO: warn\n clearPreviewData(res as NextApiResponse)\n return false\n }\n\n const { decryptWithSecret } =\n require('../../crypto-utils') as typeof import('../../crypto-utils')\n const decryptedPreviewData = decryptWithSecret(\n Buffer.from(options.previewModeEncryptionKey),\n encryptedPreviewData.data\n )\n\n try {\n // TODO: strict runtime type checking\n const data = JSON.parse(decryptedPreviewData)\n // Cache lookup\n Object.defineProperty(req, SYMBOL_PREVIEW_DATA, {\n value: data,\n enumerable: false,\n })\n return data\n } catch {\n return false\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http'\nimport type RenderResult from './render-result'\nimport type { Revalidate, ExpireTime } from './lib/revalidate'\n\nimport { isResSent } from '../shared/lib/utils'\nimport { generateETag } from './lib/etag'\nimport fresh from 'next/dist/compiled/fresh'\nimport { formatRevalidate } from './lib/revalidate'\nimport { RSC_CONTENT_TYPE_HEADER } from '../client/components/app-router-headers'\n\nexport function sendEtagResponse(\n req: IncomingMessage,\n res: ServerResponse,\n etag: string | undefined\n): boolean {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */\n res.setHeader('ETag', etag)\n }\n\n if (fresh(req.headers, { etag })) {\n res.statusCode = 304\n res.end()\n return true\n }\n\n return false\n}\n\nexport async function sendRenderResult({\n req,\n res,\n result,\n type,\n generateEtags,\n poweredByHeader,\n revalidate,\n expireTime,\n}: {\n req: IncomingMessage\n res: ServerResponse\n result: RenderResult\n type: 'html' | 'json' | 'rsc'\n generateEtags: boolean\n poweredByHeader: boolean\n revalidate: Revalidate | undefined\n expireTime: ExpireTime | undefined\n}): Promise<void> {\n if (isResSent(res)) {\n return\n }\n\n if (poweredByHeader && type === 'html') {\n res.setHeader('X-Powered-By', 'Next.js')\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (typeof revalidate !== 'undefined' && !res.getHeader('Cache-Control')) {\n res.setHeader(\n 'Cache-Control',\n formatRevalidate({\n revalidate,\n expireTime,\n })\n )\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString()\n\n if (generateEtags && payload !== null) {\n const etag = generateETag(payload)\n if (sendEtagResponse(req, res, etag)) {\n return\n }\n }\n\n if (!res.getHeader('Content-Type')) {\n res.setHeader(\n 'Content-Type',\n result.contentType\n ? result.contentType\n : type === 'rsc'\n ? RSC_CONTENT_TYPE_HEADER\n : type === 'json'\n ? 'application/json'\n : 'text/html; charset=utf-8'\n )\n }\n\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload))\n }\n\n if (req.method === 'HEAD') {\n res.end(null)\n return\n }\n\n if (payload !== null) {\n res.end(payload)\n return\n }\n\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res)\n}\n","export function interopDefault(mod: any) {\n return mod.default || mod\n}\n","import type { IncomingMessage, ServerResponse } from 'http'\nimport type { PagesAPIRouteDefinition } from '../../route-definitions/pages-api-route-definition'\nimport type { PageConfig } from '../../../types'\nimport type { ParsedUrlQuery } from 'querystring'\nimport { wrapApiHandler, type __ApiPreviewProps } from '../../api-utils'\nimport type { RouteModuleOptions } from '../route-module'\n\nimport { RouteModule, type RouteModuleHandleContext } from '../route-module'\nimport { apiResolver } from '../../api-utils/node/api-resolver'\n\ntype PagesAPIHandleFn = (\n req: IncomingMessage,\n res: ServerResponse\n) => Promise<void>\n\n/**\n * The PagesAPIModule is the type of the module exported by the bundled Pages\n * API module.\n */\nexport type PagesAPIModule = typeof import('../../../build/templates/pages-api')\n\ntype PagesAPIUserlandModule = {\n /**\n * The exported handler method.\n */\n readonly default: PagesAPIHandleFn\n\n /**\n * The exported page config.\n */\n readonly config?: PageConfig\n}\n\ntype PagesAPIRouteHandlerContext = RouteModuleHandleContext & {\n /**\n * The incoming server request in non-edge runtime.\n */\n req?: IncomingMessage\n\n /**\n * The outgoing server response in non-edge runtime.\n */\n res?: ServerResponse\n\n /**\n * The revalidate method used by the `revalidate` API.\n *\n * @param config the configuration for the revalidation\n */\n revalidate: (config: {\n urlPath: string\n revalidateHeaders: { [key: string]: string | string[] }\n opts: { unstable_onlyGenerated?: boolean }\n }) => Promise<void>\n\n /**\n * The hostname for the request.\n */\n hostname?: string\n\n /**\n * Keys allowed in the revalidate call.\n */\n allowedRevalidateHeaderKeys?: string[]\n\n /**\n * Whether to trust the host header.\n */\n trustHostHeader?: boolean\n\n /**\n * The query for the request.\n */\n query: ParsedUrlQuery\n\n /**\n * The preview props used by the `preview` API.\n */\n previewProps: __ApiPreviewProps\n\n /**\n * True if the server is in development mode.\n */\n dev: boolean\n\n /**\n * True if the server is in minimal mode.\n */\n minimalMode: boolean\n\n /**\n * The page that's being rendered.\n */\n page: string\n\n /**\n * The error handler for the request.\n */\n onError?: Parameters<typeof apiResolver>[8]\n\n /**\n * whether multi-zone flag is enabled for draft mode\n */\n multiZoneDraftMode?: boolean\n}\n\nexport type PagesAPIRouteModuleOptions = RouteModuleOptions<\n PagesAPIRouteDefinition,\n PagesAPIUserlandModule\n>\n\nexport class PagesAPIRouteModule extends RouteModule<\n PagesAPIRouteDefinition,\n PagesAPIUserlandModule\n> {\n private apiResolverWrapped: typeof apiResolver\n\n constructor(options: PagesAPIRouteModuleOptions) {\n super(options)\n\n if (typeof options.userland.default !== 'function') {\n throw new Error(\n `Page ${options.definition.page} does not export a default function.`\n )\n }\n\n this.apiResolverWrapped = wrapApiHandler(\n options.definition.page,\n apiResolver\n )\n }\n\n /**\n *\n * @param req the incoming server request\n * @param res the outgoing server response\n * @param context the context for the render\n */\n public async render(\n req: IncomingMessage,\n res: ServerResponse,\n context: PagesAPIRouteHandlerContext\n ): Promise<void> {\n const { apiResolverWrapped } = this\n await apiResolverWrapped(\n req,\n res,\n context.query,\n this.userland,\n {\n ...context.previewProps,\n revalidate: context.revalidate,\n trustHostHeader: context.trustHostHeader,\n allowedRevalidateHeaderKeys: context.allowedRevalidateHeaderKeys,\n hostname: context.hostname,\n multiZoneDraftMode: context.multiZoneDraftMode,\n },\n context.minimalMode,\n context.dev,\n context.page,\n context.onError\n )\n }\n}\n\nexport default PagesAPIRouteModule\n"],"names":["__defProp","Object","__getOwnPropDesc","__getOwnPropNames","__hasOwnProp","src_exports","stringifyCookie","c","_a","attrs","Date","Boolean","stringified","encodeURIComponent","parseCookie","cookie","map","Map","pair","splitAt","key","value","decodeURIComponent","parseSetCookie","setCookie","string","name","attributes","domain","expires","httponly","maxage","path","samesite","secure","partitioned","priority","value2","compact","t","newT","Number","SAME_SITE","PRIORITY","__export","target","all","RequestCookies","ResponseCookies","module","to","from","except","desc","requestHeaders","header","Symbol","args","Array","_","n","names","result","JSON","v","responseHeaders","_b","_c","cookieString","splitCookiesString","cookiesString","start","ch","lastComma","nextStart","cookiesSeparatorFound","cookiesStrings","pos","skipWhitespace","parsed","normalizeCookie","replace","bag","headers","serialized","options","e","r","parse","format","a","Math","i","o","s","f","undefined","u","p","l","b","isNaN","parseFloat","parseInt","__nccwpck_require__","__dirname","ContentType","TypeError","qstring","String","getcontenttype","tryDecode","isFinite","parseHttpDate","NaN","parseTokenList","CIPHER_ALGORITHM","encryptWithSecret","secret","data","iv","crypto","salt","cipher","encrypted","Buffer","concat","update","final","tag","getAuthTag","toString","decryptWithSecret","encryptedData","buffer","slice","CIPHER_SALT_LENGTH","decipher","setAuthTag","ReflectAdapter","get","prop","receiver","Reflect","bind","set","has","deleteProperty","ReadonlyHeadersError","Error","constructor","callable","HeadersAdapter","Headers","Proxy","lowercased","toLowerCase","original","keys","find","seal","merge","isArray","join","append","existing","push","delete","forEach","callbackfn","thisArg","entries","call","values","iterator","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","api","middleware","instrument","edgeAsset","appPagesBrowser","GROUP","builtinReact","serverOnly","neutralTarget","clientOnly","bundled","appPages","BaseServerSpan","LoadComponentsSpan","NextServerSpan","NextNodeServerSpan","StartServerSpan","RenderSpan","AppRenderSpan","RouterSpan","NodeSpan","AppRouteRouteHandlersSpan","ResolveMetadataSpan","MiddlewareSpan","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","res","serialize","require","previous","getHeader","setHeader","httpOnly","sameSite","process","defineProperty","enumerable","ApiError","statusCode","message","sendError","statusMessage","end","setLazyProp","req","getter","opts","configurable","optsReset","writable","RouteModule","userland","definition","fnv1a52","str","len","length","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","generateETag","payload","weak","prefix","SP","performance","every","method","isError","err","parseBody","limit","contentType","type","parameters","encoding","charset","getRawBody","body","parseJson","qs","decode","isValidData","revalidate","urlPath","context","startsWith","revalidateHeaders","previewModeId","unstable_onlyGenerated","allowedRevalidateHeaderKeys","trustHostHeader","includes","fetch","host","cacheHeader","toUpperCase","status","apiResolver","query","resolverModule","apiContext","propagateError","dev","page","onError","config","bodyParser","responseLimit","externalResolver","parseCookieFn","apiReq","tryGetPreviewData","multiZoneDraftMode","cookies","encryptedPreviewData","checkIsOnDemandRevalidate","previewProps","isOnDemandRevalidate","revalidateOnlyGenerated","tokenPreviewData","jsonwebtoken","verify","previewModeSigningKey","decryptedPreviewData","previewModeEncryptionKey","previewData","preview","sizeLimit","contentLength","maxContentLength","bytes","writeData","apiRes","write","endResponse","byteLength","apply","console","warn","url","send","sendData","etag","removeHeader","Stream","pipe","isJSONLike","stringifiedBody","stringify","fresh","isBuffer","json","redirect","statusOrUrl","writeHead","Location","setDraftMode","enable","assign","setPreviewData","sign","algorithm","maxAge","expiresIn","resolver","mod","default","wasPiped","once","apiRouteResult","Response","finished","headersSent","routerKind","routePath","routeType","revalidateReason","error","PagesAPIRouteModule","apiResolverWrapped","wrapApiHandler","handler","getTracer","setRootSpanAttribute","trace","spanName","render","hostname","minimalMode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pages-api.runtime.dev.js","sources":["webpack://next/./dist/compiled/@edge-runtime/cookies/index.js","webpack://next/./dist/compiled/bytes/index.js","webpack://next/./dist/compiled/content-type/index.js","webpack://next/./dist/compiled/cookie/index.js","webpack://next/./dist/compiled/fresh/index.js","webpack://next/./dist/src/server/crypto-utils.ts","webpack://next/./dist/src/server/web/spec-extension/adapters/reflect.ts","webpack://next/./dist/src/server/web/spec-extension/adapters/headers.ts","webpack://next/./dist/src/lib/constants.ts","webpack://next/./dist/src/server/lib/trace/constants.ts","webpack://next/./dist/src/server/api-utils/index.ts","webpack://next/./dist/src/server/route-modules/route-module.ts","webpack://next/./dist/src/server/lib/etag.ts","webpack://next/./dist/src/shared/lib/utils.ts","webpack://next/./dist/src/lib/is-error.ts","webpack://next/./dist/src/server/api-utils/node/parse-body.ts","webpack://next/./dist/src/server/api-utils/node/api-resolver.ts","webpack://next/./dist/src/server/api-utils/get-cookie-parser.ts","webpack://next/./dist/src/server/api-utils/node/try-get-preview-data.ts","webpack://next/./dist/src/server/send-payload.ts","webpack://next/./dist/src/lib/interop-default.ts","webpack://next/./dist/src/server/route-modules/pages-api/module.ts"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});\n","(()=>{\"use strict\";var e={56:e=>{\n/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\ne.exports=bytes;e.exports.format=format;e.exports.parse=parse;var r=/\\B(?=(\\d{3})+(?!\\d))/g;var a=/(?:\\.0*|(\\.[^0]+)0+)$/;var t={b:1,kb:1<<10,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)};var i=/^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;function bytes(e,r){if(typeof e===\"string\"){return parse(e)}if(typeof e===\"number\"){return format(e,r)}return null}function format(e,i){if(!Number.isFinite(e)){return null}var n=Math.abs(e);var o=i&&i.thousandsSeparator||\"\";var s=i&&i.unitSeparator||\"\";var f=i&&i.decimalPlaces!==undefined?i.decimalPlaces:2;var u=Boolean(i&&i.fixedDecimals);var p=i&&i.unit||\"\";if(!p||!t[p.toLowerCase()]){if(n>=t.pb){p=\"PB\"}else if(n>=t.tb){p=\"TB\"}else if(n>=t.gb){p=\"GB\"}else if(n>=t.mb){p=\"MB\"}else if(n>=t.kb){p=\"KB\"}else{p=\"B\"}}var b=e/t[p.toLowerCase()];var l=b.toFixed(f);if(!u){l=l.replace(a,\"$1\")}if(o){l=l.split(\".\").map((function(e,a){return a===0?e.replace(r,o):e})).join(\".\")}return l+s+p}function parse(e){if(typeof e===\"number\"&&!isNaN(e)){return e}if(typeof e!==\"string\"){return null}var r=i.exec(e);var a;var n=\"b\";if(!r){a=parseInt(e,10);n=\"b\"}else{a=parseFloat(r[1]);n=r[4].toLowerCase()}return Math.floor(t[n]*a)}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var i=r[a]={exports:{}};var n=true;try{e[a](i,i.exports,__nccwpck_require__);n=false}finally{if(n)delete r[a]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(56);module.exports=a})();","(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */var t=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;var a=/^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/;var n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;var i=/\\\\([\\u000b\\u0020-\\u00ff])/g;var o=/([\\\\\"])/g;var f=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;r.format=format;r.parse=parse;function format(e){if(!e||typeof e!==\"object\"){throw new TypeError(\"argument obj is required\")}var r=e.parameters;var t=e.type;if(!t||!f.test(t)){throw new TypeError(\"invalid type\")}var a=t;if(r&&typeof r===\"object\"){var i;var o=Object.keys(r).sort();for(var u=0;u<o.length;u++){i=o[u];if(!n.test(i)){throw new TypeError(\"invalid parameter name\")}a+=\"; \"+i+\"=\"+qstring(r[i])}}return a}function parse(e){if(!e){throw new TypeError(\"argument string is required\")}var r=typeof e===\"object\"?getcontenttype(e):e;if(typeof r!==\"string\"){throw new TypeError(\"argument string is required to be a string\")}var a=r.indexOf(\";\");var n=a!==-1?r.substr(0,a).trim():r.trim();if(!f.test(n)){throw new TypeError(\"invalid media type\")}var o=new ContentType(n.toLowerCase());if(a!==-1){var u;var p;var s;t.lastIndex=a;while(p=t.exec(r)){if(p.index!==a){throw new TypeError(\"invalid parameter format\")}a+=p[0].length;u=p[1].toLowerCase();s=p[2];if(s[0]==='\"'){s=s.substr(1,s.length-2).replace(i,\"$1\")}o.parameters[u]=s}if(a!==r.length){throw new TypeError(\"invalid parameter format\")}}return o}function getcontenttype(e){var r;if(typeof e.getHeader===\"function\"){r=e.getHeader(\"content-type\")}else if(typeof e.headers===\"object\"){r=e.headers&&e.headers[\"content-type\"]}if(typeof r!==\"string\"){throw new TypeError(\"content-type header is missing from object\")}return r}function qstring(e){var r=String(e);if(n.test(r)){return r}if(r.length>0&&!a.test(r)){throw new TypeError(\"invalid parameter value\")}return'\"'+r.replace(o,\"\\\\$1\")+'\"'}function ContentType(e){this.parameters=Object.create(null);this.type=e}})();module.exports=e})();","(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();","(()=>{\"use strict\";var e={695:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_<u.length;_++){var o=u[_];if(o===f||o===\"W/\"+f||\"W/\"+o===f){n=false;break}}if(n){return false}}if(t){var p=a[\"last-modified\"];var v=!p||!(parseHttpDate(p)<=parseHttpDate(t));if(v){return false}}return true}function parseHttpDate(e){var r=e&&Date.parse(e);return typeof r===\"number\"?r:NaN}function parseTokenList(e){var r=0;var a=[];var t=0;for(var s=0,i=e.length;s<i;s++){switch(e.charCodeAt(s)){case 32:if(t===r){t=r=s+1}break;case 44:a.push(e.substring(t,r));t=r=s+1;break;default:r=s+1;break}}a.push(e.substring(t,r));return a}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var s=r[a]={exports:{}};var i=true;try{e[a](s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete r[a]}return s.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(695);module.exports=a})();","import crypto from 'crypto'\n\n// Background:\n// https://security.stackexchange.com/questions/184305/why-would-i-ever-use-aes-256-cbc-if-aes-256-gcm-is-more-secure\n\nconst CIPHER_ALGORITHM = `aes-256-gcm`,\n CIPHER_KEY_LENGTH = 32, // https://stackoverflow.com/a/28307668/4397028\n CIPHER_IV_LENGTH = 16, // https://stackoverflow.com/a/28307668/4397028\n CIPHER_TAG_LENGTH = 16,\n CIPHER_SALT_LENGTH = 64\n\nconst PBKDF2_ITERATIONS = 100_000 // https://support.1password.com/pbkdf2/\n\nexport function encryptWithSecret(secret: Buffer, data: string): string {\n const iv = crypto.randomBytes(CIPHER_IV_LENGTH)\n const salt = crypto.randomBytes(CIPHER_SALT_LENGTH)\n\n // https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest\n const key = crypto.pbkdf2Sync(\n secret,\n salt,\n PBKDF2_ITERATIONS,\n CIPHER_KEY_LENGTH,\n `sha512`\n )\n\n const cipher = crypto.createCipheriv(CIPHER_ALGORITHM, key, iv)\n const encrypted = Buffer.concat([cipher.update(data, `utf8`), cipher.final()])\n\n // https://nodejs.org/api/crypto.html#crypto_cipher_getauthtag\n const tag = cipher.getAuthTag()\n\n return Buffer.concat([\n // Data as required by:\n // Salt for Key: https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest\n // IV: https://nodejs.org/api/crypto.html#crypto_class_decipher\n // Tag: https://nodejs.org/api/crypto.html#crypto_decipher_setauthtag_buffer\n salt,\n iv,\n tag,\n encrypted,\n ]).toString(`hex`)\n}\n\nexport function decryptWithSecret(\n secret: Buffer,\n encryptedData: string\n): string {\n const buffer = Buffer.from(encryptedData, `hex`)\n\n const salt = buffer.slice(0, CIPHER_SALT_LENGTH)\n const iv = buffer.slice(\n CIPHER_SALT_LENGTH,\n CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH\n )\n const tag = buffer.slice(\n CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH,\n CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH + CIPHER_TAG_LENGTH\n )\n const encrypted = buffer.slice(\n CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH + CIPHER_TAG_LENGTH\n )\n\n // https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest\n const key = crypto.pbkdf2Sync(\n secret,\n salt,\n PBKDF2_ITERATIONS,\n CIPHER_KEY_LENGTH,\n `sha512`\n )\n\n const decipher = crypto.createDecipheriv(CIPHER_ALGORITHM, key, iv)\n decipher.setAuthTag(tag)\n\n return decipher.update(encrypted) + decipher.final(`utf8`)\n}\n","export class ReflectAdapter {\n static get<T extends object>(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set<T extends object>(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has<T extends object>(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty<T extends object>(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n","import type { IncomingHttpHeaders } from 'http'\n\nimport { ReflectAdapter } from './reflect'\n\n/**\n * @internal\n */\nexport class ReadonlyHeadersError extends Error {\n constructor() {\n super(\n 'Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'\n )\n }\n\n public static callable() {\n throw new ReadonlyHeadersError()\n }\n}\n\nexport type ReadonlyHeaders = Headers & {\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n append(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n set(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n delete(...args: any[]): void\n}\nexport class HeadersAdapter extends Headers {\n private readonly headers: IncomingHttpHeaders\n\n constructor(headers: IncomingHttpHeaders) {\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super()\n\n this.headers = new Proxy(headers, {\n get(target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return\n\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return ReflectAdapter.set(target, prop, value, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.has(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false\n\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original)\n },\n deleteProperty(target, prop) {\n if (typeof prop === 'symbol')\n return ReflectAdapter.deleteProperty(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true\n\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original)\n },\n })\n }\n\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */\n public static seal(headers: Headers): ReadonlyHeaders {\n return new Proxy<ReadonlyHeaders>(headers, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */\n private merge(value: string | string[]): string {\n if (Array.isArray(value)) return value.join(', ')\n\n return value\n }\n\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */\n public static from(headers: IncomingHttpHeaders | Headers): Headers {\n if (headers instanceof Headers) return headers\n\n return new HeadersAdapter(headers)\n }\n\n public append(name: string, value: string): void {\n const existing = this.headers[name]\n if (typeof existing === 'string') {\n this.headers[name] = [existing, value]\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n this.headers[name] = value\n }\n }\n\n public delete(name: string): void {\n delete this.headers[name]\n }\n\n public get(name: string): string | null {\n const value = this.headers[name]\n if (typeof value !== 'undefined') return this.merge(value)\n\n return null\n }\n\n public has(name: string): boolean {\n return typeof this.headers[name] !== 'undefined'\n }\n\n public set(name: string, value: string): void {\n this.headers[name] = value\n }\n\n public forEach(\n callbackfn: (value: string, name: string, parent: Headers) => void,\n thisArg?: any\n ): void {\n for (const [name, value] of this.entries()) {\n callbackfn.call(thisArg, value, name, this)\n }\n }\n\n public *entries(): HeadersIterator<[string, string]> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name) as string\n\n yield [name, value] as [string, string]\n }\n }\n\n public *keys(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n yield name\n }\n }\n\n public *values(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key) as string\n\n yield value\n }\n }\n\n public [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries()\n }\n}\n","import type { ServerRuntime } from '../types'\n\nexport const NEXT_QUERY_PARAM_PREFIX = 'nxtP'\nexport const NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI'\n\nexport const MATCHED_PATH_HEADER = 'x-matched-path'\nexport const PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate'\nexport const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER =\n 'x-prerender-revalidate-if-generated'\n\nexport const RSC_PREFETCH_SUFFIX = '.prefetch.rsc'\nexport const RSC_SEGMENTS_DIR_SUFFIX = '.segments'\nexport const RSC_SEGMENT_SUFFIX = '.segment.rsc'\nexport const RSC_SUFFIX = '.rsc'\nexport const ACTION_SUFFIX = '.action'\nexport const NEXT_DATA_SUFFIX = '.json'\nexport const NEXT_META_SUFFIX = '.meta'\nexport const NEXT_BODY_SUFFIX = '.body'\n\nexport const NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags'\nexport const NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags'\nexport const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER =\n 'x-next-revalidate-tag-token'\n\nexport const NEXT_RESUME_HEADER = 'next-resume'\n\n// if these change make sure we update the related\n// documentation as well\nexport const NEXT_CACHE_TAG_MAX_ITEMS = 128\nexport const NEXT_CACHE_TAG_MAX_LENGTH = 256\nexport const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024\nexport const NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_'\n\n// in seconds\nexport const CACHE_ONE_YEAR = 31536000\n\n// in seconds, represents revalidate=false. I.e. never revaliate.\n// We use this value since it can be represented as a V8 SMI for optimal performance.\n// It can also be serialized as JSON if it ever leaks accidentally as an actual value.\nexport const INFINITE_CACHE = 0xfffffffe\n\n// Patterns to detect middleware files\nexport const MIDDLEWARE_FILENAME = 'middleware'\nexport const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`\n\n// Pattern to detect instrumentation hooks file\nexport const INSTRUMENTATION_HOOK_FILENAME = 'instrumentation'\n\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\nexport const PAGES_DIR_ALIAS = 'private-next-pages'\nexport const DOT_NEXT_ALIAS = 'private-dot-next'\nexport const ROOT_DIR_ALIAS = 'private-next-root-dir'\nexport const APP_DIR_ALIAS = 'private-next-app-dir'\nexport const RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy'\nexport const RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate'\nexport const RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference'\nexport const RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper'\nexport const RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption'\nexport const RSC_ACTION_CLIENT_WRAPPER_ALIAS =\n 'private-next-rsc-action-client-wrapper'\n\nexport const PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`\n\nexport const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`\n\nexport const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`\n\nexport const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`\n\nexport const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`\n\nexport const SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`\n\nexport const GSP_NO_RETURNED_VALUE =\n 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?'\nexport const GSSP_NO_RETURNED_VALUE =\n 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?'\n\nexport const UNSTABLE_REVALIDATE_RENAME_ERROR =\n 'The `unstable_revalidate` property is available for general use.\\n' +\n 'Please use `revalidate` instead.'\n\nexport const GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`\n\nexport const NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`\n\nexport const SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`\n\nexport const ESLINT_DEFAULT_DIRS = ['app', 'pages', 'components', 'lib', 'src']\n\nexport const SERVER_RUNTIME: Record<string, ServerRuntime> = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs',\n}\n\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */\nconst WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */\n shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */\n reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */\n serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */\n actionBrowser: 'action-browser',\n /**\n * The layer for the API routes.\n */\n api: 'api',\n /**\n * The layer for the middleware code.\n */\n middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */\n instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */\n edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */\n appPagesBrowser: 'app-pages-browser',\n} as const\n\nexport type WebpackLayerName =\n (typeof WEBPACK_LAYERS_NAMES)[keyof typeof WEBPACK_LAYERS_NAMES]\n\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware,\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.api,\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n },\n}\n\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__',\n}\n\nexport { WEBPACK_LAYERS, WEBPACK_RESOURCE_QUERIES }\n","/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/\n\n// eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */\n\nenum BaseServerSpan {\n handleRequest = 'BaseServer.handleRequest',\n run = 'BaseServer.run',\n pipe = 'BaseServer.pipe',\n getStaticHTML = 'BaseServer.getStaticHTML',\n render = 'BaseServer.render',\n renderToResponseWithComponents = 'BaseServer.renderToResponseWithComponents',\n renderToResponse = 'BaseServer.renderToResponse',\n renderToHTML = 'BaseServer.renderToHTML',\n renderError = 'BaseServer.renderError',\n renderErrorToResponse = 'BaseServer.renderErrorToResponse',\n renderErrorToHTML = 'BaseServer.renderErrorToHTML',\n render404 = 'BaseServer.render404',\n}\n\nenum LoadComponentsSpan {\n loadDefaultErrorComponents = 'LoadComponents.loadDefaultErrorComponents',\n loadComponents = 'LoadComponents.loadComponents',\n}\n\nenum NextServerSpan {\n getRequestHandler = 'NextServer.getRequestHandler',\n getServer = 'NextServer.getServer',\n getServerRequestHandler = 'NextServer.getServerRequestHandler',\n createServer = 'createServer.createServer',\n}\n\nenum NextNodeServerSpan {\n compression = 'NextNodeServer.compression',\n getBuildId = 'NextNodeServer.getBuildId',\n createComponentTree = 'NextNodeServer.createComponentTree',\n clientComponentLoading = 'NextNodeServer.clientComponentLoading',\n getLayoutOrPageModule = 'NextNodeServer.getLayoutOrPageModule',\n generateStaticRoutes = 'NextNodeServer.generateStaticRoutes',\n generateFsStaticRoutes = 'NextNodeServer.generateFsStaticRoutes',\n generatePublicRoutes = 'NextNodeServer.generatePublicRoutes',\n generateImageRoutes = 'NextNodeServer.generateImageRoutes.route',\n sendRenderResult = 'NextNodeServer.sendRenderResult',\n proxyRequest = 'NextNodeServer.proxyRequest',\n runApi = 'NextNodeServer.runApi',\n render = 'NextNodeServer.render',\n renderHTML = 'NextNodeServer.renderHTML',\n imageOptimizer = 'NextNodeServer.imageOptimizer',\n getPagePath = 'NextNodeServer.getPagePath',\n getRoutesManifest = 'NextNodeServer.getRoutesManifest',\n findPageComponents = 'NextNodeServer.findPageComponents',\n getFontManifest = 'NextNodeServer.getFontManifest',\n getServerComponentManifest = 'NextNodeServer.getServerComponentManifest',\n getRequestHandler = 'NextNodeServer.getRequestHandler',\n renderToHTML = 'NextNodeServer.renderToHTML',\n renderError = 'NextNodeServer.renderError',\n renderErrorToHTML = 'NextNodeServer.renderErrorToHTML',\n render404 = 'NextNodeServer.render404',\n startResponse = 'NextNodeServer.startResponse',\n\n // nested inner span, does not require parent scope name\n route = 'route',\n onProxyReq = 'onProxyReq',\n apiResolver = 'apiResolver',\n internalFetch = 'internalFetch',\n}\n\nenum StartServerSpan {\n startServer = 'startServer.startServer',\n}\n\nenum RenderSpan {\n getServerSideProps = 'Render.getServerSideProps',\n getStaticProps = 'Render.getStaticProps',\n renderToString = 'Render.renderToString',\n renderDocument = 'Render.renderDocument',\n createBodyResult = 'Render.createBodyResult',\n}\n\nenum AppRenderSpan {\n renderToString = 'AppRender.renderToString',\n renderToReadableStream = 'AppRender.renderToReadableStream',\n getBodyResult = 'AppRender.getBodyResult',\n fetch = 'AppRender.fetch',\n}\n\nenum RouterSpan {\n executeRoute = 'Router.executeRoute',\n}\n\nenum NodeSpan {\n runHandler = 'Node.runHandler',\n}\n\nenum AppRouteRouteHandlersSpan {\n runHandler = 'AppRouteRouteHandlers.runHandler',\n}\n\nenum ResolveMetadataSpan {\n generateMetadata = 'ResolveMetadata.generateMetadata',\n generateViewport = 'ResolveMetadata.generateViewport',\n}\n\nenum MiddlewareSpan {\n execute = 'Middleware.execute',\n}\n\ntype SpanTypes =\n | `${BaseServerSpan}`\n | `${LoadComponentsSpan}`\n | `${NextServerSpan}`\n | `${StartServerSpan}`\n | `${NextNodeServerSpan}`\n | `${RenderSpan}`\n | `${RouterSpan}`\n | `${AppRenderSpan}`\n | `${NodeSpan}`\n | `${AppRouteRouteHandlersSpan}`\n | `${ResolveMetadataSpan}`\n | `${MiddlewareSpan}`\n\n// This list is used to filter out spans that are not relevant to the user\nexport const NextVanillaSpanAllowlist = [\n MiddlewareSpan.execute,\n BaseServerSpan.handleRequest,\n RenderSpan.getServerSideProps,\n RenderSpan.getStaticProps,\n AppRenderSpan.fetch,\n AppRenderSpan.getBodyResult,\n RenderSpan.renderDocument,\n NodeSpan.runHandler,\n AppRouteRouteHandlersSpan.runHandler,\n ResolveMetadataSpan.generateMetadata,\n ResolveMetadataSpan.generateViewport,\n NextNodeServerSpan.createComponentTree,\n NextNodeServerSpan.findPageComponents,\n NextNodeServerSpan.getLayoutOrPageModule,\n NextNodeServerSpan.startResponse,\n NextNodeServerSpan.clientComponentLoading,\n]\n\n// These Spans are allowed to be always logged\n// when the otel log prefix env is set\nexport const LogSpanAllowList = [\n NextNodeServerSpan.findPageComponents,\n NextNodeServerSpan.createComponentTree,\n NextNodeServerSpan.clientComponentLoading,\n]\n\nexport {\n BaseServerSpan,\n LoadComponentsSpan,\n NextServerSpan,\n NextNodeServerSpan,\n StartServerSpan,\n RenderSpan,\n RouterSpan,\n AppRenderSpan,\n NodeSpan,\n AppRouteRouteHandlersSpan,\n ResolveMetadataSpan,\n MiddlewareSpan,\n}\n\nexport type { SpanTypes }\n","import type { IncomingMessage } from 'http'\nimport type { BaseNextRequest } from '../base-http'\nimport type { CookieSerializeOptions } from 'next/dist/compiled/cookie'\nimport type { NextApiResponse } from '../../shared/lib/utils'\n\nimport { HeadersAdapter } from '../web/spec-extension/adapters/headers'\nimport {\n PRERENDER_REVALIDATE_HEADER,\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER,\n} from '../../lib/constants'\nimport { getTracer } from '../lib/trace/tracer'\nimport { NodeSpan } from '../lib/trace/constants'\n\nexport type NextApiRequestCookies = Partial<{ [key: string]: string }>\nexport type NextApiRequestQuery = Partial<{ [key: string]: string | string[] }>\n\nexport type __ApiPreviewProps = {\n previewModeId: string\n previewModeEncryptionKey: string\n previewModeSigningKey: string\n}\n\nexport function wrapApiHandler<T extends (...args: any[]) => any>(\n page: string,\n handler: T\n): T {\n return ((...args) => {\n getTracer().setRootSpanAttribute('next.route', page)\n // Call API route method\n return getTracer().trace(\n NodeSpan.runHandler,\n {\n spanName: `executing api route (pages) ${page}`,\n },\n () => handler(...args)\n )\n }) as T\n}\n\n/**\n *\n * @param res response object\n * @param statusCode `HTTP` status code of response\n */\nexport function sendStatusCode(\n res: NextApiResponse,\n statusCode: number\n): NextApiResponse<any> {\n res.statusCode = statusCode\n return res\n}\n\n/**\n *\n * @param res response object\n * @param [statusOrUrl] `HTTP` status code of redirect\n * @param url URL of redirect\n */\nexport function redirect(\n res: NextApiResponse,\n statusOrUrl: string | number,\n url?: string\n): NextApiResponse<any> {\n if (typeof statusOrUrl === 'string') {\n url = statusOrUrl\n statusOrUrl = 307\n }\n if (typeof statusOrUrl !== 'number' || typeof url !== 'string') {\n throw new Error(\n `Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`\n )\n }\n res.writeHead(statusOrUrl, { Location: url })\n res.write(url)\n res.end()\n return res\n}\n\nexport function checkIsOnDemandRevalidate(\n req: Request | IncomingMessage | BaseNextRequest,\n previewProps: __ApiPreviewProps\n): {\n isOnDemandRevalidate: boolean\n revalidateOnlyGenerated: boolean\n} {\n const headers = HeadersAdapter.from(req.headers)\n\n const previewModeId = headers.get(PRERENDER_REVALIDATE_HEADER)\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId\n\n const revalidateOnlyGenerated = headers.has(\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER\n )\n\n return { isOnDemandRevalidate, revalidateOnlyGenerated }\n}\n\nexport const COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`\nexport const COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`\n\nexport const RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024\n\nexport const SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA)\nexport const SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS)\n\nexport function clearPreviewData<T>(\n res: NextApiResponse<T>,\n options: {\n path?: string\n } = {}\n): NextApiResponse<T> {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res\n }\n\n const { serialize } =\n require('next/dist/compiled/cookie') as typeof import('cookie')\n const previous = res.getHeader('Set-Cookie')\n res.setHeader(`Set-Cookie`, [\n ...(typeof previous === 'string'\n ? [previous]\n : Array.isArray(previous)\n ? previous\n : []),\n serialize(COOKIE_NAME_PRERENDER_BYPASS, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n ])\n\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false,\n })\n return res\n}\n\n/**\n * Custom error class\n */\nexport class ApiError extends Error {\n readonly statusCode: number\n\n constructor(statusCode: number, message: string) {\n super(message)\n this.statusCode = statusCode\n }\n}\n\n/**\n * Sends error in `response`\n * @param res response object\n * @param statusCode of response\n * @param message of response\n */\nexport function sendError(\n res: NextApiResponse,\n statusCode: number,\n message: string\n): void {\n res.statusCode = statusCode\n res.statusMessage = message\n res.end(message)\n}\n\ninterface LazyProps {\n req: IncomingMessage\n}\n\n/**\n * Execute getter function only if its needed\n * @param LazyProps `req` and `params` for lazyProp\n * @param prop name of property\n * @param getter function to get data\n */\nexport function setLazyProp<T>(\n { req }: LazyProps,\n prop: string,\n getter: () => T\n): void {\n const opts = { configurable: true, enumerable: true }\n const optsReset = { ...opts, writable: true }\n\n Object.defineProperty(req, prop, {\n ...opts,\n get: () => {\n const value = getter()\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, { ...optsReset, value })\n return value\n },\n set: (value) => {\n Object.defineProperty(req, prop, { ...optsReset, value })\n },\n })\n}\n","import type { RouteDefinition } from '../route-definitions/route-definition'\n\n/**\n * RouteModuleOptions is the options that are passed to the route module, other\n * route modules should extend this class to add specific options for their\n * route.\n */\nexport interface RouteModuleOptions<\n D extends RouteDefinition = RouteDefinition,\n U = unknown,\n> {\n readonly definition: Readonly<D>\n readonly userland: Readonly<U>\n}\n\n/**\n * RouteHandlerContext is the base context for a route handler.\n */\nexport interface RouteModuleHandleContext {\n /**\n * Any matched parameters for the request. This is only defined for dynamic\n * routes.\n */\n params: Record<string, string | string[] | undefined> | undefined\n}\n\n/**\n * RouteModule is the base class for all route modules. This class should be\n * extended by all route modules.\n */\nexport abstract class RouteModule<\n D extends RouteDefinition = RouteDefinition,\n U = unknown,\n> {\n /**\n * The userland module. This is the module that is exported from the user's\n * code. This is marked as readonly to ensure that the module is not mutated\n * because the module (when compiled) only provides getters.\n */\n public readonly userland: Readonly<U>\n\n /**\n * The definition of the route.\n */\n public readonly definition: Readonly<D>\n\n /**\n * The shared modules that are exposed and required for the route module.\n */\n public static readonly sharedModules: any\n\n constructor({ userland, definition }: RouteModuleOptions<D, U>) {\n this.userland = userland\n this.definition = definition\n }\n}\n","/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */\nexport const fnv1a52 = (str: string) => {\n const len = str.length\n let i = 0,\n t0 = 0,\n v0 = 0x2325,\n t1 = 0,\n v1 = 0x8422,\n t2 = 0,\n v2 = 0x9ce4,\n t3 = 0,\n v3 = 0xcbf2\n\n while (i < len) {\n v0 ^= str.charCodeAt(i++)\n t0 = v0 * 435\n t1 = v1 * 435\n t2 = v2 * 435\n t3 = v3 * 435\n t2 += v0 << 8\n t3 += v1 << 8\n t1 += t0 >>> 16\n v0 = t0 & 65535\n t2 += t1 >>> 16\n v1 = t1 & 65535\n v3 = (t3 + (t2 >>> 16)) & 65535\n v2 = t2 & 65535\n }\n\n return (\n (v3 & 15) * 281474976710656 +\n v2 * 4294967296 +\n v1 * 65536 +\n (v0 ^ (v3 >> 4))\n )\n}\n\nexport const generateETag = (payload: string, weak = false) => {\n const prefix = weak ? 'W/\"' : '\"'\n return (\n prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '\"'\n )\n}\n","import type { HtmlProps } from './html-context.shared-runtime'\nimport type { ComponentType, JSX } from 'react'\nimport type { DomainLocale } from '../../server/config'\nimport type { Env } from '@next/env'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextRouter } from './router/router'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { PreviewData } from '../../types'\nimport type { COMPILER_NAMES } from './constants'\nimport type fs from 'fs'\n\nexport type NextComponentType<\n Context extends BaseContext = NextPageContext,\n InitialProps = {},\n Props = {},\n> = ComponentType<Props> & {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param context Context of `page`\n */\n getInitialProps?(context: Context): InitialProps | Promise<InitialProps>\n}\n\nexport type DocumentType = NextComponentType<\n DocumentContext,\n DocumentInitialProps,\n DocumentProps\n>\n\nexport type AppType<P = {}> = NextComponentType<\n AppContextType,\n P,\n AppPropsType<any, P>\n>\n\nexport type AppTreeType = ComponentType<\n AppInitialProps & { [name: string]: any }\n>\n\n/**\n * Web vitals provided to _app.reportWebVitals by Core Web Vitals plugin developed by Google Chrome team.\n * https://nextjs.org/blog/next-9-4#integrated-web-vitals-reporting\n */\nexport const WEB_VITALS = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'] as const\nexport type NextWebVitalsMetric = {\n id: string\n startTime: number\n value: number\n attribution?: { [key: string]: unknown }\n} & (\n | {\n label: 'web-vital'\n name: (typeof WEB_VITALS)[number]\n }\n | {\n label: 'custom'\n name:\n | 'Next.js-hydration'\n | 'Next.js-route-change-to-render'\n | 'Next.js-render'\n }\n)\n\nexport type Enhancer<C> = (Component: C) => C\n\nexport type ComponentsEnhancer =\n | {\n enhanceApp?: Enhancer<AppType>\n enhanceComponent?: Enhancer<NextComponentType>\n }\n | Enhancer<NextComponentType>\n\nexport type RenderPageResult = {\n html: string\n head?: Array<JSX.Element | null>\n}\n\nexport type RenderPage = (\n options?: ComponentsEnhancer\n) => DocumentInitialProps | Promise<DocumentInitialProps>\n\nexport type BaseContext = {\n res?: ServerResponse\n [k: string]: any\n}\n\nexport type NEXT_DATA = {\n props: Record<string, any>\n page: string\n query: ParsedUrlQuery\n buildId: string\n assetPrefix?: string\n runtimeConfig?: { [key: string]: any }\n nextExport?: boolean\n autoExport?: boolean\n isFallback?: boolean\n isExperimentalCompile?: boolean\n dynamicIds?: (string | number)[]\n err?: Error & {\n statusCode?: number\n source?: typeof COMPILER_NAMES.server | typeof COMPILER_NAMES.edgeServer\n }\n gsp?: boolean\n gssp?: boolean\n customServer?: boolean\n gip?: boolean\n appGip?: boolean\n locale?: string\n locales?: readonly string[]\n defaultLocale?: string\n domainLocales?: readonly DomainLocale[]\n scriptLoader?: any[]\n isPreview?: boolean\n notFoundSrcPage?: string\n}\n\n/**\n * `Next` context\n */\nexport interface NextPageContext {\n /**\n * Error object if encountered during rendering\n */\n err?: (Error & { statusCode?: number }) | null\n /**\n * `HTTP` request object.\n */\n req?: IncomingMessage\n /**\n * `HTTP` response object.\n */\n res?: ServerResponse\n /**\n * Path section of `URL`.\n */\n pathname: string\n /**\n * Query string section of `URL` parsed as an object.\n */\n query: ParsedUrlQuery\n /**\n * `String` of the actual path including query.\n */\n asPath?: string\n /**\n * The currently active locale\n */\n locale?: string\n /**\n * All configured locales\n */\n locales?: readonly string[]\n /**\n * The configured default locale\n */\n defaultLocale?: string\n /**\n * `Component` the tree of the App to use if needing to render separately\n */\n AppTree: AppTreeType\n}\n\nexport type AppContextType<Router extends NextRouter = NextRouter> = {\n Component: NextComponentType<NextPageContext>\n AppTree: AppTreeType\n ctx: NextPageContext\n router: Router\n}\n\nexport type AppInitialProps<PageProps = any> = {\n pageProps: PageProps\n}\n\nexport type AppPropsType<\n Router extends NextRouter = NextRouter,\n PageProps = {},\n> = AppInitialProps<PageProps> & {\n Component: NextComponentType<NextPageContext, any, any>\n router: Router\n __N_SSG?: boolean\n __N_SSP?: boolean\n}\n\nexport type DocumentContext = NextPageContext & {\n renderPage: RenderPage\n defaultGetInitialProps(\n ctx: DocumentContext,\n options?: { nonce?: string }\n ): Promise<DocumentInitialProps>\n}\n\nexport type DocumentInitialProps = RenderPageResult & {\n styles?: React.ReactElement[] | Iterable<React.ReactNode> | JSX.Element\n}\n\nexport type DocumentProps = DocumentInitialProps & HtmlProps\n\n/**\n * Next `API` route request\n */\nexport interface NextApiRequest extends IncomingMessage {\n /**\n * Object of `query` values from url\n */\n query: Partial<{\n [key: string]: string | string[]\n }>\n /**\n * Object of `cookies` from header\n */\n cookies: Partial<{\n [key: string]: string\n }>\n\n body: any\n\n env: Env\n\n draftMode?: boolean\n\n preview?: boolean\n /**\n * Preview data set on the request, if any\n * */\n previewData?: PreviewData\n}\n\n/**\n * Send body of response\n */\ntype Send<T> = (body: T) => void\n\n/**\n * Next `API` route response\n */\nexport type NextApiResponse<Data = any> = ServerResponse & {\n /**\n * Send data `any` data in response\n */\n send: Send<Data>\n /**\n * Send data `json` data in response\n */\n json: Send<Data>\n status: (statusCode: number) => NextApiResponse<Data>\n redirect(url: string): NextApiResponse<Data>\n redirect(status: number, url: string): NextApiResponse<Data>\n\n /**\n * Set draft mode\n */\n setDraftMode: (options: { enable: boolean }) => NextApiResponse<Data>\n\n /**\n * Set preview data for Next.js' prerender mode\n */\n setPreviewData: (\n data: object | string,\n options?: {\n /**\n * Specifies the number (in seconds) for the preview session to last for.\n * The given number will be converted to an integer by rounding down.\n * By default, no maximum age is set and the preview session finishes\n * when the client shuts down (browser is closed).\n */\n maxAge?: number\n /**\n * Specifies the path for the preview session to work under. By default,\n * the path is considered the \"default path\", i.e., any pages under \"/\".\n */\n path?: string\n }\n ) => NextApiResponse<Data>\n\n /**\n * Clear preview data for Next.js' prerender mode\n */\n clearPreviewData: (options?: { path?: string }) => NextApiResponse<Data>\n\n /**\n * Revalidate a specific page and regenerate it using On-Demand Incremental\n * Static Regeneration.\n * The path should be an actual path, not a rewritten path. E.g. for\n * \"/blog/[slug]\" this should be \"/blog/post-1\".\n * @link https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration#on-demand-revalidation-with-revalidatepath\n */\n revalidate: (\n urlPath: string,\n opts?: {\n unstable_onlyGenerated?: boolean\n }\n ) => Promise<void>\n}\n\n/**\n * Next `API` route handler\n */\nexport type NextApiHandler<T = any> = (\n req: NextApiRequest,\n res: NextApiResponse<T>\n) => unknown | Promise<unknown>\n\n/**\n * Utils\n */\nexport function execOnce<T extends (...args: any[]) => ReturnType<T>>(\n fn: T\n): T {\n let used = false\n let result: ReturnType<T>\n\n return ((...args: any[]) => {\n if (!used) {\n used = true\n result = fn(...args)\n }\n return result\n }) as T\n}\n\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/\nexport const isAbsoluteUrl = (url: string) => ABSOLUTE_URL_REGEX.test(url)\n\nexport function getLocationOrigin() {\n const { protocol, hostname, port } = window.location\n return `${protocol}//${hostname}${port ? ':' + port : ''}`\n}\n\nexport function getURL() {\n const { href } = window.location\n const origin = getLocationOrigin()\n return href.substring(origin.length)\n}\n\nexport function getDisplayName<P>(Component: ComponentType<P>) {\n return typeof Component === 'string'\n ? Component\n : Component.displayName || Component.name || 'Unknown'\n}\n\nexport function isResSent(res: ServerResponse) {\n return res.finished || res.headersSent\n}\n\nexport function normalizeRepeatedSlashes(url: string) {\n const urlParts = url.split('?')\n const urlNoQuery = urlParts[0]\n\n return (\n urlNoQuery\n // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/')\n .replace(/\\/\\/+/g, '/') +\n (urlParts[1] ? `?${urlParts.slice(1).join('?')}` : '')\n )\n}\n\nexport async function loadGetInitialProps<\n C extends BaseContext,\n IP = {},\n P = {},\n>(App: NextComponentType<C, IP, P>, ctx: C): Promise<IP> {\n if (process.env.NODE_ENV !== 'production') {\n if (App.prototype?.getInitialProps) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.`\n throw new Error(message)\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || (ctx.ctx && ctx.ctx.res)\n\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx),\n }\n }\n return {} as IP\n }\n\n const props = await App.getInitialProps(ctx)\n\n if (res && isResSent(res)) {\n return props\n }\n\n if (!props) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" should resolve to an object. But found \"${props}\" instead.`\n throw new Error(message)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\n `${getDisplayName(\n App\n )} returned an empty object from \\`getInitialProps\\`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps`\n )\n }\n }\n\n return props\n}\n\nexport const SP = typeof performance !== 'undefined'\nexport const ST =\n SP &&\n (['mark', 'measure', 'getEntriesByName'] as const).every(\n (method) => typeof performance[method] === 'function'\n )\n\nexport class DecodeError extends Error {}\nexport class NormalizeError extends Error {}\nexport class PageNotFoundError extends Error {\n code: string\n\n constructor(page: string) {\n super()\n this.code = 'ENOENT'\n this.name = 'PageNotFoundError'\n this.message = `Cannot find module for page: ${page}`\n }\n}\n\nexport class MissingStaticPage extends Error {\n constructor(page: string, message: string) {\n super()\n this.message = `Failed to load static file for page: ${page} ${message}`\n }\n}\n\nexport class MiddlewareNotFoundError extends Error {\n code: string\n constructor() {\n super()\n this.code = 'ENOENT'\n this.message = `Cannot find the middleware module`\n }\n}\n\nexport interface CacheFs {\n existsSync: typeof fs.existsSync\n readFile: typeof fs.promises.readFile\n readFileSync: typeof fs.readFileSync\n writeFile(f: string, d: any): Promise<void>\n mkdir(dir: string): Promise<void | string>\n stat(f: string): Promise<{ mtime: Date }>\n}\n\nexport function stringifyError(error: Error) {\n return JSON.stringify({ message: error.message, stack: error.stack })\n}\n","import { isPlainObject } from '../shared/lib/is-plain-object'\n\n// We allow some additional attached properties for Next.js errors\nexport interface NextError extends Error {\n type?: string\n page?: string\n code?: string | number\n cancelled?: boolean\n digest?: number\n}\n\n/**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */\nexport default function isError(err: unknown): err is NextError {\n return (\n typeof err === 'object' && err !== null && 'name' in err && 'message' in err\n )\n}\n\nfunction safeStringify(obj: any) {\n const seen = new WeakSet()\n\n return JSON.stringify(obj, (_key, value) => {\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]'\n }\n seen.add(value)\n }\n return value\n })\n}\n\nexport function getProperError(err: unknown): Error {\n if (isError(err)) {\n return err\n }\n\n if (process.env.NODE_ENV === 'development') {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return new Error(\n 'An undefined error was thrown, ' +\n 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'\n )\n }\n\n if (err === null) {\n return new Error(\n 'A null error was thrown, ' +\n 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'\n )\n }\n }\n\n return new Error(isPlainObject(err) ? safeStringify(err) : err + '')\n}\n","import type { IncomingMessage } from 'http'\n\nimport { parse } from 'next/dist/compiled/content-type'\nimport isError from '../../../lib/is-error'\nimport type { SizeLimit } from '../../../types'\nimport { ApiError } from '../index'\n\n/**\n * Parse `JSON` and handles invalid `JSON` strings\n * @param str `JSON` string\n */\nfunction parseJson(str: string): object {\n if (str.length === 0) {\n // special-case empty json body, as it's a common client-side mistake\n return {}\n }\n\n try {\n return JSON.parse(str)\n } catch (e) {\n throw new ApiError(400, 'Invalid JSON')\n }\n}\n\n/**\n * Parse incoming message like `json` or `urlencoded`\n * @param req request object\n */\nexport async function parseBody(\n req: IncomingMessage,\n limit: SizeLimit\n): Promise<any> {\n let contentType\n try {\n contentType = parse(req.headers['content-type'] || 'text/plain')\n } catch {\n contentType = parse('text/plain')\n }\n const { type, parameters } = contentType\n const encoding = parameters.charset || 'utf-8'\n\n let buffer\n\n try {\n const getRawBody =\n require('next/dist/compiled/raw-body') as typeof import('next/dist/compiled/raw-body')\n buffer = await getRawBody(req, { encoding, limit })\n } catch (e) {\n if (isError(e) && e.type === 'entity.too.large') {\n throw new ApiError(413, `Body exceeded ${limit} limit`)\n } else {\n throw new ApiError(400, 'Invalid body')\n }\n }\n\n const body = buffer.toString()\n\n if (type === 'application/json' || type === 'application/ld+json') {\n return parseJson(body)\n } else if (type === 'application/x-www-form-urlencoded') {\n const qs = require('querystring')\n return qs.decode(body)\n } else {\n return body\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextApiRequest, NextApiResponse } from '../../../shared/lib/utils'\nimport type { PageConfig, ResponseLimit } from '../../../types'\nimport type { __ApiPreviewProps } from '../.'\nimport type { CookieSerializeOptions } from 'next/dist/compiled/cookie'\nimport type { ServerOnInstrumentationRequestError } from '../../app-render/types'\n\nimport bytes from 'next/dist/compiled/bytes'\nimport { generateETag } from '../../lib/etag'\nimport { sendEtagResponse } from '../../send-payload'\nimport { Stream } from 'stream'\nimport isError from '../../../lib/is-error'\nimport { isResSent } from '../../../shared/lib/utils'\nimport { interopDefault } from '../../../lib/interop-default'\nimport {\n setLazyProp,\n sendStatusCode,\n redirect,\n clearPreviewData,\n sendError,\n ApiError,\n COOKIE_NAME_PRERENDER_BYPASS,\n COOKIE_NAME_PRERENDER_DATA,\n RESPONSE_LIMIT_DEFAULT,\n} from './../index'\nimport { getCookieParser } from './../get-cookie-parser'\nimport {\n PRERENDER_REVALIDATE_HEADER,\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER,\n} from '../../../lib/constants'\nimport { tryGetPreviewData } from './try-get-preview-data'\nimport { parseBody } from './parse-body'\n\ntype RevalidateFn = (config: {\n urlPath: string\n revalidateHeaders: { [key: string]: string | string[] }\n opts: { unstable_onlyGenerated?: boolean }\n}) => Promise<void>\n\ntype ApiContext = __ApiPreviewProps & {\n trustHostHeader?: boolean\n allowedRevalidateHeaderKeys?: string[]\n hostname?: string\n revalidate?: RevalidateFn\n multiZoneDraftMode?: boolean\n}\n\nfunction getMaxContentLength(responseLimit?: ResponseLimit) {\n if (responseLimit && typeof responseLimit !== 'boolean') {\n return bytes.parse(responseLimit)\n }\n return RESPONSE_LIMIT_DEFAULT\n}\n\n/**\n * Send `any` body to response\n * @param req request object\n * @param res response object\n * @param body of response\n */\nfunction sendData(req: NextApiRequest, res: NextApiResponse, body: any): void {\n if (body === null || body === undefined) {\n res.end()\n return\n }\n\n // strip irrelevant headers/body\n if (res.statusCode === 204 || res.statusCode === 304) {\n res.removeHeader('Content-Type')\n res.removeHeader('Content-Length')\n res.removeHeader('Transfer-Encoding')\n\n if (process.env.NODE_ENV === 'development' && body) {\n console.warn(\n `A body was attempted to be set with a 204 statusCode for ${req.url}, this is invalid and the body was ignored.\\n` +\n `See more info here https://nextjs.org/docs/messages/invalid-api-status-body`\n )\n }\n res.end()\n return\n }\n\n const contentType = res.getHeader('Content-Type')\n\n if (body instanceof Stream) {\n if (!contentType) {\n res.setHeader('Content-Type', 'application/octet-stream')\n }\n body.pipe(res)\n return\n }\n\n const isJSONLike = ['object', 'number', 'boolean'].includes(typeof body)\n const stringifiedBody = isJSONLike ? JSON.stringify(body) : body\n const etag = generateETag(stringifiedBody)\n if (sendEtagResponse(req, res, etag)) {\n return\n }\n\n if (Buffer.isBuffer(body)) {\n if (!contentType) {\n res.setHeader('Content-Type', 'application/octet-stream')\n }\n res.setHeader('Content-Length', body.length)\n res.end(body)\n return\n }\n\n if (isJSONLike) {\n res.setHeader('Content-Type', 'application/json; charset=utf-8')\n }\n\n res.setHeader('Content-Length', Buffer.byteLength(stringifiedBody))\n res.end(stringifiedBody)\n}\n\n/**\n * Send `JSON` object\n * @param res response object\n * @param jsonBody of data\n */\nfunction sendJson(res: NextApiResponse, jsonBody: any): void {\n // Set header to application/json\n res.setHeader('Content-Type', 'application/json; charset=utf-8')\n\n // Use send to handle request\n res.send(JSON.stringify(jsonBody))\n}\n\nfunction isValidData(str: any): str is string {\n return typeof str === 'string' && str.length >= 16\n}\n\nfunction setDraftMode<T>(\n res: NextApiResponse<T>,\n options: {\n enable: boolean\n previewModeId?: string\n }\n): NextApiResponse<T> {\n if (!isValidData(options.previewModeId)) {\n throw new Error('invariant: invalid previewModeId')\n }\n const expires = options.enable ? undefined : new Date(0)\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n const { serialize } =\n require('next/dist/compiled/cookie') as typeof import('cookie')\n const previous = res.getHeader('Set-Cookie')\n res.setHeader(`Set-Cookie`, [\n ...(typeof previous === 'string'\n ? [previous]\n : Array.isArray(previous)\n ? previous\n : []),\n serialize(COOKIE_NAME_PRERENDER_BYPASS, options.previewModeId, {\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n expires,\n }),\n ])\n return res\n}\n\nfunction setPreviewData<T>(\n res: NextApiResponse<T>,\n data: object | string, // TODO: strict runtime type checking\n options: {\n maxAge?: number\n path?: string\n } & __ApiPreviewProps\n): NextApiResponse<T> {\n if (!isValidData(options.previewModeId)) {\n throw new Error('invariant: invalid previewModeId')\n }\n if (!isValidData(options.previewModeEncryptionKey)) {\n throw new Error('invariant: invalid previewModeEncryptionKey')\n }\n if (!isValidData(options.previewModeSigningKey)) {\n throw new Error('invariant: invalid previewModeSigningKey')\n }\n\n const jsonwebtoken =\n require('next/dist/compiled/jsonwebtoken') as typeof import('next/dist/compiled/jsonwebtoken')\n const { encryptWithSecret } =\n require('../../crypto-utils') as typeof import('../../crypto-utils')\n const payload = jsonwebtoken.sign(\n {\n data: encryptWithSecret(\n Buffer.from(options.previewModeEncryptionKey),\n JSON.stringify(data)\n ),\n },\n options.previewModeSigningKey,\n {\n algorithm: 'HS256',\n ...(options.maxAge !== undefined\n ? { expiresIn: options.maxAge }\n : undefined),\n }\n )\n\n // limit preview mode cookie to 2KB since we shouldn't store too much\n // data here and browsers drop cookies over 4KB\n if (payload.length > 2048) {\n throw new Error(\n `Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue`\n )\n }\n\n const { serialize } =\n require('next/dist/compiled/cookie') as typeof import('cookie')\n const previous = res.getHeader('Set-Cookie')\n res.setHeader(`Set-Cookie`, [\n ...(typeof previous === 'string'\n ? [previous]\n : Array.isArray(previous)\n ? previous\n : []),\n serialize(COOKIE_NAME_PRERENDER_BYPASS, options.previewModeId, {\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.maxAge !== undefined\n ? ({ maxAge: options.maxAge } as CookieSerializeOptions)\n : undefined),\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, payload, {\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...(options.maxAge !== undefined\n ? ({ maxAge: options.maxAge } as CookieSerializeOptions)\n : undefined),\n ...(options.path !== undefined\n ? ({ path: options.path } as CookieSerializeOptions)\n : undefined),\n }),\n ])\n return res\n}\n\nasync function revalidate(\n urlPath: string,\n opts: {\n unstable_onlyGenerated?: boolean\n },\n req: IncomingMessage,\n context: ApiContext\n) {\n if (typeof urlPath !== 'string' || !urlPath.startsWith('/')) {\n throw new Error(\n `Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${urlPath}`\n )\n }\n const revalidateHeaders: HeadersInit = {\n [PRERENDER_REVALIDATE_HEADER]: context.previewModeId,\n ...(opts.unstable_onlyGenerated\n ? {\n [PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER]: '1',\n }\n : {}),\n }\n const allowedRevalidateHeaderKeys = [\n ...(context.allowedRevalidateHeaderKeys || []),\n ...(context.trustHostHeader\n ? ['cookie', 'x-vercel-protection-bypass']\n : []),\n ]\n\n for (const key of Object.keys(req.headers)) {\n if (allowedRevalidateHeaderKeys.includes(key)) {\n revalidateHeaders[key] = req.headers[key] as string\n }\n }\n\n try {\n if (context.trustHostHeader) {\n const res = await fetch(`https://${req.headers.host}${urlPath}`, {\n method: 'HEAD',\n headers: revalidateHeaders,\n })\n // we use the cache header to determine successful revalidate as\n // a non-200 status code can be returned from a successful revalidate\n // e.g. notFound: true returns 404 status code but is successful\n const cacheHeader =\n res.headers.get('x-vercel-cache') || res.headers.get('x-nextjs-cache')\n\n if (\n cacheHeader?.toUpperCase() !== 'REVALIDATED' &&\n !(res.status === 404 && opts.unstable_onlyGenerated)\n ) {\n throw new Error(`Invalid response ${res.status}`)\n }\n } else if (context.revalidate) {\n await context.revalidate({\n urlPath,\n revalidateHeaders,\n opts,\n })\n } else {\n throw new Error(\n `Invariant: required internal revalidate method not passed to api-utils`\n )\n }\n } catch (err: unknown) {\n throw new Error(\n `Failed to revalidate ${urlPath}: ${isError(err) ? err.message : err}`\n )\n }\n}\n\nexport async function apiResolver(\n req: IncomingMessage,\n res: ServerResponse,\n query: any,\n resolverModule: any,\n apiContext: ApiContext,\n propagateError: boolean,\n dev?: boolean,\n page?: string,\n onError?: ServerOnInstrumentationRequestError\n): Promise<void> {\n const apiReq = req as NextApiRequest\n const apiRes = res as NextApiResponse\n\n try {\n if (!resolverModule) {\n res.statusCode = 404\n res.end('Not Found')\n return\n }\n const config: PageConfig = resolverModule.config || {}\n const bodyParser = config.api?.bodyParser !== false\n const responseLimit = config.api?.responseLimit ?? true\n const externalResolver = config.api?.externalResolver || false\n\n // Parsing of cookies\n setLazyProp({ req: apiReq }, 'cookies', getCookieParser(req.headers))\n // Parsing query string\n apiReq.query = query\n // Parsing preview data\n setLazyProp({ req: apiReq }, 'previewData', () =>\n tryGetPreviewData(req, res, apiContext, !!apiContext.multiZoneDraftMode)\n )\n // Checking if preview mode is enabled\n setLazyProp({ req: apiReq }, 'preview', () =>\n apiReq.previewData !== false ? true : undefined\n )\n // Set draftMode to the same value as preview\n setLazyProp({ req: apiReq }, 'draftMode', () => apiReq.preview)\n\n // Parsing of body\n if (bodyParser && !apiReq.body) {\n apiReq.body = await parseBody(\n apiReq,\n config.api && config.api.bodyParser && config.api.bodyParser.sizeLimit\n ? config.api.bodyParser.sizeLimit\n : '1mb'\n )\n }\n\n let contentLength = 0\n const maxContentLength = getMaxContentLength(responseLimit)\n const writeData = apiRes.write\n const endResponse = apiRes.end\n apiRes.write = (...args: any[2]) => {\n contentLength += Buffer.byteLength(args[0] || '')\n return writeData.apply(apiRes, args)\n }\n apiRes.end = (...args: any[2]) => {\n if (args.length && typeof args[0] !== 'function') {\n contentLength += Buffer.byteLength(args[0] || '')\n }\n\n if (responseLimit && contentLength >= maxContentLength) {\n console.warn(\n `API response for ${req.url} exceeds ${bytes.format(\n maxContentLength\n )}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`\n )\n }\n\n return endResponse.apply(apiRes, args)\n }\n apiRes.status = (statusCode) => sendStatusCode(apiRes, statusCode)\n apiRes.send = (data) => sendData(apiReq, apiRes, data)\n apiRes.json = (data) => sendJson(apiRes, data)\n apiRes.redirect = (statusOrUrl: number | string, url?: string) =>\n redirect(apiRes, statusOrUrl, url)\n apiRes.setDraftMode = (options = { enable: true }) =>\n setDraftMode(apiRes, Object.assign({}, apiContext, options))\n apiRes.setPreviewData = (data, options = {}) =>\n setPreviewData(apiRes, data, Object.assign({}, apiContext, options))\n apiRes.clearPreviewData = (options = {}) =>\n clearPreviewData(apiRes, options)\n apiRes.revalidate = (\n urlPath: string,\n opts?: {\n unstable_onlyGenerated?: boolean\n }\n ) => revalidate(urlPath, opts || {}, req, apiContext)\n\n const resolver = interopDefault(resolverModule)\n let wasPiped = false\n\n if (process.env.NODE_ENV !== 'production') {\n // listen for pipe event and don't show resolve warning\n res.once('pipe', () => (wasPiped = true))\n }\n\n const apiRouteResult = await resolver(req, res)\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof apiRouteResult !== 'undefined') {\n if (apiRouteResult instanceof Response) {\n throw new Error(\n 'API route returned a Response object in the Node.js runtime, this is not supported. Please use `runtime: \"edge\"` instead: https://nextjs.org/docs/api-routes/edge-api-routes'\n )\n }\n console.warn(\n `API handler should not return a value, received ${typeof apiRouteResult}.`\n )\n }\n\n if (!externalResolver && !isResSent(res) && !wasPiped) {\n console.warn(\n `API resolved without sending a response for ${req.url}, this may result in stalled requests.`\n )\n }\n }\n } catch (err) {\n onError?.(err, req, {\n routerKind: 'Pages Router',\n routePath: page || '',\n routeType: 'route',\n revalidateReason: undefined,\n })\n\n if (err instanceof ApiError) {\n sendError(apiRes, err.statusCode, err.message)\n } else {\n if (dev) {\n if (isError(err)) {\n err.page = page\n }\n throw err\n }\n\n console.error(err)\n if (propagateError) {\n throw err\n }\n sendError(apiRes, 500, 'Internal Server Error')\n }\n }\n}\n","import type { NextApiRequestCookies } from '.'\n\n/**\n * Parse cookies from the `headers` of request\n * @param req request object\n */\n\nexport function getCookieParser(headers: {\n [key: string]: string | string[] | null | undefined\n}): () => NextApiRequestCookies {\n return function parseCookie(): NextApiRequestCookies {\n const { cookie } = headers\n\n if (!cookie) {\n return {}\n }\n\n const { parse: parseCookieFn } = require('next/dist/compiled/cookie')\n return parseCookieFn(Array.isArray(cookie) ? cookie.join('; ') : cookie)\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextApiResponse } from '../../../shared/lib/utils'\nimport { checkIsOnDemandRevalidate } from '../.'\nimport type { __ApiPreviewProps } from '../.'\nimport type { BaseNextRequest, BaseNextResponse } from '../../base-http'\nimport type { PreviewData } from '../../../types'\n\nimport {\n clearPreviewData,\n COOKIE_NAME_PRERENDER_BYPASS,\n COOKIE_NAME_PRERENDER_DATA,\n SYMBOL_PREVIEW_DATA,\n} from '../index'\nimport { RequestCookies } from '../../web/spec-extension/cookies'\nimport { HeadersAdapter } from '../../web/spec-extension/adapters/headers'\n\nexport function tryGetPreviewData(\n req: IncomingMessage | BaseNextRequest | Request,\n res: ServerResponse | BaseNextResponse,\n options: __ApiPreviewProps,\n multiZoneDraftMode: boolean\n): PreviewData {\n // if an On-Demand revalidation is being done preview mode\n // is disabled\n if (options && checkIsOnDemandRevalidate(req, options).isOnDemandRevalidate) {\n return false\n }\n\n // Read cached preview data if present\n // TODO: use request metadata instead of a symbol\n if (SYMBOL_PREVIEW_DATA in req) {\n return (req as any)[SYMBOL_PREVIEW_DATA] as any\n }\n\n const headers = HeadersAdapter.from(req.headers)\n const cookies = new RequestCookies(headers)\n\n const previewModeId = cookies.get(COOKIE_NAME_PRERENDER_BYPASS)?.value\n const tokenPreviewData = cookies.get(COOKIE_NAME_PRERENDER_DATA)?.value\n\n // Case: preview mode cookie set but data cookie is not set\n if (\n previewModeId &&\n !tokenPreviewData &&\n previewModeId === options.previewModeId\n ) {\n // This is \"Draft Mode\" which doesn't use\n // previewData, so we return an empty object\n // for backwards compat with \"Preview Mode\".\n const data = {}\n Object.defineProperty(req, SYMBOL_PREVIEW_DATA, {\n value: data,\n enumerable: false,\n })\n return data\n }\n\n // Case: neither cookie is set.\n if (!previewModeId && !tokenPreviewData) {\n return false\n }\n\n // Case: one cookie is set, but not the other.\n if (!previewModeId || !tokenPreviewData) {\n if (!multiZoneDraftMode) {\n clearPreviewData(res as NextApiResponse)\n }\n return false\n }\n\n // Case: preview session is for an old build.\n if (previewModeId !== options.previewModeId) {\n if (!multiZoneDraftMode) {\n clearPreviewData(res as NextApiResponse)\n }\n return false\n }\n\n let encryptedPreviewData: {\n data: string\n }\n try {\n const jsonwebtoken =\n require('next/dist/compiled/jsonwebtoken') as typeof import('next/dist/compiled/jsonwebtoken')\n encryptedPreviewData = jsonwebtoken.verify(\n tokenPreviewData,\n options.previewModeSigningKey\n ) as typeof encryptedPreviewData\n } catch {\n // TODO: warn\n clearPreviewData(res as NextApiResponse)\n return false\n }\n\n const { decryptWithSecret } =\n require('../../crypto-utils') as typeof import('../../crypto-utils')\n const decryptedPreviewData = decryptWithSecret(\n Buffer.from(options.previewModeEncryptionKey),\n encryptedPreviewData.data\n )\n\n try {\n // TODO: strict runtime type checking\n const data = JSON.parse(decryptedPreviewData)\n // Cache lookup\n Object.defineProperty(req, SYMBOL_PREVIEW_DATA, {\n value: data,\n enumerable: false,\n })\n return data\n } catch {\n return false\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http'\nimport type RenderResult from './render-result'\nimport type { Revalidate, ExpireTime } from './lib/revalidate'\n\nimport { isResSent } from '../shared/lib/utils'\nimport { generateETag } from './lib/etag'\nimport fresh from 'next/dist/compiled/fresh'\nimport { formatRevalidate } from './lib/revalidate'\nimport { RSC_CONTENT_TYPE_HEADER } from '../client/components/app-router-headers'\n\nexport function sendEtagResponse(\n req: IncomingMessage,\n res: ServerResponse,\n etag: string | undefined\n): boolean {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */\n res.setHeader('ETag', etag)\n }\n\n if (fresh(req.headers, { etag })) {\n res.statusCode = 304\n res.end()\n return true\n }\n\n return false\n}\n\nexport async function sendRenderResult({\n req,\n res,\n result,\n type,\n generateEtags,\n poweredByHeader,\n revalidate,\n expireTime,\n}: {\n req: IncomingMessage\n res: ServerResponse\n result: RenderResult\n type: 'html' | 'json' | 'rsc'\n generateEtags: boolean\n poweredByHeader: boolean\n revalidate: Revalidate | undefined\n expireTime: ExpireTime | undefined\n}): Promise<void> {\n if (isResSent(res)) {\n return\n }\n\n if (poweredByHeader && type === 'html') {\n res.setHeader('X-Powered-By', 'Next.js')\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (typeof revalidate !== 'undefined' && !res.getHeader('Cache-Control')) {\n res.setHeader(\n 'Cache-Control',\n formatRevalidate({\n revalidate,\n expireTime,\n })\n )\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString()\n\n if (generateEtags && payload !== null) {\n const etag = generateETag(payload)\n if (sendEtagResponse(req, res, etag)) {\n return\n }\n }\n\n if (!res.getHeader('Content-Type')) {\n res.setHeader(\n 'Content-Type',\n result.contentType\n ? result.contentType\n : type === 'rsc'\n ? RSC_CONTENT_TYPE_HEADER\n : type === 'json'\n ? 'application/json'\n : 'text/html; charset=utf-8'\n )\n }\n\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload))\n }\n\n if (req.method === 'HEAD') {\n res.end(null)\n return\n }\n\n if (payload !== null) {\n res.end(payload)\n return\n }\n\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res)\n}\n","export function interopDefault(mod: any) {\n return mod.default || mod\n}\n","import type { IncomingMessage, ServerResponse } from 'http'\nimport type { PagesAPIRouteDefinition } from '../../route-definitions/pages-api-route-definition'\nimport type { PageConfig } from '../../../types'\nimport type { ParsedUrlQuery } from 'querystring'\nimport { wrapApiHandler, type __ApiPreviewProps } from '../../api-utils'\nimport type { RouteModuleOptions } from '../route-module'\n\nimport { RouteModule, type RouteModuleHandleContext } from '../route-module'\nimport { apiResolver } from '../../api-utils/node/api-resolver'\n\ntype PagesAPIHandleFn = (\n req: IncomingMessage,\n res: ServerResponse\n) => Promise<void>\n\n/**\n * The PagesAPIModule is the type of the module exported by the bundled Pages\n * API module.\n */\nexport type PagesAPIModule = typeof import('../../../build/templates/pages-api')\n\ntype PagesAPIUserlandModule = {\n /**\n * The exported handler method.\n */\n readonly default: PagesAPIHandleFn\n\n /**\n * The exported page config.\n */\n readonly config?: PageConfig\n}\n\ntype PagesAPIRouteHandlerContext = RouteModuleHandleContext & {\n /**\n * The incoming server request in non-edge runtime.\n */\n req?: IncomingMessage\n\n /**\n * The outgoing server response in non-edge runtime.\n */\n res?: ServerResponse\n\n /**\n * The revalidate method used by the `revalidate` API.\n *\n * @param config the configuration for the revalidation\n */\n revalidate: (config: {\n urlPath: string\n revalidateHeaders: { [key: string]: string | string[] }\n opts: { unstable_onlyGenerated?: boolean }\n }) => Promise<void>\n\n /**\n * The hostname for the request.\n */\n hostname?: string\n\n /**\n * Keys allowed in the revalidate call.\n */\n allowedRevalidateHeaderKeys?: string[]\n\n /**\n * Whether to trust the host header.\n */\n trustHostHeader?: boolean\n\n /**\n * The query for the request.\n */\n query: ParsedUrlQuery\n\n /**\n * The preview props used by the `preview` API.\n */\n previewProps: __ApiPreviewProps\n\n /**\n * True if the server is in development mode.\n */\n dev: boolean\n\n /**\n * True if the server is in minimal mode.\n */\n minimalMode: boolean\n\n /**\n * The page that's being rendered.\n */\n page: string\n\n /**\n * The error handler for the request.\n */\n onError?: Parameters<typeof apiResolver>[8]\n\n /**\n * whether multi-zone flag is enabled for draft mode\n */\n multiZoneDraftMode?: boolean\n}\n\nexport type PagesAPIRouteModuleOptions = RouteModuleOptions<\n PagesAPIRouteDefinition,\n PagesAPIUserlandModule\n>\n\nexport class PagesAPIRouteModule extends RouteModule<\n PagesAPIRouteDefinition,\n PagesAPIUserlandModule\n> {\n private apiResolverWrapped: typeof apiResolver\n\n constructor(options: PagesAPIRouteModuleOptions) {\n super(options)\n\n if (typeof options.userland.default !== 'function') {\n throw new Error(\n `Page ${options.definition.page} does not export a default function.`\n )\n }\n\n this.apiResolverWrapped = wrapApiHandler(\n options.definition.page,\n apiResolver\n )\n }\n\n /**\n *\n * @param req the incoming server request\n * @param res the outgoing server response\n * @param context the context for the render\n */\n public async render(\n req: IncomingMessage,\n res: ServerResponse,\n context: PagesAPIRouteHandlerContext\n ): Promise<void> {\n const { apiResolverWrapped } = this\n await apiResolverWrapped(\n req,\n res,\n context.query,\n this.userland,\n {\n ...context.previewProps,\n revalidate: context.revalidate,\n trustHostHeader: context.trustHostHeader,\n allowedRevalidateHeaderKeys: context.allowedRevalidateHeaderKeys,\n hostname: context.hostname,\n multiZoneDraftMode: context.multiZoneDraftMode,\n },\n context.minimalMode,\n context.dev,\n context.page,\n context.onError\n )\n }\n}\n\nexport default PagesAPIRouteModule\n"],"names":["__defProp","Object","__getOwnPropDesc","__getOwnPropNames","__hasOwnProp","src_exports","stringifyCookie","c","_a","attrs","Date","Boolean","stringified","encodeURIComponent","parseCookie","cookie","map","Map","pair","splitAt","key","value","decodeURIComponent","parseSetCookie","setCookie","string","name","attributes","domain","expires","httponly","maxage","path","samesite","secure","partitioned","priority","value2","compact","t","newT","Number","SAME_SITE","PRIORITY","__export","target","all","RequestCookies","ResponseCookies","module","to","from","except","desc","requestHeaders","header","Symbol","args","Array","_","n","names","result","JSON","v","responseHeaders","_b","_c","cookieString","splitCookiesString","cookiesString","start","ch","lastComma","nextStart","cookiesSeparatorFound","cookiesStrings","pos","skipWhitespace","parsed","normalizeCookie","replace","bag","headers","serialized","options","e","r","parse","format","a","Math","i","o","s","f","undefined","u","p","l","b","isNaN","parseFloat","parseInt","__nccwpck_require__","__dirname","ContentType","TypeError","qstring","String","getcontenttype","tryDecode","isFinite","parseHttpDate","NaN","parseTokenList","CIPHER_ALGORITHM","encryptWithSecret","secret","data","iv","crypto","salt","cipher","encrypted","Buffer","concat","update","final","tag","getAuthTag","toString","decryptWithSecret","encryptedData","buffer","slice","CIPHER_SALT_LENGTH","decipher","setAuthTag","ReflectAdapter","get","prop","receiver","Reflect","bind","set","has","deleteProperty","ReadonlyHeadersError","Error","constructor","callable","HeadersAdapter","Headers","Proxy","lowercased","toLowerCase","original","keys","find","seal","merge","isArray","join","append","existing","push","delete","forEach","callbackfn","thisArg","entries","call","values","iterator","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","api","middleware","instrument","edgeAsset","appPagesBrowser","GROUP","builtinReact","serverOnly","neutralTarget","clientOnly","bundled","appPages","BaseServerSpan","LoadComponentsSpan","NextServerSpan","NextNodeServerSpan","StartServerSpan","RenderSpan","AppRenderSpan","RouterSpan","NodeSpan","AppRouteRouteHandlersSpan","ResolveMetadataSpan","MiddlewareSpan","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","res","serialize","require","previous","getHeader","setHeader","httpOnly","sameSite","process","defineProperty","enumerable","ApiError","statusCode","message","sendError","statusMessage","end","setLazyProp","req","getter","opts","configurable","optsReset","writable","RouteModule","userland","definition","fnv1a52","str","len","length","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","generateETag","payload","weak","prefix","SP","performance","every","method","isError","err","parseBody","limit","contentType","type","parameters","encoding","charset","getRawBody","body","parseJson","qs","decode","isValidData","revalidate","urlPath","context","startsWith","revalidateHeaders","previewModeId","unstable_onlyGenerated","allowedRevalidateHeaderKeys","trustHostHeader","includes","fetch","host","cacheHeader","toUpperCase","status","apiResolver","query","resolverModule","apiContext","propagateError","dev","page","onError","config","bodyParser","responseLimit","externalResolver","parseCookieFn","apiReq","tryGetPreviewData","multiZoneDraftMode","cookies","encryptedPreviewData","checkIsOnDemandRevalidate","previewProps","isOnDemandRevalidate","revalidateOnlyGenerated","tokenPreviewData","jsonwebtoken","verify","previewModeSigningKey","decryptedPreviewData","previewModeEncryptionKey","previewData","preview","sizeLimit","contentLength","maxContentLength","bytes","writeData","apiRes","write","endResponse","byteLength","apply","console","warn","url","send","sendData","etag","removeHeader","Stream","pipe","isJSONLike","stringifiedBody","stringify","fresh","isBuffer","json","redirect","statusOrUrl","writeHead","Location","setDraftMode","enable","assign","setPreviewData","sign","algorithm","maxAge","expiresIn","resolver","mod","default","wasPiped","once","apiRouteResult","Response","finished","headersSent","routerKind","routePath","routeType","revalidateReason","error","PagesAPIRouteModule","apiResolverWrapped","wrapApiHandler","handler","getTracer","setRootSpanAttribute","trace","spanName","render","hostname","minimalMode"],"mappings":"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"}
|