UNPKG

@bunnyapp/api-client

Version:
31 lines 1.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const crypto_1 = __importDefault(require("crypto")); const buffer_1 = require("buffer"); class Webhooks { constructor(signingToken = null) { this.signingToken = signingToken; } validate(signature, payload, signingToken = null) { const key = signingToken || this.signingToken; if (!key) { throw new Error('Signing token is required'); } const payloadSignature = crypto_1.default .createHmac('sha1', key) .update(JSON.stringify(payload)) .digest('hex'); const ps = buffer_1.Buffer.from(payloadSignature, 'hex'); const s = buffer_1.Buffer.from(signature, 'hex'); // Ensure buffers are the same length before comparison if (ps.length !== s.length) { return false; } return crypto_1.default.timingSafeEqual(ps, s); } } exports.default = Webhooks; //# sourceMappingURL=webhooks.js.map