UNPKG

jose

Version:

JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes

19 lines (18 loc) 747 B
import { createCompactSignature } from '../lib/jws_sign.js'; import { JWTInvalid } from '../util/errors.js'; import { JWTClaimsBuilder, jwtData } from '../lib/jwt_claims_set.js'; import { assertNotSet } from '../lib/helpers.js'; const SignJWT_base = JWTClaimsBuilder; export class SignJWT extends SignJWT_base { #protectedHeader; setProtectedHeader(protectedHeader) { assertNotSet(this.#protectedHeader, 'setProtectedHeader'); this.#protectedHeader = protectedHeader; return this; } async sign(key, options) { return createCompactSignature(jwtData(this), this.#protectedHeader, options?.crit, key, () => { throw new JWTInvalid('JWTs MUST NOT use unencoded payload'); }); } }