Spaces:
Running
Running
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| 0 && (module.exports = { | |
| fromNodeOutgoingHttpHeaders: null, | |
| normalizeNextQueryParam: null, | |
| splitCookiesString: null, | |
| toNodeOutgoingHttpHeaders: null, | |
| validateURL: null | |
| }); | |
| function _export(target, all) { | |
| for(var name in all)Object.defineProperty(target, name, { | |
| enumerable: true, | |
| get: all[name] | |
| }); | |
| } | |
| _export(exports, { | |
| fromNodeOutgoingHttpHeaders: function() { | |
| return fromNodeOutgoingHttpHeaders; | |
| }, | |
| normalizeNextQueryParam: function() { | |
| return normalizeNextQueryParam; | |
| }, | |
| splitCookiesString: function() { | |
| return splitCookiesString; | |
| }, | |
| toNodeOutgoingHttpHeaders: function() { | |
| return toNodeOutgoingHttpHeaders; | |
| }, | |
| validateURL: function() { | |
| return validateURL; | |
| } | |
| }); | |
| const _constants = require("../../lib/constants"); | |
| function fromNodeOutgoingHttpHeaders(nodeHeaders) { | |
| const headers = new Headers(); | |
| for (let [key, value] of Object.entries(nodeHeaders)){ | |
| const values = Array.isArray(value) ? value : [ | |
| value | |
| ]; | |
| for (let v of values){ | |
| if (typeof v === 'undefined') continue; | |
| if (typeof v === 'number') { | |
| v = v.toString(); | |
| } | |
| headers.append(key, v); | |
| } | |
| } | |
| return headers; | |
| } | |
| function splitCookiesString(cookiesString) { | |
| var cookiesStrings = []; | |
| var pos = 0; | |
| var start; | |
| var ch; | |
| var lastComma; | |
| var nextStart; | |
| var 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 === ',') { | |
| // ',' is a cookie separator if we have later first '=', not ';' or ',' | |
| lastComma = pos; | |
| pos += 1; | |
| skipWhitespace(); | |
| nextStart = pos; | |
| while(pos < cookiesString.length && notSpecialChar()){ | |
| pos += 1; | |
| } | |
| // currently special character | |
| if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') { | |
| // we found cookies separator | |
| cookiesSeparatorFound = true; | |
| // pos is inside the next cookie, so back up and return it. | |
| pos = nextStart; | |
| cookiesStrings.push(cookiesString.substring(start, lastComma)); | |
| start = pos; | |
| } else { | |
| // in param ',' or param separator ';', | |
| // we continue from that comma | |
| pos = lastComma + 1; | |
| } | |
| } else { | |
| pos += 1; | |
| } | |
| } | |
| if (!cookiesSeparatorFound || pos >= cookiesString.length) { | |
| cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); | |
| } | |
| } | |
| return cookiesStrings; | |
| } | |
| function toNodeOutgoingHttpHeaders(headers) { | |
| const nodeHeaders = {}; | |
| const cookies = []; | |
| if (headers) { | |
| for (const [key, value] of headers.entries()){ | |
| if (key.toLowerCase() === 'set-cookie') { | |
| // We may have gotten a comma joined string of cookies, or multiple | |
| // set-cookie headers. We need to merge them into one header array | |
| // to represent all the cookies. | |
| cookies.push(...splitCookiesString(value)); | |
| nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies; | |
| } else { | |
| nodeHeaders[key] = value; | |
| } | |
| } | |
| } | |
| return nodeHeaders; | |
| } | |
| function validateURL(url) { | |
| try { | |
| return String(new URL(String(url))); | |
| } catch (error) { | |
| throw Object.defineProperty(new Error(`URL is malformed "${String(url)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, { | |
| cause: error | |
| }), "__NEXT_ERROR_CODE", { | |
| value: "E61", | |
| enumerable: false, | |
| configurable: true | |
| }); | |
| } | |
| } | |
| function normalizeNextQueryParam(key) { | |
| const prefixes = [ | |
| _constants.NEXT_QUERY_PARAM_PREFIX, | |
| _constants.NEXT_INTERCEPTION_MARKER_PREFIX | |
| ]; | |
| for (const prefix of prefixes){ | |
| if (key !== prefix && key.startsWith(prefix)) { | |
| return key.substring(prefix.length); | |
| } | |
| } | |
| return null; | |
| } | |
| //# sourceMappingURL=utils.js.map |