Files
leadmail-sdk/composer.json
netlas b2b61a26ed Add typed error handling, retries, and webhook receiver
- Typed exceptions: LeadMailException base with LeadMailRequestException
  (structured statusCode/errorCode/logId/validationErrors) and
  LeadMailConnectionException; sendEmail/getDomains now throw these instead
  of raw Guzzle exceptions, and a malformed body is no longer a silent null.
- Automatic retry with exponential backoff on idempotent calls
  (getDomains, verifyEmail); sends are never retried to avoid duplicates.
- Webhook receiver: auto-registered route + LeadMailWebhookController that
  verifies the HMAC signature, logs failures, and dispatches a
  LeadMailWebhookReceived event. WebhookSignature/WebhookEvent/LeadMailWebhook
  helpers for manual handling.
- Webhook self-registration client methods (registerWebhook/getWebhook/
  deleteWebhook) and a promptless `leadmail:install` command that registers
  the URL and writes LEADMAIL_WEBHOOK_SECRET to .env.
- Null-safe client binding when LEADMAIL_TOKEN is unset.
- Test suite (Pest + Testbench) covering all of the above.
2026-06-09 11:14:10 +03:00

57 lines
1.5 KiB
JSON

{
"name": "leadm/leadmail",
"description": "Laravel SDK for leadMail email sending and verification service",
"type": "library",
"license": "MIT",
"homepage": "https://git.leadmagnet.dev/LeadMagnet/leadmail-sdk",
"authors": [
{
"name": "Lead Magnet Oy",
"homepage": "https://leadmagnet.fi"
}
],
"support": {
"issues": "https://git.leadmagnet.dev/LeadMagnet/leadmail-sdk/issues",
"source": "https://git.leadmagnet.dev/LeadMagnet/leadmail-sdk"
},
"require": {
"php": "^8.2",
"guzzlehttp/guzzle": "^7.0",
"illuminate/console": "^11.0|^12.0|^13.0",
"illuminate/http": "^11.0|^12.0|^13.0",
"illuminate/mail": "^11.0|^12.0|^13.0",
"illuminate/support": "^11.0|^12.0|^13.0"
},
"require-dev": {
"orchestra/testbench": "^9.0|^10.0|^11.0",
"pestphp/pest": "^3.0|^4.0"
},
"autoload": {
"psr-4": {
"LeadM\\LeadMail\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"LeadM\\LeadMail\\Tests\\": "tests/"
}
},
"extra": {
"laravel": {
"providers": [
"LeadM\\LeadMail\\LeadMailServiceProvider"
],
"aliases": {
"LeadMail": "LeadM\\LeadMail\\LeadMailFacade"
}
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
"allow-plugins": {
"pestphp/pest-plugin": true
}
}
}