"use strict"; // src/vercel-request-context.ts var SYMBOL_FOR_REQ_CONTEXT = Symbol.for("@vercel/request-context"); function getContext() { const fromSymbol = globalThis; return fromSymbol[SYMBOL_FOR_REQ_CONTEXT]?.get?.() ?? {}; } // src/next-request-context.ts var import_async_hooks = require("async_hooks"); var name = "@next/request-context"; var NEXT_REQUEST_CONTEXT_SYMBOL = Symbol.for(name); var INTERNAL_STORAGE_FIELD_SYMBOL = Symbol.for("internal.storage"); function getOrCreateContextSingleton() { const _globalThis = globalThis; if (!_globalThis[NEXT_REQUEST_CONTEXT_SYMBOL]) { const storage = new import_async_hooks.AsyncLocalStorage(); const Context = { get: () => storage.getStore(), [INTERNAL_STORAGE_FIELD_SYMBOL]: storage }; _globalThis[NEXT_REQUEST_CONTEXT_SYMBOL] = Context; } return _globalThis[NEXT_REQUEST_CONTEXT_SYMBOL]; } var NextRequestContext = getOrCreateContextSingleton(); function withNextRequestContext(value, callback) { const storage = NextRequestContext[INTERNAL_STORAGE_FIELD_SYMBOL]; return storage.run(value, callback); } // src/edge-function-source/to-plain-headers.ts function toPlainHeaders(headers) { const result = {}; if (!headers) return result; headers.forEach((value, key) => { result[key] = value; if (key.toLowerCase() === "set-cookie") { result[key] = splitCookiesString(value); } }); return result; } function splitCookiesString(cookiesString) { const cookiesStrings = []; let pos = 0; let start; let ch; let lastComma; let nextStart; let cookiesSeparatorFound; function skipWhitespace() { while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) pos += 1; return pos < cookiesString.length; } function notSpecialChar() { ch = cookiesString.charAt(pos); return ch !== "=" && ch !== ";" && ch !== ","; } while (pos < cookiesString.length) { start = pos; cookiesSeparatorFound = false; while (skipWhitespace()) { ch = cookiesString.charAt(pos); if (ch === ",") { lastComma = pos; pos += 1; skipWhitespace(); nextStart = pos; while (pos < cookiesString.length && notSpecialChar()) { pos += 1; } if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") { cookiesSeparatorFound = true; pos = nextStart; cookiesStrings.push(cookiesString.substring(start, lastComma)); start = pos; } else { pos = lastComma + 1; } } else { pos += 1; } } if (!cookiesSeparatorFound || pos >= cookiesString.length) { cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); } } return cookiesStrings; } // src/middleware-launcher.ts process.chdir(__dirname); var region = process.env.VERCEL_REGION || process.env.NOW_REGION; if (!process.env.NODE_ENV) { process.env.NODE_ENV = region === "dev1" ? "development" : "production"; } if (process.env.NODE_ENV !== "production" && region !== "dev1") { console.warn( `Warning: NODE_ENV was incorrectly set to "${process.env.NODE_ENV}", this value is being overridden to "production"` ); process.env.NODE_ENV = "production"; } var conf = __NEXT_CONFIG__; globalThis.AsyncLocalStorage = require("async_hooks").AsyncLocalStorage; var middlewareModule = require("__NEXT_MIDDLEWARE_PATH__"); var serve = async (request) => { const context = getContext(); return await withNextRequestContext( { waitUntil: context.waitUntil }, async () => { let middlewareHandler = await middlewareModule; middlewareHandler = middlewareHandler.default || middlewareHandler; const result = await middlewareHandler({ request: { url: request.url, method: request.method, headers: toPlainHeaders(request.headers), nextConfig: conf, page: "/middleware", body: request.method !== "GET" && request.method !== "HEAD" ? request.body : void 0, waitUntil: context.waitUntil } }); if (result.waitUntil && context.waitUntil) { context.waitUntil(result.waitUntil); } return result.response; } ); }; module.exports = serve;