/*! @azure/msal-common v14.4.0 2023-11-07 */ 'use strict'; import { createJoseHeaderError } from '../error/JoseHeaderError.mjs'; import { JsonWebTokenTypes } from '../utils/Constants.mjs'; import { missingKidError, missingAlgError } from '../error/JoseHeaderErrorCodes.mjs'; /* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ /** @internal */ class JoseHeader { constructor(options) { this.typ = options.typ; this.alg = options.alg; this.kid = options.kid; } /** * Builds SignedHttpRequest formatted JOSE Header from the * JOSE Header options provided or previously set on the object and returns * the stringified header object. * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding. * @param shrHeaderOptions * @returns */ static getShrHeaderString(shrHeaderOptions) { // KeyID is required on the SHR header if (!shrHeaderOptions.kid) { throw createJoseHeaderError(missingKidError); } // Alg is required on the SHR header if (!shrHeaderOptions.alg) { throw createJoseHeaderError(missingAlgError); } const shrHeader = new JoseHeader({ // Access Token PoP headers must have type pop, but the type header can be overriden for special cases typ: shrHeaderOptions.typ || JsonWebTokenTypes.Pop, kid: shrHeaderOptions.kid, alg: shrHeaderOptions.alg, }); return JSON.stringify(shrHeader); } } export { JoseHeader }; //# sourceMappingURL=JoseHeader.mjs.map