@stacksjs/email 0.75.334 → 0.75.337

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/template.js +1 -1
  2. package/package.json +14 -14
package/dist/template.js CHANGED
@@ -4,4 +4,4 @@ var {require}=import.meta;import{config}from"@stacksjs/config";import{log}from"@
4
4
  `).map((line)=>line.replace(/[ \t]+/g," ").trim()).join(`
5
5
  `).replace(/\n{3,}/g,`
6
6
 
7
- `).trim()}export async function template(templateName,options={}){return templateByName(templateName,options)}export async function templateByName(templateName,options={}){const{variables={},layout="base",subject="",inline=shouldInlineByDefault()}=options,allVariables={...getDefaultVariables(),subject,...variables},resolved=resolveTemplatePath(templateName);if(!resolved){console.warn(`[Email Template] Template "${templateName}" not found`);return{html:"",text:""}}if(resolved.type==="stx")try{const{renderEmail}=await import("@stacksjs/stx"),result=await renderEmail(resolved.path,allVariables,{componentsDir:defaultsResourcesPath("components/Email")});return{...result,html:inlineCss(result.html,{inline})}}catch(error){log.warn(`[email] STX template rendering failed for ${templateName}: ${error instanceof Error?error.message:String(error)}`);return{html:"",text:""}}let content=fs.readFileSync(resolved.path,"utf-8");content=replaceVariables(content,allVariables);let html;if(layout!==!1){const layoutHtml=loadLayout(layout);if(!layoutHtml){console.warn(`[Email Template] Layout "${layout}" not found, using content only`);html=content}else{allVariables.content=safe(content);html=replaceVariables(layoutHtml,allVariables)}}else html=content;html=inlineCss(html,{inline});const text=htmlToText(html);return{html,text}}export function renderHtml(htmlContent,variables={}){const allVariables={...getDefaultVariables(),...variables},html=replaceVariables(htmlContent,allVariables),text=htmlToText(html);return{html,text}}export function templateExists(templateName){return resolveTemplatePath(templateName)!==null}export function listTemplates(){const emailsPath=resourcesPath("emails");if(!fs.existsSync(emailsPath))return[];const templates=[];function scanDir(dir,prefix=""){const entries=fs.readdirSync(dir,{withFileTypes:!0});for(const entry of entries)if(entry.isDirectory()&&entry.name!=="layouts")scanDir(join(dir,entry.name),`${prefix}${entry.name}/`);else if(entry.isFile()&&(entry.name.endsWith(".html")||entry.name.endsWith(".stx"))){const name=entry.name.replace(/\.(html|stx)$/,"");if(!templates.includes(`${prefix}${name}`))templates.push(`${prefix}${name}`)}}scanDir(emailsPath);return templates}
7
+ `).trim()}export async function template(templateName,options={}){return templateByName(templateName,options)}export async function templateByName(templateName,options={}){const{variables={},layout="base",subject="",inline=shouldInlineByDefault()}=options,allVariables={...getDefaultVariables(),subject,...variables},resolved=resolveTemplatePath(templateName);if(!resolved){console.warn(`[Email Template] Template "${templateName}" not found`);return{html:"",text:""}}if(resolved.type==="stx")try{const{renderEmail}=await import("@stacksjs/stx"),result=await renderEmail(resolved.path,allVariables,{componentsDir:resourcesPath("components/Email"),additionalComponentsDirs:[defaultsResourcesPath("components/Email")]});return{...result,html:inlineCss(result.html,{inline})}}catch(error){log.warn(`[email] STX template rendering failed for ${templateName}: ${error instanceof Error?error.message:String(error)}`);return{html:"",text:""}}let content=fs.readFileSync(resolved.path,"utf-8");content=replaceVariables(content,allVariables);let html;if(layout!==!1){const layoutHtml=loadLayout(layout);if(!layoutHtml){console.warn(`[Email Template] Layout "${layout}" not found, using content only`);html=content}else{allVariables.content=safe(content);html=replaceVariables(layoutHtml,allVariables)}}else html=content;html=inlineCss(html,{inline});const text=htmlToText(html);return{html,text}}export function renderHtml(htmlContent,variables={}){const allVariables={...getDefaultVariables(),...variables},html=replaceVariables(htmlContent,allVariables),text=htmlToText(html);return{html,text}}export function templateExists(templateName){return resolveTemplatePath(templateName)!==null}export function listTemplates(){const emailsPath=resourcesPath("emails");if(!fs.existsSync(emailsPath))return[];const templates=[];function scanDir(dir,prefix=""){const entries=fs.readdirSync(dir,{withFileTypes:!0});for(const entry of entries)if(entry.isDirectory()&&entry.name!=="layouts")scanDir(join(dir,entry.name),`${prefix}${entry.name}/`);else if(entry.isFile()&&(entry.name.endsWith(".html")||entry.name.endsWith(".stx"))){const name=entry.name.replace(/\.(html|stx)$/,"");if(!templates.includes(`${prefix}${name}`))templates.push(`${prefix}${name}`)}}scanDir(emailsPath);return templates}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@stacksjs/email",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.75.334",
5
+ "version": "0.75.337",
6
6
  "description": "The Stacks Email integration. Painlessly create & manage your inboxes, templates, and send emails.",
7
7
  "author": "Chris Breuer",
8
8
  "contributors": [
@@ -61,26 +61,26 @@
61
61
  "prepublishOnly": "bun run build"
62
62
  },
63
63
  "dependencies": {
64
- "@stacksjs/config": "0.75.334",
65
- "@stacksjs/database": "0.75.334",
66
- "@stacksjs/events": "0.75.334",
67
- "@stacksjs/logging": "0.75.334",
64
+ "@stacksjs/config": "0.75.337",
65
+ "@stacksjs/database": "0.75.337",
66
+ "@stacksjs/events": "0.75.337",
67
+ "@stacksjs/logging": "0.75.337",
68
68
  "@stacksjs/mail": "^0.3.11",
69
- "@stacksjs/path": "0.75.334",
70
- "@stacksjs/storage": "0.75.334",
71
- "@stacksjs/strings": "0.75.334",
72
- "@stacksjs/stx": "0.2.723",
69
+ "@stacksjs/path": "0.75.337",
70
+ "@stacksjs/storage": "0.75.337",
71
+ "@stacksjs/strings": "0.75.337",
72
+ "@stacksjs/stx": "0.2.736",
73
73
  "@stacksjs/ts-cloud": "^0.16.69",
74
- "@stacksjs/utils": "0.75.334"
74
+ "@stacksjs/utils": "0.75.337"
75
75
  },
76
76
  "devDependencies": {
77
- "@stacksjs/cli": "0.75.334",
78
- "@stacksjs/error-handling": "0.75.334",
79
- "@stacksjs/types": "0.75.334",
77
+ "@stacksjs/cli": "0.75.337",
78
+ "@stacksjs/error-handling": "0.75.337",
79
+ "@stacksjs/types": "0.75.337",
80
80
  "better-dx": "^0.2.24"
81
81
  },
82
82
  "peerDependencies": {
83
- "@stacksjs/queue": "0.75.334"
83
+ "@stacksjs/queue": "0.75.337"
84
84
  },
85
85
  "peerDependenciesMeta": {
86
86
  "@stacksjs/queue": {