25 lines
1.1 KiB
JavaScript
25 lines
1.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.getCanonicalHeaders = void 0;
|
|
const constants_1 = require("./constants");
|
|
const getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {
|
|
const canonical = {};
|
|
for (const headerName of Object.keys(headers).sort()) {
|
|
if (headers[headerName] == undefined) {
|
|
continue;
|
|
}
|
|
const canonicalHeaderName = headerName.toLowerCase();
|
|
if (canonicalHeaderName in constants_1.ALWAYS_UNSIGNABLE_HEADERS ||
|
|
(unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||
|
|
constants_1.PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||
|
|
constants_1.SEC_HEADER_PATTERN.test(canonicalHeaderName)) {
|
|
if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {
|
|
continue;
|
|
}
|
|
}
|
|
canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\s+/g, " ");
|
|
}
|
|
return canonical;
|
|
};
|
|
exports.getCanonicalHeaders = getCanonicalHeaders;
|