sign.js 1.0 KB

12345678910111213141516171819202122232425
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.SignJWT = void 0;
  4. const sign_js_1 = require("../jws/compact/sign.js");
  5. const errors_js_1 = require("../util/errors.js");
  6. const buffer_utils_js_1 = require("../lib/buffer_utils.js");
  7. const produce_js_1 = require("./produce.js");
  8. class SignJWT extends produce_js_1.ProduceJWT {
  9. setProtectedHeader(protectedHeader) {
  10. this._protectedHeader = protectedHeader;
  11. return this;
  12. }
  13. async sign(key, options) {
  14. var _a;
  15. const sig = new sign_js_1.CompactSign(buffer_utils_js_1.encoder.encode(JSON.stringify(this._payload)));
  16. sig.setProtectedHeader(this._protectedHeader);
  17. if (Array.isArray((_a = this._protectedHeader) === null || _a === void 0 ? void 0 : _a.crit) &&
  18. this._protectedHeader.crit.includes('b64') &&
  19. this._protectedHeader.b64 === false) {
  20. throw new errors_js_1.JWTInvalid('JWTs MUST NOT use unencoded payload');
  21. }
  22. return sig.sign(key, options);
  23. }
  24. }
  25. exports.SignJWT = SignJWT;