@x402-hpke/node
Version:
Provider-agnostic HPKE envelope library for x402 (Node) — cross-language interop with Python
25 lines (24 loc) • 929 B
JavaScript
import { X402ExtensionUnapprovedError } from "./errors.js";
export let APPROVED_EXTENSION_HEADERS = [
"X-402-Routing",
"X-402-Limits",
"X-402-Acceptable",
"X-402-Metadata",
"X-402-Security"
];
export function canonicalizeExtensionHeader(h) {
const found = APPROVED_EXTENSION_HEADERS.find((ah) => ah.toLowerCase() === h.toLowerCase());
if (!found)
throw new X402ExtensionUnapprovedError("X402_EXTENSION_UNAPPROVED");
return found;
}
export const isApprovedExtensionHeader = (h) => {
return APPROVED_EXTENSION_HEADERS.some((ah) => ah.toLowerCase() === h.toLowerCase());
};
// Test-only helper to register additional approved headers at runtime
export function registerApprovedExtensionHeader(header) {
const exists = APPROVED_EXTENSION_HEADERS.some((h) => h.toLowerCase() === String(header).toLowerCase());
if (!exists) {
APPROVED_EXTENSION_HEADERS.push(header);
}
}