"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WebhookSecret = void 0; const ValueObject_1 = require("../../../../shared/domain/ValueObject"); const crypto_1 = require("crypto"); class WebhookSecret extends ValueObject_1.ValueObject { get value() { return this.props.value; } static generate() { const secret = (0, crypto_1.randomBytes)(32).toString('hex'); return new WebhookSecret({ value: secret }); } static fromString(s) { if (!s || s.length < 16) throw new Error('Webhook secret must be at least 16 characters'); return new WebhookSecret({ value: s }); } sign(payload) { return (0, crypto_1.createHmac)('sha256', this.props.value).update(payload).digest('hex'); } } exports.WebhookSecret = WebhookSecret;