{"_id":"@airnauts/airside-extension-email","_rev":"7-3db57328e751292cc34fb12251aaadd8","name":"@airnauts/airside-extension-email","dist-tags":{"latest":"0.10.1"},"versions":{"0.8.0":{"name":"@airnauts/airside-extension-email","version":"0.8.0","keywords":["comments","commenting","annotations","feedback","airnauts","notifications","email","smtp","resend"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-extension-email@0.8.0","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"ca84631951e19b8c4fa5f72f110e718b19941846","tarball":"https://registry.npmjs.org/@airnauts/airside-extension-email/-/airside-extension-email-0.8.0.tgz","fileCount":17,"integrity":"sha512-g7mfE4XKUfQvwOPi7iyyL4zrS4kXbjtdrbZqrLv70DgcF04OMl6qW7+Wk0HBL3Y3tArXnQHbyhyyEyoXAgNg5g==","signatures":[{"sig":"MEYCIQCvcY/n9hamDrJq9VcVSn33AwGNulSqnVWLCEig6/hv2wIhAOyUzJNXmJ8v7UgKpFa4qtXuPgdTjzgHuRJluKpJgIcn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26424},"type":"module","_from":"file:airnauts-airside-extension-email-0.8.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./smtp":{"types":"./dist/smtp.d.ts","import":"./dist/smtp.js"},"./resend":{"types":"./dist/resend.d.ts","import":"./dist/resend.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/f2ad715a9ba0afa821bb433672cd6bac/airnauts-airside-extension-email-0.8.0.tgz","_integrity":"sha512-g7mfE4XKUfQvwOPi7iyyL4zrS4kXbjtdrbZqrLv70DgcF04OMl6qW7+Wk0HBL3Y3tArXnQHbyhyyEyoXAgNg5g==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/notifier-email"},"_npmVersion":"10.9.8","description":"Email notifier (SMTP + Resend) for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.8.0","@airnauts/airside-server":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemailer":"^6.9.0","@types/nodemailer":"^6.4.0","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"nodemailer":">=6"},"peerDependenciesMeta":{"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-extension-email_0.8.0_1781601750600_0.859552551687214","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@airnauts/airside-extension-email","version":"0.8.1","keywords":["comments","commenting","annotations","feedback","airnauts","notifications","email","smtp","resend"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-extension-email@0.8.1","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"ae1e70f0142f0b192446c0fac3f29cf1a65e4d3a","tarball":"https://registry.npmjs.org/@airnauts/airside-extension-email/-/airside-extension-email-0.8.1.tgz","fileCount":17,"integrity":"sha512-tqaD/UWklaQyjXOJGvHvyZOqTE1I48AhcYJ70wVFeC4GDyMC6ohi+UD84e6d+WQRyv+7nwx23ocQ9aZqhUVXgw==","signatures":[{"sig":"MEUCIQDNWXXJKaOpJdyls12dwPzzV36OpnYjJRB2ePV6uDinAwIgeBbN7cI8IMyLf/wZnNjyJmu9rwXvdBTp/D8n4xTsqAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26865},"type":"module","_from":"file:airnauts-airside-extension-email-0.8.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./smtp":{"types":"./dist/smtp.d.ts","import":"./dist/smtp.js"},"./resend":{"types":"./dist/resend.d.ts","import":"./dist/resend.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/1056c19481337993760d2f47de91028e/airnauts-airside-extension-email-0.8.1.tgz","_integrity":"sha512-tqaD/UWklaQyjXOJGvHvyZOqTE1I48AhcYJ70wVFeC4GDyMC6ohi+UD84e6d+WQRyv+7nwx23ocQ9aZqhUVXgw==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/notifier-email"},"_npmVersion":"10.9.8","description":"Email notifier (SMTP + Resend) for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.8.1","@airnauts/airside-server":"^0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemailer":"^6.9.0","@types/nodemailer":"^6.4.0","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"nodemailer":">=6"},"peerDependenciesMeta":{"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-extension-email_0.8.1_1781606536083_0.2801384915015779","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@airnauts/airside-extension-email","version":"0.8.2","keywords":["comments","commenting","annotations","feedback","airnauts","notifications","email","smtp","resend"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-extension-email@0.8.2","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"7f0bf9e5e2830c8f87a19b27b1ab4ac865b6860e","tarball":"https://registry.npmjs.org/@airnauts/airside-extension-email/-/airside-extension-email-0.8.2.tgz","fileCount":17,"integrity":"sha512-DwB0P5FKG/vJTQvPtXHEZMSjaaLzLR6Qauis4Gt+jBORyAInkmk7QJCEYGC+bAZyrjXrG05JaOknWVxs4Q1XRg==","signatures":[{"sig":"MEUCIQD3Azr48fmlS2WCdi1151M4MOMCqa5pOCXUQ8tnKCJK4wIgDgalDS8j50ubWdlDmrnn8c5BLE3HNRdEH8UvLXQTI0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26865},"type":"module","_from":"file:airnauts-airside-extension-email-0.8.2.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./smtp":{"types":"./dist/smtp.d.ts","import":"./dist/smtp.js"},"./resend":{"types":"./dist/resend.d.ts","import":"./dist/resend.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/d6981f72c1c6f9351210073b4cf03aa7/airnauts-airside-extension-email-0.8.2.tgz","_integrity":"sha512-DwB0P5FKG/vJTQvPtXHEZMSjaaLzLR6Qauis4Gt+jBORyAInkmk7QJCEYGC+bAZyrjXrG05JaOknWVxs4Q1XRg==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/notifier-email"},"_npmVersion":"10.9.8","description":"Email notifier (SMTP + Resend) for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.8.2","@airnauts/airside-server":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemailer":"^6.9.0","@types/nodemailer":"^6.4.0","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"nodemailer":">=6"},"peerDependenciesMeta":{"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-extension-email_0.8.2_1781610336472_0.15209143870189235","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@airnauts/airside-extension-email","version":"0.9.0","keywords":["comments","commenting","annotations","feedback","airnauts","notifications","email","smtp","resend"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-extension-email@0.9.0","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"460ba6436b7c0d141321bf221b458b5870ae698f","tarball":"https://registry.npmjs.org/@airnauts/airside-extension-email/-/airside-extension-email-0.9.0.tgz","fileCount":17,"integrity":"sha512-JcgI+Dd9sTS0heAMSfghA0ZdubZ9+N2eL1jMIyP+tOUdYTwLLrsFYj4girt5SB9XRQrMZfbqM4/RRHZSbntZUA==","signatures":[{"sig":"MEQCIFS3+eMH9uvwrCd4ExNzD78+1ukHZSK08yeHVopuQ/t8AiBH1Z0q0JuIpSnH5nY9zCYlPfxVJeOGMe0ijLRWaLs6Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26865},"type":"module","_from":"file:airnauts-airside-extension-email-0.9.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./smtp":{"types":"./dist/smtp.d.ts","import":"./dist/smtp.js"},"./resend":{"types":"./dist/resend.d.ts","import":"./dist/resend.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/1cd8e01d1576d30f62f2fc5fb7fd8fa8/airnauts-airside-extension-email-0.9.0.tgz","_integrity":"sha512-JcgI+Dd9sTS0heAMSfghA0ZdubZ9+N2eL1jMIyP+tOUdYTwLLrsFYj4girt5SB9XRQrMZfbqM4/RRHZSbntZUA==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/notifier-email"},"_npmVersion":"10.9.8","description":"Email notifier (SMTP + Resend) for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.9.0","@airnauts/airside-server":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemailer":"^6.9.0","@types/nodemailer":"^6.4.0","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"nodemailer":">=6"},"peerDependenciesMeta":{"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-extension-email_0.9.0_1781622015593_0.3595545397863076","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@airnauts/airside-extension-email","version":"0.9.1","keywords":["comments","commenting","annotations","feedback","airnauts","notifications","email","smtp","resend"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-extension-email@0.9.1","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"37dab343c314a4eae9a117543a92cd939d355c21","tarball":"https://registry.npmjs.org/@airnauts/airside-extension-email/-/airside-extension-email-0.9.1.tgz","fileCount":17,"integrity":"sha512-CAzeEbkAIjkst35L7Bv/9wNTk6iswc10l1JyTR9oc7AsBhBHQNEneMCXWWCwgyqPTDUXRMewjvxjyzgybiu7qQ==","signatures":[{"sig":"MEYCIQClTYj0fBDf6E5nlm68XCm+yGkJo7egTrWit+Uj2KMT+QIhAJB23qZkYHTS5YcFg9tAtxtfu2P2+oB4f9Mx3P1P4Jei","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26865},"type":"module","_from":"file:airnauts-airside-extension-email-0.9.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./smtp":{"types":"./dist/smtp.d.ts","import":"./dist/smtp.js"},"./resend":{"types":"./dist/resend.d.ts","import":"./dist/resend.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/cf6e7a7d496ae2844bea6c4705156763/airnauts-airside-extension-email-0.9.1.tgz","_integrity":"sha512-CAzeEbkAIjkst35L7Bv/9wNTk6iswc10l1JyTR9oc7AsBhBHQNEneMCXWWCwgyqPTDUXRMewjvxjyzgybiu7qQ==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/notifier-email"},"_npmVersion":"10.9.8","description":"Email notifier (SMTP + Resend) for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.9.1","@airnauts/airside-server":"^0.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemailer":"^6.9.0","@types/nodemailer":"^6.4.0","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"nodemailer":">=6"},"peerDependenciesMeta":{"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-extension-email_0.9.1_1781770413984_0.42519379212591324","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@airnauts/airside-extension-email","version":"0.10.0","keywords":["comments","commenting","annotations","feedback","airnauts","notifications","email","smtp","resend"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-extension-email@0.10.0","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"78e714431e6560d2f118d110909d3ce94f2cce44","tarball":"https://registry.npmjs.org/@airnauts/airside-extension-email/-/airside-extension-email-0.10.0.tgz","fileCount":17,"integrity":"sha512-bIAuTPYaSOU1tUlXrxz30hrMwsZxTvMiDiETR72ZAOKRs4Yxhfh/ieHMS1TOuZ//P1nThB2qjevOmMdlReZnSg==","signatures":[{"sig":"MEUCIHIFim135qVCS6jIGyrcICCe+pYPTPHDjviHZ7gmFPb+AiEAlCwgJ8kBFYlcPwtzMnMJxIV87og1KJsu1YYcP+pYVoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26868},"type":"module","_from":"file:airnauts-airside-extension-email-0.10.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./smtp":{"types":"./dist/smtp.d.ts","import":"./dist/smtp.js"},"./resend":{"types":"./dist/resend.d.ts","import":"./dist/resend.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/fc769d682704a060f2a4209d55d589a1/airnauts-airside-extension-email-0.10.0.tgz","_integrity":"sha512-bIAuTPYaSOU1tUlXrxz30hrMwsZxTvMiDiETR72ZAOKRs4Yxhfh/ieHMS1TOuZ//P1nThB2qjevOmMdlReZnSg==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/notifier-email"},"_npmVersion":"10.9.8","description":"Email notifier (SMTP + Resend) for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"@airnauts/airside-core":"^0.10.0","@airnauts/airside-server":"^0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemailer":"^6.9.0","@types/nodemailer":"^6.4.0","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"nodemailer":">=6"},"peerDependenciesMeta":{"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-extension-email_0.10.0_1782730555465_0.06082019037729447","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@airnauts/airside-extension-email","version":"0.10.1","description":"Email notifier (SMTP + Resend) for the Airnauts commenting tool server.","keywords":["comments","commenting","annotations","feedback","airnauts","notifications","email","smtp","resend"],"license":"MIT","author":{"name":"Airnauts"},"homepage":"https://github.com/Airnauts/airside#readme","repository":{"type":"git","url":"git+https://github.com/Airnauts/airside.git","directory":"packages/notifier-email"},"bugs":{"url":"https://github.com/Airnauts/airside/issues"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./smtp":{"types":"./dist/smtp.d.ts","import":"./dist/smtp.js"},"./resend":{"types":"./dist/resend.d.ts","import":"./dist/resend.js"}},"publishConfig":{"access":"public"},"dependencies":{"@airnauts/airside-core":"^0.10.1","@airnauts/airside-server":"^0.10.1"},"peerDependencies":{"nodemailer":">=6"},"peerDependenciesMeta":{"nodemailer":{"optional":true}},"devDependencies":{"@types/nodemailer":"^6.4.0","nodemailer":"^6.9.0","@airnauts/airside-test-support":"0.0.0"},"scripts":{"build":"tsup && tsc --build --force","typecheck":"tsc --build","test":"vitest run"},"_id":"@airnauts/airside-extension-email@0.10.1","_integrity":"sha512-1JW6cAHfzHZjx3yWiFGvYUkprGsOC8nhtKA4hGz5ul+TLrAUY/nZdwiCBBrIv2SPFaapSMTdmrl3pBI7DmG4kw==","_resolved":"/tmp/73382ee0f4143f7ee4935ab8ee609014/airnauts-airside-extension-email-0.10.1.tgz","_from":"file:airnauts-airside-extension-email-0.10.1.tgz","_nodeVersion":"22.23.0","_npmVersion":"10.9.8","dist":{"integrity":"sha512-1JW6cAHfzHZjx3yWiFGvYUkprGsOC8nhtKA4hGz5ul+TLrAUY/nZdwiCBBrIv2SPFaapSMTdmrl3pBI7DmG4kw==","shasum":"11a4d0761de0de0f7dbfffc33cc8edecab12711d","tarball":"https://registry.npmjs.org/@airnauts/airside-extension-email/-/airside-extension-email-0.10.1.tgz","fileCount":17,"unpackedSize":26868,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDn0uoI57fb9fBaVVlIHcNW/ISomTk04fMLXinVQhzvrgIgIT6EkS/nc3jwO1LbdJlLxTzpXsadCVLV09PLZpe94sA="}]},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"directories":{},"maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/airside-extension-email_0.10.1_1782737641751_0.08559641310548916"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-16T09:22:30.411Z","modified":"2026-06-29T12:54:02.048Z","0.8.0":"2026-06-16T09:22:30.748Z","0.8.1":"2026-06-16T10:42:16.214Z","0.8.2":"2026-06-16T11:45:36.597Z","0.9.0":"2026-06-16T15:00:15.709Z","0.9.1":"2026-06-18T08:13:34.117Z","0.10.0":"2026-06-29T10:55:55.623Z","0.10.1":"2026-06-29T12:54:01.894Z"},"bugs":{"url":"https://github.com/Airnauts/airside/issues"},"author":{"name":"Airnauts"},"license":"MIT","homepage":"https://github.com/Airnauts/airside#readme","keywords":["comments","commenting","annotations","feedback","airnauts","notifications","email","smtp","resend"],"repository":{"type":"git","url":"git+https://github.com/Airnauts/airside.git","directory":"packages/notifier-email"},"description":"Email notifier (SMTP + Resend) for the Airnauts commenting tool server.","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"readme":"<p align=\"center\">\n  <a href=\"https://github.com/Airnauts/airside\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/Airnauts/airside/main/assets/airside-logo-dark.svg\">\n      <img src=\"https://raw.githubusercontent.com/Airnauts/airside/main/assets/airside-logo-light.svg\" alt=\"Airside\" height=\"40\">\n    </picture>\n  </a>\n  <h1 align=\"center\">\nEmbeddable Commenting Tool\n</h1>\n</p>\n\n# @airnauts/airside-extension-email\n\nEmail notification extension for the [Airside](https://github.com/Airnauts/airside) server. Emails the existing thread participants whenever someone replies — so reviewers are notified without a dedicated notification inbox.\n\n## Installation\n\n```bash\npnpm add @airnauts/airside-extension-email\n# For SMTP transport only — not needed for the Resend transport:\npnpm add nodemailer\n```\n\n## Who gets notified\n\nRecipients are derived per event from the thread itself. On a reply (`comment.added`) the email goes to every other person who has commented, **excluding the reply author** (you are never emailed about your own comment). A brand-new thread (`thread.created`) has no other participants yet, so no email is sent. With more than one recipient, addresses go in `bcc` so participants do not see each other's emails.\n\n## Quick start\n\n### Resend (recommended for serverless / edge)\n\n```ts\nimport { createAirsideServer } from '@airnauts/airside-server'\nimport { emailExtension } from '@airnauts/airside-extension-email'\nimport { resendTransport } from '@airnauts/airside-extension-email/resend'\n\ncreateAirsideServer({\n  repository,\n  storage,\n  secretKey: process.env.AIRSIDE_SECRET!,\n  projectId: 'my-app',\n  allowedOrigins: ['https://my-app.example.com'],\n  extensions: emailExtension({\n    transport: resendTransport({ apiKey: process.env.RESEND_API_KEY! }),\n    from: 'Airside <noreply@acme.com>',\n  }),\n})\n```\n\n### SMTP (Node server)\n\n```ts\nimport { emailExtension } from '@airnauts/airside-extension-email'\nimport { smtpTransport } from '@airnauts/airside-extension-email/smtp'\n\nextensions: emailExtension({\n  transport: smtpTransport({\n    host: 'smtp.example.com',\n    port: 587,\n    auth: { user: process.env.SMTP_USER!, pass: process.env.SMTP_PASS! },\n  }),\n  from: 'noreply@acme.com',\n  replyTo: 'support@acme.com',\n  subjectPrefix: '[Acme] ',\n})\n```\n\n## API reference\n\n### `emailExtension(opts)` (main entry)\n\n```ts\nemailExtension({\n  transport: EmailTransport   // Delivery backend (required)\n  from: string                // Verified sender address (required)\n  replyTo?: string            // Reply-To header\n  subjectPrefix?: string      // Prepended to every subject, e.g. \"[Acme] \"\n}): NotificationExtension[]\n```\n\nNotification failures are isolated — a hung or erroring transport never breaks the comment write.\n\n### `resendTransport(opts)` (`@airnauts/airside-extension-email/resend`)\n\n```ts\nresendTransport({\n  apiKey: string  // Resend API key (required)\n}): EmailTransport\n```\n\nUses the Resend HTTP API; safe on edge runtimes. The request is bounded by a 5-second timeout.\n\n### `smtpTransport(opts)` (`@airnauts/airside-extension-email/smtp`)\n\n```ts\nsmtpTransport({\n  host: string\n  port: number\n  auth: { user: string; pass: string }\n  secure?: boolean   // TLS on connect; default false (use for port 465)\n  pool?: boolean     // Reuse a connection pool across sends\n  timeout?: number   // Cap (ms) on connection/greeting/socket; default 10000\n}): EmailTransport\n```\n\nNode-only (uses `nodemailer`). Requires `nodemailer` to be installed separately. Not supported on edge runtimes.\n\n### `EmailTransport` interface\n\nImplement this to use any other email provider (SendGrid, SES, Postmark, …):\n\n```ts\ninterface EmailTransport {\n  readonly name: string\n  send(message: EmailMessage): Promise<void>\n}\n```\n\n### `formatEmail(event, opts?)`\n\n```ts\nimport { formatEmail } from '@airnauts/airside-extension-email'\n\nconst { subject, html, text } = formatEmail(event, { subjectPrefix: '[Acme] ' })\n```\n\nRenders a `NotificationEvent` into an email. Exported for testing or custom dispatch.\n\n### Types\n\n| Export | From | Description |\n|---|---|---|\n| `EmailExtensionOptions` | `.` | Options for `emailExtension` |\n| `EmailTransport` | `.` | Pluggable delivery backend interface |\n| `EmailMessage` | `.` | `{ to, bcc?, from, replyTo?, subject, html, text }` |\n| `EmailFormat` | `.` | `{ subject: string; html: string; text: string }` |\n| `FormatEmailOptions` | `.` | `{ subjectPrefix?: string }` |\n| `ResendTransportOptions` | `./resend` | Options for `resendTransport` |\n| `SmtpTransportOptions` | `./smtp` | Options for `smtpTransport` |\n\n## Peer dependencies & requirements\n\n| Peer | Required | Notes |\n|---|---|---|\n| `nodemailer` | Optional (≥6) | Only needed for `@airnauts/airside-extension-email/smtp` |\n\n- Node.js ≥ 18 for the Resend transport; Node.js ≥ 18 for SMTP (CJS, not edge-safe)\n\n## Related packages\n\n- **`@airnauts/airside-server`** — defines `NotificationExtension` and `NotificationEvent`\n- **`@airnauts/airside-extension-slack`** — Slack notification alternative\n- **`@airnauts/airside-extension-jira`** — Jira thread-action extension\n\n## License\n\nMIT © Airnauts\n","readmeFilename":"README.md"}