UNPKG

@x402-hpke/node

Version:

Provider-agnostic HPKE envelope library for x402 (Node) — cross-language interop with Python

25 lines (24 loc) 929 B
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); } }