"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.compactVerify = void 0; const verify_js_1 = require("../flattened/verify.js"); const errors_js_1 = require("../../util/errors.js"); const buffer_utils_js_1 = require("../../lib/buffer_utils.js"); async function compactVerify(jws, key, options) { if (jws instanceof Uint8Array) { jws = buffer_utils_js_1.decoder.decode(jws); } if (typeof jws !== 'string') { throw new errors_js_1.JWSInvalid('Compact JWS must be a string or Uint8Array'); } const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split('.'); if (length !== 3) { throw new errors_js_1.JWSInvalid('Invalid Compact JWS'); } const verified = await (0, verify_js_1.flattenedVerify)({ payload, protected: protectedHeader, signature }, key, options); const result = { payload: verified.payload, protectedHeader: verified.protectedHeader }; if (typeof key === 'function') { return { ...result, key: verified.key }; } return result; } exports.compactVerify = compactVerify;