{"_id":"@b2y/email-service","_rev":"21-29161c3139c1ace513df323ee2e4eb9e","name":"@b2y/email-service","dist-tags":{"latest":"1.2.2"},"versions":{"1.0.0":{"name":"@b2y/email-service","version":"1.0.0","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.0","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"449ca2e895fc685c6f94539e3332f6861f76b156","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.0.tgz","fileCount":13,"integrity":"sha512-+EvGSAxN5iC4m5uECIAAlIgaBZ5JlBmEFAKXxmBm9/En32ILOIJGScDQDh2E8p4bKiZsL/urXK0mIt7cB+cB9A==","signatures":[{"sig":"MEQCIEPflavgVfwURs0JA/vnMGpxFtQcfzyHLk8TgGqhtXVdAiBjg9qhvKcfQWp2NH1cHNl6oxYr7GDV9EUDTwrhYwJBYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11867},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodemailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"4a65ed0e5a77e8f760cc6103bfd34bebd2b46554","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^16.5.0","log4js":"^6.9.1","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.0_1745576984890_0.6932618971791544","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@b2y/email-service","version":"1.0.1","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.1","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"65d9663efb2d2637f3a70e5c2ae2cbec2ad369ba","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.1.tgz","fileCount":13,"integrity":"sha512-HPpPKGxFE4C87X1M5srI7m8GPXp2PINwsk3czYZ7O1abJBmTyKlS3Ky0Nj33XDZzijmus76K1URa0DlQcKwAEA==","signatures":[{"sig":"MEQCIHOaEe6bz0UuF8S9gI9HDoF4EQvJ+28j9OewxOpXkFOwAiAtpoKgbNFglVmJiK7nhelmlNcXybxomxM+/PZkOshqkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11867},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodemailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"4a65ed0e5a77e8f760cc6103bfd34bebd2b46554","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^16.5.0","log4js":"^6.9.1","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.1_1745577408323_0.6194649861515709","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@b2y/email-service","version":"1.0.2","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.2","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"449ce51e803d0a9c49fa65aa45b6297c3fbdd595","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.2.tgz","fileCount":13,"integrity":"sha512-zmVsJ76Ba+7ndNaQfSS9j/qnCNw2s/MG6rWC2zbfhDxFpeaPAbMZ8e5CGnWv5ciTvqBALZwHPqBcnfxySROLog==","signatures":[{"sig":"MEUCIQCuUif77vu2FOadWwIUX3z4C88qXqRMcmTCOjgtGh29DAIgdGdMO3+Qc6h5KRvFhyT7d6uHa60sU2ev+yItiddVec4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11869},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendgridProvider.js","./providers/nodemailer":"./providers/NodemailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"b3016c269c745da3b1cbe774c9209b7b7fde1281","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^16.5.0","log4js":"^6.9.1","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.2_1745668294617_0.3964843665449076","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@b2y/email-service","version":"1.0.3","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.3","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"9bb1ddb7a6a1da0f8b9a6cb41b67dd950a691f92","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.3.tgz","fileCount":11,"integrity":"sha512-uN2+lkseRMTZPZBnCCQFg6A0LhcsmXQD8MGIwU5gUnVWrEcfJ3kEPzrqszJpYH1L49VRVA/4QAHJEOWYdSFZKg==","signatures":[{"sig":"MEYCIQDpOGw7QcncJIc6RxvWvOyHWe3A7fsuoA5z5HLas/q3BwIhAPdWvM/SE6MDav82mxNXdpSwxBJx3EEcNl8wkrtVJ0xx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18079},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"acf853295ba389af3f35351d536979026442509a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"23.4.0","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.3_1767181724974_0.6630947448545004","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@b2y/email-service","version":"1.0.4","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.4","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"00dc8f950b327b084df28f56b4b552d0cc27dc32","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.4.tgz","fileCount":12,"integrity":"sha512-uaq0J3VCwS4MEyPHeSY1mdgsQo+Vf7aJXYndAfBWv7jb11kitZfSs5tTIN9tqpCwffqa8lPXuSggYHB1aZMJ5Q==","signatures":[{"sig":"MEUCIQDhLi3cucjXfNBw22gIe31fJ+Y+qhXU2ftX0K3RDt2bDAIgXcHmSDY4o1yKB1ZS+30GJQaWZ2kIHlFxxiVvy/7F20A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19871},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"b1e9ea2c559f35e78e1fafead7465b6c126d29b4","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"23.4.0","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.4_1767338151493_0.9863452960672494","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@b2y/email-service","version":"1.0.5","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.5","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"57d37f7377b229b2aac82b4cf04505c14a15a58d","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.5.tgz","fileCount":15,"integrity":"sha512-3vpnhbmSAbv8ayVNvj/rgDyFu6vgY51RQbUDYDIHUm+sLnsZg3EWXXClmBcTNnYMhEyBk99ByZOw2mm1icKc0A==","signatures":[{"sig":"MEUCIQD/QuovfDlmuxBfAp81IwQVe+AtBPpD9LjHA5kXtOyUXAIgNg7doDDlzDx0AvEbfgtutyM64fLfdDaGmVa2dwyvL20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21609},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"5587d9b3801a21a2a3de2d8afdbc4f0bfa231427","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"23.4.0","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.5_1767338874335_0.6429400243575281","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@b2y/email-service","version":"1.0.6","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.6","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"2677ac43433ae7a76e5089a3b297755760d9043d","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.6.tgz","fileCount":16,"integrity":"sha512-5215FIz58LML6kcCESnYjoKzc2vDoa+08yicM/Q6eVfCxB5mpHX+mPSXHypn7YlHQbA+n6tgy54lvV0T92qJ0A==","signatures":[{"sig":"MEQCIGAxR2coLT9avDl1EAVbO0c3QliI3P/bnzqgAVAipRoLAiACePcAdl0BHLNECjcMy5ZvOYXkefNSpVG3N/EFvVBUmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24566},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"5587d9b3801a21a2a3de2d8afdbc4f0bfa231427","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"23.4.0","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.6_1767339112528_0.3193100404746758","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@b2y/email-service","version":"1.0.7","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.7","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"c03275ce738df2f70c2e5f7f8aeb27c1004d0d72","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.7.tgz","fileCount":16,"integrity":"sha512-hPeE/ZzFg9zcYM1wk79yPsd0cYx4a/jX82gAYwRFs7PHyKLeJAfBIQYduisknjok0rDhQ2qxN+9T3ujv2S6mgw==","signatures":[{"sig":"MEQCIGBmFE9oaTJq3tRxRfXkxeHU1/ww295HkJLHEc5jQkVaAiAe4LG7M0eSB9UIU1UNRVI2qMh5kdC2VtlwAX/NNdUpIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24566},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"14b16ebc1be12f74e779be3495f870c573b9b3f9","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"23.4.0","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.7_1767348338007_0.13252405902135633","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@b2y/email-service","version":"1.0.8","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.8","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"320e4d6d3254bea09be0c1243116aa0a63b224f8","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.8.tgz","fileCount":16,"integrity":"sha512-9bMyytrRlsRdbYNKFF5FWcqZP7azYlOrD2bYMrYA+rGI/Bznv5KY3ixxIIhkeN9oKOb93AFqoMULD94Dv/wTTA==","signatures":[{"sig":"MEUCIEBRCw6YsNwh6C2pU9G2HxxdYG+lKcCcsaK1mN9oQ7NIAiEAru/Ni0gfttRJR/0WgYiRgfUoyFvh3zyv5OUsZUmJvMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24531},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"e2204ebbf126540e84a9a5db05c935322b72c2b8","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"23.4.0","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.8_1767444640981_0.1606894314945715","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@b2y/email-service","version":"1.0.9","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.0.9","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"c84fb4cc8feb6bcf70d8bf2d96cdef2bfd182a65","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.0.9.tgz","fileCount":16,"integrity":"sha512-Kuc2QGvdY3j9o7ivQOIf4Mbzx5P8No9eyRwAqyMoPQuLmZEQyxCM+Dhpt5VQDqXSL7WASmP0isdEIVJL2UStNA==","signatures":[{"sig":"MEQCIEJndXKrCLxtgQHazWgtKkwCRseL1KYqGdW4HvypUv9rAiACDOL6YrlLw9cmRsNyABcf5lKXRc+B0qv1XKmYgwSFZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24522},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"cfe72f1507bb378f5eb29a176a24c9e4524495d7","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"10.9.2","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"23.4.0","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.0.9_1767445586680_0.5122318078760688","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@b2y/email-service","version":"1.1.0","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.1.0","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"164509a450a2faa52073b4cc89252d7febd34c45","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.1.0.tgz","fileCount":16,"integrity":"sha512-ijYnVvJaPQ23qr9JQV2vATgisZw2Xb19j8Omynioy+3rg8Nseu7R+LyLP920/lKtsPUY6qBeVqtQUok2xj6RcA==","signatures":[{"sig":"MEYCIQCH19px679xjVVFhjeckBi3SwQh0o9RPST3j1sTK+R6qQIhAJHeItlhURGv57LGW5/Dh4WSzLAix8Vg+0xQ/nvuo5jc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26029},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"a4b43162964e8ac69fcd3ab832eefe790295ba4a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"11.4.0","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.1.0_1768199018571_0.7006249138679672","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@b2y/email-service","version":"1.2.0","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.2.0","maintainers":[{"name":"b2y","email":"yuva.b2y@gmail.com"}],"dist":{"shasum":"9ca6f8f1d9d628ce7521225fc8f7098d70ef892c","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.2.0.tgz","fileCount":18,"integrity":"sha512-vtmTWcJ7cOQR+BU5RM+K90t1HWZqwXDma8LbDLFmUaMoXgOe3yK19PzDWEAuM5c174Tbd/ZrZafKXQ1nILTQ4A==","signatures":[{"sig":"MEUCIQDtp3p44mkKW0P3a7eYEx5awBfifMWCLyggDYrFj6ZChwIgdejqRaTBRZ6TG9ffOLB79ltPP/errGUr4kErBYQyuAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29288},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"3b9452fc24739773663fa3453c1b2f1ea168278d","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"b2y","email":"yuva.b2y@gmail.com"},"_npmVersion":"11.4.0","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","form-data":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","mailgun.js":"^12.7.0","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.2.0_1770812504098_0.41245108034460976","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@b2y/email-service","version":"1.2.1","keywords":["email","templates","nodemailer","sendgrid"],"author":"","license":"ISC","_id":"@b2y/email-service@1.2.1","maintainers":[{"name":"b2yinfy","email":"yuva.b2y@gmail.com"},{"name":"shikha96","email":"shikha.m@b2yinfy.com"},{"name":"yuvakrishna.k","email":"yuvakrishna.k@b2yinfy.com"},{"name":"archana.b","email":"archana.b@b2yinfy.com"},{"name":"prabhati.b","email":"prabhati.b@b2yinfy.com"}],"dist":{"shasum":"154504fd17e306c4ef7650b9aa37f3ac63edaf72","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.2.1.tgz","fileCount":18,"integrity":"sha512-FjDpwsXnIhxOArUewvxUCrtaPjX5H6UiNZuilbKGA1hHbBHY1Txhd1BibSZr/mWOOkj9e0pIqf1rJXlSGlzaCg==","signatures":[{"sig":"MEUCIQC0zokED8aTjGokJRj8dR1oy5nOVFdLRIra6WYIU7S54QIgSy+egHDyrg6t39TJBzCW/VbbHcL6andaDcaNB9D7ZVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28348},"main":"index.js","exports":{".":"./index.js","./providers":"./providers/index.js","./EmailService":"./service/EmailService.js","./providers/base":"./providers/BaseProvider.js","./providers/sendgrid":"./providers/SendGridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js"},"gitHead":"aa4bf9bad053474f2e62d3e460192ac6a9518405","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"_npmUser":{"name":"prabhati.b","email":"prabhati.b@b2yinfy.com"},"_npmVersion":"11.6.3","description":"A flexible email service with support for multiple providers and custom templates","directories":{},"_nodeVersion":"24.11.1","dependencies":{"pg":"^8.16.3","dotenv":"^16.5.0","log4js":"^6.9.1","postmark":"^4.0.5","form-data":"^4.0.5","pg-hstore":"^2.3.4","sequelize":"^6.37.7","b2y-logger":"^1.1.0","handlebars":"^4.7.8","mailgun.js":"^12.7.0","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/email-service_1.2.1_1784002020307_0.7670583341497865","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"_id":"@b2y/email-service@1.2.2","dist":{"shasum":"398347fdaffba98c5799c6ee334f44223b0b2afc","tarball":"https://registry.npmjs.org/@b2y/email-service/-/email-service-1.2.2.tgz","fileCount":19,"integrity":"sha512-oziYPD6VYK16lDKrCBjjSlE8MabyyZZ94cSMaZJhnNxcrFT7G3E1pIkR1M3tIGihjUCdSovlAZzFgJSyVPRW5w==","signatures":[{"sig":"MEUCIEBZ2EoxXvF52b0Y5vZQzC1ukY1ir66rryd/CFTCCwF5AiEAzKfDoR9eYes0o4ayR5O8HvoG/OAAsmc2caIfd9lJlVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAy5oWIQJQkH/5ZM/028vWuUQM1fuDeXA+Sl7DBXE0Q2AiEAvN8kO3zcIFJOdAzcGTU6HNtIxXThjw0camycq7BVENs="}],"unpackedSize":38190},"main":"index.js","name":"@b2y/email-service","author":"","exports":{".":"./index.js","./EmailService":"./service/EmailService.js","./providers/ses":"./providers/AmazonSESProvider.js","./enum/MediaType":"./enum/MediaType.js","./providers/base":"./providers/BaseProvider.js","./providers/mailgun":"./providers/MailgunProvider.js","./providers/postmark":"./providers/PostmarkProvider.js","./providers/sendgrid":"./providers/SendgridProvider.js","./providers/nodemailer":"./providers/NodeMailerProvider.js","./utils/templateEngine":"./utils/TemplateEngine.js","./enum/NotificationType":"./enum/NotificationType.js","./enum/TemplateCategory":"./enum/TemplateCategory.js","./model/NotificationTemplate":"./model/NotificationTemplate.js"},"gitHead":"569d47aefd7d3a0579809b63576f63e3ef6ce416","license":"ISC","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node test.js"},"version":"1.2.2","_npmUser":{"name":"prabhati.b","email":"prabhati.b@b2yinfy.com"},"keywords":["email","sms","whatsapp","push","notification","templates","nodemailer","sendgrid"],"_npmVersion":"11.6.3","description":"A flexible, channel-agnostic notification delivery library. Ships a shared, versioned NotificationTemplate model, NotificationType/MediaType/TemplateCategory enums, and a Handlebars template engine that any notification channel (email, sms, whatsapp, push","directories":{},"maintainers":[{"name":"b2yinfy","email":"yuva.b2y@gmail.com"},{"name":"shikha96","email":"shikha.m@b2yinfy.com"},{"name":"yuvakrishna.k","email":"yuvakrishna.k@b2yinfy.com"},{"name":"archana.b","email":"archana.b@b2yinfy.com"},{"name":"sanjayhn","email":"sanjay.h@b2yinfy.com"},{"name":"prabhati.b","email":"prabhati.b@b2yinfy.com"}],"_nodeVersion":"24.11.1","dependencies":{"postmark":"^4.0.5","form-data":"^4.0.5","b2y-logger":"^1.1.0","handlebars":"^4.7.8","mailgun.js":"^12.7.0","nodemailer":"^6.10.0","@sendgrid/mail":"^8.1.5","@aws-sdk/client-ses":"^3.957.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"sequelize":"^6.37.7"},"peerDependencies":{"sequelize":"^6.0.0"},"peerDependenciesMeta":{"sequelize":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/email-service_1.2.2_1788338967162_0.10147417125956526"}}},"time":{"created":"2025-04-25T10:29:44.781Z","modified":"2026-09-02T08:49:27.406Z","1.0.0":"2025-04-25T10:29:45.107Z","1.0.1":"2025-04-25T10:36:48.495Z","1.0.2":"2025-04-26T11:51:34.810Z","1.0.3":"2025-12-31T11:48:45.120Z","1.0.4":"2026-01-02T07:15:51.642Z","1.0.5":"2026-01-02T07:27:54.476Z","1.0.6":"2026-01-02T07:31:52.678Z","1.0.7":"2026-01-02T10:05:38.150Z","1.0.8":"2026-01-03T12:50:41.117Z","1.0.9":"2026-01-03T13:06:26.827Z","1.1.9":"2026-01-12T05:31:45.783Z","1.1.0":"2026-01-12T06:23:38.706Z","1.2.0":"2026-02-11T12:21:44.254Z","1.2.1":"2026-07-14T04:07:00.461Z","1.2.2":"2026-09-02T08:49:27.228Z"},"license":"ISC","keywords":["email","sms","whatsapp","push","notification","templates","nodemailer","sendgrid"],"description":"A flexible, channel-agnostic notification delivery library. Ships a shared, versioned NotificationTemplate model, NotificationType/MediaType/TemplateCategory enums, and a Handlebars template engine that any notification channel (email, sms, whatsapp, push","maintainers":[{"name":"b2yinfy","email":"yuva.b2y@gmail.com"},{"name":"shikha96","email":"shikha.m@b2yinfy.com"},{"name":"yuvakrishna.k","email":"yuvakrishna.k@b2yinfy.com"},{"name":"archana.b","email":"archana.b@b2yinfy.com"},{"name":"sanjayhn","email":"sanjay.h@b2yinfy.com"},{"name":"prabhati.b","email":"prabhati.b@b2yinfy.com"}],"readme":"# @b2y/email-service\n\nA reusable, channel-agnostic **notification** library. It is split into two layers:\n\n1. **Shared, channel-agnostic layer** - usable by *any* notification channel\n   (email, sms, whatsapp, push): the versioned `NotificationTemplate` model,\n   the `NotificationType` / `MediaType` / `TemplateCategory` enums, and the\n   Handlebars-based `TemplateEngine`.\n2. **Concrete EMAIL delivery layer** - `EmailService` plus five email\n   providers (Nodemailer, SendGrid, Postmark, Amazon SES, Mailgun).\n\nSibling packages such as `@b2y/sms-service` and `@b2y/whatsapp-service` are\nexpected to implement their own channel-specific delivery service (their own\n`SmsService`/`WhatsappService` + their own carrier providers), but should\nimport layer 1 from this package via its subpath exports instead of\nredefining their own template model/enums - see\n[\"Building another channel\"](#building-another-channel-sms--whatsapp--push)\nbelow. This keeps exactly one source of truth for the template schema,\nversioning rules, and rendering logic across every channel.\n\n## Features\n\n- Channel-agnostic `NotificationTemplate` model with real versioning\n  (`Version` + `IsActive`, enforced at the DB level with a partial unique\n  index so exactly one version is active per template/tenant/language/channel)\n- `NotificationType` (`EMAIL`, `SMS`, `PUSH`, `WHATSAPP`), `MediaType`, and\n  `TemplateCategory` enums, shared by every consumer instead of being\n  redefined per-service\n- Handlebars-based template rendering with placeholder substitution and a\n  language-fallback lookup, independent of which channel is sending\n- A concrete EMAIL implementation on top of that shared layer, with a common\n  interface across five providers - switch providers via config, not code\n- Zero `process.env` reads anywhere in the library - every value the library\n  needs (provider selection, credentials, from-address, etc.) is passed in\n  explicitly by the consuming application\n\n## Architecture note: no database connection, no environment binding\n\nThis package does **not** open a database connection and does **not** read\nenvironment variables. Both concerns belong to the consuming application:\n\n- **Database connection & template CRUD/tenant logic**: the application owns\n  its own `sequelize` instance, instantiates the shared model against it, and\n  is responsible for creating/versioning templates (see `NotificationTemplateModel`\n  below). This library only ever *reads* active templates.\n- **Environment / secrets**: the application reads its own `.env` (however it\n  already does that) and builds a plain `config` object, which it passes into\n  `createEmailService` / `getEmailService` / `createEmailProvider`. See\n  `.env.example` for the exact shape each provider expects on that object.\n\n## Installation\n\n```bash\nnpm install @b2y/email-service\n```\n\n`sequelize` is a **peer dependency** (see `package.json`) rather than a\nbundled dependency - install whichever version your application already\nuses, so there is only ever one `sequelize` instance in the dependency tree.\nIt is marked optional because a consumer that only needs the enums or the\nemail providers (no DB-backed templates) doesn't need it; importing the\npackage's root entrypoint (`require('@b2y/email-service')`), however, does\nload `model/NotificationTemplate.js`, so `sequelize` must be present whenever\nthe root entrypoint is used.\n\n## Usage\n\n```js\nconst { getEmailService, NotificationTemplateModel } = require('@b2y/email-service');\nconst { sequelize } = require('./ConnectionDB/Connect'); // the app's own connection\n\n// The application owns the model instance.\nconst NotificationTemplate = NotificationTemplateModel(sequelize);\n\n// The application owns config - built from its own env, however it likes.\nconst config = {\n  emailProvider: process.env.EMAIL_PROVIDER,   // nodemailer | sendgrid | postmark | amazonses | mailgun\n  fromEmail: process.env.FROM_EMAIL,\n  fromName: process.env.FROM_NAME,\n  defaultLanguage: process.env.DEFAULT_LANGUAGE,\n  // ...provider-specific fields, see .env.example\n};\n\nconst emailService = await getEmailService({\n  dbClient: { NotificationTemplate },\n  config\n});\n\nawait emailService.sendEmail({\n  tenantId: 1,\n  langCode: 'en',\n  templateName: 'WELCOME_EMAIL',\n  placeholders: { userName: 'Aarvi' },\n  recipients: { to: 'user@example.com' }\n});\n```\n\n`getEmailService` memoizes a singleton on first call - `dbClient`/`config`\nonly need to be supplied once per process. Use `createEmailService` directly\nif you need more than one independently-configured instance.\n\n## Building another channel (SMS / WhatsApp / Push)\n\nA sibling service does **not** need its own copy of the template model or\nenums. Import just the shared layer via this package's subpath exports,\nwhich avoids pulling in any email provider SDK:\n\n```js\nconst NotificationTemplateModel = require('@b2y/email-service/model/NotificationTemplate');\nconst TemplateEngine = require('@b2y/email-service/utils/templateEngine');\nconst { NotificationType } = require('@b2y/email-service/enum/NotificationType');\nconst { MediaType } = require('@b2y/email-service/enum/MediaType');\nconst { TemplateCategory } = require('@b2y/email-service/enum/TemplateCategory');\n\nconst NotificationTemplate = NotificationTemplateModel(sequelize);\nconst templateEngine = new TemplateEngine({ NotificationTemplate }, config);\n\nconst { subject, body } = await templateEngine.compileTemplate(\n  'ORDER_SHIPPED',\n  { orderId: '123' },\n  tenantId,\n  'en',\n  NotificationType.WHATSAPP // any NotificationType value works - the engine is channel-agnostic\n);\n```\n\nThe new service then implements its own delivery layer (e.g. `WhatsappService`\n+ a `BaseProvider`-style contract for its own carrier(s)), following the same\nconfig-injection pattern used here: no `process.env` reads inside the\nlibrary, the host application passes in a `config` object.\n\n## Breaking changes from 1.x\n\n- The library no longer reads `process.env` or its own `.env` file (the old\n  `Config.js` is removed). Every provider/service constructor now takes an\n  explicit `config` object - see \"Usage\" above and `.env.example` for the\n  field mapping.\n- `EmailTemplate` is replaced by the shared, versioned `NotificationTemplate`\n  model (adds `NotificationType`, `MediaType`, `TemplateCategory`, `IsActive`,\n  `Version`; removes `Styles`). See the consuming application's migration\n  scripts for the corresponding schema changes.\n- `sequelize` moved from a bundled dependency to a peer dependency - run\n  `npm install sequelize` in the consuming application if it doesn't already\n  have it.\n\n## License\n\nISC\n","readmeFilename":"README.md"}