@ikonintegration/ikapi 5.0.3 → 5.0.5

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,12 +1,12 @@
1
1
  {
2
2
  "name": "@ikonintegration/ikapi",
3
- "version": "5.0.3",
3
+ "version": "5.0.5",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@ikonintegration/ikapi",
9
- "version": "5.0.3",
9
+ "version": "5.0.5",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@aws-sdk/client-dynamodb": "^3.650.0",
@@ -26,7 +26,7 @@
26
26
  "cuid": "^3.0.0",
27
27
  "dotenv": "^16.4.1",
28
28
  "email-templates": "^12.0.1",
29
- "express": "^4.21.0",
29
+ "express": "^4.21.1",
30
30
  "json-stringify-safe": "^5.0.1",
31
31
  "kysely": "^0.27.2",
32
32
  "node-cache": "^5.1.2",
@@ -4911,9 +4911,9 @@
4911
4911
  "devOptional": true
4912
4912
  },
4913
4913
  "node_modules/cookie": {
4914
- "version": "0.6.0",
4915
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
4916
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
4914
+ "version": "0.7.1",
4915
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
4916
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
4917
4917
  "engines": {
4918
4918
  "node": ">= 0.6"
4919
4919
  }
@@ -6219,16 +6219,16 @@
6219
6219
  }
6220
6220
  },
6221
6221
  "node_modules/express": {
6222
- "version": "4.21.0",
6223
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz",
6224
- "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
6222
+ "version": "4.21.1",
6223
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
6224
+ "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
6225
6225
  "dependencies": {
6226
6226
  "accepts": "~1.3.8",
6227
6227
  "array-flatten": "1.1.1",
6228
6228
  "body-parser": "1.20.3",
6229
6229
  "content-disposition": "0.5.4",
6230
6230
  "content-type": "~1.0.4",
6231
- "cookie": "0.6.0",
6231
+ "cookie": "0.7.1",
6232
6232
  "cookie-signature": "1.0.6",
6233
6233
  "debug": "2.6.9",
6234
6234
  "depd": "2.0.0",
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikonintegration/ikapi",
3
- "version": "5.0.3",
3
+ "version": "5.0.5",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,7 +36,7 @@
36
36
  "cuid": "^3.0.0",
37
37
  "dotenv": "^16.4.1",
38
38
  "email-templates": "^12.0.1",
39
- "express": "^4.21.0",
39
+ "express": "^4.21.1",
40
40
  "json-stringify-safe": "^5.0.1",
41
41
  "kysely": "^0.27.2",
42
42
  "node-cache": "^5.1.2",
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerExec.js","sourceRoot":"","sources":["../../../../src/BaseEvent/Launchable/ContainerExec.ts"],"names":[],"mappings":";;;;;;;;;AAKA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAMrC;;;;OAIG;IACH,YAAY,OAAqC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;;;OAIG;IACU,OAAO;;YAClB,IAAI,CAAC;gBACH,SAAS;gBACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;gBAChD,SAAS;gBACT,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACnB,IACE,CAAC,IAAI,CAAC,GAAG;oBACT,IAAI,CAAC,IAAI;oBACT,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC;oBAElF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;;oBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;KAAA;IAED;;;OAGG;IACK,SAAS;QACf,IAAI,KAAK,GAAQ,EAAE,CAAA;QACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CACT,sHAAsH,EACtH,CAAC,CAAC,OAAO,CACV,CAAA;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,QAA0B;QAC7C,OAAO;YACL,YAAY,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YAC3C,8BAA8B,EAAE,IAAI;YACpC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;YACxC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC1B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,CAAA;IACrB,CAAC;IAED;;;;;;OAMG;IACW,MAAM,CAAC,KAAU;;YAC7B,qDAAqD;YACrD,OAAO,IAAI,OAAO,CAA+B,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzE,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;wBAC9C,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;oBACxB,CAAC,CAAC,CAAA;oBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;oBAC/C,IAAI,IAAI;wBAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBACnC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC,CAAA,CAAC,CAAA;QACJ,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"ContainerExec.js","sourceRoot":"","sources":["../../../../src/BaseEvent/Launchable/ContainerExec.ts"],"names":[],"mappings":";;;;;;;;;AAIA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAMrC;;;;OAIG;IACH,YAAY,OAAqC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;;;OAIG;IACU,OAAO;;YAClB,IAAI,CAAC;gBACH,SAAS;gBACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;gBAChD,SAAS;gBACT,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACnB,IACE,CAAC,IAAI,CAAC,GAAG;oBACT,IAAI,CAAC,IAAI;oBACT,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC;oBAElF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;;oBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;KAAA;IAED;;;OAGG;IACK,SAAS;QACf,IAAI,KAAK,GAAQ,EAAE,CAAA;QACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CACT,sHAAsH,EACtH,CAAC,CAAC,OAAO,CACV,CAAA;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,QAA0B;QAC7C,OAAO;YACL,YAAY,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YAC3C,8BAA8B,EAAE,IAAI;YACpC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;YACjC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;YACxC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC1B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,CAAA;IACrB,CAAC;IAED;;;;;;OAMG;IACW,MAAM,CAAC,KAAU;;YAC7B,qDAAqD;YACrD,OAAO,IAAI,OAAO,CAA+B,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzE,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;wBAC9C,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;oBACxB,CAAC,CAAC,CAAA;oBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;oBAC/C,IAAI,IAAI;wBAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBACnC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC,CAAA,CAAC,CAAA;QACJ,CAAC;KAAA;CACF"}
@@ -1,4 +1,4 @@
1
- import Email from 'email-templates';
1
+ import Email from "email-templates";
2
2
  export default class Mailer {
3
3
  /**
4
4
  * The starting point of a range.
@@ -42,8 +42,9 @@ export default class Mailer {
42
42
  * @param {string} [optionalFrom] - The email address to send the email from.
43
43
  * @param {string} [optionalReplyTo] - The email address to set as the reply-to address.
44
44
  * @param {any[]} [optionalAttachments] - An array
45
+ * @param {Record<string, string>} [optionalHeaders] - Optional headers to be added to the message. Passed in a key value object.
45
46
  */
46
- sendTemplatedEmail(to: string | Array<string>, templates: string | Array<string>, data: object, optionalCC?: string | Array<string>, optionalFrom?: string, optionalReplyTo?: string, optionalAttachments?: any[], optionalTransport?: Email.NodeMailerTransportOptions): Promise<null>;
47
+ sendTemplatedEmail(to: string | Array<string>, templates: string | Array<string>, data: object, optionalCC?: string | Array<string>, optionalFrom?: string, optionalReplyTo?: string, optionalAttachments?: any[], optionalHeaders?: Record<string, string>, optionalTransport?: Email.NodeMailerTransportOptions): Promise<null>;
47
48
  /**
48
49
  * Creates a new SMTP transporter for sending emails using NodeMailer.
49
50
  * @param {string} host - The SMTP server host.
@@ -7,10 +7,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import * as SES from '@aws-sdk/client-ses';
11
- import { defaultProvider } from '@aws-sdk/credential-provider-node';
12
- import Email from 'email-templates';
13
- import nodemailer from 'nodemailer';
10
+ /* eslint-disable prettier/prettier */
11
+ import * as SES from "@aws-sdk/client-ses";
12
+ import { defaultProvider } from "@aws-sdk/credential-provider-node";
13
+ import Email from "email-templates";
14
+ import nodemailer from "nodemailer";
14
15
  export default class Mailer {
15
16
  /**
16
17
  * Constructs a new instance of the EmailSender class.
@@ -23,13 +24,13 @@ export default class Mailer {
23
24
  * The default file template for the application.
24
25
  * @type {string}
25
26
  */
26
- this.templateDefaultFile = 'html';
27
+ this.templateDefaultFile = "html";
27
28
  this.from = defaultFrom;
28
29
  this.transporter = nodemailer.createTransport({
29
30
  SES: {
30
31
  ses: new SES.SESClient({
31
32
  credentials: defaultProvider(),
32
- apiVersion: '2010-12-01',
33
+ apiVersion: "2010-12-01",
33
34
  region,
34
35
  }),
35
36
  aws: SES,
@@ -60,10 +61,10 @@ export default class Mailer {
60
61
  let resp = null;
61
62
  try {
62
63
  resp = yield email.send();
63
- console.debug('Mailer resp:', resp);
64
+ console.debug("Mailer resp:", resp);
64
65
  }
65
66
  catch (e) {
66
- console.error('Mailer error:', e);
67
+ console.error("Mailer error:", e);
67
68
  throw e;
68
69
  }
69
70
  return resp;
@@ -78,14 +79,15 @@ export default class Mailer {
78
79
  * @param {string} [optionalFrom] - The email address to send the email from.
79
80
  * @param {string} [optionalReplyTo] - The email address to set as the reply-to address.
80
81
  * @param {any[]} [optionalAttachments] - An array
82
+ * @param {Record<string, string>} [optionalHeaders] - Optional headers to be added to the message. Passed in a key value object.
81
83
  */
82
84
  sendTemplatedEmail(to, templates, data, optionalCC, optionalFrom, optionalReplyTo,
83
85
  // TODO: improve attachment type -> Attachment
84
- optionalAttachments, optionalTransport) {
86
+ optionalAttachments, optionalHeaders, optionalTransport) {
85
87
  return __awaiter(this, void 0, void 0, function* () {
86
88
  //Generate emails
87
89
  const email = new Email({
88
- message: Object.assign(Object.assign(Object.assign({ from: optionalFrom || this.from, to: to }, (optionalAttachments ? { attachments: optionalAttachments } : {})), (optionalCC ? { cc: optionalCC } : {})), (optionalReplyTo ? { replyTo: optionalReplyTo } : {})),
90
+ message: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (optionalHeaders ? { headers: optionalHeaders } : {})), { from: optionalFrom || this.from, to: to }), (optionalAttachments ? { attachments: optionalAttachments } : {})), (optionalCC ? { cc: optionalCC } : {})), (optionalReplyTo ? { replyTo: optionalReplyTo } : {})),
89
91
  transport: optionalTransport || this.transporter,
90
92
  send: true,
91
93
  });
@@ -94,10 +96,10 @@ export default class Mailer {
94
96
  try {
95
97
  const chosenTemplate = yield this.chooseTemplate(templates, data);
96
98
  resp = yield email.send({ template: chosenTemplate, locals: data });
97
- console.debug('Mailer resp:', resp);
99
+ console.debug("Mailer resp:", resp);
98
100
  }
99
101
  catch (e) {
100
- console.error('Mailer error:', e);
102
+ console.error("Mailer error:", e);
101
103
  throw e;
102
104
  }
103
105
  return resp;
@@ -143,8 +145,7 @@ export default class Mailer {
143
145
  if (yield this.canRenderTemplate(templates, data))
144
146
  return templates;
145
147
  }
146
- throw new Error(`Could not render email with template ${templates} and following data. Please, check logs above! ` +
147
- JSON.stringify(data, null, 2));
148
+ throw new Error(`Could not render email with template ${templates} and following data. Please, check logs above! ` + JSON.stringify(data, null, 2));
148
149
  });
149
150
  }
150
151
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Mailer.js","sourceRoot":"","sources":["../../../src/Mailer/Mailer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mailer.js","sourceRoot":"","sources":["../../../src/Mailer/Mailer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,sCAAsC;AACtC,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,UAAU,MAAM,YAAY,CAAC;AAGpC,MAAM,CAAC,OAAO,OAAO,MAAM;IAiBzB;;;;;OAKG;IACH,YAAY,WAAmB,EAAE,MAAc;QAjB/C;;;WAGG;QACc,wBAAmB,GAAW,MAAM,CAAC;QAcpD,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;YAC5C,GAAG,EAAE;gBACH,GAAG,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC;oBACrB,WAAW,EAAE,eAAe,EAAE;oBAC9B,UAAU,EAAE,YAAY;oBACxB,MAAM;iBACP,CAAC;gBACF,GAAG,EAAE,GAAG;aACT;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACU,YAAY,CACvB,EAA0B,EAC1B,WAAmB,EACnB,OAAe,EACf,UAAmC,EACnC,YAAqB,EACrB,eAAwB;IACxB,8CAA8C;IAC9C,mBAA2B,EAC3B,iBAAoD;;YAEpD,iBAAiB;YACjB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;gBACtB,OAAO,8CACL,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,IAAI,EAC/B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,WAAW,EACjB,OAAO,IACJ,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACjE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACtC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACzD;gBACD,SAAS,EAAE,iBAAiB,IAAI,IAAI,CAAC,WAAW;gBAChD,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YACH,EAAE;YACF,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;gBAClC,MAAM,CAAC,CAAC;YACV,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED;;;;;;;;;;OAUG;IACU,kBAAkB,CAC7B,EAA0B,EAC1B,SAAiC,EACjC,IAAY,EACZ,UAAmC,EACnC,YAAqB,EACrB,eAAwB;IACxB,8CAA8C;IAC9C,mBAA2B,EAC3B,eAAwC,EACxC,iBAAoD;;YAEpD,iBAAiB;YACjB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;gBACtB,OAAO,4EACF,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxD,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,IAAI,EAC/B,EAAE,EAAE,EAAE,KACH,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACjE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACtC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACzD;gBACD,SAAS,EAAE,iBAAiB,IAAI,IAAI,CAAC,WAAW;gBAChD,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YACH,EAAE;YACF,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAClE,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;gBAClC,MAAM,CAAC,CAAC;YACV,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED;;;;;;;OAOG;IACI,kBAAkB,CAAC,IAAY,EAAE,UAAkB,EAAE,IAAY,EAAE,QAAgB;QACxF,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;YACjD,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,UAAU;YAChB,iBAAiB,EAAE,IAAI;YACvB,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,QAAQ;aACf;SACF,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACW,cAAc,CAAC,SAAiC,EAAE,IAAY;;YAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,0CAA0C;gBAC1C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC;wBAAE,OAAO,QAAQ,CAAC;gBACpE,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC;oBAAE,OAAO,SAAS,CAAC;YACtE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,iDAAiD,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtJ,CAAC;KAAA;IAED;;;;;OAKG;IACW,iBAAiB,CAAC,QAAgB,EAAE,IAAY;;YAC5D,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,CAAC,CAAC;YACrG,OAAO,eAAe,IAAI,IAAI,CAAC;QACjC,CAAC;KAAA;IAED;;;;;OAKG;IACI,MAAM,CAAO,cAAc,CAAC,QAAgB,EAAE,IAAY;;YAC/D,IAAI,eAAe,GAAkB,IAAI,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC1B,eAAe,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,wDAAwD,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACrF,CAAC;YACD,OAAO,eAAe,CAAC;QACzB,CAAC;KAAA;CACF"}
@@ -1 +1 @@
1
- {"root":["../index.ts","../src/globals.ts","../src/api/request.ts","../src/api/response.ts","../src/baseevent/dynamotransaction.ts","../src/baseevent/eventprocessor.ts","../src/baseevent/process.ts","../src/baseevent/steptransaction.ts","../src/baseevent/transaction.ts","../src/baseevent/launchable/containerexec.ts","../src/baseevent/launchable/index.ts","../src/baseevent/launchable/types.ts","../src/cache/redis.ts","../src/cache/types.ts","../src/config/configuration.ts","../src/config/environmentvar.ts","../src/crypto/crypto.ts","../src/database/database.ts","../src/database/databasemanager.ts","../src/database/databasetransaction.ts","../src/database/index.ts","../src/database/types.ts","../src/database/integrations/dynamo/dynamodatabase.ts","../src/database/integrations/kysely/kyselydatabase.ts","../src/database/integrations/kysely/kyselytransaction.ts","../src/database/integrations/pgsql/postgresdatabase.ts","../src/database/integrations/pgsql/postgrestransaction.ts","../src/logger/logger.ts","../src/mailer/mailer.ts","../src/publisher/publisher.ts","../src/server/routeresolver.ts","../src/server/router.ts","../src/server/lib/containerserver.ts","../src/server/lib/server.ts","../src/server/lib/container/generichandler.ts","../src/server/lib/container/generichandlerevent.ts","../src/server/lib/container/healthhandler.ts","../src/server/lib/container/proxy.ts","../src/server/lib/container/utils.ts","../src/util/asyncsingleton.ts","../src/util/utils.ts","../src/validation/validator.ts","../package-lock.json","../package.json"],"version":"5.6.2"}
1
+ {"root":["../index.ts","../src/Globals.ts","../src/API/Request.ts","../src/API/Response.ts","../src/BaseEvent/DynamoTransaction.ts","../src/BaseEvent/EventProcessor.ts","../src/BaseEvent/Process.ts","../src/BaseEvent/StepTransaction.ts","../src/BaseEvent/Transaction.ts","../src/BaseEvent/Launchable/ContainerExec.ts","../src/BaseEvent/Launchable/index.ts","../src/BaseEvent/Launchable/types.ts","../src/Cache/Redis.ts","../src/Cache/types.ts","../src/Config/Configuration.ts","../src/Config/EnvironmentVar.ts","../src/Crypto/Crypto.ts","../src/Database/Database.ts","../src/Database/DatabaseManager.ts","../src/Database/DatabaseTransaction.ts","../src/Database/index.ts","../src/Database/types.ts","../src/Database/integrations/dynamo/DynamoDatabase.ts","../src/Database/integrations/kysely/KyselyDatabase.ts","../src/Database/integrations/kysely/KyselyTransaction.ts","../src/Database/integrations/pgsql/PostgresDatabase.ts","../src/Database/integrations/pgsql/PostgresTransaction.ts","../src/Logger/Logger.ts","../src/Mailer/Mailer.ts","../src/Publisher/Publisher.ts","../src/Server/RouteResolver.ts","../src/Server/Router.ts","../src/Server/lib/ContainerServer.ts","../src/Server/lib/Server.ts","../src/Server/lib/container/GenericHandler.ts","../src/Server/lib/container/GenericHandlerEvent.ts","../src/Server/lib/container/HealthHandler.ts","../src/Server/lib/container/Proxy.ts","../src/Server/lib/container/Utils.ts","../src/Util/AsyncSingleton.ts","../src/Util/Utils.ts","../src/Validation/Validator.ts","../package-lock.json","../package.json"],"version":"5.6.2"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikonintegration/ikapi",
3
- "version": "5.0.3",
3
+ "version": "5.0.5",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,7 +36,7 @@
36
36
  "cuid": "^3.0.0",
37
37
  "dotenv": "^16.4.1",
38
38
  "email-templates": "^12.0.1",
39
- "express": "^4.21.0",
39
+ "express": "^4.21.1",
40
40
  "json-stringify-safe": "^5.0.1",
41
41
  "kysely": "^0.27.2",
42
42
  "node-cache": "^5.1.2",
@@ -1,7 +1,6 @@
1
1
  import { Context } from 'aws-lambda'
2
2
 
3
3
  import { LaunchableHandlerType } from './types.js'
4
- import Response from '../../API/Response.js'
5
4
 
6
5
  /**
7
6
  * Represents a ContainerExecution class that handles the execution of a launchable handler.
@@ -1,27 +1,26 @@
1
- import * as SES from '@aws-sdk/client-ses'
2
- import { defaultProvider } from '@aws-sdk/credential-provider-node'
3
- import Email from 'email-templates'
4
- import nodemailer from 'nodemailer'
5
- import type SESTransport from 'nodemailer/lib/ses-transport'
1
+ /* eslint-disable prettier/prettier */
2
+ import * as SES from "@aws-sdk/client-ses";
3
+ import { defaultProvider } from "@aws-sdk/credential-provider-node";
4
+ import Email from "email-templates";
5
+ import nodemailer from "nodemailer";
6
+ import type SESTransport from "nodemailer/lib/ses-transport";
6
7
 
7
8
  export default class Mailer {
8
9
  /**
9
10
  * The starting point of a range.
10
11
  * @type {string}
11
12
  */
12
- private readonly from: string
13
+ private readonly from: string;
13
14
  /**
14
15
  * The default file template for the application.
15
16
  * @type {string}
16
17
  */
17
- private readonly templateDefaultFile: string = 'html'
18
+ private readonly templateDefaultFile: string = "html";
18
19
  /**
19
20
  * The transporter object used for sending emails using the AWS SES service.
20
21
  * @type {ReturnType<typeof nodemailer.createTransport<SESTransport.SentMessageInfo>>}
21
22
  */
22
- private readonly transporter: ReturnType<
23
- typeof nodemailer.createTransport<SESTransport.SentMessageInfo>
24
- >
23
+ private readonly transporter: ReturnType<typeof nodemailer.createTransport<SESTransport.SentMessageInfo>>;
25
24
 
26
25
  /**
27
26
  * Constructs a new instance of the EmailSender class.
@@ -30,17 +29,17 @@ export default class Mailer {
30
29
  * @returns None
31
30
  */
32
31
  constructor(defaultFrom: string, region: string) {
33
- this.from = defaultFrom
32
+ this.from = defaultFrom;
34
33
  this.transporter = nodemailer.createTransport({
35
34
  SES: {
36
35
  ses: new SES.SESClient({
37
36
  credentials: defaultProvider(),
38
- apiVersion: '2010-12-01',
37
+ apiVersion: "2010-12-01",
39
38
  region,
40
39
  }),
41
40
  aws: SES,
42
41
  },
43
- })
42
+ });
44
43
  }
45
44
 
46
45
  /**
@@ -77,17 +76,17 @@ export default class Mailer {
77
76
  },
78
77
  transport: optionalTransport || this.transporter,
79
78
  send: true,
80
- })
79
+ });
81
80
  //
82
- let resp = null
81
+ let resp = null;
83
82
  try {
84
- resp = await email.send()
85
- console.debug('Mailer resp:', resp)
83
+ resp = await email.send();
84
+ console.debug("Mailer resp:", resp);
86
85
  } catch (e) {
87
- console.error('Mailer error:', e)
88
- throw e
86
+ console.error("Mailer error:", e);
87
+ throw e;
89
88
  }
90
- return resp
89
+ return resp;
91
90
  }
92
91
 
93
92
  /**
@@ -99,6 +98,7 @@ export default class Mailer {
99
98
  * @param {string} [optionalFrom] - The email address to send the email from.
100
99
  * @param {string} [optionalReplyTo] - The email address to set as the reply-to address.
101
100
  * @param {any[]} [optionalAttachments] - An array
101
+ * @param {Record<string, string>} [optionalHeaders] - Optional headers to be added to the message. Passed in a key value object.
102
102
  */
103
103
  public async sendTemplatedEmail(
104
104
  to: string | Array<string>,
@@ -109,11 +109,13 @@ export default class Mailer {
109
109
  optionalReplyTo?: string,
110
110
  // TODO: improve attachment type -> Attachment
111
111
  optionalAttachments?: any[],
112
+ optionalHeaders?: Record<string, string>,
112
113
  optionalTransport?: Email.NodeMailerTransportOptions
113
114
  ) {
114
115
  //Generate emails
115
116
  const email = new Email({
116
117
  message: {
118
+ ...(optionalHeaders ? { headers: optionalHeaders } : {}),
117
119
  from: optionalFrom || this.from,
118
120
  to: to,
119
121
  ...(optionalAttachments ? { attachments: optionalAttachments } : {}),
@@ -122,18 +124,18 @@ export default class Mailer {
122
124
  },
123
125
  transport: optionalTransport || this.transporter,
124
126
  send: true,
125
- })
127
+ });
126
128
  //
127
- let resp = null
129
+ let resp = null;
128
130
  try {
129
- const chosenTemplate = await this.chooseTemplate(templates, data)
130
- resp = await email.send({ template: chosenTemplate, locals: data })
131
- console.debug('Mailer resp:', resp)
131
+ const chosenTemplate = await this.chooseTemplate(templates, data);
132
+ resp = await email.send({ template: chosenTemplate, locals: data });
133
+ console.debug("Mailer resp:", resp);
132
134
  } catch (e) {
133
- console.error('Mailer error:', e)
134
- throw e
135
+ console.error("Mailer error:", e);
136
+ throw e;
135
137
  }
136
- return resp
138
+ return resp;
137
139
  }
138
140
 
139
141
  /**
@@ -144,12 +146,7 @@ export default class Mailer {
144
146
  * @param {string} password - The password for authentication with the SMTP server.
145
147
  * @returns {Email.NodeMailerTransportOptions} - The SMTP transporter object.
146
148
  */
147
- public newSMTPTransporter(
148
- host: string,
149
- portNumber: number,
150
- user: string,
151
- password: string
152
- ): Email.NodeMailerTransportOptions {
149
+ public newSMTPTransporter(host: string, portNumber: number, user: string, password: string): Email.NodeMailerTransportOptions {
153
150
  const smtpTransporter = nodemailer.createTransport({
154
151
  host: host,
155
152
  port: portNumber,
@@ -158,8 +155,8 @@ export default class Mailer {
158
155
  user: user,
159
156
  pass: password,
160
157
  },
161
- })
162
- return smtpTransporter
158
+ });
159
+ return smtpTransporter;
163
160
  }
164
161
 
165
162
  /**
@@ -173,15 +170,12 @@ export default class Mailer {
173
170
  if (Array.isArray(templates)) {
174
171
  //For each template check if can render it
175
172
  for (const template of templates) {
176
- if (await this.canRenderTemplate(template, data)) return template
173
+ if (await this.canRenderTemplate(template, data)) return template;
177
174
  }
178
175
  } else if (templates) {
179
- if (await this.canRenderTemplate(templates, data)) return templates
176
+ if (await this.canRenderTemplate(templates, data)) return templates;
180
177
  }
181
- throw new Error(
182
- `Could not render email with template ${templates} and following data. Please, check logs above! ` +
183
- JSON.stringify(data, null, 2)
184
- )
178
+ throw new Error(`Could not render email with template ${templates} and following data. Please, check logs above! ` + JSON.stringify(data, null, 2));
185
179
  }
186
180
 
187
181
  /**
@@ -191,11 +185,8 @@ export default class Mailer {
191
185
  * @returns {Promise<boolean>} - A promise that resolves to true if the template can be rendered, false otherwise.
192
186
  */
193
187
  private async canRenderTemplate(template: string, data: object): Promise<boolean> {
194
- const validRenderResp = await Mailer.renderTemplate(
195
- `${template}/${this.templateDefaultFile}`,
196
- data
197
- )
198
- return validRenderResp != null
188
+ const validRenderResp = await Mailer.renderTemplate(`${template}/${this.templateDefaultFile}`, data);
189
+ return validRenderResp != null;
199
190
  }
200
191
 
201
192
  /**
@@ -205,13 +196,13 @@ export default class Mailer {
205
196
  * @returns {Promise<boolean>} - A promise that resolves to true if the template was rendered successfully, false otherwise.
206
197
  */
207
198
  public static async renderTemplate(template: string, data: object): Promise<any> {
208
- let validRenderResp: string | null = null
199
+ let validRenderResp: string | null = null;
209
200
  try {
210
- const email = new Email()
211
- validRenderResp = await email.render(`${template}`, data)
201
+ const email = new Email();
202
+ validRenderResp = await email.render(`${template}`, data);
212
203
  } catch (e) {
213
- console.log(`Error while checking renderability of email template ${template}`, e)
204
+ console.log(`Error while checking renderability of email template ${template}`, e);
214
205
  }
215
- return validRenderResp
206
+ return validRenderResp;
216
207
  }
217
208
  }