@ikonintegration/ikapi 5.0.3 → 5.0.4

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 (132) hide show
  1. package/package.json +1 -1
  2. package/src/BaseEvent/Launchable/ContainerExec.ts +0 -1
  3. package/src/Mailer/Mailer.ts +42 -52
  4. package/dist/index.d.ts +0 -17
  5. package/dist/index.js +0 -28
  6. package/dist/index.js.map +0 -1
  7. package/dist/package-lock.json +0 -11907
  8. package/dist/package.json +0 -82
  9. package/dist/src/API/Request.d.ts +0 -125
  10. package/dist/src/API/Request.js +0 -185
  11. package/dist/src/API/Request.js.map +0 -1
  12. package/dist/src/API/Response.d.ts +0 -188
  13. package/dist/src/API/Response.js +0 -270
  14. package/dist/src/API/Response.js.map +0 -1
  15. package/dist/src/BaseEvent/DynamoTransaction.d.ts +0 -70
  16. package/dist/src/BaseEvent/DynamoTransaction.js +0 -104
  17. package/dist/src/BaseEvent/DynamoTransaction.js.map +0 -1
  18. package/dist/src/BaseEvent/EventProcessor.d.ts +0 -58
  19. package/dist/src/BaseEvent/EventProcessor.js +0 -101
  20. package/dist/src/BaseEvent/EventProcessor.js.map +0 -1
  21. package/dist/src/BaseEvent/Launchable/ContainerExec.d.ts +0 -42
  22. package/dist/src/BaseEvent/Launchable/ContainerExec.js +0 -104
  23. package/dist/src/BaseEvent/Launchable/ContainerExec.js.map +0 -1
  24. package/dist/src/BaseEvent/Launchable/index.d.ts +0 -34
  25. package/dist/src/BaseEvent/Launchable/index.js +0 -43
  26. package/dist/src/BaseEvent/Launchable/index.js.map +0 -1
  27. package/dist/src/BaseEvent/Launchable/types.d.ts +0 -10
  28. package/dist/src/BaseEvent/Launchable/types.js +0 -2
  29. package/dist/src/BaseEvent/Launchable/types.js.map +0 -1
  30. package/dist/src/BaseEvent/Process.d.ts +0 -50
  31. package/dist/src/BaseEvent/Process.js +0 -64
  32. package/dist/src/BaseEvent/Process.js.map +0 -1
  33. package/dist/src/BaseEvent/StepTransaction.d.ts +0 -23
  34. package/dist/src/BaseEvent/StepTransaction.js +0 -27
  35. package/dist/src/BaseEvent/StepTransaction.js.map +0 -1
  36. package/dist/src/BaseEvent/Transaction.d.ts +0 -149
  37. package/dist/src/BaseEvent/Transaction.js +0 -224
  38. package/dist/src/BaseEvent/Transaction.js.map +0 -1
  39. package/dist/src/Cache/Redis.d.ts +0 -29
  40. package/dist/src/Cache/Redis.js +0 -80
  41. package/dist/src/Cache/Redis.js.map +0 -1
  42. package/dist/src/Cache/types.d.ts +0 -31
  43. package/dist/src/Cache/types.js +0 -2
  44. package/dist/src/Cache/types.js.map +0 -1
  45. package/dist/src/Config/Configuration.d.ts +0 -123
  46. package/dist/src/Config/Configuration.js +0 -109
  47. package/dist/src/Config/Configuration.js.map +0 -1
  48. package/dist/src/Config/EnvironmentVar.d.ts +0 -74
  49. package/dist/src/Config/EnvironmentVar.js +0 -138
  50. package/dist/src/Config/EnvironmentVar.js.map +0 -1
  51. package/dist/src/Crypto/Crypto.d.ts +0 -45
  52. package/dist/src/Crypto/Crypto.js +0 -72
  53. package/dist/src/Crypto/Crypto.js.map +0 -1
  54. package/dist/src/Database/Database.d.ts +0 -21
  55. package/dist/src/Database/Database.js +0 -15
  56. package/dist/src/Database/Database.js.map +0 -1
  57. package/dist/src/Database/DatabaseManager.d.ts +0 -47
  58. package/dist/src/Database/DatabaseManager.js +0 -60
  59. package/dist/src/Database/DatabaseManager.js.map +0 -1
  60. package/dist/src/Database/DatabaseTransaction.d.ts +0 -101
  61. package/dist/src/Database/DatabaseTransaction.js +0 -126
  62. package/dist/src/Database/DatabaseTransaction.js.map +0 -1
  63. package/dist/src/Database/index.d.ts +0 -10
  64. package/dist/src/Database/index.js +0 -15
  65. package/dist/src/Database/index.js.map +0 -1
  66. package/dist/src/Database/integrations/dynamo/DynamoDatabase.d.ts +0 -35
  67. package/dist/src/Database/integrations/dynamo/DynamoDatabase.js +0 -59
  68. package/dist/src/Database/integrations/dynamo/DynamoDatabase.js.map +0 -1
  69. package/dist/src/Database/integrations/kysely/KyselyDatabase.d.ts +0 -66
  70. package/dist/src/Database/integrations/kysely/KyselyDatabase.js +0 -86
  71. package/dist/src/Database/integrations/kysely/KyselyDatabase.js.map +0 -1
  72. package/dist/src/Database/integrations/kysely/KyselyTransaction.d.ts +0 -70
  73. package/dist/src/Database/integrations/kysely/KyselyTransaction.js +0 -118
  74. package/dist/src/Database/integrations/kysely/KyselyTransaction.js.map +0 -1
  75. package/dist/src/Database/integrations/pgsql/PostgresDatabase.d.ts +0 -36
  76. package/dist/src/Database/integrations/pgsql/PostgresDatabase.js +0 -54
  77. package/dist/src/Database/integrations/pgsql/PostgresDatabase.js.map +0 -1
  78. package/dist/src/Database/integrations/pgsql/PostgresTransaction.d.ts +0 -63
  79. package/dist/src/Database/integrations/pgsql/PostgresTransaction.js +0 -61
  80. package/dist/src/Database/integrations/pgsql/PostgresTransaction.js.map +0 -1
  81. package/dist/src/Database/types.d.ts +0 -76
  82. package/dist/src/Database/types.js +0 -2
  83. package/dist/src/Database/types.js.map +0 -1
  84. package/dist/src/Globals.d.ts +0 -93
  85. package/dist/src/Globals.js +0 -99
  86. package/dist/src/Globals.js.map +0 -1
  87. package/dist/src/Logger/Logger.d.ts +0 -161
  88. package/dist/src/Logger/Logger.js +0 -299
  89. package/dist/src/Logger/Logger.js.map +0 -1
  90. package/dist/src/Mailer/Mailer.d.ts +0 -78
  91. package/dist/src/Mailer/Mailer.js +0 -182
  92. package/dist/src/Mailer/Mailer.js.map +0 -1
  93. package/dist/src/Publisher/Publisher.d.ts +0 -39
  94. package/dist/src/Publisher/Publisher.js +0 -77
  95. package/dist/src/Publisher/Publisher.js.map +0 -1
  96. package/dist/src/Server/RouteResolver.d.ts +0 -33
  97. package/dist/src/Server/RouteResolver.js +0 -100
  98. package/dist/src/Server/RouteResolver.js.map +0 -1
  99. package/dist/src/Server/Router.d.ts +0 -157
  100. package/dist/src/Server/Router.js +0 -32
  101. package/dist/src/Server/Router.js.map +0 -1
  102. package/dist/src/Server/lib/ContainerServer.d.ts +0 -42
  103. package/dist/src/Server/lib/ContainerServer.js +0 -66
  104. package/dist/src/Server/lib/ContainerServer.js.map +0 -1
  105. package/dist/src/Server/lib/Server.d.ts +0 -45
  106. package/dist/src/Server/lib/Server.js +0 -93
  107. package/dist/src/Server/lib/Server.js.map +0 -1
  108. package/dist/src/Server/lib/container/GenericHandler.d.ts +0 -9
  109. package/dist/src/Server/lib/container/GenericHandler.js +0 -82
  110. package/dist/src/Server/lib/container/GenericHandler.js.map +0 -1
  111. package/dist/src/Server/lib/container/GenericHandlerEvent.d.ts +0 -52
  112. package/dist/src/Server/lib/container/GenericHandlerEvent.js +0 -132
  113. package/dist/src/Server/lib/container/GenericHandlerEvent.js.map +0 -1
  114. package/dist/src/Server/lib/container/HealthHandler.d.ts +0 -9
  115. package/dist/src/Server/lib/container/HealthHandler.js +0 -19
  116. package/dist/src/Server/lib/container/HealthHandler.js.map +0 -1
  117. package/dist/src/Server/lib/container/Proxy.d.ts +0 -67
  118. package/dist/src/Server/lib/container/Proxy.js +0 -143
  119. package/dist/src/Server/lib/container/Proxy.js.map +0 -1
  120. package/dist/src/Server/lib/container/Utils.d.ts +0 -14
  121. package/dist/src/Server/lib/container/Utils.js +0 -37
  122. package/dist/src/Server/lib/container/Utils.js.map +0 -1
  123. package/dist/src/Util/AsyncSingleton.d.ts +0 -31
  124. package/dist/src/Util/AsyncSingleton.js +0 -83
  125. package/dist/src/Util/AsyncSingleton.js.map +0 -1
  126. package/dist/src/Util/Utils.d.ts +0 -61
  127. package/dist/src/Util/Utils.js +0 -147
  128. package/dist/src/Util/Utils.js.map +0 -1
  129. package/dist/src/Validation/Validator.d.ts +0 -17
  130. package/dist/src/Validation/Validator.js +0 -39
  131. package/dist/src/Validation/Validator.js.map +0 -1
  132. package/dist/tsconfig.tsbuildinfo +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikonintegration/ikapi",
3
- "version": "5.0.3",
3
+ "version": "5.0.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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,25 @@
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
+ 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";
6
6
 
7
7
  export default class Mailer {
8
8
  /**
9
9
  * The starting point of a range.
10
10
  * @type {string}
11
11
  */
12
- private readonly from: string
12
+ private readonly from: string;
13
13
  /**
14
14
  * The default file template for the application.
15
15
  * @type {string}
16
16
  */
17
- private readonly templateDefaultFile: string = 'html'
17
+ private readonly templateDefaultFile: string = "html";
18
18
  /**
19
19
  * The transporter object used for sending emails using the AWS SES service.
20
20
  * @type {ReturnType<typeof nodemailer.createTransport<SESTransport.SentMessageInfo>>}
21
21
  */
22
- private readonly transporter: ReturnType<
23
- typeof nodemailer.createTransport<SESTransport.SentMessageInfo>
24
- >
22
+ private readonly transporter: ReturnType<typeof nodemailer.createTransport<SESTransport.SentMessageInfo>>;
25
23
 
26
24
  /**
27
25
  * Constructs a new instance of the EmailSender class.
@@ -30,17 +28,17 @@ export default class Mailer {
30
28
  * @returns None
31
29
  */
32
30
  constructor(defaultFrom: string, region: string) {
33
- this.from = defaultFrom
31
+ this.from = defaultFrom;
34
32
  this.transporter = nodemailer.createTransport({
35
33
  SES: {
36
34
  ses: new SES.SESClient({
37
35
  credentials: defaultProvider(),
38
- apiVersion: '2010-12-01',
36
+ apiVersion: "2010-12-01",
39
37
  region,
40
38
  }),
41
39
  aws: SES,
42
40
  },
43
- })
41
+ });
44
42
  }
45
43
 
46
44
  /**
@@ -77,17 +75,17 @@ export default class Mailer {
77
75
  },
78
76
  transport: optionalTransport || this.transporter,
79
77
  send: true,
80
- })
78
+ });
81
79
  //
82
- let resp = null
80
+ let resp = null;
83
81
  try {
84
- resp = await email.send()
85
- console.debug('Mailer resp:', resp)
82
+ resp = await email.send();
83
+ console.debug("Mailer resp:", resp);
86
84
  } catch (e) {
87
- console.error('Mailer error:', e)
88
- throw e
85
+ console.error("Mailer error:", e);
86
+ throw e;
89
87
  }
90
- return resp
88
+ return resp;
91
89
  }
92
90
 
93
91
  /**
@@ -99,6 +97,7 @@ export default class Mailer {
99
97
  * @param {string} [optionalFrom] - The email address to send the email from.
100
98
  * @param {string} [optionalReplyTo] - The email address to set as the reply-to address.
101
99
  * @param {any[]} [optionalAttachments] - An array
100
+ * @param {Record<string, string>} [optionalHeaders] - Optional headers to be added to the message. Passed in a key value object.
102
101
  */
103
102
  public async sendTemplatedEmail(
104
103
  to: string | Array<string>,
@@ -109,11 +108,13 @@ export default class Mailer {
109
108
  optionalReplyTo?: string,
110
109
  // TODO: improve attachment type -> Attachment
111
110
  optionalAttachments?: any[],
111
+ optionalHeaders?: Record<string, string>,
112
112
  optionalTransport?: Email.NodeMailerTransportOptions
113
113
  ) {
114
114
  //Generate emails
115
115
  const email = new Email({
116
116
  message: {
117
+ ...(optionalHeaders ? { headers: optionalHeaders } : {}),
117
118
  from: optionalFrom || this.from,
118
119
  to: to,
119
120
  ...(optionalAttachments ? { attachments: optionalAttachments } : {}),
@@ -122,18 +123,18 @@ export default class Mailer {
122
123
  },
123
124
  transport: optionalTransport || this.transporter,
124
125
  send: true,
125
- })
126
+ });
126
127
  //
127
- let resp = null
128
+ let resp = null;
128
129
  try {
129
- const chosenTemplate = await this.chooseTemplate(templates, data)
130
- resp = await email.send({ template: chosenTemplate, locals: data })
131
- console.debug('Mailer resp:', resp)
130
+ const chosenTemplate = await this.chooseTemplate(templates, data);
131
+ resp = await email.send({ template: chosenTemplate, locals: data });
132
+ console.debug("Mailer resp:", resp);
132
133
  } catch (e) {
133
- console.error('Mailer error:', e)
134
- throw e
134
+ console.error("Mailer error:", e);
135
+ throw e;
135
136
  }
136
- return resp
137
+ return resp;
137
138
  }
138
139
 
139
140
  /**
@@ -144,12 +145,7 @@ export default class Mailer {
144
145
  * @param {string} password - The password for authentication with the SMTP server.
145
146
  * @returns {Email.NodeMailerTransportOptions} - The SMTP transporter object.
146
147
  */
147
- public newSMTPTransporter(
148
- host: string,
149
- portNumber: number,
150
- user: string,
151
- password: string
152
- ): Email.NodeMailerTransportOptions {
148
+ public newSMTPTransporter(host: string, portNumber: number, user: string, password: string): Email.NodeMailerTransportOptions {
153
149
  const smtpTransporter = nodemailer.createTransport({
154
150
  host: host,
155
151
  port: portNumber,
@@ -158,8 +154,8 @@ export default class Mailer {
158
154
  user: user,
159
155
  pass: password,
160
156
  },
161
- })
162
- return smtpTransporter
157
+ });
158
+ return smtpTransporter;
163
159
  }
164
160
 
165
161
  /**
@@ -173,15 +169,12 @@ export default class Mailer {
173
169
  if (Array.isArray(templates)) {
174
170
  //For each template check if can render it
175
171
  for (const template of templates) {
176
- if (await this.canRenderTemplate(template, data)) return template
172
+ if (await this.canRenderTemplate(template, data)) return template;
177
173
  }
178
174
  } else if (templates) {
179
- if (await this.canRenderTemplate(templates, data)) return templates
175
+ if (await this.canRenderTemplate(templates, data)) return templates;
180
176
  }
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
- )
177
+ throw new Error(`Could not render email with template ${templates} and following data. Please, check logs above! ` + JSON.stringify(data, null, 2));
185
178
  }
186
179
 
187
180
  /**
@@ -191,11 +184,8 @@ export default class Mailer {
191
184
  * @returns {Promise<boolean>} - A promise that resolves to true if the template can be rendered, false otherwise.
192
185
  */
193
186
  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
187
+ const validRenderResp = await Mailer.renderTemplate(`${template}/${this.templateDefaultFile}`, data);
188
+ return validRenderResp != null;
199
189
  }
200
190
 
201
191
  /**
@@ -205,13 +195,13 @@ export default class Mailer {
205
195
  * @returns {Promise<boolean>} - A promise that resolves to true if the template was rendered successfully, false otherwise.
206
196
  */
207
197
  public static async renderTemplate(template: string, data: object): Promise<any> {
208
- let validRenderResp: string | null = null
198
+ let validRenderResp: string | null = null;
209
199
  try {
210
- const email = new Email()
211
- validRenderResp = await email.render(`${template}`, data)
200
+ const email = new Email();
201
+ validRenderResp = await email.render(`${template}`, data);
212
202
  } catch (e) {
213
- console.log(`Error while checking renderability of email template ${template}`, e)
203
+ console.log(`Error while checking renderability of email template ${template}`, e);
214
204
  }
215
- return validRenderResp
205
+ return validRenderResp;
216
206
  }
217
207
  }
package/dist/index.d.ts DELETED
@@ -1,17 +0,0 @@
1
- import { HttpMethod } from './src/API/Request.js';
2
- import Response, { ResponseErrorType } from './src/API/Response.js';
3
- import DynamoTransaction from './src/BaseEvent/DynamoTransaction.js';
4
- import EventProcessor from './src/BaseEvent/EventProcessor.js';
5
- import Launchable from './src/BaseEvent/Launchable/index.js';
6
- import Process from './src/BaseEvent/Process.js';
7
- import StepTransaction from './src/BaseEvent/StepTransaction.js';
8
- import Transaction, { TransactionConfig } from './src/BaseEvent/Transaction.js';
9
- import Redis from './src/Cache/Redis.js';
10
- import Configuration from './src/Config/Configuration.js';
11
- import Crypto from './src/Crypto/Crypto.js';
12
- import * as Database from './src/Database/index.js';
13
- import Mailer from './src/Mailer/Mailer.js';
14
- import Router, { Route } from './src/Server/Router.js';
15
- import AsyncSingleton from './src/Util/AsyncSingleton.js';
16
- import Utils from './src/Util/Utils.js';
17
- export { Transaction, Process, EventProcessor, DynamoTransaction, StepTransaction, Launchable, Router, Route, HttpMethod, Mailer, Crypto, Configuration, Redis, Database, Response, ResponseErrorType, Utils, AsyncSingleton, TransactionConfig, };
package/dist/index.js DELETED
@@ -1,28 +0,0 @@
1
- import { HttpMethod } from './src/API/Request.js';
2
- import Response from './src/API/Response.js';
3
- import DynamoTransaction from './src/BaseEvent/DynamoTransaction.js';
4
- import EventProcessor from './src/BaseEvent/EventProcessor.js';
5
- import Launchable from './src/BaseEvent/Launchable/index.js';
6
- import Process from './src/BaseEvent/Process.js';
7
- import StepTransaction from './src/BaseEvent/StepTransaction.js';
8
- import Transaction from './src/BaseEvent/Transaction.js';
9
- import Redis from './src/Cache/Redis.js';
10
- import Configuration from './src/Config/Configuration.js';
11
- import Crypto from './src/Crypto/Crypto.js';
12
- import * as Database from './src/Database/index.js';
13
- import Mailer from './src/Mailer/Mailer.js';
14
- import Router from './src/Server/Router.js';
15
- import AsyncSingleton from './src/Util/AsyncSingleton.js';
16
- import Utils from './src/Util/Utils.js';
17
- export {
18
- // Base Events
19
- Transaction, Process, EventProcessor, DynamoTransaction, StepTransaction, Launchable,
20
- // Http
21
- Router, HttpMethod,
22
- // Modules
23
- Mailer, Crypto, Configuration, Redis, Database,
24
- // API
25
- Response,
26
- // Helpers
27
- Utils, AsyncSingleton, };
28
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,QAA+B,MAAM,uBAAuB,CAAA;AACnE,OAAO,iBAAiB,MAAM,sCAAsC,CAAA;AACpE,OAAO,cAAc,MAAM,mCAAmC,CAAA;AAC9D,OAAO,UAAU,MAAM,qCAAqC,CAAA;AAC5D,OAAO,OAAO,MAAM,4BAA4B,CAAA;AAChD,OAAO,eAAe,MAAM,oCAAoC,CAAA;AAChE,OAAO,WAAkC,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,MAAM,sBAAsB,CAAA;AACxC,OAAO,aAAa,MAAM,+BAA+B,CAAA;AACzD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AACnD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,MAAiB,MAAM,wBAAwB,CAAA;AACtD,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,MAAM,qBAAqB,CAAA;AAEvC,OAAO;AACL,cAAc;AACd,WAAW,EACX,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,UAAU;AACV,OAAO;AACP,MAAM,EAEN,UAAU;AACV,UAAU;AACV,MAAM,EACN,MAAM,EACN,aAAa,EACb,KAAK,EACL,QAAQ;AACR,MAAM;AACN,QAAQ;AAER,UAAU;AACV,KAAK,EACL,cAAc,GAEf,CAAA"}