{"_id":"@bernierllc/email-manager","_rev":"33-052529f18c2cbb6f5cfab921ce4e210a","name":"@bernierllc/email-manager","dist-tags":{"latest":"0.10.1"},"versions":{"0.1.1":{"name":"@bernierllc/email-manager","version":"0.1.1","keywords":["email","manager","service","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.1.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"6a1c5cdc6219487060fb1fef3e05081784ecb3fb","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.1.1.tgz","fileCount":35,"integrity":"sha512-g3xCbSm4OnzatSUP4U2EeUEcwNDKCIBHoFaTdqkWLrellWjZ1ByIpbVGmO7uZuWUAIrYtHIHrB8R+9nz1QZsrA==","signatures":[{"sig":"MEYCIQCJRTQRgOeYSm2EXCQvj9LjmYAsWHfHStaPwIfF3FTLQAIhAInKCR0AWLa742t+8dZ6/MHoRqD6MfQEw/F02d3jStri","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176827},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"72aff303e7e4fea039d73b61a864637dd5182238","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git"},"_npmVersion":"11.4.2","description":"Service layer for orchestrating email operations with template management, scheduling, and provider abstraction","directories":{},"_nodeVersion":"24.4.1","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","@bernierllc/magic-link":"^0.3.1","@bernierllc/email-sender":"^0.2.2","@bernierllc/template-engine":"^0.1.2"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.1.1_1755804818758_0.6574133782773828","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bernierllc/email-manager","version":"0.1.3","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.1.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"5e25c22b08f0a385a05f7b311854e4844382174b","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.1.3.tgz","fileCount":51,"integrity":"sha512-OeVw4xl5mSi0RvicOy/FIJ3DTUXVYISYMla9PA4do1pRm45OnYwrycHUYPz26O36LV48O0I+b7wtZ//oo41JtQ==","signatures":[{"sig":"MEUCIQDOo4142pF+3JI6qBhvpOMYdUjc9sgE/pLhNJt4PYj9RwIgMr2Ozgoj/Bx7u6E3DP5T7p1IqK25tzTnOgpmheSlsKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387228},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.1.3.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/b002df2b3f69b71dd7e6afaa256f5b98/bernierllc-email-manager-0.1.3.tgz","_integrity":"sha512-OeVw4xl5mSi0RvicOy/FIJ3DTUXVYISYMla9PA4do1pRm45OnYwrycHUYPz26O36LV48O0I+b7wtZ//oo41JtQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.7.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.0.3","@bernierllc/crypto-utils":"1.0.2","@bernierllc/email-parser":"0.1.1","@bernierllc/email-sender":"3.0.3","@bernierllc/file-handler":"0.2.1","@bernierllc/retry-policy":"0.1.6","@bernierllc/email-capture":"1.0.2","@bernierllc/email-service":"2.1.1","@bernierllc/email-validator":"1.0.3","@bernierllc/template-engine":"0.2.1","@bernierllc/neverhub-adapter":"0.1.2","@bernierllc/webhook-receiver":"1.0.1","@bernierllc/email-mitm-masking":"1.0.0","@bernierllc/inbound-email-parse":"1.0.1","@bernierllc/email-sender-manager":"1.0.2","@bernierllc/email-sendgrid-plugin":"1.1.0","@bernierllc/email-template-service":"1.0.0","@bernierllc/template-variable-registry":"1.0.1"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.1.3_1766087520076_0.09222389305298417","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bernierllc/email-manager","version":"0.1.4","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.1.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"8af308a9dbfbfce511a24b74acf429a0d5bc3656","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.1.4.tgz","fileCount":51,"integrity":"sha512-SBG7x5/OBLcVNEo2yY37Mfpioi8PBIvHxJaM3b/SRmT5UXh+HQ1xD2ENnGGYOeIEycW68i9lHhQbnnXsxQWvgQ==","signatures":[{"sig":"MEUCIHiKrp8VgHq4ighB/cmQq+9ZPFyQuz+BdSRCiT9tFLoQAiEAkI7xx/KSZY/AXoIqHcbgjFlh97LtwMeF0+e3Brg3IaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387228},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.1.4.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/45de85f06f0f42d6ce5d142319c16b80/bernierllc-email-manager-0.1.4.tgz","_integrity":"sha512-SBG7x5/OBLcVNEo2yY37Mfpioi8PBIvHxJaM3b/SRmT5UXh+HQ1xD2ENnGGYOeIEycW68i9lHhQbnnXsxQWvgQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.7.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.0.3","@bernierllc/crypto-utils":"1.0.3","@bernierllc/email-parser":"0.1.2","@bernierllc/email-sender":"3.0.4","@bernierllc/file-handler":"0.2.2","@bernierllc/retry-policy":"0.1.6","@bernierllc/email-capture":"1.0.2","@bernierllc/email-service":"2.1.2","@bernierllc/email-validator":"1.0.4","@bernierllc/template-engine":"0.2.1","@bernierllc/neverhub-adapter":"0.1.2","@bernierllc/webhook-receiver":"1.0.1","@bernierllc/email-mitm-masking":"1.0.1","@bernierllc/inbound-email-parse":"1.0.2","@bernierllc/email-sender-manager":"1.0.2","@bernierllc/email-sendgrid-plugin":"1.1.0","@bernierllc/email-template-service":"1.0.1","@bernierllc/template-variable-registry":"1.0.1"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.1.4_1766276774525_0.015798403714605946","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bernierllc/email-manager","version":"0.1.6","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.1.6","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"6c4dbf2fa3c4bbfab3123dc3fc5397dcdd053922","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.1.6.tgz","fileCount":51,"integrity":"sha512-53hY1ADm+o8yz9WBmOLVmYMAjIIGCXMFuuodDP2G8V0FLGaLme9pG8jkYzIX5z8Z2gfUL3L1bfhdxBy0MoUAgg==","signatures":[{"sig":"MEUCIG5iDhBRm0vhLXT0boB7cDqUPLJ+TmEf8B5sKlt197JSAiEA1bIeYBDvmIRxeBuDDNDJqhof7nr3F+4nNBCbmvpgzQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387228},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.1.6.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/90bacd8dbd3b8428650587e15089d6b8/bernierllc-email-manager-0.1.6.tgz","_integrity":"sha512-53hY1ADm+o8yz9WBmOLVmYMAjIIGCXMFuuodDP2G8V0FLGaLme9pG8jkYzIX5z8Z2gfUL3L1bfhdxBy0MoUAgg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.7.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.0.3","@bernierllc/crypto-utils":"1.0.4","@bernierllc/email-parser":"0.1.3","@bernierllc/email-sender":"3.0.5","@bernierllc/file-handler":"0.2.3","@bernierllc/retry-policy":"0.1.6","@bernierllc/email-capture":"1.0.2","@bernierllc/email-service":"2.1.4","@bernierllc/email-validator":"1.0.5","@bernierllc/template-engine":"0.2.1","@bernierllc/neverhub-adapter":"0.1.2","@bernierllc/webhook-receiver":"1.0.1","@bernierllc/email-mitm-masking":"1.0.3","@bernierllc/inbound-email-parse":"1.0.3","@bernierllc/email-sender-manager":"1.0.2","@bernierllc/email-sendgrid-plugin":"1.1.0","@bernierllc/email-template-service":"1.0.2","@bernierllc/template-variable-registry":"1.0.1"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.1.6_1766283551071_0.7108492541074825","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@bernierllc/email-manager","version":"0.1.7","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.1.7","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"9b0156abcc7b044ed0290216a0ef1db9c74ee1d4","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.1.7.tgz","fileCount":51,"integrity":"sha512-vY/w+KWWe0CHthAyl4MBXRnQs3bHHokqIIKzT/v2nXbARIRIe6hrXrKwYFI373MFejPtbR1r9p3gic7xF0Xs+w==","signatures":[{"sig":"MEUCICbUSIstuTkEIXpN3qLUF67iJ7nnZqTAa/e6Su3emW5NAiEAjA12ACEpNw/oCLXhOYVD+0iTWnwE3Vg3FKqIV4FwNt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387228},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.1.7.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/tmp/0760932678c6e1f4236ac9241c97f267/bernierllc-email-manager-0.1.7.tgz","_integrity":"sha512-vY/w+KWWe0CHthAyl4MBXRnQs3bHHokqIIKzT/v2nXbARIRIe6hrXrKwYFI373MFejPtbR1r9p3gic7xF0Xs+w==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.7.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.0.4","@bernierllc/crypto-utils":"1.0.4","@bernierllc/email-parser":"0.1.3","@bernierllc/email-sender":"3.0.5","@bernierllc/file-handler":"0.2.3","@bernierllc/retry-policy":"0.1.6","@bernierllc/email-capture":"1.0.2","@bernierllc/email-service":"2.1.5","@bernierllc/email-validator":"1.0.5","@bernierllc/template-engine":"0.2.1","@bernierllc/neverhub-adapter":"0.1.2","@bernierllc/webhook-receiver":"1.0.1","@bernierllc/email-mitm-masking":"1.0.4","@bernierllc/inbound-email-parse":"1.0.4","@bernierllc/email-sender-manager":"1.0.2","@bernierllc/email-sendgrid-plugin":"1.1.1","@bernierllc/email-template-service":"1.0.3","@bernierllc/template-variable-registry":"1.0.1"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.1.7_1766437898300_0.4925177366836049","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bernierllc/email-manager","version":"0.2.0","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.2.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"4df6e99241c738e96d4e9cce445def105c554097","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.2.0.tgz","fileCount":55,"integrity":"sha512-EZ7oTlS11AHPz40jkbC+y7aQVqUdZnkkfKRFj3eohhk9mAF6BWXE95fquNYIeOCvMA5tInMe2D7oQgeI11qCFg==","signatures":[{"sig":"MEQCIAazeRRUNU4NH/GLOAEfLnVEhokX2nIVCA94PCAresUZAiByHppaHWa7T36xQ5SYbxJjlZH1RBkY3vo6LpTI7GWWqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":411145},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.2.0.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/tmp/2a8ee9fc784506b85f47185e0b56e0ce/bernierllc-email-manager-0.2.0.tgz","_integrity":"sha512-EZ7oTlS11AHPz40jkbC+y7aQVqUdZnkkfKRFj3eohhk9mAF6BWXE95fquNYIeOCvMA5tInMe2D7oQgeI11qCFg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.7.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.1.0","@bernierllc/crypto-utils":"1.0.4","@bernierllc/email-parser":"0.1.3","@bernierllc/email-sender":"3.1.0","@bernierllc/file-handler":"0.2.3","@bernierllc/retry-policy":"0.1.6","@bernierllc/email-capture":"1.0.2","@bernierllc/email-service":"2.1.6","@bernierllc/email-validator":"1.0.5","@bernierllc/template-engine":"0.2.1","@bernierllc/neverhub-adapter":"0.1.2","@bernierllc/webhook-receiver":"1.0.1","@bernierllc/email-mitm-masking":"1.0.5","@bernierllc/inbound-email-parse":"1.0.5","@bernierllc/email-sender-manager":"1.0.2","@bernierllc/email-sendgrid-plugin":"1.1.2","@bernierllc/email-template-service":"1.0.4","@bernierllc/template-variable-registry":"1.0.1"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.2.0_1766608037213_0.7958057739184212","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/email-manager","version":"0.4.0","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"45068686c93de087bfdceaab86993576d2ec43f2","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.4.0.tgz","fileCount":55,"integrity":"sha512-WNRnMtdRXkvhLRfj9SzolGyp8aM++PeANLFR9zw2dYFz8ZCYXjd+4Y2To8FLBQtx8P6422wOH8LN6hmlL0Fvew==","signatures":[{"sig":"MEYCIQDv1I/tu+SiF+ege1EGBnQ3p05/WSVUtjUl1EgF052M8AIhAKdfWZhxVahhvhp7GL9mZSMLkj/V7qsh9WjmiFOJJp/5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":411203},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.3.0","@bernierllc/crypto-utils":"1.0.6","@bernierllc/email-parser":"0.3.0","@bernierllc/email-sender":"5.0.0","@bernierllc/file-handler":"0.4.0","@bernierllc/retry-policy":"0.3.0","@bernierllc/email-capture":"1.0.3","@bernierllc/email-service":"4.0.0","@bernierllc/email-validator":"3.0.0","@bernierllc/template-engine":"0.4.0","@bernierllc/neverhub-adapter":"0.1.4","@bernierllc/webhook-receiver":"1.2.0","@bernierllc/email-mitm-masking":"1.2.0","@bernierllc/inbound-email-parse":"1.2.0","@bernierllc/email-sender-manager":"1.2.0","@bernierllc/email-sendgrid-plugin":"1.3.0","@bernierllc/email-template-service":"1.2.0","@bernierllc/template-variable-registry":"1.2.0"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.4.0_1767642495602_0.4031290800527447","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@bernierllc/email-manager","version":"0.4.1","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.4.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"dce4855391e71c1ba49b6fcf789c3c81c4b8e417","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.4.1.tgz","fileCount":95,"integrity":"sha512-Ck9rSr7ISDxWqloWpg3t4y4W6ASS2CENKtgi4zoZ2aTsPtNfZlKr1FvqVWlm7TKbn5a68LSH7SokW6ThrQ/KQg==","signatures":[{"sig":"MEQCIESKJzbkUILVa5l+wy0WAYfjXWZUqdysoqMsJi1cNTdGAiARI+41SmNCJSVGfqbd0OxU68rAQiMNW9cBh6kUOD/6+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":595997},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.4.1.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.4.1.tgz","_integrity":"sha512-Ck9rSr7ISDxWqloWpg3t4y4W6ASS2CENKtgi4zoZ2aTsPtNfZlKr1FvqVWlm7TKbn5a68LSH7SokW6ThrQ/KQg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.11.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.3.0","@bernierllc/crypto-utils":"1.0.6","@bernierllc/email-parser":"0.3.0","@bernierllc/email-sender":"5.0.0","@bernierllc/file-handler":"0.4.0","@bernierllc/retry-policy":"0.3.0","@bernierllc/email-capture":"1.0.3","@bernierllc/email-headers":"0.1.0","@bernierllc/email-service":"4.0.0","@bernierllc/email-calendar":"0.1.0","@bernierllc/email-validator":"3.0.0","@bernierllc/template-engine":"0.4.0","@bernierllc/neverhub-adapter":"0.1.4","@bernierllc/webhook-receiver":"1.2.0","@bernierllc/email-attachments":"0.1.0","@bernierllc/email-batch-sender":"0.1.0","@bernierllc/email-mitm-masking":"1.2.0","@bernierllc/email-subscription":"0.1.0","@bernierllc/inbound-email-parse":"1.2.0","@bernierllc/email-sender-manager":"1.2.0","@bernierllc/email-sendgrid-plugin":"1.3.1","@bernierllc/email-template-service":"1.2.0","@bernierllc/template-variable-registry":"1.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.4.1_1772401284738_0.574824971835791","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@bernierllc/email-manager","version":"0.4.2","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.4.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"92053c4988f5720869c79a6426c24775e6b6eb05","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.4.2.tgz","fileCount":95,"integrity":"sha512-JZziLASTWtpMqTrN1wPL4yhq6t+RfAxWwEEpV/nWjRp+tGtYsfBwUL+ry7Tq7eOK7xv6Gz4ZpOSWrUv7II1akw==","signatures":[{"sig":"MEUCIQCK30ZZsmLQouj+pnx0iP1/ogxhWwar8vdfvkOxvssZPgIgW0qnudsvvILujoICOtWbXA5x8jSnohqAFUdMa1ybZ78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":596037},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.4.2.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/Users/mattbernier/projects/tools/packages/suite/email-manager/bernierllc-email-manager-0.4.2.tgz","_integrity":"sha512-JZziLASTWtpMqTrN1wPL4yhq6t+RfAxWwEEpV/nWjRp+tGtYsfBwUL+ry7Tq7eOK7xv6Gz4ZpOSWrUv7II1akw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.6.2","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.3.0","@bernierllc/crypto-utils":"1.0.6","@bernierllc/email-parser":"0.3.0","@bernierllc/email-sender":"5.0.0","@bernierllc/file-handler":"0.4.0","@bernierllc/retry-policy":"0.3.0","@bernierllc/email-capture":"1.0.3","@bernierllc/email-headers":"0.1.0","@bernierllc/email-service":"4.0.0","@bernierllc/email-calendar":"0.1.0","@bernierllc/email-validator":"3.0.0","@bernierllc/template-engine":"0.4.0","@bernierllc/neverhub-adapter":"0.1.4","@bernierllc/webhook-receiver":"1.2.0","@bernierllc/email-attachments":"0.1.0","@bernierllc/email-batch-sender":"0.1.0","@bernierllc/email-mitm-masking":"1.2.0","@bernierllc/email-subscription":"0.1.0","@bernierllc/inbound-email-parse":"1.2.0","@bernierllc/email-sender-manager":"1.2.0","@bernierllc/email-sendgrid-plugin":"1.3.1","@bernierllc/email-template-service":"1.2.0","@bernierllc/template-variable-registry":"1.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.4.2_1772563165459_0.1346029066169363","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@bernierllc/email-manager","version":"0.5.1","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.5.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"54f0dfe7ac73345104bcb783cfd58be48121e029","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.5.1.tgz","fileCount":95,"integrity":"sha512-1lYzwB1GwQXjL/kG8q01P0omW9AE1q/nfwraPRXKMJPP8OWH5PThoJrkYF1V+FjKtptP79uFQcGPZ9foyeR6gw==","signatures":[{"sig":"MEYCIQDugVK3RokPbFTKBML8Onx/R2wVuz26iBmdnqeuLZjmVAIhAOZpv2Ja3p2lndyICsaKCUFwf8PbUjIXZq+wLDwldFIU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":596037},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.5.1.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/Users/mattbernier/projects/tools/packages/suite/email-manager/bernierllc-email-manager-0.5.1.tgz","_integrity":"sha512-1lYzwB1GwQXjL/kG8q01P0omW9AE1q/nfwraPRXKMJPP8OWH5PThoJrkYF1V+FjKtptP79uFQcGPZ9foyeR6gw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.6.2","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.3.1","@bernierllc/crypto-utils":"1.0.7","@bernierllc/email-parser":"0.4.0","@bernierllc/email-sender":"5.1.1","@bernierllc/file-handler":"0.4.1","@bernierllc/retry-policy":"0.3.1","@bernierllc/email-capture":"1.0.4","@bernierllc/email-headers":"0.2.0","@bernierllc/email-service":"4.0.1","@bernierllc/email-calendar":"0.2.0","@bernierllc/email-validator":"3.0.1","@bernierllc/template-engine":"0.4.1","@bernierllc/neverhub-adapter":"0.1.5","@bernierllc/webhook-receiver":"1.2.1","@bernierllc/email-attachments":"0.2.0","@bernierllc/email-batch-sender":"0.2.0","@bernierllc/email-mitm-masking":"1.2.1","@bernierllc/email-subscription":"0.2.0","@bernierllc/inbound-email-parse":"1.3.0","@bernierllc/email-sender-manager":"1.2.1","@bernierllc/email-sendgrid-plugin":"1.4.0","@bernierllc/email-template-service":"1.2.1","@bernierllc/template-variable-registry":"1.2.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.5.1_1772563593048_0.34871259623446793","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bernierllc/email-manager","version":"0.6.0","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.6.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"56fd46f57a57efd78dba781c335fd98e0721d246","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.6.0.tgz","fileCount":95,"integrity":"sha512-P+2DsivFo2NreWBVmv7b8RyuJxjY4adrgVbcKb8w9IcBq2mLOW+R6QCkQ00etz6WI0gHXdkhxrus4SRhZ4VFXA==","signatures":[{"sig":"MEYCIQCtIeKxvlEL+DPmxdXGAknuPSM8794sAIBBm+25bj60LAIhAILHZpxW/R6imNBUL0J60F175E9gtSbIiIExzpPAeYMS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":604441},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.6.0.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.6.0.tgz","_integrity":"sha512-P+2DsivFo2NreWBVmv7b8RyuJxjY4adrgVbcKb8w9IcBq2mLOW+R6QCkQ00etz6WI0gHXdkhxrus4SRhZ4VFXA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.11.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.3.2","@bernierllc/crypto-utils":"1.0.8","@bernierllc/email-parser":"0.4.1","@bernierllc/email-sender":"5.2.0","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.3.2","@bernierllc/email-capture":"1.0.5","@bernierllc/email-headers":"0.2.1","@bernierllc/email-service":"4.0.2","@bernierllc/email-calendar":"0.2.1","@bernierllc/email-validator":"3.0.2","@bernierllc/template-engine":"0.4.2","@bernierllc/neverhub-adapter":"0.1.6","@bernierllc/webhook-receiver":"1.2.2","@bernierllc/email-attachments":"0.2.1","@bernierllc/email-batch-sender":"0.2.1","@bernierllc/email-mitm-masking":"1.2.2","@bernierllc/email-subscription":"0.2.1","@bernierllc/inbound-email-parse":"1.3.1","@bernierllc/email-sender-manager":"1.2.2","@bernierllc/email-sendgrid-plugin":"1.4.1","@bernierllc/email-template-service":"1.2.2","@bernierllc/template-variable-registry":"1.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.6.0_1773082740156_0.608149546772685","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@bernierllc/email-manager","version":"0.6.1","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.6.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"05a3d83befdba1fe33a80432e7a9a0c3ed198f83","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.6.1.tgz","fileCount":95,"integrity":"sha512-BmA2V2a7qJ5ttdO2+2p36IIDcAmr18W3Rg2Jab9aAxU1QrBW+S487Uo0Wr4vGZSNOxXxufMKAo8WGDVFTXohSw==","signatures":[{"sig":"MEUCIDdVyZEwNhcsQDml6tg/zjdKmfgmtVtRQMrizqeChWqoAiEA+u/wIEC+cO51BECeZHCuTzGGrSlcVGYzZyzZeiJdNwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":605891},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.6.1.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.6.1.tgz","_integrity":"sha512-BmA2V2a7qJ5ttdO2+2p36IIDcAmr18W3Rg2Jab9aAxU1QrBW+S487Uo0Wr4vGZSNOxXxufMKAo8WGDVFTXohSw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.11.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.3.2","@bernierllc/crypto-utils":"1.0.8","@bernierllc/email-parser":"0.4.1","@bernierllc/email-sender":"5.2.1","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.3.2","@bernierllc/email-capture":"1.0.5","@bernierllc/email-headers":"0.2.1","@bernierllc/email-service":"4.0.3","@bernierllc/email-calendar":"0.2.1","@bernierllc/email-validator":"3.0.2","@bernierllc/template-engine":"0.4.2","@bernierllc/neverhub-adapter":"0.1.6","@bernierllc/webhook-receiver":"1.2.2","@bernierllc/email-attachments":"0.2.1","@bernierllc/email-batch-sender":"0.2.2","@bernierllc/email-mitm-masking":"1.2.3","@bernierllc/email-subscription":"0.2.1","@bernierllc/inbound-email-parse":"1.3.1","@bernierllc/email-sender-manager":"1.2.2","@bernierllc/email-sendgrid-plugin":"1.4.1","@bernierllc/email-template-service":"1.2.3","@bernierllc/template-variable-registry":"1.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.6.1_1773869883880_0.07746983380998884","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bernierllc/email-manager","version":"0.7.0","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.7.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"ccb5f070c1058e112276e4a9d6b537ec91c414d8","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.7.0.tgz","fileCount":95,"integrity":"sha512-8EXB09vJcwTtN11HIuxStOLuXeMH7rsuPXZDMODgRBOkCZNHN/Kwe/ck7aABDON8Xrmz+2U1SYoUJLRmwc7cHw==","signatures":[{"sig":"MEYCIQCVlR9c0XGOJu8lXTgY+O2hhwXRQWAqOTP6P7Uq6tqY6AIhAMiptBecmiefHvdeS+cCy2m3BybORMZb7e65g9zPSpfU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.7.0.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.7.0.tgz","_integrity":"sha512-8EXB09vJcwTtN11HIuxStOLuXeMH7rsuPXZDMODgRBOkCZNHN/Kwe/ck7aABDON8Xrmz+2U1SYoUJLRmwc7cHw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.12.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.3.2","@bernierllc/crypto-utils":"1.0.8","@bernierllc/email-parser":"0.4.1","@bernierllc/email-sender":"5.3.0","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.3.2","@bernierllc/email-capture":"1.0.5","@bernierllc/email-headers":"0.2.1","@bernierllc/email-service":"4.0.4","@bernierllc/email-calendar":"0.2.1","@bernierllc/email-validator":"3.0.2","@bernierllc/template-engine":"0.4.2","@bernierllc/neverhub-adapter":"0.1.6","@bernierllc/webhook-receiver":"1.2.2","@bernierllc/email-attachments":"0.2.1","@bernierllc/email-batch-sender":"0.2.3","@bernierllc/email-mitm-masking":"1.2.4","@bernierllc/email-subscription":"0.2.1","@bernierllc/inbound-email-parse":"1.3.1","@bernierllc/email-sender-manager":"1.3.0","@bernierllc/email-sendgrid-plugin":"1.4.1","@bernierllc/email-template-service":"1.2.4","@bernierllc/template-variable-registry":"1.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.7.0_1774131242090_0.9864254249232369","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@bernierllc/email-manager","version":"0.7.1","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.7.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"2e4faad2d9ab613d11f3a3c9fb2b9dbf7e69df62","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.7.1.tgz","fileCount":95,"integrity":"sha512-7gU0FdyqNvr0iWP2PrV7UdgQQ6HRHtez5eKm7jBOOxuI7aDF6D8JszXm5Vmr+Ft7bF3mVZagxrkMA8Xzc5ikSg==","signatures":[{"sig":"MEYCIQDTlhlmS/anIxnNi2xg6eeEc5VqNO7OxwnmMo0irOjbuQIhAMKHUEAfp1tdxK4Tt1CZjBrUvMdBiiTiHCE3qkoH/RXJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.7.1.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.7.1.tgz","_integrity":"sha512-7gU0FdyqNvr0iWP2PrV7UdgQQ6HRHtez5eKm7jBOOxuI7aDF6D8JszXm5Vmr+Ft7bF3mVZagxrkMA8Xzc5ikSg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.4.0","@bernierllc/crypto-utils":"1.0.8","@bernierllc/email-parser":"0.4.1","@bernierllc/email-sender":"5.3.0","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.4.0","@bernierllc/email-capture":"1.0.5","@bernierllc/email-headers":"0.2.1","@bernierllc/email-service":"4.0.5","@bernierllc/email-calendar":"0.2.1","@bernierllc/email-validator":"3.0.2","@bernierllc/template-engine":"0.4.2","@bernierllc/neverhub-adapter":"0.1.6","@bernierllc/webhook-receiver":"1.2.2","@bernierllc/email-attachments":"0.2.1","@bernierllc/email-batch-sender":"0.2.4","@bernierllc/email-mitm-masking":"1.2.5","@bernierllc/email-subscription":"0.2.1","@bernierllc/inbound-email-parse":"1.3.2","@bernierllc/email-sender-manager":"1.3.0","@bernierllc/email-sendgrid-plugin":"1.4.2","@bernierllc/email-template-service":"1.2.5","@bernierllc/template-variable-registry":"1.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.7.1_1779134007144_0.04402185426952454","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@bernierllc/email-manager","version":"0.7.2","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.7.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"cb1db7215a11cb5768912adb70bc403893a1a330","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.7.2.tgz","fileCount":95,"integrity":"sha512-28mSXWUSYmRe5y8hlPT67i7B4cQnKQABQ8y0M4agXwkc0Hjxhi2xVFgsk8e7rxsG6EROjL4qjPiufAN0AOQ3rw==","signatures":[{"sig":"MEUCIG1J6X2tmWOAjAqxYI72u5eSCi0P/rFeWmLzgqKJGr8GAiEAt88Xm10N7zVHwzJBvl4pXV8wprHLBc8fy+yX0kBcNoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.7.2.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.7.2.tgz","_integrity":"sha512-28mSXWUSYmRe5y8hlPT67i7B4cQnKQABQ8y0M4agXwkc0Hjxhi2xVFgsk8e7rxsG6EROjL4qjPiufAN0AOQ3rw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.4.2","@bernierllc/crypto-utils":"1.0.8","@bernierllc/email-parser":"0.4.1","@bernierllc/email-sender":"5.3.0","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.5.1","@bernierllc/email-capture":"1.0.5","@bernierllc/email-headers":"0.2.1","@bernierllc/email-service":"4.0.6","@bernierllc/email-calendar":"0.2.1","@bernierllc/email-validator":"3.0.2","@bernierllc/template-engine":"0.4.2","@bernierllc/neverhub-adapter":"0.1.6","@bernierllc/webhook-receiver":"1.2.2","@bernierllc/email-attachments":"0.2.1","@bernierllc/email-batch-sender":"0.2.5","@bernierllc/email-mitm-masking":"1.2.6","@bernierllc/email-subscription":"0.2.1","@bernierllc/inbound-email-parse":"1.3.3","@bernierllc/email-sender-manager":"1.3.0","@bernierllc/email-sendgrid-plugin":"1.4.3","@bernierllc/email-template-service":"1.2.6","@bernierllc/template-variable-registry":"1.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.7.2_1779157649343_0.1371475643363591","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@bernierllc/email-manager","version":"0.7.3","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.7.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"8e6eecf51f0d2219a6425bbc1e17d3fdadc3557c","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.7.3.tgz","fileCount":95,"integrity":"sha512-HlIk1q45lg7pACQ4JiPUDn7WYCiZF611ntQQtbIFN79WBX98oSC+hAkyjsINlpC/QpM4JFZUC5fTftrk6Q1exg==","signatures":[{"sig":"MEQCIALFF2D8praZzLeV8VaxKjWyZp66ER+1aexiYH0i429LAiAOv8lG/pW/GXo1a33zWAitn0MZxGAzL8YHv3eTQJ5cAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.7.3.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.7.3.tgz","_integrity":"sha512-HlIk1q45lg7pACQ4JiPUDn7WYCiZF611ntQQtbIFN79WBX98oSC+hAkyjsINlpC/QpM4JFZUC5fTftrk6Q1exg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.4.3","@bernierllc/crypto-utils":"1.2.0","@bernierllc/email-parser":"0.4.1","@bernierllc/email-sender":"5.3.0","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.5.1","@bernierllc/email-capture":"1.0.5","@bernierllc/email-headers":"0.2.1","@bernierllc/email-service":"4.0.7","@bernierllc/email-calendar":"0.2.1","@bernierllc/email-validator":"3.2.0","@bernierllc/template-engine":"0.4.2","@bernierllc/neverhub-adapter":"0.2.0","@bernierllc/webhook-receiver":"1.2.2","@bernierllc/email-attachments":"0.2.1","@bernierllc/email-batch-sender":"0.2.5","@bernierllc/email-mitm-masking":"1.2.7","@bernierllc/email-subscription":"0.2.1","@bernierllc/inbound-email-parse":"1.3.4","@bernierllc/email-sender-manager":"1.3.0","@bernierllc/email-sendgrid-plugin":"1.4.4","@bernierllc/email-template-service":"1.2.7","@bernierllc/template-variable-registry":"1.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.7.3_1779221805380_0.05612582039569336","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@bernierllc/email-manager","version":"0.7.4","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.7.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"b339fa186226850c38e5500d6a594f8dbe09953c","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.7.4.tgz","fileCount":95,"integrity":"sha512-jBWPfrT66Ir8Wg78dj/YjAKZhoT1My2FxQUg1gjypEzHG7K49UJRsBycNqZ7wSvnuhL8+UZX46L/3bFQrIJmjA==","signatures":[{"sig":"MEQCIEBJjFJ1TrnLVU1k0R4bE63vEK/uhAwwqjdJTNyl8jgiAiA+Aq+yNCvsbFYXpmmzVDfB67Hicwsw1Lqnqya9BjldOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.7.4.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.7.4.tgz","_integrity":"sha512-jBWPfrT66Ir8Wg78dj/YjAKZhoT1My2FxQUg1gjypEzHG7K49UJRsBycNqZ7wSvnuhL8+UZX46L/3bFQrIJmjA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.4.3","@bernierllc/crypto-utils":"1.2.0","@bernierllc/email-parser":"0.4.1","@bernierllc/email-sender":"5.3.0","@bernierllc/file-handler":"0.4.2","@bernierllc/retry-policy":"0.5.1","@bernierllc/email-capture":"1.0.5","@bernierllc/email-headers":"0.2.1","@bernierllc/email-service":"4.0.8","@bernierllc/email-calendar":"0.2.1","@bernierllc/email-validator":"3.2.0","@bernierllc/template-engine":"0.4.2","@bernierllc/neverhub-adapter":"0.2.0","@bernierllc/webhook-receiver":"1.2.2","@bernierllc/email-attachments":"0.2.1","@bernierllc/email-batch-sender":"0.2.5","@bernierllc/email-mitm-masking":"1.2.7","@bernierllc/email-subscription":"0.2.1","@bernierllc/inbound-email-parse":"1.3.4","@bernierllc/email-sender-manager":"1.3.0","@bernierllc/email-sendgrid-plugin":"1.4.5","@bernierllc/email-template-service":"1.2.7","@bernierllc/template-variable-registry":"1.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.7.4_1779234173578_0.5455726635818325","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@bernierllc/email-manager","version":"0.8.0","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.8.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"f5d4ff25b70f7b37b93f4a307009feac58edaf81","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.8.0.tgz","fileCount":95,"integrity":"sha512-a2S+jWDKcoAJ8jZM2AE3JWSHlbEFIPkZjjNdH27ZruKfUYg9V4GmuQilDJCoixTxdiFLuAm3LjdY8Xx70dvFMw==","signatures":[{"sig":"MEYCIQCd182nfs2vt/gSABRgukFsD86Ks/IoudGsGMdc40QEdwIhAISpPqflrYPvXu5+49GWQ/inKg+1cy8KXlqZpiR+8+FX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.8.0.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.8.0.tgz","_integrity":"sha512-a2S+jWDKcoAJ8jZM2AE3JWSHlbEFIPkZjjNdH27ZruKfUYg9V4GmuQilDJCoixTxdiFLuAm3LjdY8Xx70dvFMw==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.6.0","@bernierllc/crypto-utils":"1.3.0","@bernierllc/email-parser":"0.6.0","@bernierllc/email-sender":"5.4.0","@bernierllc/file-handler":"0.6.0","@bernierllc/retry-policy":"0.6.0","@bernierllc/email-capture":"1.2.0","@bernierllc/email-headers":"0.3.0","@bernierllc/email-service":"4.1.0","@bernierllc/email-calendar":"0.3.0","@bernierllc/email-validator":"3.3.0","@bernierllc/template-engine":"0.6.0","@bernierllc/neverhub-adapter":"0.3.0","@bernierllc/webhook-receiver":"1.4.0","@bernierllc/email-attachments":"0.3.0","@bernierllc/email-batch-sender":"0.3.0","@bernierllc/email-mitm-masking":"1.3.0","@bernierllc/email-subscription":"0.3.0","@bernierllc/inbound-email-parse":"1.4.0","@bernierllc/email-sender-manager":"1.5.0","@bernierllc/email-sendgrid-plugin":"1.6.0","@bernierllc/email-template-service":"1.3.0","@bernierllc/template-variable-registry":"1.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.8.0_1779241942629_0.8266097611617302","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@bernierllc/email-manager","version":"0.8.1","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.8.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"93d9ddf20fe336a2aac1e1051e62109731ef445a","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.8.1.tgz","fileCount":95,"integrity":"sha512-nltsGCHh4Y+zcP3C7DjX7r8Y77Q/GMH8t0EjVODA8k4OAmLxTpvg3KE9VfoQHOvH9uRpoYmFDxMasObSV32bTg==","signatures":[{"sig":"MEUCIFw+wi79SKlmbgB8JhFQX1MzyUzkx8eRYHpSHI3Bus5JAiEAuky8UvMfp7ZWGFmnIVf2fjTI7wTRrdCpxfkwAGuntqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.8.1.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.8.1.tgz","_integrity":"sha512-nltsGCHh4Y+zcP3C7DjX7r8Y77Q/GMH8t0EjVODA8k4OAmLxTpvg3KE9VfoQHOvH9uRpoYmFDxMasObSV32bTg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.6.0","@bernierllc/crypto-utils":"1.3.0","@bernierllc/email-parser":"0.6.0","@bernierllc/email-sender":"5.4.0","@bernierllc/file-handler":"0.6.0","@bernierllc/retry-policy":"0.6.0","@bernierllc/email-capture":"1.2.0","@bernierllc/email-headers":"0.3.0","@bernierllc/email-service":"4.1.1","@bernierllc/email-calendar":"0.3.0","@bernierllc/email-validator":"3.3.0","@bernierllc/template-engine":"0.6.0","@bernierllc/neverhub-adapter":"0.3.0","@bernierllc/webhook-receiver":"1.4.0","@bernierllc/email-attachments":"0.3.0","@bernierllc/email-batch-sender":"0.3.0","@bernierllc/email-mitm-masking":"1.3.0","@bernierllc/email-subscription":"0.3.0","@bernierllc/inbound-email-parse":"1.4.0","@bernierllc/email-sender-manager":"1.5.0","@bernierllc/email-sendgrid-plugin":"1.6.0","@bernierllc/email-template-service":"1.3.1","@bernierllc/template-variable-registry":"1.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.8.1_1779243620210_0.27201205314264","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@bernierllc/email-manager","version":"0.8.2","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.8.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"d41d189e363d9473a3e040673d68edef878b074b","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.8.2.tgz","fileCount":95,"integrity":"sha512-3Bjlebc7feUHtkTZh6rpbU7mYRROoaFCY2DVSxaX58N5dZudLzcrs/pqgXj6xBzn2DsaJfKQ3E5H9Kvj3j1+Dg==","signatures":[{"sig":"MEQCIBd4Y6+H9iXss2J3gA21GE+JY6KzwIqt1hKqQ1qO9ElOAiA/kcCqgUZV+rPkptgJYxCPo3glsm4KDWok6axeMda4Ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.8.2.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.8.2.tgz","_integrity":"sha512-3Bjlebc7feUHtkTZh6rpbU7mYRROoaFCY2DVSxaX58N5dZudLzcrs/pqgXj6xBzn2DsaJfKQ3E5H9Kvj3j1+Dg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.6.0","@bernierllc/crypto-utils":"1.3.0","@bernierllc/email-parser":"0.6.0","@bernierllc/email-sender":"5.4.0","@bernierllc/file-handler":"0.6.0","@bernierllc/retry-policy":"0.6.0","@bernierllc/email-capture":"1.2.0","@bernierllc/email-headers":"0.3.0","@bernierllc/email-service":"4.1.1","@bernierllc/email-calendar":"0.3.0","@bernierllc/email-validator":"3.3.0","@bernierllc/template-engine":"0.6.0","@bernierllc/neverhub-adapter":"0.3.0","@bernierllc/webhook-receiver":"1.4.0","@bernierllc/email-attachments":"0.3.0","@bernierllc/email-batch-sender":"0.3.0","@bernierllc/email-mitm-masking":"1.5.0","@bernierllc/email-subscription":"0.3.0","@bernierllc/inbound-email-parse":"1.4.0","@bernierllc/email-sender-manager":"1.5.0","@bernierllc/email-sendgrid-plugin":"1.6.0","@bernierllc/email-template-service":"1.3.1","@bernierllc/template-variable-registry":"1.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.8.2_1779246117085_0.818866486646213","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@bernierllc/email-manager","version":"0.9.0","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.9.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"5cb1ba339521cf99e63bdced7bdc47bfd38c1f37","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.9.0.tgz","fileCount":95,"integrity":"sha512-RSE5+Pxsxzaq388z3pLrHejh7rzrRYk76qUu95Wq2rPB4QdxyU2A65fJUJlbdL+8Q/VdZQb8L4EVP4r57VgzvA==","signatures":[{"sig":"MEYCIQCPdnRe/Lq6BuKwcQZUGZFHRRFNvAVIzCRsdnEWvDI61QIhAO2MIIrTVGk9DRddN4m26TYP3cf+ULeTkLOIy612We9R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.9.0.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.9.0.tgz","_integrity":"sha512-RSE5+Pxsxzaq388z3pLrHejh7rzrRYk76qUu95Wq2rPB4QdxyU2A65fJUJlbdL+8Q/VdZQb8L4EVP4r57VgzvA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.7.0","@bernierllc/crypto-utils":"1.4.0","@bernierllc/email-parser":"0.7.0","@bernierllc/email-sender":"5.5.0","@bernierllc/file-handler":"0.7.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/email-capture":"1.3.0","@bernierllc/email-headers":"0.4.0","@bernierllc/email-service":"4.2.0","@bernierllc/email-calendar":"0.4.0","@bernierllc/email-validator":"3.4.0","@bernierllc/template-engine":"0.7.0","@bernierllc/neverhub-adapter":"0.4.0","@bernierllc/webhook-receiver":"1.5.0","@bernierllc/email-attachments":"0.4.0","@bernierllc/email-batch-sender":"0.4.0","@bernierllc/email-mitm-masking":"1.6.0","@bernierllc/email-subscription":"0.4.0","@bernierllc/inbound-email-parse":"1.5.0","@bernierllc/email-sender-manager":"1.6.0","@bernierllc/email-sendgrid-plugin":"1.7.0","@bernierllc/email-template-service":"1.4.0","@bernierllc/template-variable-registry":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.9.0_1779250694278_0.4922377329170964","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@bernierllc/email-manager","version":"0.9.1","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.9.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"96fb342c1e5d76f5917377e8ca8237b9a70fbfff","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.9.1.tgz","fileCount":95,"integrity":"sha512-fDdg4MiLMH5J4z921SbHBsdByZlPa6Gb571cS5BO8cs5kd6c66/QTl4cUTP2/rLvmIP4ThzhEirN9Lw/KK8KiA==","signatures":[{"sig":"MEYCIQD5175SXgOum3PBQ0JeJci/4ZywLQfr/R5kIbajsWHNAgIhAMTJVfTagq6TFRh87JYy01ulTE9cOAph4Zoa24s2H71R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.9.1.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.9.1.tgz","_integrity":"sha512-fDdg4MiLMH5J4z921SbHBsdByZlPa6Gb571cS5BO8cs5kd6c66/QTl4cUTP2/rLvmIP4ThzhEirN9Lw/KK8KiA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.7.0","@bernierllc/crypto-utils":"1.4.0","@bernierllc/email-parser":"0.7.0","@bernierllc/email-sender":"5.7.0","@bernierllc/file-handler":"0.7.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/email-capture":"1.3.0","@bernierllc/email-headers":"0.6.0","@bernierllc/email-service":"4.2.1","@bernierllc/email-calendar":"0.6.0","@bernierllc/email-validator":"3.4.0","@bernierllc/template-engine":"0.7.0","@bernierllc/neverhub-adapter":"0.4.0","@bernierllc/webhook-receiver":"1.5.0","@bernierllc/email-attachments":"0.6.0","@bernierllc/email-batch-sender":"0.4.1","@bernierllc/email-mitm-masking":"1.6.1","@bernierllc/email-subscription":"0.4.0","@bernierllc/inbound-email-parse":"1.5.1","@bernierllc/email-sender-manager":"1.6.0","@bernierllc/email-sendgrid-plugin":"1.7.0","@bernierllc/email-template-service":"1.4.1","@bernierllc/template-variable-registry":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.9.1_1779252097957_0.6970497542680729","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@bernierllc/email-manager","version":"0.9.2","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.9.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"1390968778d7bc9593e3221750700df43b32e0ef","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.9.2.tgz","fileCount":95,"integrity":"sha512-xKGrT+fmPAOh4rQRdWbDukABEG5UP1Pi/ptn8Zd83oSqBGTK/dxuJC5AAcJZx/fgvgVZfAcS1/5Y7Qww5MTOIQ==","signatures":[{"sig":"MEQCIAJgTtMMF0YDQRNtuNSA2uuCZqqxVS0H+Nde8lLYQUqMAiAuDGked8CtJEFeTds957k1rrJvoyvxVthAfUMx/9lpCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.9.2.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.9.2.tgz","_integrity":"sha512-xKGrT+fmPAOh4rQRdWbDukABEG5UP1Pi/ptn8Zd83oSqBGTK/dxuJC5AAcJZx/fgvgVZfAcS1/5Y7Qww5MTOIQ==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.14.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.7.0","@bernierllc/crypto-utils":"1.4.0","@bernierllc/email-parser":"0.7.0","@bernierllc/email-sender":"5.7.0","@bernierllc/file-handler":"0.7.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/email-capture":"1.3.0","@bernierllc/email-headers":"0.6.0","@bernierllc/email-service":"4.2.1","@bernierllc/email-calendar":"0.6.0","@bernierllc/email-validator":"3.4.0","@bernierllc/template-engine":"0.7.0","@bernierllc/neverhub-adapter":"0.4.0","@bernierllc/webhook-receiver":"1.5.0","@bernierllc/email-attachments":"0.6.0","@bernierllc/email-batch-sender":"0.4.1","@bernierllc/email-mitm-masking":"1.6.1","@bernierllc/email-subscription":"0.4.0","@bernierllc/inbound-email-parse":"1.5.1","@bernierllc/email-sender-manager":"1.6.0","@bernierllc/email-sendgrid-plugin":"1.8.0","@bernierllc/email-template-service":"1.4.1","@bernierllc/template-variable-registry":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.9.2_1779303505103_0.31048072759103684","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@bernierllc/email-manager","version":"0.9.3","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.9.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"bba14f374d584724cef4b28c7b3ed5803c3873df","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.9.3.tgz","fileCount":95,"integrity":"sha512-nXAm7vVum1lHJCdhR/dzL/GUO064zvboWzbU7mq+fbfWln2EL8e71DeTRME+3ZlVE3njQhepqAU7n1wXQCbC0Q==","signatures":[{"sig":"MEQCIB8v/FdtKH7MxaaC35mngV3nGFX2ooVOpgXEbC7yx8QaAiB0WopwIPpecnI27rPBGXVCNRyq+y7YxbhanA1dpPoycA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.9.3.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.9.3.tgz","_integrity":"sha512-nXAm7vVum1lHJCdhR/dzL/GUO064zvboWzbU7mq+fbfWln2EL8e71DeTRME+3ZlVE3njQhepqAU7n1wXQCbC0Q==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.15.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.7.0","@bernierllc/crypto-utils":"1.4.0","@bernierllc/email-parser":"0.7.0","@bernierllc/email-sender":"5.7.0","@bernierllc/file-handler":"0.7.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/email-capture":"1.3.0","@bernierllc/email-headers":"0.6.0","@bernierllc/email-service":"6.0.0","@bernierllc/email-calendar":"0.6.0","@bernierllc/email-validator":"3.4.0","@bernierllc/template-engine":"0.7.0","@bernierllc/neverhub-adapter":"0.4.0","@bernierllc/webhook-receiver":"1.5.0","@bernierllc/email-attachments":"0.6.0","@bernierllc/email-batch-sender":"0.4.1","@bernierllc/email-mitm-masking":"1.6.1","@bernierllc/email-subscription":"0.4.0","@bernierllc/inbound-email-parse":"1.5.1","@bernierllc/email-sender-manager":"1.6.0","@bernierllc/email-sendgrid-plugin":"1.8.0","@bernierllc/email-template-service":"3.0.0","@bernierllc/template-variable-registry":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.9.3_1779312792225_0.18473165188508478","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@bernierllc/email-manager","version":"0.9.4","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.9.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"230f89ac0b5607139149da68e00f8123755e1012","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.9.4.tgz","fileCount":95,"integrity":"sha512-BA3sWI7d4gQFJ86AbaKCuAQ7K8nKm6FfnbDELxYjfqvwuBMwUXNogl7JQyQqj5+k9mVLC+RpZYR090RhMrVmlA==","signatures":[{"sig":"MEUCIC8b0CWpXpvLCdK2sMKtvjvmEbGVi84hlYXKdhG1fwfSAiEA4bYeFi5d1AVZIFcKzi7QNRUIyuLLF/0HPZAMThHMy94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620985},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.9.4.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.9.4.tgz","_integrity":"sha512-BA3sWI7d4gQFJ86AbaKCuAQ7K8nKm6FfnbDELxYjfqvwuBMwUXNogl7JQyQqj5+k9mVLC+RpZYR090RhMrVmlA==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.15.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.0","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.7.0","@bernierllc/crypto-utils":"1.4.0","@bernierllc/email-parser":"0.7.0","@bernierllc/email-sender":"5.7.0","@bernierllc/file-handler":"0.7.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/email-capture":"1.3.0","@bernierllc/email-headers":"0.6.0","@bernierllc/email-service":"6.0.0","@bernierllc/email-calendar":"0.6.0","@bernierllc/email-validator":"3.4.0","@bernierllc/template-engine":"0.7.0","@bernierllc/neverhub-adapter":"0.4.0","@bernierllc/webhook-receiver":"1.5.0","@bernierllc/email-attachments":"0.6.0","@bernierllc/email-batch-sender":"0.4.1","@bernierllc/email-mitm-masking":"1.6.1","@bernierllc/email-subscription":"0.4.0","@bernierllc/inbound-email-parse":"3.0.0","@bernierllc/email-sender-manager":"1.6.0","@bernierllc/email-sendgrid-plugin":"1.8.0","@bernierllc/email-template-service":"3.0.0","@bernierllc/template-variable-registry":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0","@types/uuid":"^9.0.4"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.9.4_1779313907473_0.11059851723850711","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"@bernierllc/email-manager","version":"0.9.5","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.9.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"da0886e053f5456115f95c95cce2edae5715bd53","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.9.5.tgz","fileCount":95,"integrity":"sha512-xVQN/wAgjQ9jlDyv2P7NNAC7t2mo83vyZJ6WwHPXl1q9Fjkok6a9q26NZZREv+gGqwZHcNn2d/ScQ7KoTIlqbg==","signatures":[{"sig":"MEUCIAQ3c2O9/00otOTZ/6opaLxRoLqPwOf1xJNcNNQnvuG6AiEA8o9PlAT5q5o0HPbYbhl/HVTXlDRyBl2v2D+zV85abqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620956},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.9.5.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.9.5.tgz","_integrity":"sha512-xVQN/wAgjQ9jlDyv2P7NNAC7t2mo83vyZJ6WwHPXl1q9Fjkok6a9q26NZZREv+gGqwZHcNn2d/ScQ7KoTIlqbg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"11.15.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4","uuid":"^11.1.1","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.7.0","@bernierllc/crypto-utils":"1.4.0","@bernierllc/email-parser":"0.7.0","@bernierllc/email-sender":"5.7.0","@bernierllc/file-handler":"0.8.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/email-capture":"1.3.0","@bernierllc/email-headers":"0.6.0","@bernierllc/email-service":"6.0.0","@bernierllc/email-calendar":"0.6.0","@bernierllc/email-validator":"3.4.0","@bernierllc/template-engine":"0.7.0","@bernierllc/neverhub-adapter":"0.4.0","@bernierllc/webhook-receiver":"1.5.0","@bernierllc/email-attachments":"0.6.0","@bernierllc/email-batch-sender":"0.4.1","@bernierllc/email-mitm-masking":"1.6.1","@bernierllc/email-subscription":"0.4.0","@bernierllc/inbound-email-parse":"3.0.0","@bernierllc/email-sender-manager":"1.6.0","@bernierllc/email-sendgrid-plugin":"1.8.0","@bernierllc/email-template-service":"3.0.0","@bernierllc/template-variable-registry":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.9.5_1779840915409_0.07392243813907973","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"@bernierllc/email-manager","version":"0.9.6","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.9.6","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"2cc93aa75291260af5d92dfea4c8c136f2bd6a01","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.9.6.tgz","fileCount":95,"integrity":"sha512-7KAfth9yNYTA07UT5hmwOFBvBIib1BRatNDlj1553MeqxDrenHtkci8qQuhEb+1hivzUYw4pWmC/76kR6GCFdg==","signatures":[{"sig":"MEUCIQDxdOo2NI64nTnvI+BB6k198mS5Q5dqLMoCWO4RheqZ5AIgbh+5v40owRs+7RkgPrjijjjgiL435+fIgWlK3Tnewhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620956},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.9.6.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.9.6.tgz","_integrity":"sha512-7KAfth9yNYTA07UT5hmwOFBvBIib1BRatNDlj1553MeqxDrenHtkci8qQuhEb+1hivzUYw4pWmC/76kR6GCFdg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"12.0.1","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.22.4","uuid":"^11.1.1","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.7.1","@bernierllc/crypto-utils":"1.4.0","@bernierllc/email-parser":"0.7.0","@bernierllc/email-sender":"5.7.0","@bernierllc/file-handler":"0.8.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/email-capture":"1.3.0","@bernierllc/email-headers":"0.6.0","@bernierllc/email-service":"6.0.1","@bernierllc/email-calendar":"0.6.0","@bernierllc/email-validator":"3.4.0","@bernierllc/template-engine":"0.7.0","@bernierllc/neverhub-adapter":"0.4.1","@bernierllc/webhook-receiver":"1.5.0","@bernierllc/email-attachments":"0.6.0","@bernierllc/email-batch-sender":"0.4.1","@bernierllc/email-mitm-masking":"1.6.2","@bernierllc/email-subscription":"0.4.0","@bernierllc/inbound-email-parse":"3.0.1","@bernierllc/email-sender-manager":"1.6.0","@bernierllc/email-sendgrid-plugin":"1.8.1","@bernierllc/email-template-service":"3.0.1","@bernierllc/template-variable-registry":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.9.6_1784016077491_0.7408500363957788","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"@bernierllc/email-manager","version":"0.9.7","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.9.7","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"63dd62c2508421e17f373df1f8f026f180c95735","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.9.7.tgz","fileCount":95,"integrity":"sha512-Gt4KY2SQn8JwVsQst6iAK5W49Rz7MakGVPBP0PlXcGOX3B1SMG8E6j5cm3xwsWZHrD+mcRL/oxXhE88jJmNGXg==","signatures":[{"sig":"MEYCIQDiaXnIgtaXeTjYl9JcOC9+lCBamTueUwxzS+/2DUyNKAIhAOzfQ+kceWSB+T/X234w1I4H7wJpeptp+QiSHTNHzeYu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620956},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.9.7.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.9.7.tgz","_integrity":"sha512-Gt4KY2SQn8JwVsQst6iAK5W49Rz7MakGVPBP0PlXcGOX3B1SMG8E6j5cm3xwsWZHrD+mcRL/oxXhE88jJmNGXg==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"12.0.2","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.22.4","uuid":"^11.1.1","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.7.1","@bernierllc/crypto-utils":"1.4.0","@bernierllc/email-parser":"0.7.0","@bernierllc/email-sender":"5.8.0","@bernierllc/file-handler":"0.8.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/email-capture":"1.3.0","@bernierllc/email-headers":"0.6.0","@bernierllc/email-service":"6.0.2","@bernierllc/email-calendar":"0.6.0","@bernierllc/email-validator":"3.4.0","@bernierllc/template-engine":"0.7.0","@bernierllc/neverhub-adapter":"0.4.1","@bernierllc/webhook-receiver":"1.5.0","@bernierllc/email-attachments":"0.6.0","@bernierllc/email-batch-sender":"0.4.2","@bernierllc/email-mitm-masking":"1.6.3","@bernierllc/email-subscription":"0.4.0","@bernierllc/inbound-email-parse":"3.0.1","@bernierllc/email-sender-manager":"1.6.0","@bernierllc/email-sendgrid-plugin":"1.8.1","@bernierllc/email-template-service":"3.0.2","@bernierllc/template-variable-registry":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.9.7_1788112483597_0.20150699860396903","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@bernierllc/email-manager","version":"0.10.0","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"author":{"name":"Bernier LLC"},"license":"Bernier LLC","_id":"@bernierllc/email-manager@0.10.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernier-llc/tools#readme","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"aadf14c537c326ba8b5cfba0c294f2b56295d50c","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.10.0.tgz","fileCount":95,"integrity":"sha512-Yr//K9uoUiHdA+Nk8wNE8kPY6oIpzLVLMRv4IDJ0QH9HwHc/Q2dXxrT0zkJtBOzUSvcchZMfP4BYF1e3v1GJ3Q==","signatures":[{"sig":"MEYCIQDEPM/mYlbqOsW2fqS7U/P8ItvelGjRU7SMLTXAzS/gxgIhAKpz2ae6btJ+KVq2Y1KQh0/js/vPC6lB5TYdS53xvlDy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB4jyTuvfEcsPzConGMm2Wy/KYJjX7rNOowrnrNTG8NxAiAG0Epuy9XoPpq0g/aiuM9UK03/GtL0v1ecqPDz1rnz8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621094},"main":"dist/index.js","type":"module","_from":"file:bernierllc-email-manager-0.10.0.tgz","types":"dist/index.d.ts","browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.10.0.tgz","_integrity":"sha512-Yr//K9uoUiHdA+Nk8wNE8kPY6oIpzLVLMRv4IDJ0QH9HwHc/Q2dXxrT0zkJtBOzUSvcchZMfP4BYF1e3v1GJ3Q==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"12.1.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"^3.22.4","uuid":"^11.1.1","cosmiconfig":"^8.0.0","@bernierllc/logger":"1.7.1","@bernierllc/crypto-utils":"1.4.0","@bernierllc/email-parser":"0.7.0","@bernierllc/email-sender":"5.9.0","@bernierllc/file-handler":"0.8.0","@bernierllc/retry-policy":"0.7.0","@bernierllc/email-capture":"1.3.0","@bernierllc/email-headers":"0.6.0","@bernierllc/email-service":"6.0.3","@bernierllc/email-calendar":"0.6.0","@bernierllc/email-validator":"3.4.0","@bernierllc/template-engine":"0.7.0","@bernierllc/neverhub-adapter":"0.4.1","@bernierllc/webhook-receiver":"1.5.0","@bernierllc/email-attachments":"0.6.0","@bernierllc/email-batch-sender":"0.4.3","@bernierllc/email-mitm-masking":"1.6.4","@bernierllc/email-subscription":"0.4.0","@bernierllc/inbound-email-parse":"3.0.1","@bernierllc/email-sender-manager":"1.6.0","@bernierllc/email-sendgrid-plugin":"1.8.1","@bernierllc/email-template-service":"3.0.3","@bernierllc/template-variable-registry":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-manager_0.10.0_1790709253737_0.7722534899916311","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"_id":"@bernierllc/email-manager@0.10.1","bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"dist":{"shasum":"ef46b665793cad2d885dcebe9ff2ec4aed9c96eb","tarball":"https://registry.npmjs.org/@bernierllc/email-manager/-/email-manager-0.10.1.tgz","fileCount":95,"integrity":"sha512-p1nXkTiDv8d0tEFzGJPvPmsl0DbKd5mOL5b+U+/OYBJqtwhUWKZzrTbFxpda0WILsWgw2aiw4uUU/070pGlk3w==","signatures":[{"sig":"MEQCIEHJJThyNF+jfS2oL8jBIvg1Gt+ZNGsjeWgEJtrB+5NAAiB8Y94rVcRKvh58xVhng38kvH+wqS0YM+sbSThlmVDT8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBIjqH/JVarnJY6VyYk9gBwm6zoKqmaFgEWh2IQFas1DAiB0rKUEz02WmMIIx/Ljnimhby4stfcOuNOLI/XWd2sfLA=="}],"unpackedSize":621117},"main":"dist/index.js","name":"@bernierllc/email-manager","type":"module","_from":"file:bernierllc-email-manager-0.10.1.tgz","types":"dist/index.d.ts","author":{"name":"Bernier LLC"},"browser":false,"exports":{".":{"node":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"license":"Bernier LLC","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false --forceExit","test:watch":"jest --watch","config:init":"node -e \"const fs=require('fs');const path=require('path');if(fs.existsSync('email-manager.config.js')){console.log('email-manager.config.js already exists');process.exit(1);}fs.copyFileSync(path.join(__dirname,'templates','email-manager.config.template.js'),'email-manager.config.js');console.log('✅ Created email-manager.config.js from template');\"","test:coverage":"jest --coverage"},"version":"0.10.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"a9543af6-c29f-4d67-a5ad-f79b1c6aebff"}},"homepage":"https://github.com/bernier-llc/tools#readme","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"_resolved":"/home/runner/work/tools/tools/packages/suite/email-manager/bernierllc-email-manager-0.10.1.tgz","_integrity":"sha512-p1nXkTiDv8d0tEFzGJPvPmsl0DbKd5mOL5b+U+/OYBJqtwhUWKZzrTbFxpda0WILsWgw2aiw4uUU/070pGlk3w==","repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"_npmVersion":"12.2.0","description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"zod":"^3.22.4","uuid":"^11.1.1","cosmiconfig":"^8.0.0","@bernierllc/logger":"^1.7.1","@bernierllc/crypto-utils":"^1.4.0","@bernierllc/email-parser":"^0.7.0","@bernierllc/email-sender":"^5.9.0","@bernierllc/file-handler":"^0.8.0","@bernierllc/retry-policy":"^0.7.0","@bernierllc/email-capture":"^1.3.0","@bernierllc/email-headers":"^0.6.0","@bernierllc/email-service":"^6.0.3","@bernierllc/email-calendar":"^0.6.0","@bernierllc/email-validator":"^3.4.0","@bernierllc/template-engine":"^0.7.0","@bernierllc/neverhub-adapter":"^0.4.1","@bernierllc/webhook-receiver":"^1.5.0","@bernierllc/email-attachments":"^0.6.0","@bernierllc/email-batch-sender":"^0.4.3","@bernierllc/email-mitm-masking":"^1.6.4","@bernierllc/email-subscription":"^0.4.0","@bernierllc/inbound-email-parse":"^3.0.1","@bernierllc/email-sender-manager":"^1.6.0","@bernierllc/email-sendgrid-plugin":"^1.8.1","@bernierllc/email-template-service":"^3.0.3","@bernierllc/template-variable-registry":"^1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.6.0"},"peerDependencies":{"ioredis":">=5.0.0"},"peerDependenciesMeta":{"ioredis":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/email-manager_0.10.1_1790797172327_0.2100068256816312"}}},"time":{"created":"2025-08-21T19:33:38.294Z","modified":"2026-09-30T19:39:32.886Z","0.1.1":"2025-08-21T19:33:39.064Z","0.1.3":"2025-12-18T19:52:00.219Z","0.1.4":"2025-12-21T00:26:14.660Z","0.1.6":"2025-12-21T02:19:11.227Z","0.1.7":"2025-12-22T21:11:38.436Z","0.2.0":"2025-12-24T20:27:17.374Z","0.4.0":"2026-01-05T19:48:15.743Z","0.4.1":"2026-03-01T21:41:24.939Z","0.4.2":"2026-03-03T18:39:25.624Z","0.5.1":"2026-03-03T18:46:33.198Z","0.6.0":"2026-03-09T18:59:00.339Z","0.6.1":"2026-03-18T21:38:04.030Z","0.7.0":"2026-03-21T22:14:02.261Z","0.7.1":"2026-05-18T19:53:27.320Z","0.7.2":"2026-05-19T02:27:29.554Z","0.7.3":"2026-05-19T20:16:45.530Z","0.7.4":"2026-05-19T23:42:53.771Z","0.8.0":"2026-05-20T01:52:22.787Z","0.8.1":"2026-05-20T02:20:20.372Z","0.8.2":"2026-05-20T03:01:57.241Z","0.9.0":"2026-05-20T04:18:14.408Z","0.9.1":"2026-05-20T04:41:38.121Z","0.9.2":"2026-05-20T18:58:25.248Z","0.9.3":"2026-05-20T21:33:12.397Z","0.9.4":"2026-05-20T21:51:47.613Z","0.9.5":"2026-05-27T00:15:15.582Z","0.9.6":"2026-07-14T08:01:17.668Z","0.9.7":"2026-08-30T17:54:43.756Z","0.10.0":"2026-09-29T19:14:13.833Z","0.10.1":"2026-09-30T19:39:32.536Z"},"bugs":{"url":"https://github.com/bernier-llc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"Bernier LLC","homepage":"https://github.com/bernier-llc/tools#readme","keywords":["email","manager","suite","orchestration","templates","scheduling","analytics","bernierllc"],"repository":{"url":"git+https://github.com/bernier-llc/tools.git","type":"git","directory":"packages/suite/email-manager"},"description":"Complete email management suite with template management, scheduling, analytics, and provider orchestration (Node.js only - use @bernierllc/email-manager-client for browser)","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/email-manager\n\nA comprehensive email management service that orchestrates email sending, template management, scheduling, and analytics. This service integrates with `@bernierllc/email-sender`, `@bernierllc/template-engine`, and `@bernierllc/magic-link` to provide a complete email solution.\n\n## ⚠️ Node.js Only\n\n**This package is Node.js-only** and cannot be bundled for browser use due to Node.js dependencies (nodemailer, etc.).\n\n**For browser/frontend applications**, use [`@bernierllc/email-manager-client`](../email-manager-client/README.md) instead, which provides the same API via HTTP calls.\n\n## Features\n\n### 🚀 **Email Orchestration**\n- **Multi-provider support** with automatic failover\n- **Template-based emails** with dynamic content rendering\n- **Email scheduling** with retry logic\n- **Batch email processing** for bulk operations\n\n### 📝 **Template Management**\n- **CRUD operations** for email templates\n- **Template versioning** and lifecycle management\n- **Variable validation** and syntax checking\n- **Category-based organization**\n\n### 🔧 **Provider Management**\n- **Multi-provider configuration** (SendGrid, Mailgun, AWS SES, SMTP, Postmark)\n- **Provider health monitoring** and status tracking\n- **Rate limiting** and usage tracking\n- **Automatic failover** between providers\n\n### 📊 **Analytics & Reporting**\n- **Email performance tracking** (opens, clicks, bounces)\n- **Delivery reports** and bounce analysis\n- **Provider performance metrics**\n- **Historical data** and trend analysis\n\n### ⏰ **Scheduling System**\n- **Queue-based scheduling** with precise timing\n- **Retry logic** for failed deliveries\n- **Schedule management** (cancel, modify)\n- **Background processing** with automatic cleanup\n\n## Installation\n\n```bash\nnpm install @bernierllc/email-manager\n```\n\n## Dependencies\n\nThis package requires the following BernierLLC core packages:\n\n```bash\nnpm install @bernierllc/email-sender @bernierllc/template-engine @bernierllc/magic-link\n```\n\n## Quick Start\n\n```typescript\nimport { EmailManager, EmailManagerConfig } from '@bernierllc/email-manager';\n\n// Configure providers\nconst config: EmailManagerConfig = {\n  providers: [\n    {\n      id: 'sendgrid',\n      name: 'SendGrid',\n      type: 'sendgrid',\n      config: { apiKey: process.env.SENDGRID_API_KEY },\n      isActive: true,\n      priority: 1\n    }\n  ],\n  analytics: { enabled: true },\n  scheduling: { enabled: true }\n};\n\n// Initialize manager\nconst emailManager = new EmailManager(config);\n\n// Send email\nconst result = await emailManager.sendEmail({\n  to: 'user@example.com',\n  subject: 'Hello World',\n  html: '<h1>Hello!</h1><p>This is a test email.</p>',\n  text: 'Hello! This is a test email.'\n});\n\nconsole.log('Email sent:', result.success);\n```\n\n## Core API\n\n### Email Operations\n\n#### Send Email\n```typescript\nconst result = await emailManager.sendEmail({\n  to: ['user1@example.com', 'user2@example.com'],\n  cc: ['manager@example.com'],\n  subject: 'Important Update',\n  html: '<h1>Update</h1><p>Important information...</p>',\n  text: 'Update: Important information...',\n  priority: 'high',\n  metadata: { campaign: 'newsletter' }\n});\n```\n\n#### Send Templated Email\n```typescript\nconst result = await emailManager.sendTemplatedEmail(\n  'welcome-email',\n  { \n    user: { name: 'John Doe' },\n    company: 'MyApp',\n    confirmUrl: 'https://myapp.com/confirm?token=abc123'\n  },\n  ['newuser@example.com']\n);\n```\n\n#### Schedule Email\n```typescript\nconst scheduleTime = new Date(Date.now() + 24 * 60 * 60 * 1000); // 24 hours\nconst result = await emailManager.scheduleEmail({\n  to: 'user@example.com',\n  subject: 'Reminder',\n  html: '<p>This is your scheduled reminder</p>'\n}, scheduleTime);\n```\n\n### Template Management\n\n#### Create Template\n```typescript\nconst template = await emailManager.createTemplate({\n  id: 'welcome-email',\n  name: 'Welcome Email',\n  subject: 'Welcome {{ user.name }}!',\n  htmlTemplate: '<h1>Welcome {{ user.name }}!</h1><p>Thanks for joining {{ company }}!</p>',\n  textTemplate: 'Welcome {{ user.name }}! Thanks for joining {{ company }}!',\n  variables: [\n    { name: 'user.name', type: 'string', required: true },\n    { name: 'company', type: 'string', required: true }\n  ],\n  category: 'onboarding',\n  version: '1.0.0',\n  isActive: true\n});\n```\n\n#### List Templates\n```typescript\nconst templates = await emailManager.listTemplates({\n  page: 1,\n  pageSize: 20,\n  category: 'onboarding',\n  active: true,\n  search: 'welcome'\n});\n```\n\n#### Update Template\n```typescript\nconst result = await emailManager.updateTemplate('welcome-email', {\n  subject: 'Welcome to our platform, {{ user.name }}!',\n  isActive: false\n});\n```\n\n### Provider Management\n\n#### Add Provider\n```typescript\nconst result = await emailManager.addProvider({\n  id: 'mailgun-backup',\n  name: 'Mailgun Backup',\n  type: 'mailgun',\n  config: {\n    apiKey: process.env.MAILGUN_API_KEY,\n    domain: process.env.MAILGUN_DOMAIN\n  },\n  isActive: true,\n  priority: 2,\n  rateLimit: {\n    maxPerMinute: 60,\n    maxPerHour: 1000,\n    maxPerDay: 10000\n  }\n});\n```\n\n#### Get Provider Status\n```typescript\nconst status = await emailManager.getProviderStatus('sendgrid');\nconsole.log('Provider health:', status.isHealthy);\nconsole.log('Current usage:', status.currentUsage);\n```\n\n#### Test Provider Connection\n```typescript\nconst testResult = await emailManager.testConnection('sendgrid');\nconsole.log('Connection test:', testResult.success, testResult.message);\n```\n\n### Analytics & Reporting\n\n#### Get Email Statistics\n```typescript\nconst stats = await emailManager.getEmailStats('email-message-id');\nconsole.log('Delivery rate:', stats.deliveryRate);\nconsole.log('Open rate:', stats.openRate);\nconsole.log('Click rate:', stats.clickRate);\n```\n\n#### Get Delivery Report\n```typescript\nconst report = await emailManager.getDeliveryReport({\n  startDate: new Date('2024-01-01'),\n  endDate: new Date('2024-01-31'),\n  provider: 'sendgrid'\n});\nconsole.log('Total sent:', report.totalSent);\nconsole.log('Delivery rate:', report.deliveryRate);\n```\n\n#### Get Analytics Summary\n```typescript\nconst summary = await emailManager.getAnalyticsSummary(30); // Last 30 days\nconsole.log('Overview:', summary.overview);\nconsole.log('Top providers:', summary.topProviders);\nconsole.log('Daily stats:', summary.dailyStats);\n```\n\n### Scheduling Management\n\n#### Cancel Scheduled Email\n```typescript\nconst result = await emailManager.cancelScheduledEmail('schedule-id');\nconsole.log('Cancelled:', result.success);\n```\n\n## Configuration\n\n### EmailManagerConfig\n\n```typescript\ninterface EmailManagerConfig {\n  providers: EmailProvider[];          // Email provider configurations\n  templates?: EmailTemplate[];         // Pre-loaded templates\n  scheduling?: SchedulingConfig;       // Scheduler settings\n  analytics?: AnalyticsConfig;         // Analytics settings\n  retry?: RetryConfig;                // Retry policy settings\n}\n```\n\n### Provider Configuration\n\n```typescript\ninterface EmailProvider {\n  id: string;                         // Unique provider ID\n  name: string;                       // Display name\n  type: 'sendgrid' | 'mailgun' | 'ses' | 'smtp' | 'postmark';\n  config: ProviderConfig;             // Provider-specific config\n  isActive: boolean;                  // Enable/disable provider\n  priority: number;                   // Provider priority (lower = higher priority)\n  rateLimit?: RateLimit;              // Rate limiting settings\n}\n```\n\n### Template Configuration\n\n```typescript\ninterface EmailTemplate {\n  id: string;                         // Unique template ID\n  name: string;                       // Display name\n  subject: string;                    // Email subject (supports variables)\n  htmlTemplate: string;               // HTML template content\n  textTemplate?: string;              // Plain text template content\n  variables: TemplateVariable[];      // Template variables\n  category?: string;                  // Template category\n  version: string;                    // Template version\n  isActive: boolean;                  // Enable/disable template\n}\n```\n\n## Provider Types\n\n### SendGrid\n```typescript\n{\n  type: 'sendgrid',\n  config: {\n    apiKey: 'your-sendgrid-api-key'\n  }\n}\n```\n\n### Mailgun\n```typescript\n{\n  type: 'mailgun',\n  config: {\n    apiKey: 'your-mailgun-api-key',\n    domain: 'your-domain.mailgun.org'\n  }\n}\n```\n\n### AWS SES\n```typescript\n{\n  type: 'ses',\n  config: {\n    accessKeyId: 'your-access-key',\n    secretAccessKey: 'your-secret-key',\n    region: 'us-east-1'\n  }\n}\n```\n\n### SMTP\n```typescript\n{\n  type: 'smtp',\n  config: {\n    host: 'smtp.gmail.com',\n    port: 587,\n    secure: false,\n    auth: {\n      user: 'your-email@gmail.com',\n      pass: 'your-password'\n    }\n  }\n}\n```\n\n### Postmark\n```typescript\n{\n  type: 'postmark',\n  config: {\n    serverToken: 'your-postmark-server-token'\n  }\n}\n```\n\n## Template Variables\n\nTemplates support dynamic content through variables:\n\n```html\n<!-- HTML Template -->\n<h1>Welcome {{ user.name }}!</h1>\n<p>Your account with {{ company }} is ready.</p>\n<a href=\"{{ confirmUrl }}\">Confirm Email</a>\n\n<!-- Text Template -->\nWelcome {{ user.name }}!\nYour account with {{ company }} is ready.\nConfirm your email: {{ confirmUrl }}\n```\n\nVariables are defined in the template configuration:\n\n```typescript\nvariables: [\n  { name: 'user.name', type: 'string', required: true },\n  { name: 'company', type: 'string', required: true },\n  { name: 'confirmUrl', type: 'string', required: true }\n]\n```\n\n## Error Handling\n\nThe email manager provides comprehensive error handling:\n\n```typescript\nconst result = await emailManager.sendEmail(emailData);\n\nif (!result.success) {\n  console.error('Failed to send email:');\n  result.errors?.forEach(error => {\n    console.error(`${error.code}: ${error.message}`);\n    if (error.recipient) {\n      console.error(`Recipient: ${error.recipient}`);\n    }\n  });\n}\n```\n\n## Event Tracking\n\nTrack email events for analytics:\n\n```typescript\n// Track email opened (typically from email tracking pixel)\nemailManager.trackEmailEvent('opened', 'email-id', 'recipient@example.com');\n\n// Track email clicked (typically from link tracking)\nemailManager.trackEmailEvent('clicked', 'email-id', 'recipient@example.com', {\n  url: 'https://example.com/clicked-link'\n});\n\n// Track email bounced (typically from webhook)\nemailManager.trackEmailEvent('bounced', 'email-id', 'recipient@example.com', {\n  reason: 'Invalid email address'\n});\n```\n\n## Webhook Integration\n\nSet up webhooks with your email providers to track events:\n\n```typescript\n// Express.js webhook endpoint example\napp.post('/webhook/sendgrid', (req, res) => {\n  const events = req.body;\n  \n  events.forEach(event => {\n    const { event: eventType, email, sg_message_id } = event;\n    \n    switch (eventType) {\n      case 'delivered':\n        emailManager.trackEmailEvent('delivered', sg_message_id, email);\n        break;\n      case 'open':\n        emailManager.trackEmailEvent('opened', sg_message_id, email);\n        break;\n      case 'click':\n        emailManager.trackEmailEvent('clicked', sg_message_id, email, { url: event.url });\n        break;\n      case 'bounce':\n        emailManager.trackEmailEvent('bounced', sg_message_id, email, { reason: event.reason });\n        break;\n    }\n  });\n  \n  res.status(200).send('OK');\n});\n```\n\n## Magic Link Integration\n\nGenerate secure authentication links:\n\n```typescript\n// Generate magic link\nconst magicLink = await emailManager.generateMagicLink(\n  'user@example.com',\n  'login',\n  { userId: '123', redirectUrl: '/dashboard' }\n);\n\n// Send magic link email\nawait emailManager.sendTemplatedEmail('magic-link-email', {\n  magicLink: magicLink.url,\n  user: { email: 'user@example.com' }\n}, ['user@example.com']);\n\n// Verify magic link (in your authentication endpoint)\nconst verification = await emailManager.verifyMagicLink(token);\nif (verification.valid) {\n  // Log user in\n  console.log('User authenticated:', verification.payload);\n}\n```\n\n## Performance Optimization\n\n### Template Caching\nTemplates are cached after compilation for better performance.\n\n### Provider Pooling\nEmail providers reuse connections where possible.\n\n### Batch Processing\nProcess multiple emails efficiently:\n\n```typescript\nconst emails = [\n  { to: 'user1@example.com', subject: 'Email 1', html: '<p>Content 1</p>' },\n  { to: 'user2@example.com', subject: 'Email 2', html: '<p>Content 2</p>' },\n  // ... more emails\n];\n\nconst results = await Promise.all(\n  emails.map(email => emailManager.sendEmail(email))\n);\n```\n\n### Rate Limiting\nConfigure rate limits per provider to respect API limits:\n\n```typescript\n{\n  rateLimit: {\n    maxPerMinute: 100,\n    maxPerHour: 1000,\n    maxPerDay: 10000\n  }\n}\n```\n\n## System Status\n\nGet comprehensive system statistics:\n\n```typescript\nconst stats = emailManager.getSystemStats();\n\nconsole.log('Templates:', stats.templates);\n// { total: 5, active: 4, inactive: 1, byCategory: { onboarding: 2, marketing: 3 } }\n\nconsole.log('Providers:', stats.providers);\n// { total: 2, active: 2, inactive: 0, byType: { sendgrid: 1, mailgun: 1 } }\n\nconsole.log('Scheduler:', stats.scheduler);\n// { isRunning: true, totalInQueue: 3, scheduled: 3, overdue: 0 }\n```\n\n## Shutdown\n\nAlways properly shutdown the email manager:\n\n```typescript\nemailManager.shutdown();\n```\n\nThis stops the scheduler and cleans up resources.\n\n---\n\n## Enhanced Features\n\nThe `EnhancedEmailManager` extends the base `EmailManager` with calendar invites, batch sending, subscription management, unsubscribe flows, and more. All enhanced features are available through a single import:\n\n```typescript\nimport { EnhancedEmailManager, EnhancedEmailManagerConfig } from '@bernierllc/email-manager';\n```\n\n### Calendar Invites\n\nSend calendar invitations (ICS) and cancellations as email attachments. The manager generates valid ICS content using the `@bernierllc/email-calendar` package and attaches it automatically.\n\n#### Send a Calendar Invite\n\n```typescript\nimport { EnhancedEmailManager, CalendarEvent } from '@bernierllc/email-manager';\n\nconst event: CalendarEvent = {\n  uid: 'meeting-2025-q2@example.com',\n  title: 'Q2 Business Review',\n  description: 'Quarterly review of business metrics.',\n  start: new Date('2025-07-15T14:00:00Z'),\n  end: new Date('2025-07-15T15:30:00Z'),\n  location: 'Conference Room A',\n  organizer: { email: 'organizer@example.com', name: 'Alice Johnson' },\n  attendees: [\n    { email: 'bob@example.com', name: 'Bob Smith', role: 'REQ-PARTICIPANT' },\n    { email: 'carol@example.com', name: 'Carol Lee', role: 'OPT-PARTICIPANT' },\n  ],\n};\n\nconst result = await manager.sendCalendarInvite(\n  event,\n  ['bob@example.com', 'carol@example.com'],\n);\n\nconsole.log('Invite sent:', result.success);\n```\n\nYou can customize the subject and body:\n\n```typescript\nconst result = await manager.sendCalendarInvite(event, recipients, {\n  subject: 'You are invited: Q2 Business Review',\n  htmlBody: '<h2>Q2 Review</h2><p>Please join us for the quarterly review.</p>',\n  textBody: 'Please join us for the Q2 quarterly review.',\n  metadata: { campaign: 'internal-meetings' },\n});\n```\n\n#### Cancel a Calendar Event\n\n```typescript\nimport { CalendarAttendee } from '@bernierllc/email-manager';\n\nconst organizer: CalendarAttendee = { email: 'organizer@example.com', name: 'Alice' };\nconst attendees: CalendarAttendee[] = [\n  { email: 'bob@example.com', name: 'Bob' },\n  { email: 'carol@example.com', name: 'Carol' },\n];\n\nconst result = await manager.sendCalendarCancel(\n  'meeting-2025-q2@example.com', // UID of the original event\n  organizer,\n  attendees,\n  {\n    subject: 'Cancelled: Q2 Business Review',\n    htmlBody: '<p>The Q2 Business Review has been cancelled.</p>',\n  },\n);\n```\n\n> See [`examples/calendar-invites.ts`](examples/calendar-invites.ts) for a complete working example.\n\n---\n\n### Batch Sending\n\nSend large volumes of email with built-in concurrency control, rate limiting, retry logic, and progress tracking. Powered by `@bernierllc/email-batch-sender`.\n\n#### Basic Batch Send\n\n```typescript\nimport { BatchEmailInput } from '@bernierllc/email-manager';\n\nconst emails: BatchEmailInput[] = [\n  {\n    toEmail: 'alice@example.com',\n    subject: 'Newsletter - July',\n    htmlContent: '<h1>Newsletter</h1><p>Hello Alice...</p>',\n    textContent: 'Newsletter\\n\\nHello Alice...',\n  },\n  {\n    toEmail: 'bob@example.com',\n    subject: 'Newsletter - July',\n    htmlContent: '<h1>Newsletter</h1><p>Hello Bob...</p>',\n  },\n];\n\nconst result = await manager.sendBatch(emails);\nconsole.log(`Sent: ${result.succeeded}/${result.total}, Failed: ${result.failed}`);\n```\n\n#### Batch Send with Rate Limiting and Retry\n\n```typescript\nimport { BatchSenderOptions } from '@bernierllc/email-manager';\n\nconst options: BatchSenderOptions = {\n  concurrency: 5,               // Up to 5 emails in parallel\n  rateLimit: {\n    maxPerSecond: 10,            // Respect provider rate limits\n  },\n  retry: {\n    maxRetries: 3,               // Retry failed sends\n    initialDelayMs: 1000,        // 1 second initial delay\n    backoffMultiplier: 2,        // Exponential backoff\n  },\n  failureStrategy: 'continue',  // Keep sending even if some fail\n};\n\nconst result = await manager.sendBatch(emails, options);\n```\n\n#### Batch Send with Progress Tracking\n\n```typescript\nconst result = await manager.sendBatch(emails, {\n  concurrency: 3,\n  onProgress: (progress) => {\n    const pct = ((progress.completed / progress.total) * 100).toFixed(0);\n    console.log(`Progress: ${pct}% - ${progress.succeeded} sent, ${progress.failed} failed`);\n  },\n});\n```\n\n#### Abort on Failure\n\nFor critical emails where partial delivery is unacceptable:\n\n```typescript\nconst result = await manager.sendBatch(criticalEmails, {\n  concurrency: 1,\n  failureStrategy: 'abort',  // Stop immediately on first failure\n  retry: { maxRetries: 5 },\n});\n\nif (result.aborted) {\n  console.error('Batch was aborted due to a failure');\n}\n```\n\n> See [`examples/batch-sending.ts`](examples/batch-sending.ts) for complete examples.\n\n---\n\n### Subscription Management\n\nManage subscriber lists, add/remove subscribers, and handle bulk imports. The subscription system uses `@bernierllc/email-subscription` under the hood.\n\n#### Create Subscriber Lists\n\n```typescript\nconst newsletter = await manager.createSubscriberList('Monthly Newsletter', {\n  description: 'Monthly product newsletter subscribers',\n  metadata: { category: 'marketing' },\n});\n\nconsole.log('List ID:', newsletter.id);\n```\n\n#### Add Subscribers\n\n```typescript\n// Individual subscriber\nawait manager.addSubscriber(newsletter.id, {\n  email: 'alice@example.com',\n  name: 'Alice Johnson',\n});\n\n// Bulk add (skips duplicates and suppressed emails)\nconst result = await manager.addSubscribers(newsletter.id, [\n  { email: 'user1@example.com', name: 'User One' },\n  { email: 'user2@example.com', name: 'User Two' },\n  { email: 'user3@example.com', name: 'User Three' },\n]);\n\nconsole.log(`Added: ${result.added}, Skipped: ${result.skipped}`);\n```\n\n#### Look Up and Remove Subscribers\n\n```typescript\n// Look up a subscriber\nconst subscriber = await manager.getSubscriber(newsletter.id, 'alice@example.com');\nif (subscriber) {\n  console.log('Status:', subscriber.status);\n}\n\n// Remove a subscriber\nconst removed = await manager.removeSubscriber(newsletter.id, 'alice@example.com');\n```\n\n#### Delete a List\n\n```typescript\nconst deleted = await manager.deleteSubscriberList(newsletter.id);\n```\n\n---\n\n### Unsubscribe Flows\n\nGenerate signed unsubscribe URLs and process unsubscribe requests. Requires the `subscription.unsubscribe` configuration.\n\n#### Configuration\n\n```typescript\nconst config: EnhancedEmailManagerConfig = {\n  providers: [/* ... */],\n  subscription: {\n    enabled: true,\n    unsubscribe: {\n      baseUrl: 'https://example.com/unsubscribe',\n      secret: process.env.UNSUBSCRIBE_SECRET!,\n      expiresIn: 30 * 24 * 60 * 60, // 30 days\n    },\n  },\n};\n```\n\n#### Generate Unsubscribe URL\n\n```typescript\nconst url = manager.generateUnsubscribeUrl('alice@example.com', listId);\n// Returns: https://example.com/unsubscribe?token=<signed-jwt>\n```\n\n#### Process Unsubscribe Request\n\nIn your web server's unsubscribe endpoint:\n\n```typescript\napp.get('/unsubscribe', async (req, res) => {\n  const token = req.query.token as string;\n\n  try {\n    await manager.processUnsubscribe(token);\n    res.send('You have been unsubscribed successfully.');\n  } catch (error) {\n    res.status(400).send('Invalid or expired unsubscribe link.');\n  }\n});\n```\n\n#### Send Email with List-Unsubscribe Headers\n\nAutomatically generate and attach RFC 2369 / RFC 8058 `List-Unsubscribe` headers:\n\n```typescript\nconst result = await manager.sendWithUnsubscribe(\n  {\n    to: 'alice@example.com',\n    subject: 'Monthly Newsletter',\n    html: '<p>Newsletter content...</p>',\n  },\n  listId,                  // Subscriber list ID\n  'alice@example.com',     // Recipient for token generation\n  true,                    // Enable one-click unsubscribe (RFC 8058)\n);\n```\n\n> See [`examples/subscription-management.ts`](examples/subscription-management.ts) for the full lifecycle.\n\n---\n\n### Suppression\n\nCheck if an email address is suppressed before sending. Emails become suppressed when a subscriber unsubscribes or when bounces/complaints are processed.\n\n```typescript\n// Check global suppression\nconst isSuppressed = await manager.isSuppressed('alice@example.com');\n\n// Check list-specific suppression\nconst isListSuppressed = await manager.isSuppressed('alice@example.com', listId);\n\nif (isSuppressed) {\n  console.log('Skipping send - email is suppressed');\n}\n```\n\n---\n\n### Custom Subscription Store\n\nBy default, the manager uses an in-memory subscription store. For production, replace it with a database-backed implementation:\n\n```typescript\nimport { SubscriptionStore } from '@bernierllc/email-manager';\n\nclass DatabaseSubscriptionStore implements SubscriptionStore {\n  // Implement all SubscriptionStore methods using your database\n  // (createList, getList, addSubscriber, etc.)\n}\n\nconst store = new DatabaseSubscriptionStore();\nmanager.setSubscriptionStore(store);\n```\n\n---\n\n### Custom Headers\n\nAdd custom email headers for threading, read receipts, and other purposes by including them in the `metadata.headers` field.\n\n#### Email Threading\n\n```typescript\nconst result = await manager.sendEmail({\n  to: 'colleague@example.com',\n  subject: 'Re: Project Discussion',\n  html: '<p>I agree with the proposed approach.</p>',\n  metadata: {\n    headers: {\n      'In-Reply-To': '<original-message-id@example.com>',\n      'References': '<original-message-id@example.com>',\n    },\n  },\n});\n```\n\n#### List-Unsubscribe Headers (Standalone)\n\nUse the `createListUnsubscribeHeaders` utility directly:\n\n```typescript\nimport { createListUnsubscribeHeaders } from '@bernierllc/email-manager';\n\nconst headers = createListUnsubscribeHeaders(\n  'https://example.com/unsubscribe?id=123',   // HTTPS unsubscribe URL\n  'mailto:unsub@example.com?subject=unsub',    // Optional mailto fallback\n  true,                                         // One-click unsubscribe (RFC 8058)\n);\n\nconst result = await manager.sendEmail({\n  to: 'subscriber@example.com',\n  subject: 'Weekly Digest',\n  html: '<p>Your digest...</p>',\n  metadata: { headers },\n});\n```\n\n#### MDN (Read Receipt) Request\n\n```typescript\nconst result = await manager.sendEmail({\n  to: 'recipient@example.com',\n  subject: 'Contract for Review',\n  html: '<p>Please confirm receipt of the attached contract.</p>',\n  metadata: {\n    headers: {\n      'Disposition-Notification-To': 'sender@example.com',\n    },\n  },\n});\n```\n\n> See [`examples/attachments-and-headers.ts`](examples/attachments-and-headers.ts) for complete examples.\n\n---\n\n### Attachments\n\nSend emails with file attachments, inline images, or both.\n\n#### File Attachment\n\n```typescript\nconst result = await manager.sendEmail({\n  to: 'recipient@example.com',\n  subject: 'Report Attached',\n  html: '<p>Please find the report attached.</p>',\n  attachments: [\n    {\n      filename: 'report.pdf',\n      content: fs.readFileSync('/path/to/report.pdf'),\n      contentType: 'application/pdf',\n    },\n  ],\n});\n```\n\n#### String Content Attachment\n\n```typescript\nconst csvData = 'Name,Email\\nAlice,alice@example.com\\nBob,bob@example.com\\n';\n\nconst result = await manager.sendEmail({\n  to: 'manager@example.com',\n  subject: 'User Export',\n  html: '<p>User export attached.</p>',\n  attachments: [\n    {\n      filename: 'users.csv',\n      content: csvData,  // String content is also supported\n      contentType: 'text/csv',\n    },\n  ],\n});\n```\n\n#### Inline / Embedded Image\n\nReference inline images using a Content-ID (CID):\n\n```typescript\nconst result = await manager.sendEmail({\n  to: 'customer@example.com',\n  subject: 'Order Confirmation',\n  html: `\n    <img src=\"cid:company-logo\" alt=\"Logo\" />\n    <h2>Order Confirmed!</h2>\n  `,\n  attachments: [\n    {\n      filename: 'logo.png',\n      content: fs.readFileSync('/path/to/logo.png'),\n      contentType: 'image/png',\n      contentDisposition: 'inline',\n      cid: 'company-logo',  // Matches src=\"cid:company-logo\" in HTML\n    },\n  ],\n});\n```\n\n#### Multiple Attachments\n\n```typescript\nconst result = await manager.sendEmail({\n  to: 'team@example.com',\n  subject: 'Brand Kit Assets',\n  html: '<p>Attached are the brand assets.</p>',\n  attachments: [\n    {\n      filename: 'guidelines.pdf',\n      content: fs.readFileSync('/path/to/guidelines.pdf'),\n      contentType: 'application/pdf',\n    },\n    {\n      filename: 'logo.png',\n      content: fs.readFileSync('/path/to/logo.png'),\n      contentType: 'image/png',\n    },\n    {\n      filename: 'palette.json',\n      content: JSON.stringify({ primary: '#0066CC' }, null, 2),\n      contentType: 'application/json',\n    },\n  ],\n});\n```\n\n> See [`examples/attachments-and-headers.ts`](examples/attachments-and-headers.ts) for complete examples.\n\n---\n\n## Capability Matrix & Smart Routing\n\nThe email manager includes a full capability matrix that maps every feature to every provider, enabling smart routing decisions and graceful degradation.\n\n### Capability Matrix\n\nEach feature is classified per provider with one of four source types:\n\n| Source | Meaning |\n|--------|---------|\n| `provider` | Natively supported by the email provider's API |\n| `platform` | Implemented by the platform (polyfilled locally) |\n| `enhanced` | Built on top of provider primitives with added value |\n| `unsupported` | Not available for this provider |\n\n#### Provider Feature Support\n\n| Feature | SendGrid | Mailgun | Postmark | SES | SMTP |\n|---------|----------|---------|----------|-----|------|\n| sendEmail | provider | provider | provider | provider | provider |\n| batchSend | provider | provider | provider | provider | platform |\n| providerTemplates | provider | provider | provider | provider | unsupported |\n| localTemplates | platform | platform | platform | platform | platform |\n| calendarInvites | platform | platform | platform | platform | platform |\n| calendarEventMgmt | platform | platform | platform | platform | platform |\n| webhooksReceive | provider | provider | provider | provider | unsupported |\n| webhookNormalization | enhanced | enhanced | enhanced | enhanced | unsupported |\n| deliveryTracking | provider | provider | provider | provider | unsupported |\n| inboundEmailParsing | enhanced | enhanced | enhanced | enhanced | unsupported |\n| subscriptionMgmt | enhanced | enhanced | platform | platform | platform |\n| suppressionLists | provider | provider | provider | provider | platform |\n| unsubscribeUrlGeneration | platform | platform | platform | platform | platform |\n| scheduledSend | provider | provider | platform | platform | platform |\n| openClickTracking | provider | provider | provider* | unsupported | unsupported |\n| emailContentParsing | platform | platform | platform | platform | platform |\n| emailHeaderMgmt | platform | platform | platform | platform | platform |\n| attachments | provider | provider | provider | provider | provider |\n| advancedAttachmentProcessing | platform | platform | platform | platform | platform |\n| dkimSpf | provider | provider | provider | provider | unsupported |\n| linkBranding | provider | provider | unsupported | unsupported | unsupported |\n| retryResilience | platform | platform | platform | platform | platform |\n| multiProviderFailover | platform | platform | platform | platform | platform |\n\n*Postmark supports open tracking only; click tracking is not available.\n\nNotable provider-specific limitations:\n- **SendGrid** `scheduledSend`: 72-hour maximum scheduling window\n- **Mailgun** `scheduledSend`: 3-day maximum scheduling window\n- **SES** `webhooksReceive` / `deliveryTracking`: Requires SNS topic configuration\n\n### Routing Configuration\n\nCapability-aware routing is opt-in. Enable it by adding a `routing` section to your config:\n\n```typescript\nimport { EmailManager, EmailManagerConfig } from '@bernierllc/email-manager';\n\nconst config: EmailManagerConfig = {\n  providers: [\n    { id: 'sg', name: 'SendGrid', type: 'sendgrid', config: { apiKey: '...' }, isActive: true, priority: 1 },\n    { id: 'mg', name: 'Mailgun', type: 'mailgun', config: { apiKey: '...', domain: '...' }, isActive: true, priority: 2 },\n  ],\n  routing: {\n    strategy: 'primary-failover',\n    featureOverrides: {\n      // Always use platform implementation for local templates\n      localTemplates: { behavior: 'platform-always' },\n      // Throw an error if no native provider supports the feature\n      openClickTracking: { behavior: 'error' },\n    },\n  },\n  degradation: {\n    logLevel: 'warn',\n    includeDocLinks: true,\n    docsBaseUrl: 'https://docs.example.com/email',\n  },\n};\n\nconst manager = new EmailManager(config);\n```\n\n#### Feature Override Behaviors\n\n| Behavior | Description |\n|----------|-------------|\n| `native-first` | (Default) Prefer providers with native or enhanced support; fall back to platform if none found |\n| `platform-always` | Always use the platform implementation, even if the provider supports it natively |\n| `error` | Throw `FeatureUnsupportedError` if no provider has native or enhanced support |\n\n### Degradation Behavior\n\nWhen a feature is routed to a provider via platform polyfill (not native), the system records degradation information:\n\n- **`platform` source features** (e.g., SMTP `batchSend`): Emails are sent sequentially rather than in a true batch. The `SendResult.routing` field indicates `degraded: true` with a `degradationReason`.\n- **`unsupported` features** (e.g., SMTP `webhooksReceive`): The router skips the provider entirely and tries the next in priority order. If no provider supports the feature, a `FeatureUnsupportedError` is thrown.\n- **Degradation logging**: Controlled by `degradation.logLevel` (`'silent'` | `'info'` | `'warn'` | `'error'`). When `includeDocLinks` is `true`, log messages include links to degradation documentation.\n\n### Redis Resolver Setup\n\nBy default, the capability matrix is resolved from an in-memory snapshot. For shared or dynamic capability data across multiple instances, use the Redis-backed resolver:\n\n```bash\n# Set the environment variable to enable Redis resolver auto-detection\nexport EMAIL_MANAGER_REDIS_URL=\"redis://localhost:6379\"\n```\n\nThe factory (`createCapabilityResolver`) automatically detects the environment variable and creates a `SafeCapabilityResolver` that wraps a Redis resolver with an in-memory fallback. If `ioredis` is not installed or Redis is unavailable, it falls back to the in-memory resolver silently.\n\n#### Redis Resolver Options\n\n```typescript\nimport { createCapabilityResolver } from '@bernierllc/email-manager';\n\nconst resolver = await createCapabilityResolver({\n  namespace: 'myapp:capabilities', // Redis key namespace (default: 'email-manager:capabilities')\n  ttl: 3600,                       // Cache TTL in seconds (default: varies by implementation)\n});\n```\n\nYou can also provide your own resolver implementation:\n\n```typescript\nconst config: EmailManagerConfig = {\n  providers: [/* ... */],\n  routing: {\n    strategy: 'primary-failover',\n    capabilityResolver: myCustomResolver, // Must implement CapabilityResolver interface\n  },\n};\n```\n\n### RoutingMetadata in Responses\n\nWhen routing is active, `SendResult` includes a `routing` field:\n\n```typescript\nconst result = await manager.sendEmail(emailData);\n\nif (result.routing) {\n  console.log('Provider used:', result.routing.provider);\n  console.log('Feature:', result.routing.feature);\n  console.log('Source:', result.routing.source);       // 'provider' | 'platform' | 'enhanced' | 'unsupported'\n  console.log('Degraded:', result.routing.degraded);   // true if platform polyfill was used\n  console.log('Reason:', result.routing.degradationReason);\n  console.log('Tried:', result.routing.attemptedProviders); // providers checked before selecting\n}\n```\n\nThe `RoutingMetadata` interface:\n\n```typescript\ninterface RoutingMetadata {\n  provider: string;\n  feature: string;\n  source: 'provider' | 'platform' | 'enhanced' | 'unsupported';\n  degraded: boolean;\n  degradationReason?: string;\n  attemptedProviders?: string[];\n}\n```\n\n### Migration Guide from v0.4.x\n\nThe capability matrix and routing system is fully backward compatible. Existing code continues to work without changes:\n\n- **No routing config**: When `routing` is omitted from the config, the manager uses the same provider selection logic as before (priority-based failover).\n- **No degradation config**: When `degradation` is omitted, degradation events are not logged.\n- **Opt-in**: To enable capability-aware routing, add a `routing` section to your config. The `RoutingMetadata` field on `SendResult` only appears when routing is active.\n- **No new required dependencies**: The Redis resolver is optional and only activated when `EMAIL_MANAGER_REDIS_URL` is set and `ioredis` is installed.\n\n---\n\n## Re-exported Types\n\nFor convenience, the email-manager re-exports types and utilities from its sub-packages so consumers do not need direct dependencies:\n\n| Package | Re-exported Items |\n|---------|-------------------|\n| `@bernierllc/email-calendar` | `CalendarEvent`, `CalendarAttendee`, `CalendarMethod`, `createCalendarInvite`, `createCalendarCancel`, `toCalendarAttachment` |\n| `@bernierllc/email-batch-sender` | `BatchSenderOptions`, `BatchResult`, `BatchEmailInput`, `BatchProgress`, `BatchSender`, `createBatchSender` |\n| `@bernierllc/email-subscription` | `SubscriberList`, `Subscriber`, `SubscriptionStore`, `AddSubscriberInput`, `CreateListOptions`, `BulkAddResult`, `UnsubscribeManager`, `SuppressionManager`, `InMemorySubscriptionStore` |\n| `@bernierllc/email-headers` | `EmailHeaders`, `ThreadingHeaders`, `ListUnsubscribeHeaders`, `createListUnsubscribeHeaders` |\n| `@bernierllc/email-attachments` | `AttachmentInput`, `AttachmentLimits`, `AttachmentValidationResult` |\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n\n## See Also\n\n- [@bernierllc/email-sender](../email-sender) - Core email sending functionality\n- [@bernierllc/template-engine](../template-engine) - Template rendering engine\n- [@bernierllc/magic-link](../magic-link) - Secure token generation","readmeFilename":"README.md"}