{"_id":"@bernierllc/email-template-engine","_rev":"8-1ffd6702d30b817e4c086e67c20f8d5a","name":"@bernierllc/email-template-engine","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"@bernierllc/email-template-engine","version":"1.0.0","keywords":["email","template","handlebars","rendering","html-to-text"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-template-engine@1.0.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"67a389a22d093843aa3261532fe5e90810b65352","tarball":"https://registry.npmjs.org/@bernierllc/email-template-engine/-/email-template-engine-1.0.0.tgz","fileCount":30,"integrity":"sha512-NtA/zujq10sEoGtNjQs6GdPWMC6t2UmTJNYHiuKkKtQ+7b1FictkPUiHROwtiiMWxfIivBmjTc43axbbHsajPQ==","signatures":[{"sig":"MEYCIQDEnCio3CupvP1d2Pvijv7FWSfteke0iidx7OlvkFinBgIhAMy1EdZ9xT1oCBwJaBBMDna0VL9lzPcdJ8ApnUGL3pGZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102978},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d8ab39b42c6bcfaabc1a5905dcb0312df7ff52fa","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"bernierllc":{"integration":{"logger":"optional","neverhub":"optional","neveradmin":"not-applicable"}},"_npmVersion":"11.6.2","description":"Email template processing engine with compilation, rendering, and text generation","directories":{},"_nodeVersion":"25.2.0","dependencies":{"handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-template-engine_1.0.0_1763330172073_0.08819827776857614","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bernierllc/email-template-engine","version":"1.0.1","keywords":["email","template","handlebars","rendering","html-to-text"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-template-engine@1.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"1b71d7cb15978db8c3911fbb9339d9d1dbf7ccd7","tarball":"https://registry.npmjs.org/@bernierllc/email-template-engine/-/email-template-engine-1.0.1.tgz","fileCount":30,"integrity":"sha512-3V4gZETHNIvglhdnOwAqy3dOV5mTRNqkRaPusRR3xykdADaBgkIsUH8ucn4gc0DYEJPSjuHzG68/6nHRxtWsxQ==","signatures":[{"sig":"MEUCIQC6PKFH+hkuMKJ42o+Id0TROZXXm3BvxU4ioS+MlStcZAIgR2W/vXpcNVNXK6yDIKg5TkKdtOE8JX8p7HclskK2I0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102978},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d8ab39b42c6bcfaabc1a5905dcb0312df7ff52fa","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"bernierllc":{"integration":{"logger":"optional","neverhub":"optional","neveradmin":"not-applicable"}},"_npmVersion":"11.6.2","description":"Email template processing engine with compilation, rendering, and text generation","directories":{},"_nodeVersion":"25.2.0","dependencies":{"handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-template-engine_1.0.1_1763330301717_0.2975820348312752","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bernierllc/email-template-engine","version":"1.0.2","keywords":["email","template","handlebars","rendering","html-to-text"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-template-engine@1.0.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"502d71adfa0ae432043268816807ee3930a5611a","tarball":"https://registry.npmjs.org/@bernierllc/email-template-engine/-/email-template-engine-1.0.2.tgz","fileCount":29,"integrity":"sha512-t92BB0doS54pJ84iL6ogfgM8v5vU4LvRS1Yqg754ga4tmU0Aks4EZUN5T3kaCNEXnzfhlWCulYcqi1EQxFZx8g==","signatures":[{"sig":"MEYCIQClCcWi9yTMcc3E9QqR4fkj5YzUaP3KPMgtsuJOCZ9/igIhAKrC5NRBoHyfatfRwdzT0km5TWQEq9K1sZAPPnp7bnv6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104988},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"38ef8573abdc0a7543744fd1ae29e55ce8161622","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"bernierllc":{"integration":{"logger":"optional","neverhub":"optional","neveradmin":"not-applicable"}},"_npmVersion":"11.6.2","description":"Email template processing engine with compilation, rendering, and text generation","directories":{},"_nodeVersion":"25.2.0","dependencies":{"handlebars":"^4.7.8","html-to-text":"9.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/html-to-text":"^9.0.4","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-template-engine_1.0.2_1763333826439_0.3635298338584514","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bernierllc/email-template-engine","version":"1.2.0","keywords":["email","template","handlebars","rendering","html-to-text"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-template-engine@1.2.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"ef4ff3f88c733e7ee27ef0a0abe22e169f0669a0","tarball":"https://registry.npmjs.org/@bernierllc/email-template-engine/-/email-template-engine-1.2.0.tgz","fileCount":29,"integrity":"sha512-+I+UM074a3t+G5i1QyvLOMZTHBsNBB+Tnd6zEjRHJd5U1tTNw7IWKX0jidhHSdUuFeV3Mth7ub7ciqzLcqx4mg==","signatures":[{"sig":"MEUCIQCyXGYc8Nx+UluVzkvMTpOpRI7PRtyXhy23hGehuamUqgIgQnFk5FnK/hP91vC9HaGqzsJAb8z5MEaFyPGw6K5qMkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123408},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:961fbb99-7268-42e6-bad7-fba9da811d28"}},"bernierllc":{"integration":{"logger":"optional","neverhub":"optional","neveradmin":"not-applicable"}},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Email template processing engine with compilation, rendering, and text generation","directories":{},"_nodeVersion":"20.19.6","dependencies":{"handlebars":"^4.7.8","html-to-text":"9.0.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/html-to-text":"^9.0.4","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-template-engine_1.2.0_1767642305825_0.4985108874583888","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@bernierllc/email-template-engine","version":"1.2.1","keywords":["email","template","handlebars","rendering","html-to-text"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-template-engine@1.2.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"6cf212b90d3cd1b57f778c0d01c992e3c7ca7946","tarball":"https://registry.npmjs.org/@bernierllc/email-template-engine/-/email-template-engine-1.2.1.tgz","fileCount":29,"integrity":"sha512-eIGOG7yrYMokhHHegWpcuz+Z+BJu41V35n7PUx2WlxTU9uRJuuALdbS8fD1GJhr+Tkz+q69I+nPWLOSAO0KGdQ==","signatures":[{"sig":"MEUCIEokvmTk7Ya7ifOvt1oev9hvGaIpvCTe7LHj9X9aNPvGAiEAwrz8u5taY+KLpJuofX0nIG9iY2BN0Bx8772zVjmZINM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123581},"main":"dist/index.js","_from":"file:bernierllc-email-template-engine-1.2.1.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:961fbb99-7268-42e6-bad7-fba9da811d28"}},"_resolved":"/tmp/67b50746aa0f46e7eedbc6236cdc02f7/bernierllc-email-template-engine-1.2.1.tgz","_integrity":"sha512-eIGOG7yrYMokhHHegWpcuz+Z+BJu41V35n7PUx2WlxTU9uRJuuALdbS8fD1GJhr+Tkz+q69I+nPWLOSAO0KGdQ==","bernierllc":{"integration":{"logger":"optional","neverhub":"optional","neveradmin":"not-applicable"}},"_npmVersion":"11.11.0","description":"Email template processing engine with compilation, rendering, and text generation","directories":{},"_nodeVersion":"20.20.0","dependencies":{"handlebars":"^4.7.8","html-to-text":"9.0.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/html-to-text":"^9.0.4","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-template-engine_1.2.1_1773078442446_0.4493519150253271","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@bernierllc/email-template-engine","version":"1.2.2","keywords":["email","template","handlebars","rendering","html-to-text"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-template-engine@1.2.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"57f7d6748763526ea142f9b37109f771bbcfd75f","tarball":"https://registry.npmjs.org/@bernierllc/email-template-engine/-/email-template-engine-1.2.2.tgz","fileCount":29,"integrity":"sha512-IuGdiaW4/+inreQzCBHSz+yd1N9eOhVyWp6NnPc6m0Dmz4Vvp4RFD6I7vDmIpNg0wPDY12iAc5nOvnRJQ6umsQ==","signatures":[{"sig":"MEUCIQCK4Q7KiJzoxjp8ZmZ0zjPh3IWlnamU0nMpwWUaEAynFgIgDJeGSNcNBD5zhwy2OLSw+RU1/Y/uWvf0Dk6r3Lsno9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123812},"main":"dist/index.js","_from":"file:bernierllc-email-template-engine-1.2.2.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:961fbb99-7268-42e6-bad7-fba9da811d28"}},"_resolved":"/home/runner/work/tools/tools/packages/core/email-template-engine/bernierllc-email-template-engine-1.2.2.tgz","_integrity":"sha512-IuGdiaW4/+inreQzCBHSz+yd1N9eOhVyWp6NnPc6m0Dmz4Vvp4RFD6I7vDmIpNg0wPDY12iAc5nOvnRJQ6umsQ==","bernierllc":{"integration":{"logger":"optional","neverhub":"optional","neveradmin":"not-applicable"}},"_npmVersion":"11.11.0","description":"Email template processing engine with compilation, rendering, and text generation","directories":{},"_nodeVersion":"20.20.0","dependencies":{"handlebars":"^4.7.8","html-to-text":"9.0.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/html-to-text":"^9.0.4","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-template-engine_1.2.2_1773163168708_0.659796513105047","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bernierllc/email-template-engine","version":"1.4.0","keywords":["email","template","handlebars","rendering","html-to-text"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/email-template-engine@1.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"c75c03ccaa4c9ca82d6a0d58c3438d5ca311ffd1","tarball":"https://registry.npmjs.org/@bernierllc/email-template-engine/-/email-template-engine-1.4.0.tgz","fileCount":14,"integrity":"sha512-4HCdlML3r6qe8jDWBzfl76lbMLAavekswqpSiAIJ8z3kBO8Kxl2ybPh2Mln+HjaQwRl00GD3ATLSx59StvL5Pw==","signatures":[{"sig":"MEQCICno72cqROXI3m7R7uc7E1fYavTkQp2qStVm34oElICKAiBSUG9ZPP1EjZOFZYLiRsuvNaaOj29Y9Pnv7AUvTFYp4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41430},"main":"dist/index.js","_from":"file:bernierllc-email-template-engine-1.4.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:961fbb99-7268-42e6-bad7-fba9da811d28"}},"_resolved":"/home/runner/work/tools/tools/packages/core/email-template-engine/bernierllc-email-template-engine-1.4.0.tgz","_integrity":"sha512-4HCdlML3r6qe8jDWBzfl76lbMLAavekswqpSiAIJ8z3kBO8Kxl2ybPh2Mln+HjaQwRl00GD3ATLSx59StvL5Pw==","bernierllc":{"integration":{"logger":"optional","neverhub":"optional","neveradmin":"not-applicable"}},"_npmVersion":"11.14.1","description":"Email template processing engine with compilation, rendering, and text generation","directories":{},"_nodeVersion":"20.20.2","dependencies":{"handlebars":"^4.7.8","html-to-text":"9.0.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/html-to-text":"^9.0.4","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/email-template-engine_1.4.0_1779241151177_0.6156349464703244","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@bernierllc/email-template-engine","version":"1.5.0","description":"Email template processing engine with compilation, rendering, and text generation","main":"dist/index.js","types":"dist/index.d.ts","keywords":["email","template","handlebars","rendering","html-to-text"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","dependencies":{"handlebars":"^4.7.8","html-to-text":"9.0.5"},"peerDependencies":{"@bernierllc/logger":"^1.0.0"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true}},"devDependencies":{"@types/html-to-text":"^9.0.4","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"bernierllc":{"integration":{"neverhub":"optional","neveradmin":"not-applicable","logger":"optional"}},"scripts":{"build":"tsc","test":"jest --watch","test:run":"jest","test:coverage":"jest --coverage","lint":"eslint src --ext .ts","clean":"rm -rf dist"},"_id":"@bernierllc/email-template-engine@1.5.0","_integrity":"sha512-zNVNReh/skVyLN0gkKQcOH0U8FG3uKB+c/0tf8d7jbl17lbIvSzcpLFnrUSTyPlYTPcVp3ZUxRph5UeBCs7RHw==","_resolved":"/home/runner/work/tools/tools/packages/core/email-template-engine/bernierllc-email-template-engine-1.5.0.tgz","_from":"file:bernierllc-email-template-engine-1.5.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-zNVNReh/skVyLN0gkKQcOH0U8FG3uKB+c/0tf8d7jbl17lbIvSzcpLFnrUSTyPlYTPcVp3ZUxRph5UeBCs7RHw==","shasum":"45176b8dcfbe79ed46b88a04ff0fd9a5e236fbc8","tarball":"https://registry.npmjs.org/@bernierllc/email-template-engine/-/email-template-engine-1.5.0.tgz","fileCount":14,"unpackedSize":41430,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCx9pIb0MZEH/OSF0JjfWTa4gF+h0whVUGwZedNLDDmNwIhALjkWQLNScAHFSVkDWLQu1iMueQsP1sxE7QPym0yC/Bt"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:961fbb99-7268-42e6-bad7-fba9da811d28"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/email-template-engine_1.5.0_1779249896486_0.04883506516205727"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-16T21:56:11.855Z","modified":"2026-05-20T04:04:56.910Z","1.0.0":"2025-11-16T21:56:12.275Z","1.0.1":"2025-11-16T21:58:21.926Z","1.0.2":"2025-11-16T22:57:06.633Z","1.2.0":"2026-01-05T19:45:05.980Z","1.2.1":"2026-03-09T17:47:22.622Z","1.2.2":"2026-03-10T17:19:28.853Z","1.4.0":"2026-05-20T01:39:11.338Z","1.5.0":"2026-05-20T04:04:56.772Z"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","keywords":["email","template","handlebars","rendering","html-to-text"],"description":"Email template processing engine with compilation, rendering, and text generation","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/email-template-engine\n\nEmail template processing engine providing template compilation, variable substitution, base template composition, text version generation, and validation.\n\n## Installation\n\n```bash\nnpm install @bernierllc/email-template-engine\n```\n\n## Features\n\n- ✅ **Handlebars Template Compilation** - Compile and render templates with variable substitution\n- ✅ **Base Template Composition** - Combine header, content, and footer into complete emails\n- ✅ **Variable Extraction** - Automatically extract and analyze template variables\n- ✅ **Text Version Generation** - Convert HTML to plain text for email clients\n- ✅ **Template Validation** - Syntax checking and error detection\n- ✅ **Custom Helpers** - Extend with custom Handlebars helpers\n- ✅ **TypeScript Support** - Full type definitions included\n- ✅ **Zero Dependencies on @bernierllc** - Pure core package\n\n## Usage\n\n### Basic Template Rendering\n\n```typescript\nimport { EmailTemplateEngine } from '@bernierllc/email-template-engine';\n\nconst engine = new EmailTemplateEngine();\n\n// Simple variable substitution\nconst result = engine.render(\n  '<p>Hello {{name}}!</p>',\n  { name: 'John' }\n);\n\nconsole.log(result.data); // '<p>Hello John!</p>'\n```\n\n### Building Complete Email Templates\n\n```typescript\nimport { buildEmailTemplate } from '@bernierllc/email-template-engine';\n\nconst result = await buildEmailTemplate(\n  {\n    headerHtml: '<html><body><header>Company Logo</header>',\n    footerHtml: '<footer>&copy; 2025 Company</footer></body></html>',\n  },\n  '<h1>{{title}}</h1><p>{{message}}</p>',\n  {\n    title: 'Welcome',\n    message: 'Thank you for joining!',\n  }\n);\n\nconsole.log(result.data?.html);  // Complete HTML email\nconsole.log(result.data?.text);  // Plain text version\n```\n\n### Variable Extraction\n\n```typescript\nimport { extractTemplateVariables } from '@bernierllc/email-template-engine';\n\nconst template = '<h1>{{title}}</h1><p>{{user.name}}</p>';\nconst result = extractTemplateVariables(template);\n\nconsole.log(result.data);\n// [\n//   { name: 'title', path: 'title', type: 'string', occurrenceCount: 1, ... },\n//   { name: 'user', path: 'user.name', type: 'object', occurrenceCount: 1, ... }\n// ]\n```\n\n### Template Validation\n\n```typescript\nimport { validateEmailTemplate } from '@bernierllc/email-template-engine';\n\nconst result = validateEmailTemplate('<p>{{name}}</p>');\n\nif (!result.data?.isValid) {\n  console.error('Validation errors:', result.data?.errors);\n}\n```\n\n### HTML to Text Conversion\n\n```typescript\nimport { generateTextFromHtml } from '@bernierllc/email-template-engine';\n\nconst result = generateTextFromHtml(\n  '<h1>Welcome</h1><p>Check out our <a href=\"https://example.com\">website</a></p>'\n);\n\nconsole.log(result.data);\n// WELCOME\n//\n// Check out our website [https://example.com]\n```\n\n## API Reference\n\n### EmailTemplateEngine\n\nMain class for template processing.\n\n#### Methods\n\n##### `compile(template: string, options?: CompilationOptions): TemplateResult<HandlebarsTemplateDelegate>`\n\nCompile a Handlebars template into a reusable function.\n\n**Options:**\n- `strict` - Throw on undefined variables (default: false)\n- `noEscape` - Disable HTML escaping (default: false)\n- `helpers` - Custom Handlebars helpers\n- `partials` - Template partials\n\n##### `render(template: string, data: Record<string, unknown>, options?: CompilationOptions): TemplateResult<string>`\n\nCompile and render template with data in one step.\n\n##### `buildCompleteTemplate(baseTemplate: BaseTemplate, content: string, variables?: Record<string, unknown>): Promise<TemplateResult<BuiltTemplate>>`\n\nBuild complete email by combining header, content, and footer.\n\n**Returns:**\n- `html` - Complete rendered HTML\n- `text` - Plain text version\n- `variables` - Extracted template variables\n- `metadata` - Build metrics (time, variable count, content length)\n\n##### `generateTextVersion(html: string, options?: TextGenerationOptions): TemplateResult<string>`\n\nConvert HTML to plain text.\n\n**Options:**\n- `wordwrap` - Wrap at N characters (default: 80)\n- `preserveNewlines` - Keep line breaks (default: true)\n- `uppercaseHeadings` - Uppercase headings (default: true)\n\n##### `extractVariables(template: string): TemplateResult<TemplateVariable[]>`\n\nExtract all variables from template.\n\n##### `validateTemplate(template: string): TemplateResult<TemplateValidationResult>`\n\nValidate template syntax and structure.\n\n### Convenience Functions\n\nAll methods are available as standalone functions:\n\n```typescript\nimport {\n  compileTemplate,\n  renderTemplate,\n  buildEmailTemplate,\n  generateTextFromHtml,\n  extractTemplateVariables,\n  validateEmailTemplate,\n} from '@bernierllc/email-template-engine';\n```\n\n## Default Helpers\n\nBuilt-in Handlebars helpers included:\n\n- `formatDate` - Format date objects\n- `uppercase` - Convert string to uppercase\n- `lowercase` - Convert string to lowercase\n\n```typescript\nconst result = engine.render(\n  '<p>{{uppercase name}}</p>',\n  { name: 'john' }\n);\n// <p>JOHN</p>\n```\n\n## Custom Helpers\n\nAdd your own Handlebars helpers:\n\n```typescript\nconst engine = new EmailTemplateEngine();\n\nconst result = engine.render(\n  '<p>Price: {{currency amount}}</p>',\n  { amount: 99.5 },\n  {\n    helpers: {\n      currency: (value: number) => `$${value.toFixed(2)}`,\n    },\n  }\n);\n// <p>Price: $99.50</p>\n```\n\n## Error Handling\n\nAll methods return a `TemplateResult<T>` object:\n\n```typescript\nconst result = engine.render(template, data);\n\nif (!result.success) {\n  console.error('Template error:', result.error);\n  return;\n}\n\n// Safe to use result.data\nconsole.log(result.data);\n```\n\n## Examples\n\n### Welcome Email\n\n```typescript\nconst engine = new EmailTemplateEngine();\n\nconst welcomeTemplate = `\n  <h1>Welcome to {{companyName}}</h1>\n  <p>Hi {{userName}},</p>\n  <p>Your account email: {{email}}</p>\n  <a href=\"{{verificationLink}}\">Verify Account</a>\n`;\n\nconst result = await engine.buildCompleteTemplate(\n  {\n    headerHtml: '<html><body style=\"font-family: Arial;\">',\n    footerHtml: '<footer>&copy; 2025 Company</footer></body></html>',\n  },\n  welcomeTemplate,\n  {\n    companyName: 'ACME Corp',\n    userName: 'John Doe',\n    email: 'john@example.com',\n    verificationLink: 'https://example.com/verify/abc123',\n  }\n);\n```\n\n### Order Confirmation\n\n```typescript\nconst orderTemplate = `\n  <h1>Order Confirmation</h1>\n  <p>Order #{{orderNumber}}</p>\n  <p>Total: ${{total}}</p>\n  <ul>\n    {{#each items}}\n      <li>{{this.name}} - ${{this.price}}</li>\n    {{/each}}\n  </ul>\n`;\n\nconst result = await buildEmailTemplate(\n  baseTemplate,\n  orderTemplate,\n  {\n    orderNumber: '12345',\n    total: '99.99',\n    items: [\n      { name: 'Product A', price: '49.99' },\n      { name: 'Product B', price: '50.00' },\n    ],\n  }\n);\n```\n\n## Integration Status\n\n- **Logger**: Optional - Logs compilation errors and validation warnings when provided\n- **Docs-Suite**: Ready - Complete API documentation with examples\n- **NeverHub**: Optional - Publishes template processing events when available\n\n### Logger Integration\n\n```typescript\nimport { EmailTemplateEngine } from '@bernierllc/email-template-engine';\nimport { Logger } from '@bernierllc/logger';\n\nconst logger = new Logger({ service: 'email-template-engine' });\nconst engine = new EmailTemplateEngine({ logger });\n\n// Logger automatically logs:\n// - Template compilation errors\n// - Variable extraction issues\n// - Text generation failures\n```\n\n## Performance\n\n- Template compilation: <10ms for typical email templates (5KB)\n- Complete template building: <50ms including text generation\n- Variable extraction: <5ms for templates with 50+ variables\n- Compilation cache available for repeated use\n\n## TypeScript Support\n\nFull TypeScript definitions included:\n\n```typescript\nimport type {\n  BaseTemplate,\n  BuiltTemplate,\n  CompilationOptions,\n  TemplateResult,\n  TemplateValidationResult,\n  TemplateVariable,\n  TextGenerationOptions,\n} from '@bernierllc/email-template-engine';\n```\n\n## See Also\n\n- [@bernierllc/email-template-service](../service/email-template-service.md) - Template CRUD and provider sync\n- [@bernierllc/email-manager](../suite/email-manager.md) - Complete email management suite\n- [@bernierllc/logger](../core/logger.md) - Optional logging integration\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n\nThis package is licensed under a limited-use license. See LICENSE file for details.\n","readmeFilename":"README.md"}