{"_id":"@bernierllc/email-webhook-events","_rev":"26-a2d04c5080131906d38dd9c32a5d96e3","name":"@bernierllc/email-webhook-events","dist-tags":{"latest":"1.7.12"},"versions":{"1.0.0":{"name":"@bernierllc/email-webhook-events","version":"1.0.0","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.0.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"2dd7f7f144485bca7bf3c96f809c138669b770c7","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.0.0.tgz","fileCount":97,"integrity":"sha512-xHcIytCtbb5qyekjwJj/hQxT/ulDczfRFhMmWHOP+tkpUgLejM2pvSf60oX/CyMYcSFFY0enzraQhWn1NPollA==","signatures":[{"sig":"MEUCIBebwUVT3y07dyOLQek5vyu7XDFPpa6ACCPXPr45mJcBAiEAmPxWMawX4UfkFJdn6sWeHe8/4vmQajnOtcbrZRNrVKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511434},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.0.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --watchAll=false","test:coverage":"jest --coverage --watchAll=false"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/private/var/folders/r0/wspnzd1s18sfjy10ffyv2qxw0000gn/T/ce68ede1311b3e57b22a325894796c04/bernierllc-email-webhook-events-1.0.0.tgz","_integrity":"sha512-xHcIytCtbb5qyekjwJj/hQxT/ulDczfRFhMmWHOP+tkpUgLejM2pvSf60oX/CyMYcSFFY0enzraQhWn1NPollA==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.6.2","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"25.2.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.0.0_1764111611796_0.6337687290113856","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bernierllc/email-webhook-events","version":"1.0.1","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"9c1830272bfeaaf37911b5cd69920bb7da3e7e07","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.0.1.tgz","fileCount":86,"integrity":"sha512-LJu9XBPNJbRpzZ/RwPFrOmDs1yj7+e26EsEZ1qY01QK2Xcy0EqpkUxVcWUpfBaLFtYIp6xoTpEACrawqlir2uQ==","signatures":[{"sig":"MEYCIQCUgHMRvsKH0+FbAdD8d+xVthNnB5CigAwqYy4SAWFYRAIhAKu4n3f3y5Qh38OtSZl+AauzzVK6Sca3yoZo0flxLV1l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237311},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.0.1.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"tsc","clean":"rm -rf dist","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/tmp/a6fe71e5e738b61a34d59f4b32a96992/bernierllc-email-webhook-events-1.0.1.tgz","_integrity":"sha512-LJu9XBPNJbRpzZ/RwPFrOmDs1yj7+e26EsEZ1qY01QK2Xcy0EqpkUxVcWUpfBaLFtYIp6xoTpEACrawqlir2uQ==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.7.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/email-manager":"0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.0.0","eslint":"^8.0.0","vitest":"^1.0.0","express":"^4.18.0","typescript":"^5.0.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@vitest/coverage-v8":"^1.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.0.1_1766608913705_0.09008847468747327","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bernierllc/email-webhook-events","version":"1.2.0","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.2.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"99d379aaef11e43eca8b8b883c4738b48938d15a","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.2.0.tgz","fileCount":86,"integrity":"sha512-kmLZBACTDT3/0Aj4jJ5quGTO9kUhKeT00TulLlIjebzaQ3+ACDp1SmfpOFx5TF4DnMCnv3OJLmhADyhxkpo/dQ==","signatures":[{"sig":"MEUCIDyrbMs3GynM0tFJjWUp8esnnB6ikXXdJ+jNB7dKzWNyAiEA82+jG1jhy6DAsegCUi0SmQlw0d9Krh92128VfBcEUks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238860},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/email-manager":"0.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.2.0_1767642513104_0.8522879370220617","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@bernierllc/email-webhook-events","version":"1.3.1","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.3.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"7be12230323041a6f7dfca60fb7aa400656d4f73","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.3.1.tgz","fileCount":87,"integrity":"sha512-EMoflwOEGOYS8dN/kJ0P3Nr8MIXqYbvuNDncKWyKJGxYzUtjhF4NV15fgHjzWe6gq4h3tbfWmSop2yENg2TyrQ==","signatures":[{"sig":"MEQCICN8LfqxxCrWoKfNn2E5p7Lgcuo+VAFgyEHzGLnKGvScAiB4t3lE9SXTe+OFulQe5tSQRfROoSW2qV96YUOs7sGP0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259488},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.3.1.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.3.1.tgz","_integrity":"sha512-EMoflwOEGOYS8dN/kJ0P3Nr8MIXqYbvuNDncKWyKJGxYzUtjhF4NV15fgHjzWe6gq4h3tbfWmSop2yENg2TyrQ==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.11.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/email-manager":"0.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.3.1_1773083729621_0.7429078229234294","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@bernierllc/email-webhook-events","version":"1.3.2","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.3.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"e56a6457f23a58ef8a2e0e79778e2e6a7e0a3084","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.3.2.tgz","fileCount":87,"integrity":"sha512-HVTDzuCBfAG2s7O6ABk+QkM9NiQ34CIwjw+xRkQ6bKNiNPXAr5zDWkx6dSylyXpUBukt9GM3H8l3HFy/YXlDkA==","signatures":[{"sig":"MEYCIQCMrjPNWhdyb2y+U/gI76PCHafWufGfXcXhHutxY2mbqQIhAJee1CB0cHM7+TBxCTDAuVN9F3ZKfsUCnin3OfRmwh5z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259716},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.3.2.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.3.2.tgz","_integrity":"sha512-HVTDzuCBfAG2s7O6ABk+QkM9NiQ34CIwjw+xRkQ6bKNiNPXAr5zDWkx6dSylyXpUBukt9GM3H8l3HFy/YXlDkA==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.11.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@bernierllc/email-manager":"0.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.3.2_1773869837071_0.4225578346676866","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@bernierllc/email-webhook-events","version":"1.3.3","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.3.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"680ee9ae748d957401b4191709b2356fe666a2b6","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.3.3.tgz","fileCount":87,"integrity":"sha512-6ebPbPFTJzqZ46k2rmQSTUqsXlve8izmJZ51H8FTdvVVvG+fTj670zj+SQPT7PUzb+Kh+HXzThCxBNwnwppGIw==","signatures":[{"sig":"MEQCIA5Txh+MUD5xlmn/moc5D6eaH7r3r5+zN2ML4G+DrsrgAiAuVp/A1NotoiMelvBzt7nv75TKn+0wxsF/c1xBNnHNkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259944},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.3.3.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.3.3.tgz","_integrity":"sha512-6ebPbPFTJzqZ46k2rmQSTUqsXlve8izmJZ51H8FTdvVVvG+fTj670zj+SQPT7PUzb+Kh+HXzThCxBNwnwppGIw==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.12.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@bernierllc/email-manager":"0.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.3.3_1774131189533_0.7484387078606134","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@bernierllc/email-webhook-events","version":"1.3.4","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.3.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"ff1e86238fe696a8c75130663398d2efd993c99f","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.3.4.tgz","fileCount":87,"integrity":"sha512-QTQv4jKtPF0Weex0kbAO7tXOsNhvcyM61pQuokXe9Y7en2pfYdAgkogeRsPQZvHFKZH7Dx7qPkCF4jui2g3oQg==","signatures":[{"sig":"MEUCIGeCojX/ds4nbYv1WdlcHGj/g2ZLrGs2W5cC0qAKs60PAiEAg/bJVlAWgQD8ad/s5lFqmYHPf0P75vKZ4U1eyaoXykI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260172},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.3.4.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.3.4.tgz","_integrity":"sha512-QTQv4jKtPF0Weex0kbAO7tXOsNhvcyM61pQuokXe9Y7en2pfYdAgkogeRsPQZvHFKZH7Dx7qPkCF4jui2g3oQg==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.7.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.3.4_1779133799128_0.5888385661038475","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"@bernierllc/email-webhook-events","version":"1.3.5","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.3.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"1ccc9f05284432c618721744587d45b658adee1e","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.3.5.tgz","fileCount":87,"integrity":"sha512-EACddofCo34iB5pc0oYwBqtqi/qLHG88SC8erdeo360m87Q8oMMnGwkcwSGQh/SO/mlTlynNtK5AYJx25pdM4Q==","signatures":[{"sig":"MEUCIHEjJrxG9gojqlxiQyfyctHoRQsGHndoO8YFKLRdwkYvAiEApG2EBsqnT7p8FGljxZooi+DEskYr84MHHbrW1zqcX9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260400},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.3.5.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.3.5.tgz","_integrity":"sha512-EACddofCo34iB5pc0oYwBqtqi/qLHG88SC8erdeo360m87Q8oMMnGwkcwSGQh/SO/mlTlynNtK5AYJx25pdM4Q==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.7.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.3.5_1779157480527_0.9142361831712422","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"@bernierllc/email-webhook-events","version":"1.3.6","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.3.6","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"0a939cf315b73f39eb2bd0e4bb4f0aaffbb8b995","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.3.6.tgz","fileCount":87,"integrity":"sha512-wqbVUsKs7th8ZoWKq/WcTC9xfRe4R+L+/cRMIVCR092RVq9yNQn/vlxXUUMPQOymKAcePQBihAQRip+8cjAQJw==","signatures":[{"sig":"MEUCIQDoa+2h5Qv2gk2unUwxUVpXjSLMhtqQjUjh0QEZECRI5gIgHHGBEic0UnoOO1EDfvfvJ5ButrpXXB9aBE/oaBjWsoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260628},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.3.6.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.3.6.tgz","_integrity":"sha512-wqbVUsKs7th8ZoWKq/WcTC9xfRe4R+L+/cRMIVCR092RVq9yNQn/vlxXUUMPQOymKAcePQBihAQRip+8cjAQJw==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.7.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.3.6_1779221633860_0.13096392440898397","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"@bernierllc/email-webhook-events","version":"1.3.7","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.3.7","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"ecf31c7ec172c418970ccbf14b92bc6cc541eeb6","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.3.7.tgz","fileCount":87,"integrity":"sha512-nb1wrrGk2Dg3p9FFELSFCsrNiimUxhnVJ6leauZXXwaRgljb6qmnnycN12vBvAsvPNbU46z0JfjLQoW6tV6XWA==","signatures":[{"sig":"MEQCIGjWnyKJYTByfLl1DnmyjllZg5WfJy0BanHzM97tjTojAiA+FeO2mna5K5oIsWA8VZVUWHWHIZhIRfTa7Nf5ehEsLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260856},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.3.7.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.3.7.tgz","_integrity":"sha512-nb1wrrGk2Dg3p9FFELSFCsrNiimUxhnVJ6leauZXXwaRgljb6qmnnycN12vBvAsvPNbU46z0JfjLQoW6tV6XWA==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.7.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.3.7_1779234081642_0.27620919436517877","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bernierllc/email-webhook-events","version":"1.4.0","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"854c426df2025dd9cba609274db676c0963a4961","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.4.0.tgz","fileCount":87,"integrity":"sha512-B2IlNzGY1p5ouCYKHbhADBZVQYSYyYplCXGS7NhFoWbNnFzphcjR67Gh5zH81JsikjWc8NGaWtf8jOb3k5Lw8A==","signatures":[{"sig":"MEQCIEnTTo0ioI0FXm7cLidSZBx7QeWFdXQRUujJFrJqE8wcAiBlrVhI9wNDguNSFRt1USnHOy+5A0eRlMlrxYT1192YpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261054},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.4.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.4.0.tgz","_integrity":"sha512-B2IlNzGY1p5ouCYKHbhADBZVQYSYyYplCXGS7NhFoWbNnFzphcjR67Gh5zH81JsikjWc8NGaWtf8jOb3k5Lw8A==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.8.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.4.0_1779241698523_0.7759710155782453","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@bernierllc/email-webhook-events","version":"1.4.1","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.4.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"37371509cffaaec9baf18ba369709e4886ad61a9","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.4.1.tgz","fileCount":87,"integrity":"sha512-5UhlNXZbhB8ucpf4qP1L/O66OFkJsOy/1ZwXTOHNM1LH3/P7tqsfm1wVn5a9wRG54rTlT4cuEqg/OJTS8tyIbw==","signatures":[{"sig":"MEYCIQC7M+Qtq9YaV1bafJTuukXBBvRRtMp7UdyT0RiR3WaagQIhANVf/dpQqfeRMfhwP9E42Vtx6+H3T0Js1okZIzYjar7a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261282},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.4.1.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.4.1.tgz","_integrity":"sha512-5UhlNXZbhB8ucpf4qP1L/O66OFkJsOy/1ZwXTOHNM1LH3/P7tqsfm1wVn5a9wRG54rTlT4cuEqg/OJTS8tyIbw==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.4.1_1779243485737_0.12204276829193272","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@bernierllc/email-webhook-events","version":"1.6.0","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.6.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"4913a4230109fa3808e39a6cb29fa0db182211cc","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.6.0.tgz","fileCount":54,"integrity":"sha512-N4SLQ7DS1Vc0jHz0ioK58fz488C6KsWL9OqkNHNU3szE0fjuPLWo+7sSY1u7N9u2e53d/oCdivYXymFy01zfZw==","signatures":[{"sig":"MEUCIQDPgHxjRnHQaTpFYrpSAXcBdGIm9WrL0N+awPCgGJOCZQIgKYGVT/jZrTsF4PgARhkS3nZU0RPP9FbYqE+bRRZVXiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106686},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.6.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.6.0.tgz","_integrity":"sha512-N4SLQ7DS1Vc0jHz0ioK58fz488C6KsWL9OqkNHNU3szE0fjuPLWo+7sSY1u7N9u2e53d/oCdivYXymFy01zfZw==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.8.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.6.0_1779246021677_0.4573332768148055","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@bernierllc/email-webhook-events","version":"1.7.0","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"5caf47d92f434e6754ee9a6d629485a1edcbdf1a","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.0.tgz","fileCount":54,"integrity":"sha512-aQoH44EXFcRPWDZNhqXi7+FiJqIFiyczynIpS2ci2mCU/Q9C/DW8B6jrmCDEP5ikuv6WyCZKvPNpTqFjKE3yWg==","signatures":[{"sig":"MEUCIDx63Nsqo8AYmDbi98KIUX/Nb9soh3QnTNh+kVnwZLaEAiEAwlIX8G/5iLKZTIfooeRB8x3HXiNkNfEqgux3f4U3MEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106686},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.0.tgz","_integrity":"sha512-aQoH44EXFcRPWDZNhqXi7+FiJqIFiyczynIpS2ci2mCU/Q9C/DW8B6jrmCDEP5ikuv6WyCZKvPNpTqFjKE3yWg==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.0_1779250445005_0.044239626134744636","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@bernierllc/email-webhook-events","version":"1.7.1","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"b6a285d081b4594a5ea74889514b3a1f01032789","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.1.tgz","fileCount":54,"integrity":"sha512-7DgMbOJyMl7tb96ak/9IBjs0QQ/2QlWpVg+2FFrSdM3S/Ks8gdgGSCrOrHDvkhew1VQVT/SMxpuW6oyVO0wE5w==","signatures":[{"sig":"MEUCIQCvIRbzz+vbQ65k36dmlQs1d4jZ0F2+yhGVwV8Dsv9SqAIgX8A3W5fiocoG4zknVap38ASH5wE3euxptprWPJKZIcI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106686},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.1.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.1.tgz","_integrity":"sha512-7DgMbOJyMl7tb96ak/9IBjs0QQ/2QlWpVg+2FFrSdM3S/Ks8gdgGSCrOrHDvkhew1VQVT/SMxpuW6oyVO0wE5w==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.9.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.1_1779252038565_0.03479167728857879","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"@bernierllc/email-webhook-events","version":"1.7.2","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"ef01a4015cafc138ffae70f082196147259d3381","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.2.tgz","fileCount":54,"integrity":"sha512-i2bdfGdeezE6v8neR9GiyhJrymOH4I9NT35N5jfoMxe+03+jNr8gkf4Wg+N1mVrTts7YsCllo2b0sQLuM6hv9w==","signatures":[{"sig":"MEQCIBLSuNavH3gjDvfwruwRAk8/9LP/QgqvCoo0vGWFUgsAAiAD6i3gnpTcIP4CJupb33md0RQ2kWeIr1EEGVd8NO0WJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106686},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.2.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.2.tgz","_integrity":"sha512-i2bdfGdeezE6v8neR9GiyhJrymOH4I9NT35N5jfoMxe+03+jNr8gkf4Wg+N1mVrTts7YsCllo2b0sQLuM6hv9w==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.9.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.2_1779303433324_0.40478320449792626","host":"s3://npm-registry-packages-npm-production"}},"1.7.3":{"name":"@bernierllc/email-webhook-events","version":"1.7.3","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"936b2c09d182248590d5098f36b6bf52c7148a82","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.3.tgz","fileCount":54,"integrity":"sha512-m2YlEOI4y2NfLsi18CmRmcAwtNQCKPM0Rgshk7IoknryTci/QqKMA+6ZI99RCUzA6R/5MscIJanNYbCgwqn3wg==","signatures":[{"sig":"MEUCIQCqT+QZysY3On7lTTNGP1u4vwA3C9mrz7N+7WYLlqMFtwIgUlp1j+G8AzS/46IVHJaixBM6+xdFmPV2A0ykrUV9dZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106686},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.3.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.3.tgz","_integrity":"sha512-m2YlEOI4y2NfLsi18CmRmcAwtNQCKPM0Rgshk7IoknryTci/QqKMA+6ZI99RCUzA6R/5MscIJanNYbCgwqn3wg==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.15.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.9.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.3_1779312741061_0.26396069206349293","host":"s3://npm-registry-packages-npm-production"}},"1.7.4":{"name":"@bernierllc/email-webhook-events","version":"1.7.4","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"7de796a40c83b98a2911297dc30f1f5d72397ca8","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.4.tgz","fileCount":54,"integrity":"sha512-ctzoKCGM8X2K7VBs8p4IhlyWv0ZRT2wtUxOnLg2RSfVXEwTHwLJKmSjMsJgyvltHwsNjch0qRlVj+RzbsG2WMw==","signatures":[{"sig":"MEQCIB6KBjYcj4r3Rs+tC9Gn+EA42JWrVbuQ9JgauBYFWfJTAiBso4HmrVKOwPKoHUMjQpz007AF9+la124hyfCyVzexoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106686},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.4.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.4.tgz","_integrity":"sha512-ctzoKCGM8X2K7VBs8p4IhlyWv0ZRT2wtUxOnLg2RSfVXEwTHwLJKmSjMsJgyvltHwsNjch0qRlVj+RzbsG2WMw==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.15.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.9.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.4_1779313853329_0.0941350695181482","host":"s3://npm-registry-packages-npm-production"}},"1.7.5":{"name":"@bernierllc/email-webhook-events","version":"1.7.5","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"ed9fe6cd6a2fbf63895b118ed9770f3d33c3b0ce","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.5.tgz","fileCount":54,"integrity":"sha512-Mx3a+Rxr1CbI4i3WgTjQz/N4n59Q3bM5kGx4/6cTNaAhuvW7diZ5MDoYJP+UDGqpJIS56dJezfugxVtRpsN66A==","signatures":[{"sig":"MEUCIQCbZL9r5Ea6ODJe6tiDiQwFTsZd42NFyv4C3xiYgJ0mMgIgK9I9NfBZAFX/Q6vFUYIDvBGGb21wGPYRzFrsyLrnG8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106686},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.5.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.5.tgz","_integrity":"sha512-Mx3a+Rxr1CbI4i3WgTjQz/N4n59Q3bM5kGx4/6cTNaAhuvW7diZ5MDoYJP+UDGqpJIS56dJezfugxVtRpsN66A==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"11.15.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/email-manager":"0.9.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.5_1779840796052_0.35791833635818904","host":"s3://npm-registry-packages-npm-production"}},"1.7.6":{"name":"@bernierllc/email-webhook-events","version":"1.7.6","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.6","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"e4ec4e5af083b0f7021c8e26a853b0a732074e23","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.6.tgz","fileCount":54,"integrity":"sha512-AyBpx3qRY+XnWuSyr1Vuj9S7WsCNUGf+OoZNBuNa/82w5DteAh0wnDqdCL+abqHG/vcTmBA5A7wEKRvI/Lofcg==","signatures":[{"sig":"MEUCIAuItKbJN8gzvqM40zTS3QUM5ZFLOJdIKpOOMDMZC7/vAiEA2sKlVr+cUMKsMJdamnY3ByWHUvUSUftbXpngZGE0dLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106686},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.6.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.6.tgz","_integrity":"sha512-AyBpx3qRY+XnWuSyr1Vuj9S7WsCNUGf+OoZNBuNa/82w5DteAh0wnDqdCL+abqHG/vcTmBA5A7wEKRvI/Lofcg==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"12.0.1","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@bernierllc/email-manager":"0.9.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.6_1784015896067_0.9900621701847137","host":"s3://npm-registry-packages-npm-production"}},"1.7.7":{"name":"@bernierllc/email-webhook-events","version":"1.7.7","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.7","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"bbae4e680f49e55ce92b54dd8163f79978c9c6e2","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.7.tgz","fileCount":54,"integrity":"sha512-S6VQyAo9uMyTApYM/sUrFYI4Za0Kn0dP4SWaFrVmMZp9m7FI6awO4T3UZZ6Z6hOlgzYWgZ+osGcWPrlG+6phyQ==","signatures":[{"sig":"MEUCIQCJ3nhlQBt3lV2WCyKyAmM3fFQETPEiSDfJTvWkuvRMywIgKySk9zhiBo6j5xEB0chx6/arIFCKQCjJWF27gcI2AJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106686},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.7.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.7.tgz","_integrity":"sha512-S6VQyAo9uMyTApYM/sUrFYI4Za0Kn0dP4SWaFrVmMZp9m7FI6awO4T3UZZ6Z6hOlgzYWgZ+osGcWPrlG+6phyQ==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"12.0.2","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@bernierllc/email-manager":"0.9.7"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.7_1788112434511_0.08933027169535102","host":"s3://npm-registry-packages-npm-production"}},"1.7.8":{"name":"@bernierllc/email-webhook-events","version":"1.7.8","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.8","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"26ea419dd5aed056dc58b4056ce94b40d31b2004","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.8.tgz","fileCount":54,"integrity":"sha512-zIDEpzlUAX2hqiD/PO0MHMEq5z5YER8KbzQChbZ5+dZvXQaqD3EJWF5F4hn+y1nBGF9h2pQwXpafAn/na+3BPg==","signatures":[{"sig":"MEUCIQDjKurI+B4E5YhoW5YgUrQngisceBSbjA0uhCHeRLF6ZAIgBHD7U3EmUU3ocTPbK4hNDsnNk+z107+TnlqJ++Z48iI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIARC2kTGiXEIMtiPOb/VVWwZLfo0vLFOIgu70PQJ4OBoAiEAkxUNjAWlhcZFSZ4moooLl9NETc/TDH2qkhzbOsUnBf4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106687},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.8.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.8.tgz","_integrity":"sha512-zIDEpzlUAX2hqiD/PO0MHMEq5z5YER8KbzQChbZ5+dZvXQaqD3EJWF5F4hn+y1nBGF9h2pQwXpafAn/na+3BPg==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"12.1.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/email-manager":"0.10.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.8_1790709270587_0.930693286049181","host":"s3://npm-registry-packages-npm-production"}},"1.7.9":{"name":"@bernierllc/email-webhook-events","version":"1.7.9","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.9","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"82000b3f1aae817e785ad7aa074c1f4369b57ea3","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.9.tgz","fileCount":54,"integrity":"sha512-vrqUc4I9uxabkFMwu5Bvi8lYGscqhEStAeCsrq6gbIvMFzw61MvjwOnIVvre6vmJBs4zKTU/huR94/9umkip1w==","signatures":[{"sig":"MEUCIQCtju6FZTjQy6wRE2FrjDyFj0H48Dbp72EaKGpxe0gszwIgLGe67IGwdZ8DN4fovUaBKNg4l6M2woX8N+bc4TnOeSA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDqq5snyx8XZdBZ3d23O1SCQtZo/3mqsvnXGG0LQZ0mMwIhAJYQwRxw022tKqD2BDzkQ2wd3pLxds9zNWDwv0DGj/hG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106687},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.9.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.9.tgz","_integrity":"sha512-vrqUc4I9uxabkFMwu5Bvi8lYGscqhEStAeCsrq6gbIvMFzw61MvjwOnIVvre6vmJBs4zKTU/huR94/9umkip1w==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"12.2.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/email-manager":"0.10.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.9_1790797056567_0.22445839180974247","host":"s3://npm-registry-packages-npm-production"}},"1.7.10":{"name":"@bernierllc/email-webhook-events","version":"1.7.10","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.10","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"7a6b3b6353e0f5df13e9b6d0aa4267c588579fab","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.10.tgz","fileCount":54,"integrity":"sha512-hJ5fG3QqSHkylftg8ceYdS+YGzASFuRTdp2n2OTfElVnMj7E+8zmh+hMvS/zy1Nt4SvtlAyU1rw7mFfIlgjzuw==","signatures":[{"sig":"MEUCIQDa9RQMps00VjCvacHNtivt20YbEMbs0gWytA7ydAyfkAIgdZAUp1UHHEW5tiZtLHqGcvsUeQEA9+kY8c6TaYFUgbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC/oOr5q6O7ddgA50uV4VAWXqyIKjob1ukh+3TrfOcrMAIgWF1jYZMSVFFiX8GnwxHoDz+yPPYYWkskXGPPex091YA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106688},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.10.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.10.tgz","_integrity":"sha512-hJ5fG3QqSHkylftg8ceYdS+YGzASFuRTdp2n2OTfElVnMj7E+8zmh+hMvS/zy1Nt4SvtlAyU1rw7mFfIlgjzuw==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"12.2.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/email-manager":"0.10.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.10_1790882686385_0.27740109512944433","host":"s3://npm-registry-packages-npm-production"}},"1.7.11":{"name":"@bernierllc/email-webhook-events","version":"1.7.11","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-webhook-events@1.7.11","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"869d89e4bb56ac273f1f97ca54c14bbd7c960dda","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.11.tgz","fileCount":55,"integrity":"sha512-bebohOzHjck3Hbath4zGCOOw29jk1blRtdd8o+lUkikqPsl1t8juQVkRFy5bZgUESlWOwEkVaqrDQy/+L8LoFQ==","signatures":[{"sig":"MEUCIGbN/6Uz0uoVY2r6q8da6akMOIjWEC6F6MsUOENDLgRsAiEAx33daZl5YS8hzU0iMndRgWb3DrCTmq5ec+Zd3Q5m7ME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCpM97u+QV7z8xumGMU84bGViVmvGqoJVUbdtDHBzIkcwIhAJ1hR7+xEVRSkEueR1s0cgStE320Y5kDL4Sye8FuDsk6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107010},"main":"dist/index.js","_from":"file:bernierllc-email-webhook-events-1.7.11.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"89582758-a1c9-4606-830d-68478042b569"}},"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.11.tgz","_integrity":"sha512-bebohOzHjck3Hbath4zGCOOw29jk1blRtdd8o+lUkikqPsl1t8juQVkRFy5bZgUESlWOwEkVaqrDQy/+L8LoFQ==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"12.2.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/email-manager":"^0.10.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-webhook-events_1.7.11_1790884285101_0.14627845192064126","host":"s3://npm-registry-packages-npm-production"}},"1.7.12":{"_id":"@bernierllc/email-webhook-events@1.7.12","dist":{"shasum":"3820b40edd68fb6aad18434f1754d28ec91687ac","tarball":"https://registry.npmjs.org/@bernierllc/email-webhook-events/-/email-webhook-events-1.7.12.tgz","fileCount":55,"integrity":"sha512-McMilATagbjjz1wNpJVRPTX5ZuqI4ylC8/d7Vx8DoNOzkZ0Jv8rAP6KxbX/NMvsMvhIx8KbUGF4CDv5bSsFbUw==","signatures":[{"sig":"MEUCIQD5oq8mhBUcH2CS1eNEilZgkzWB6C3uSYHxS5B9ne5UYQIgD5vs74ETz03mJdkLnvXo2grf88Er1GwRTBHDzls5YGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHwZkoA8gPmn8BY6w4RrN7JLXD0OOP5nrcaTNfLdRdHNAiBLthMXk7PZAuwQAY1T/8101CG0MMRpN9288WlRZ7+Vaw=="}],"unpackedSize":107010},"main":"dist/index.js","name":"@bernierllc/email-webhook-events","_from":"file:bernierllc-email-webhook-events-1.7.12.tgz","types":"dist/index.d.ts","author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","test:run":"jest --forceExit","test:coverage":"jest --coverage"},"version":"1.7.12","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"89582758-a1c9-4606-830d-68478042b569"}},"keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"_resolved":"/home/runner/work/tools/tools/packages/service/email-webhook-events/bernierllc-email-webhook-events-1.7.12.tgz","_integrity":"sha512-McMilATagbjjz1wNpJVRPTX5ZuqI4ylC8/d7Vx8DoNOzkZ0Jv8rAP6KxbX/NMvsMvhIx8KbUGF4CDv5bSsFbUw==","bernierllc":{"integration":{"logger":"integrated","neverhub":"required","neveradmin":"not-applicable"}},"_npmVersion":"12.2.0","description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"@bernierllc/email-manager":"^0.10.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","dotenv":"^16.0.0","eslint":"^8.0.0","express":"^4.18.0","ts-jest":"^29.4.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@ngrok/ngrok":"^1.7.0","@types/express":"^4.17.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/email-webhook-events_1.7.12_1790902406501_0.8018129030202239"}}},"time":{"created":"2025-11-25T23:00:11.733Z","modified":"2026-10-02T00:53:26.784Z","1.0.0":"2025-11-25T23:00:11.997Z","1.0.1":"2025-12-24T20:41:53.851Z","1.2.0":"2026-01-05T19:48:33.263Z","1.3.1":"2026-03-09T19:15:29.785Z","1.3.2":"2026-03-18T21:37:17.261Z","1.3.3":"2026-03-21T22:13:09.679Z","1.3.4":"2026-05-18T19:49:59.276Z","1.3.5":"2026-05-19T02:24:40.665Z","1.3.6":"2026-05-19T20:13:54.012Z","1.3.7":"2026-05-19T23:41:21.865Z","1.4.0":"2026-05-20T01:48:18.644Z","1.4.1":"2026-05-20T02:18:05.891Z","1.6.0":"2026-05-20T03:00:21.830Z","1.7.0":"2026-05-20T04:14:05.156Z","1.7.1":"2026-05-20T04:40:38.786Z","1.7.2":"2026-05-20T18:57:13.479Z","1.7.3":"2026-05-20T21:32:21.204Z","1.7.4":"2026-05-20T21:50:53.505Z","1.7.5":"2026-05-27T00:13:16.193Z","1.7.6":"2026-07-14T07:58:16.237Z","1.7.7":"2026-08-30T17:53:54.647Z","1.7.8":"2026-09-29T19:14:30.673Z","1.7.9":"2026-09-30T19:37:36.647Z","1.7.10":"2026-10-01T19:24:46.468Z","1.7.11":"2026-10-01T19:51:25.180Z","1.7.12":"2026-10-02T00:53:26.613Z"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","keywords":["email","webhooks","events","analytics","sendgrid","mailgun","aws-ses","postmark","tracking","normalization","service"],"description":"Email event tracking, normalization, and analytics service for processing webhooks from all email providers","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/email-webhook-events\n\nEmail event tracking, normalization, and analytics service for processing webhooks from all email providers (SendGrid, Mailgun, AWS SES, Postmark, SMTP2GO). Provides unified event format, real-time notifications, and comprehensive analytics aggregation.\n\n## Installation\n\n```bash\nnpm install @bernierllc/email-webhook-events\n```\n\n## Usage\n\n### Basic Setup\n\n```typescript\nimport { EmailWebhookEventsService, EmailProvider } from '@bernierllc/email-webhook-events';\n\nconst service = new EmailWebhookEventsService({\n  providers: [\n    {\n      provider: EmailProvider.SENDGRID,\n      enabled: true,\n      webhookUrl: '/webhooks/sendgrid',\n      secretKey: process.env.SENDGRID_WEBHOOK_SECRET!,\n      signatureHeader: 'X-Twilio-Email-Event-Webhook-Signature',\n      signatureAlgorithm: 'sha256'\n    },\n    {\n      provider: EmailProvider.MAILGUN,\n      enabled: true,\n      webhookUrl: '/webhooks/mailgun',\n      secretKey: process.env.MAILGUN_WEBHOOK_SECRET!,\n      signatureHeader: 'X-Mailgun-Signature',\n      signatureAlgorithm: 'sha256'\n    }\n  ],\n  persistence: {\n    enabled: true,\n    adapter: 'memory' // or 'supabase', 'postgresql', 'mongodb'\n  },\n  analytics: {\n    realTimeEnabled: true,\n    aggregationInterval: 5000,\n    retentionDays: 90\n  },\n  notifications: {\n    enabled: true,\n    criticalEvents: ['bounced', 'complained', 'failed'],\n    channels: [\n      { type: 'neverhub', config: {} }\n    ]\n  }\n});\n\nawait service.initialize();\n```\n\n### Processing Webhooks\n\n```typescript\n// Express.js example\napp.post('/webhooks/sendgrid', async (req, res) => {\n  const webhook = {\n    provider: EmailProvider.SENDGRID,\n    signature: req.headers['x-twilio-email-event-webhook-signature'],\n    payload: req.body,\n    headers: req.headers\n  };\n\n  const result = await service.processWebhook(webhook);\n\n  if (result.success) {\n    res.status(200).json({ message: 'Event processed' });\n  } else {\n    res.status(400).json({ error: result.error });\n  }\n});\n```\n\n### Querying Analytics\n\n```typescript\n// Get analytics for the last 30 days\nconst startDate = new Date();\nstartDate.setDate(startDate.getDate() - 30);\nconst endDate = new Date();\n\nconst analytics = await service.getAnalytics(startDate, endDate);\n\nconsole.log(`Delivery rate: ${(analytics.deliveryRate * 100).toFixed(2)}%`);\nconsole.log(`Open rate: ${(analytics.openRate * 100).toFixed(2)}%`);\nconsole.log(`Click rate: ${(analytics.clickRate * 100).toFixed(2)}%`);\nconsole.log(`Bounce rate: ${(analytics.bounceRate * 100).toFixed(2)}%`);\n\n// Filter by provider\nconst sendgridAnalytics = await service.getAnalytics(\n  startDate,\n  endDate,\n  { provider: EmailProvider.SENDGRID }\n);\n\n// Filter by event type\nconst bounceAnalytics = await service.getAnalytics(\n  startDate,\n  endDate,\n  { eventTypes: ['bounced'] }\n);\n```\n\n### Querying Events\n\n```typescript\n// Get all events for a specific email\nconst emailEvents = await service.getEventsForEmail('email-123');\n\n// Query events with filters\nconst events = await service.queryEvents({\n  recipient: 'user@example.com',\n  eventTypes: ['opened', 'clicked'],\n  startDate: new Date('2025-01-01'),\n  endDate: new Date('2025-12-31'),\n  limit: 100\n});\n```\n\n## API Reference\n\n### EmailWebhookEventsService\n\n#### `constructor(config: EmailWebhookEventsConfig)`\n\nCreates a new EmailWebhookEventsService instance.\n\n**Parameters:**\n- `config.providers` - Array of provider configurations\n- `config.persistence` - Persistence settings (optional)\n- `config.analytics` - Analytics settings (optional)\n- `config.notifications` - Notification settings (optional)\n- `config.rateLimiting` - Rate limiting settings (optional)\n\n#### `async initialize(): Promise<void>`\n\nInitializes the service. Must be called before processing webhooks.\n\n#### `async processWebhook(webhook: WebhookPayload): Promise<EmailWebhookResult>`\n\nProcesses an incoming webhook from an email provider.\n\n**Parameters:**\n- `webhook.provider` - Email provider (sendgrid, mailgun, aws_ses, etc.)\n- `webhook.signature` - Webhook signature for validation\n- `webhook.payload` - Raw webhook payload\n- `webhook.headers` - Request headers\n\n**Returns:** `EmailWebhookResult` with success status and normalized event\n\n#### `async getAnalytics(startDate: Date, endDate: Date, filters?: AnalyticsFilters): Promise<EmailAnalytics>`\n\nRetrieves analytics for the specified date range.\n\n**Parameters:**\n- `startDate` - Start of date range\n- `endDate` - End of date range\n- `filters` - Optional filters (provider, emailId, recipient, eventTypes)\n\n**Returns:** `EmailAnalytics` with counts, rates, and breakdowns\n\n#### `async queryEvents(query: EventQuery): Promise<EmailEvent[]>`\n\nQueries events with various filters.\n\n**Parameters:**\n- `query.emailId` - Filter by email ID\n- `query.recipient` - Filter by recipient\n- `query.eventTypes` - Filter by event types\n- `query.startDate` - Filter by start date\n- `query.endDate` - Filter by end date\n- `query.limit` - Maximum number of results\n- `query.offset` - Offset for pagination\n\n**Returns:** Array of `EmailEvent`\n\n#### `async getEventsForEmail(emailId: string): Promise<EmailEvent[]>`\n\nGets all events for a specific email.\n\n**Parameters:**\n- `emailId` - Email identifier\n\n**Returns:** Array of `EmailEvent`\n\n## Supported Providers\n\n### SendGrid\n\n```typescript\n{\n  provider: EmailProvider.SENDGRID,\n  signatureHeader: 'X-Twilio-Email-Event-Webhook-Signature',\n  signatureAlgorithm: 'sha256'\n}\n```\n\n**Supported Events:** delivered, open, click, bounce, spamreport, unsubscribe, deferred, dropped\n\n### Mailgun\n\n```typescript\n{\n  provider: EmailProvider.MAILGUN,\n  signatureHeader: 'X-Mailgun-Signature',\n  signatureAlgorithm: 'sha256'\n}\n```\n\n**Supported Events:** delivered, opened, clicked, bounced, complained, unsubscribed, failed\n\n### AWS SES\n\n```typescript\n{\n  provider: EmailProvider.AWS_SES,\n  signatureHeader: 'X-Amz-Sns-Message-Type',\n  signatureAlgorithm: 'sha256'\n}\n```\n\n**Supported Events:** Delivery, Open, Click, Bounce, Complaint, Reject\n\n### Postmark\n\n```typescript\n{\n  provider: EmailProvider.POSTMARK,\n  signatureHeader: 'X-Postmark-Signature',\n  signatureAlgorithm: 'sha256'\n}\n```\n\n**Supported Events:** Delivery, Open, Click, Bounce, SpamComplaint, SubscriptionChange\n\n### SMTP2GO\n\n```typescript\n{\n  provider: EmailProvider.SMTP2GO,\n  signatureHeader: 'X-Smtp2go-Signature',\n  signatureAlgorithm: 'sha256'\n}\n```\n\n**Supported Events:** delivered, open, click, bounce, failed\n\n## Event Types\n\nAll provider events are normalized to these unified types:\n\n- `DELIVERED` - Email successfully delivered\n- `OPENED` - Email opened by recipient\n- `CLICKED` - Link clicked in email\n- `BOUNCED` - Email bounced (hard or soft)\n- `COMPLAINED` - Spam complaint received\n- `UNSUBSCRIBED` - Recipient unsubscribed\n- `FAILED` - Email delivery failed\n- `DEFERRED` - Email delivery deferred\n- `DROPPED` - Email dropped by provider\n\n## Analytics Metrics\n\n### Counts\n- `totalSent` - Total emails sent\n- `totalDelivered` - Total emails delivered\n- `totalOpened` - Total emails opened\n- `totalClicked` - Total links clicked\n- `totalBounced` - Total emails bounced\n- `totalComplained` - Total spam complaints\n- `totalUnsubscribed` - Total unsubscribes\n- `totalFailed` - Total delivery failures\n\n### Rates\n- `deliveryRate` - delivered / sent\n- `openRate` - opened / delivered\n- `clickRate` - clicked / delivered\n- `clickToOpenRate` - clicked / opened\n- `bounceRate` - bounced / sent\n- `complaintRate` - complained / sent\n- `unsubscribeRate` - unsubscribed / delivered\n\n### Breakdowns\n- `byProvider` - Analytics per provider\n- `byEventType` - Counts per event type\n- `byBounceType` - Hard vs soft bounces\n- `topLinks` - Most clicked links\n- `byDevice` - Desktop, mobile, tablet breakdown\n\n## Configuration\n\n### Environment Variables\n\n```bash\n# Provider webhook secrets\nEMAIL_WEBHOOK_SENDGRID_SECRET=your-sendgrid-webhook-secret\nEMAIL_WEBHOOK_MAILGUN_SECRET=your-mailgun-webhook-secret\nEMAIL_WEBHOOK_SES_SECRET=your-ses-sns-topic-subscription-secret\nEMAIL_WEBHOOK_POSTMARK_SECRET=your-postmark-webhook-secret\n\n# Persistence\nEMAIL_WEBHOOK_PERSISTENCE_ENABLED=true\nEMAIL_WEBHOOK_PERSISTENCE_ADAPTER=memory\nEMAIL_WEBHOOK_PERSISTENCE_RETENTION_DAYS=90\n\n# Analytics\nEMAIL_WEBHOOK_ANALYTICS_REALTIME=true\nEMAIL_WEBHOOK_ANALYTICS_INTERVAL=5000\n\n# Notifications\nEMAIL_WEBHOOK_NOTIFICATIONS_ENABLED=true\n\n# Rate limiting\nEMAIL_WEBHOOK_RATE_LIMIT_ENABLED=false\nEMAIL_WEBHOOK_RATE_LIMIT_MAX_PER_SECOND=100\n```\n\n## Integration Testing\n\nThis package includes integration tests that use real SendGrid webhooks.\n\n### Prerequisites\n\n1. SendGrid account with API key\n2. Paid ngrok account with auth token\n3. Test email address\n4. `.env.test` file configured with:\n   - `SENDGRID_API_KEY`\n   - `SENDGRID_WEBHOOK_SECRET` (optional)\n   - `TEST_EMAIL`\n   - `NGROK_AUTH_TOKEN`\n   - `NGROK_RESERVED_DOMAIN` (optional, for consistent URLs)\n   - `WEBHOOK_SERVER_PORT` (optional, defaults to 3000)\n\n### Running Integration Tests\n\n1. Ensure `.env.test` file is configured with all required variables\n2. Set `RUN_INTEGRATION_TESTS=true` environment variable\n3. Configure SendGrid webhook URL (first time only, or use reserved domain):\n   - Run test once to get webhook URL from output, or\n   - Use reserved domain: `https://your-reserved-domain.ngrok.io/webhooks/sendgrid`\n   - Go to SendGrid dashboard → Settings → Mail Settings → Event Webhook\n   - Set webhook URL and enable all event types\n4. Run tests: `npm test -- sendgrid-webhook-integration`\n\nTests automatically:\n- Start webhook server\n- Create ngrok tunnel (programmatically)\n- Send test emails via @bernierllc/email-manager\n- Capture and process webhooks\n- Save payloads to `__tests__/fixtures/sendgrid-webhooks/`\n\n### Captured Payloads\n\nReal webhook payloads are captured in `__tests__/fixtures/sendgrid-webhooks/`\nand used to generate accurate mocks for unit tests.\n\nSee `__tests__/fixtures/sendgrid-webhooks/README.md` for more details.\n\n## Provider Capability Support\n\nThis section documents how webhook event processing behaves across email providers, based on the canonical `CAPABILITY_MATRIX` in `@bernierllc/email-manager`.\n\n### Capability Levels by Provider\n\n| Provider | `webhooksReceive` | `webhookNormalization` | Notes |\n|----------|------------------|----------------------|-------|\n| SendGrid | **provider** | **enhanced** | Native Event Webhook with platform normalization |\n| Mailgun | **provider** | **enhanced** | Native webhooks with platform normalization |\n| Postmark | **provider** | **enhanced** | Native webhooks for delivery, bounce, and spam events |\n| SES | **provider** | **enhanced** | Event notifications via SNS (requires SNS topic configuration) |\n| SMTP | **unsupported** | **unsupported** | SMTP does not provide webhook callbacks |\n\n### How It Works\n\n- **Provider-level webhooks** (SendGrid, Mailgun, Postmark, SES): The email provider pushes event data (delivered, opened, clicked, bounced, etc.) to your configured webhook endpoint. This package receives those raw payloads, validates signatures, and passes them to the normalizer.\n\n- **Enhanced normalization** (SendGrid, Mailgun, Postmark, SES): Each provider sends events in its own format. This package normalizes all provider-specific payloads into a unified `EmailEvent` format with consistent event types, timestamps, and metadata. Provider-specific details are preserved in the normalized event's metadata.\n\n- **Unsupported** (SMTP): Plain SMTP does not provide any webhook or event callback mechanism. No delivery tracking, open tracking, or bounce notifications are available through SMTP alone.\n\n### Degradation Behavior\n\nWhen used with an unsupported provider (SMTP):\n\n- **Strategy**: No automatic fallback -- SMTP simply does not emit events\n- **Impact**: No delivery tracking, no bounce notifications, no open/click tracking\n- **Workaround**: SMTP users who need event tracking should either:\n  1. Use a provider that supports webhooks (SendGrid, Mailgun, Postmark, SES)\n  2. Set up an external webhook relay service that monitors the SMTP server's logs\n  3. Implement polling-based delivery verification using DSN (Delivery Status Notifications) if the SMTP server supports it\n\n### Override Options\n\nThe webhook receive capability is marked `overridable: true` for all providers with native support. This allows you to:\n\n- Replace the built-in normalizer for a specific provider with a custom implementation\n- Add custom event types beyond the standard normalized set\n- Route raw (unnormalized) events to a separate processing pipeline\n\n```typescript\nconst service = new EmailWebhookEventsService({\n  providers: [\n    {\n      provider: EmailProvider.SENDGRID,\n      enabled: true,\n      webhookUrl: '/webhooks/sendgrid',\n      secretKey: process.env.SENDGRID_WEBHOOK_SECRET!,\n      // Custom normalizer override\n      normalizer: myCustomSendGridNormalizer,\n    },\n  ],\n});\n```\n\n### SES-Specific Notes\n\nSES webhook support requires additional infrastructure setup:\n\n- An SNS topic must be configured to receive SES event notifications\n- An SNS subscription (HTTPS or Lambda) must forward events to this package's webhook endpoint\n- SES configuration sets must be created to route events to the SNS topic\n\nThis is reflected in the capability matrix as a limitation: `\"Requires SNS topic configuration\"`.\n\n## Integration Status\n\n- **Logger**: integrated - Uses MockLogger (pending @bernierllc/logger publication)\n- **Docs-Suite**: ready - TypeScript interfaces with JSDoc comments\n- **NeverHub**: required - Event publishing and service discovery (pending implementation)\n\n## Examples\n\nSee the `examples/` directory for complete usage examples:\n\n- `setup-sendgrid.ts` - SendGrid webhook setup\n- `setup-mailgun.ts` - Mailgun webhook setup\n- `query-analytics.ts` - Analytics query examples\n- `critical-events.ts` - Critical event handling\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n\nThis package is licensed to the client under a limited-use license. The client may use and modify this code only within the scope of the project it was delivered for. Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.\n\n## See Also\n\n- [@bernierllc/webhook-processor](../webhook-processor) - Generic webhook processing (pending)\n- [@bernierllc/email-sender](../../core/email-sender) - Email sending service\n- [@bernierllc/email-campaign-management](./email-campaign-management) - Campaign management (pending)\n","readmeFilename":"README.md"}