@churchapps/apihelper 0.4.37 → 0.4.39

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.
@@ -1,9 +1,9 @@
1
1
  import { IEmailPayload } from '.';
2
2
  export declare class EmailHelper {
3
3
  private static getSESClient;
4
- static sendTemplatedEmail(from: string, to: string, appName: string, appUrl: string, subject: string, contents: string, emailTemplate?: "EmailTemplate.html" | "ChurchEmailTemplate.html"): Promise<void>;
4
+ static sendTemplatedEmail(from: string, to: string, appName: string, appUrl: string, subject: string, contents: string, emailTemplate?: "EmailTemplate.html" | "ChurchEmailTemplate.html", replyTo?: string): Promise<void>;
5
5
  static readTemplate(templateFile?: string): string;
6
6
  private static sendSes;
7
- static sendEmail({ from, to, subject, body }: IEmailPayload): Promise<void>;
7
+ static sendEmail({ from, to, subject, body, replyTo }: IEmailPayload): Promise<void>;
8
8
  }
9
9
  //# sourceMappingURL=EmailHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmailHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/EmailHelper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,aAAa,EAAE,MAAM,GAAG,CAAA;AAIlD,qBAAa,WAAW;IAEtB,OAAO,CAAC,MAAM,CAAC,YAAY;WAIP,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAE,oBAAoB,GAAG,0BAAiD;WAW9M,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM;mBAQ3B,OAAO;WAwBR,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAqCzF"}
1
+ {"version":3,"file":"EmailHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/EmailHelper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,aAAa,EAAE,MAAM,GAAG,CAAA;AAIlD,qBAAa,WAAW;IAEtB,OAAO,CAAC,MAAM,CAAC,YAAY;WAIP,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAE,oBAAoB,GAAG,0BAAiD,EAAE,OAAO,CAAC,EAAE,MAAM;WAWhO,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM;mBAQ3B,OAAO;WAwBR,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAqClG"}
@@ -14,7 +14,7 @@ class EmailHelper {
14
14
  static getSESClient() {
15
15
  return new client_ses_1.SESClient({ region: "us-east-2" });
16
16
  }
17
- static async sendTemplatedEmail(from, to, appName, appUrl, subject, contents, emailTemplate = "EmailTemplate.html") {
17
+ static async sendTemplatedEmail(from, to, appName, appUrl, subject, contents, emailTemplate = "EmailTemplate.html", replyTo) {
18
18
  if (!appName)
19
19
  appName = "B1";
20
20
  if (!appUrl)
@@ -23,7 +23,7 @@ class EmailHelper {
23
23
  const emailBody = template
24
24
  .replace("{appLink}", "<a target='_blank' rel='noreferrer noopener' href=\"" + appUrl + "/\">" + appName + "</a>")
25
25
  .replace("{contents}", contents);
26
- await EmailHelper.sendEmail({ from, to, subject, body: emailBody });
26
+ await EmailHelper.sendEmail({ from, to, subject, body: emailBody, replyTo });
27
27
  }
28
28
  static readTemplate(templateFile) {
29
29
  if (!templateFile)
@@ -33,7 +33,7 @@ class EmailHelper {
33
33
  const contents = buffer.toString();
34
34
  return contents;
35
35
  }
36
- static async sendSes({ from, to, subject, body }) {
36
+ static async sendSes({ from, to, subject, body, replyTo }) {
37
37
  const sesClient = this.getSESClient();
38
38
  const sendCommand = new client_ses_1.SendEmailCommand({
39
39
  Destination: {
@@ -51,11 +51,12 @@ class EmailHelper {
51
51
  Data: subject
52
52
  }
53
53
  },
54
- Source: from
54
+ Source: from,
55
+ ReplyToAddresses: replyTo ? [replyTo] : undefined
55
56
  });
56
57
  await sesClient.send(sendCommand);
57
58
  }
58
- static async sendEmail({ from, to, subject, body }) {
59
+ static async sendEmail({ from, to, subject, body, replyTo }) {
59
60
  try {
60
61
  // Use a safer fallback - streamline transport (for testing/dev) or require proper SMTP config
61
62
  let transporter = nodemailer_1.default.createTransport({
@@ -64,7 +65,7 @@ class EmailHelper {
64
65
  buffer: true
65
66
  });
66
67
  if (_1.EnvironmentBase.mailSystem === 'SES') {
67
- await this.sendSes({ from, to, subject, body });
68
+ await this.sendSes({ from, to, subject, body, replyTo });
68
69
  }
69
70
  else {
70
71
  if (_1.EnvironmentBase.mailSystem === "SMTP") {
@@ -83,7 +84,7 @@ class EmailHelper {
83
84
  console.log(body);
84
85
  }
85
86
  else {
86
- await transporter.sendMail({ from, to, subject, html: body });
87
+ await transporter.sendMail({ from, to, subject, html: body, replyTo });
87
88
  }
88
89
  }
89
90
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"EmailHelper.js","sourceRoot":"","sources":["../../src/helpers/EmailHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmailHelper.js","sourceRoot":"","sources":["../../src/helpers/EmailHelper.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,6 @@ export interface IEmailPayload {
8
8
  to: string;
9
9
  subject: string;
10
10
  body: string;
11
+ replyTo?: string;
11
12
  }
12
13
  //# sourceMappingURL=Interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Interfaces.d.ts","sourceRoot":"","sources":["../../src/helpers/Interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACtF,MAAM,WAAW,aAAa;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE"}
1
+ {"version":3,"file":"Interfaces.d.ts","sourceRoot":"","sources":["../../src/helpers/Interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACtF,MAAM,WAAW,aAAa;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE"}
@@ -390,7 +390,6 @@
390
390
  <ul>
391
391
  <li><span class="text"><a href="mailto:support@churchapps.org">support@churchapps.org</a></span></li>
392
392
  <li><span class="text"><a href="phone:19189942638">+1 (918) 994-2638</a></span></li>
393
- <li><span class="text"><a href="https://m.me/livecsolutions">https://m.me/livecsolutions</a></span></li>
394
393
  <li><span class="text"><a href="https://support.churchapps.org">support.churchapps.org</a></span></li>
395
394
  </ul>
396
395
  </td>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@churchapps/apihelper",
3
- "version": "0.4.37",
3
+ "version": "0.4.39",
4
4
  "description": "Library of helper functions not specific to any one ChurchApps project or framework.",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -20,7 +20,7 @@
20
20
  "lint:fix": "eslint src/**/*.ts --fix",
21
21
  "format": "prettier --write src/**/*.ts",
22
22
  "format:check": "prettier --check src/**/*.ts",
23
- "publish": "npm run build && npm publish --access=public"
23
+ "publish:all": "npm run build && npm publish --access=public"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",
@@ -11,7 +11,7 @@ export class EmailHelper {
11
11
  return new SESClient({ region: "us-east-2" });
12
12
  }
13
13
 
14
- public static async sendTemplatedEmail(from: string, to: string, appName: string, appUrl: string, subject: string, contents: string, emailTemplate: "EmailTemplate.html" | "ChurchEmailTemplate.html" = "EmailTemplate.html") {
14
+ public static async sendTemplatedEmail(from: string, to: string, appName: string, appUrl: string, subject: string, contents: string, emailTemplate: "EmailTemplate.html" | "ChurchEmailTemplate.html" = "EmailTemplate.html", replyTo?: string) {
15
15
  if (!appName) appName = "B1";
16
16
  if (!appUrl) appUrl = "https://b1.church";
17
17
 
@@ -19,7 +19,7 @@ export class EmailHelper {
19
19
  const emailBody = template
20
20
  .replace("{appLink}", "<a target='_blank' rel='noreferrer noopener' href=\"" + appUrl + "/\">" + appName + "</a>")
21
21
  .replace("{contents}", contents);
22
- await EmailHelper.sendEmail({ from, to, subject, body: emailBody });
22
+ await EmailHelper.sendEmail({ from, to, subject, body: emailBody, replyTo });
23
23
  }
24
24
 
25
25
  public static readTemplate(templateFile?: string) {
@@ -30,7 +30,7 @@ export class EmailHelper {
30
30
  return contents;
31
31
  }
32
32
 
33
- private static async sendSes({ from, to, subject, body }: IEmailPayload) {
33
+ private static async sendSes({ from, to, subject, body, replyTo }: IEmailPayload) {
34
34
  const sesClient = this.getSESClient();
35
35
  const sendCommand = new SendEmailCommand({
36
36
  Destination: {
@@ -48,13 +48,13 @@ export class EmailHelper {
48
48
  Data: subject
49
49
  }
50
50
  },
51
- Source: from
52
-
51
+ Source: from,
52
+ ReplyToAddresses: replyTo ? [replyTo] : undefined
53
53
  });
54
54
  await sesClient.send(sendCommand);
55
55
  }
56
56
 
57
- public static async sendEmail({ from, to, subject, body }: IEmailPayload): Promise<void> {
57
+ public static async sendEmail({ from, to, subject, body, replyTo }: IEmailPayload): Promise<void> {
58
58
  try {
59
59
  // Use a safer fallback - streamline transport (for testing/dev) or require proper SMTP config
60
60
  let transporter: nodemailer.Transporter = nodemailer.createTransport({
@@ -64,7 +64,7 @@ export class EmailHelper {
64
64
  });
65
65
 
66
66
  if (EnvironmentBase.mailSystem === 'SES') {
67
- await this.sendSes({ from, to, subject, body });
67
+ await this.sendSes({ from, to, subject, body, replyTo });
68
68
  } else {
69
69
  if (EnvironmentBase.mailSystem === "SMTP") {
70
70
  transporter = nodemailer.createTransport({
@@ -82,7 +82,7 @@ export class EmailHelper {
82
82
  console.log(subject);
83
83
  console.log(body);
84
84
  } else {
85
- await transporter.sendMail({ from, to, subject, html: body });
85
+ await transporter.sendMail({ from, to, subject, html: body, replyTo });
86
86
  }
87
87
  }
88
88
  return null;
@@ -1,2 +1,2 @@
1
1
  export interface IPermission { contentType: string; action: string; apiName?: string }
2
- export interface IEmailPayload { from: string, to: string, subject: string, body: string }
2
+ export interface IEmailPayload { from: string, to: string, subject: string, body: string, replyTo?: string }
@@ -390,7 +390,6 @@
390
390
  <ul>
391
391
  <li><span class="text"><a href="mailto:support@churchapps.org">support@churchapps.org</a></span></li>
392
392
  <li><span class="text"><a href="phone:19189942638">+1 (918) 994-2638</a></span></li>
393
- <li><span class="text"><a href="https://m.me/livecsolutions">https://m.me/livecsolutions</a></span></li>
394
393
  <li><span class="text"><a href="https://support.churchapps.org">support.churchapps.org</a></span></li>
395
394
  </ul>
396
395
  </td>