"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "NextResponse", { enumerable: true, get: function() { return NextResponse; } }); const _nexturl = require("../next-url"); const _utils = require("../utils"); const _cookies = require("./cookies"); const INTERNALS = Symbol("internal response"); const REDIRECTS = new Set([ 301, 302, 303, 307, 308 ]); function handleMiddlewareField(init, headers) { var _init_request; if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) { if (!(init.request.headers instanceof Headers)) { throw new Error("request.headers must be an instance of Headers"); } const keys = []; for (const [key, value] of init.request.headers){ headers.set("x-middleware-request-" + key, value); keys.push(key); } headers.set("x-middleware-override-headers", keys.join(",")); } } class NextResponse extends Response { constructor(body, init = {}){ super(body, init); this[INTERNALS] = { cookies: new _cookies.ResponseCookies(this.headers), url: init.url ? new _nexturl.NextURL(init.url, { headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers), nextConfig: init.nextConfig }) : undefined }; } [Symbol.for("edge-runtime.inspect.custom")]() { return { cookies: this.cookies, url: this.url, // rest of props come from Response body: this.body, bodyUsed: this.bodyUsed, headers: Object.fromEntries(this.headers), ok: this.ok, redirected: this.redirected, status: this.status, statusText: this.statusText, type: this.type }; } get cookies() { return this[INTERNALS].cookies; } static json(body, init) { const response = Response.json(body, init); return new NextResponse(response.body, response); } static redirect(url, init) { const status = typeof init === "number" ? init : (init == null ? void 0 : init.status) ?? 307; if (!REDIRECTS.has(status)) { throw new RangeError('Failed to execute "redirect" on "response": Invalid status code'); } const initObj = typeof init === "object" ? init : {}; const headers = new Headers(initObj == null ? void 0 : initObj.headers); headers.set("Location", (0, _utils.validateURL)(url)); return new NextResponse(null, { ...initObj, headers, status }); } static rewrite(destination, init) { const headers = new Headers(init == null ? void 0 : init.headers); headers.set("x-middleware-rewrite", (0, _utils.validateURL)(destination)); handleMiddlewareField(init, headers); return new NextResponse(null, { ...init, headers }); } static next(init) { const headers = new Headers(init == null ? void 0 : init.headers); headers.set("x-middleware-next", "1"); handleMiddlewareField(init, headers); return new NextResponse(null, { ...init, headers }); } } //# sourceMappingURL=response.js.map