@ikonintegration/ikapi 5.0.2 → 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.
- package/package.json +1 -1
- package/src/BaseEvent/Launchable/ContainerExec.ts +6 -2
- package/src/Mailer/Mailer.ts +42 -52
- package/dist/index.d.ts +0 -17
- package/dist/index.js +0 -28
- package/dist/index.js.map +0 -1
- package/dist/package-lock.json +0 -11901
- package/dist/package.json +0 -82
- package/dist/src/API/Request.d.ts +0 -125
- package/dist/src/API/Request.js +0 -185
- package/dist/src/API/Request.js.map +0 -1
- package/dist/src/API/Response.d.ts +0 -188
- package/dist/src/API/Response.js +0 -270
- package/dist/src/API/Response.js.map +0 -1
- package/dist/src/BaseEvent/DynamoTransaction.d.ts +0 -70
- package/dist/src/BaseEvent/DynamoTransaction.js +0 -104
- package/dist/src/BaseEvent/DynamoTransaction.js.map +0 -1
- package/dist/src/BaseEvent/EventProcessor.d.ts +0 -58
- package/dist/src/BaseEvent/EventProcessor.js +0 -101
- package/dist/src/BaseEvent/EventProcessor.js.map +0 -1
- package/dist/src/BaseEvent/Launchable/ContainerExec.d.ts +0 -42
- package/dist/src/BaseEvent/Launchable/ContainerExec.js +0 -102
- package/dist/src/BaseEvent/Launchable/ContainerExec.js.map +0 -1
- package/dist/src/BaseEvent/Launchable/index.d.ts +0 -34
- package/dist/src/BaseEvent/Launchable/index.js +0 -43
- package/dist/src/BaseEvent/Launchable/index.js.map +0 -1
- package/dist/src/BaseEvent/Launchable/types.d.ts +0 -10
- package/dist/src/BaseEvent/Launchable/types.js +0 -2
- package/dist/src/BaseEvent/Launchable/types.js.map +0 -1
- package/dist/src/BaseEvent/Process.d.ts +0 -50
- package/dist/src/BaseEvent/Process.js +0 -64
- package/dist/src/BaseEvent/Process.js.map +0 -1
- package/dist/src/BaseEvent/StepTransaction.d.ts +0 -23
- package/dist/src/BaseEvent/StepTransaction.js +0 -27
- package/dist/src/BaseEvent/StepTransaction.js.map +0 -1
- package/dist/src/BaseEvent/Transaction.d.ts +0 -149
- package/dist/src/BaseEvent/Transaction.js +0 -224
- package/dist/src/BaseEvent/Transaction.js.map +0 -1
- package/dist/src/Cache/Redis.d.ts +0 -29
- package/dist/src/Cache/Redis.js +0 -80
- package/dist/src/Cache/Redis.js.map +0 -1
- package/dist/src/Cache/types.d.ts +0 -31
- package/dist/src/Cache/types.js +0 -2
- package/dist/src/Cache/types.js.map +0 -1
- package/dist/src/Config/Configuration.d.ts +0 -123
- package/dist/src/Config/Configuration.js +0 -109
- package/dist/src/Config/Configuration.js.map +0 -1
- package/dist/src/Config/EnvironmentVar.d.ts +0 -74
- package/dist/src/Config/EnvironmentVar.js +0 -138
- package/dist/src/Config/EnvironmentVar.js.map +0 -1
- package/dist/src/Crypto/Crypto.d.ts +0 -45
- package/dist/src/Crypto/Crypto.js +0 -72
- package/dist/src/Crypto/Crypto.js.map +0 -1
- package/dist/src/Database/Database.d.ts +0 -21
- package/dist/src/Database/Database.js +0 -15
- package/dist/src/Database/Database.js.map +0 -1
- package/dist/src/Database/DatabaseManager.d.ts +0 -47
- package/dist/src/Database/DatabaseManager.js +0 -60
- package/dist/src/Database/DatabaseManager.js.map +0 -1
- package/dist/src/Database/DatabaseTransaction.d.ts +0 -101
- package/dist/src/Database/DatabaseTransaction.js +0 -126
- package/dist/src/Database/DatabaseTransaction.js.map +0 -1
- package/dist/src/Database/index.d.ts +0 -10
- package/dist/src/Database/index.js +0 -15
- package/dist/src/Database/index.js.map +0 -1
- package/dist/src/Database/integrations/dynamo/DynamoDatabase.d.ts +0 -35
- package/dist/src/Database/integrations/dynamo/DynamoDatabase.js +0 -59
- package/dist/src/Database/integrations/dynamo/DynamoDatabase.js.map +0 -1
- package/dist/src/Database/integrations/kysely/KyselyDatabase.d.ts +0 -66
- package/dist/src/Database/integrations/kysely/KyselyDatabase.js +0 -86
- package/dist/src/Database/integrations/kysely/KyselyDatabase.js.map +0 -1
- package/dist/src/Database/integrations/kysely/KyselyTransaction.d.ts +0 -70
- package/dist/src/Database/integrations/kysely/KyselyTransaction.js +0 -118
- package/dist/src/Database/integrations/kysely/KyselyTransaction.js.map +0 -1
- package/dist/src/Database/integrations/pgsql/PostgresDatabase.d.ts +0 -36
- package/dist/src/Database/integrations/pgsql/PostgresDatabase.js +0 -54
- package/dist/src/Database/integrations/pgsql/PostgresDatabase.js.map +0 -1
- package/dist/src/Database/integrations/pgsql/PostgresTransaction.d.ts +0 -63
- package/dist/src/Database/integrations/pgsql/PostgresTransaction.js +0 -61
- package/dist/src/Database/integrations/pgsql/PostgresTransaction.js.map +0 -1
- package/dist/src/Database/types.d.ts +0 -76
- package/dist/src/Database/types.js +0 -2
- package/dist/src/Database/types.js.map +0 -1
- package/dist/src/Globals.d.ts +0 -93
- package/dist/src/Globals.js +0 -99
- package/dist/src/Globals.js.map +0 -1
- package/dist/src/Logger/Logger.d.ts +0 -161
- package/dist/src/Logger/Logger.js +0 -299
- package/dist/src/Logger/Logger.js.map +0 -1
- package/dist/src/Mailer/Mailer.d.ts +0 -78
- package/dist/src/Mailer/Mailer.js +0 -182
- package/dist/src/Mailer/Mailer.js.map +0 -1
- package/dist/src/Publisher/Publisher.d.ts +0 -39
- package/dist/src/Publisher/Publisher.js +0 -77
- package/dist/src/Publisher/Publisher.js.map +0 -1
- package/dist/src/Server/RouteResolver.d.ts +0 -33
- package/dist/src/Server/RouteResolver.js +0 -100
- package/dist/src/Server/RouteResolver.js.map +0 -1
- package/dist/src/Server/Router.d.ts +0 -157
- package/dist/src/Server/Router.js +0 -32
- package/dist/src/Server/Router.js.map +0 -1
- package/dist/src/Server/lib/ContainerServer.d.ts +0 -42
- package/dist/src/Server/lib/ContainerServer.js +0 -66
- package/dist/src/Server/lib/ContainerServer.js.map +0 -1
- package/dist/src/Server/lib/Server.d.ts +0 -45
- package/dist/src/Server/lib/Server.js +0 -93
- package/dist/src/Server/lib/Server.js.map +0 -1
- package/dist/src/Server/lib/container/GenericHandler.d.ts +0 -9
- package/dist/src/Server/lib/container/GenericHandler.js +0 -82
- package/dist/src/Server/lib/container/GenericHandler.js.map +0 -1
- package/dist/src/Server/lib/container/GenericHandlerEvent.d.ts +0 -52
- package/dist/src/Server/lib/container/GenericHandlerEvent.js +0 -132
- package/dist/src/Server/lib/container/GenericHandlerEvent.js.map +0 -1
- package/dist/src/Server/lib/container/HealthHandler.d.ts +0 -9
- package/dist/src/Server/lib/container/HealthHandler.js +0 -19
- package/dist/src/Server/lib/container/HealthHandler.js.map +0 -1
- package/dist/src/Server/lib/container/Proxy.d.ts +0 -67
- package/dist/src/Server/lib/container/Proxy.js +0 -143
- package/dist/src/Server/lib/container/Proxy.js.map +0 -1
- package/dist/src/Server/lib/container/Utils.d.ts +0 -14
- package/dist/src/Server/lib/container/Utils.js +0 -37
- package/dist/src/Server/lib/container/Utils.js.map +0 -1
- package/dist/src/Util/AsyncSingleton.d.ts +0 -31
- package/dist/src/Util/AsyncSingleton.js +0 -83
- package/dist/src/Util/AsyncSingleton.js.map +0 -1
- package/dist/src/Util/Utils.d.ts +0 -61
- package/dist/src/Util/Utils.js +0 -147
- package/dist/src/Util/Utils.js.map +0 -1
- package/dist/src/Validation/Validator.d.ts +0 -17
- package/dist/src/Validation/Validator.js +0 -39
- package/dist/src/Validation/Validator.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
import abind from 'abind';
|
|
2
|
-
import stringify from 'json-stringify-safe';
|
|
3
|
-
import stackTrace from 'stack-trace';
|
|
4
|
-
import Utils from '../Util/Utils.js';
|
|
5
|
-
/**
|
|
6
|
-
* Enumeration of log levels.
|
|
7
|
-
* @enum {string}
|
|
8
|
-
* @property {string} DEBUG - Debug log level.
|
|
9
|
-
* @property {string} INFO - Info log level.
|
|
10
|
-
* @property {string} WARN - Warning log level.
|
|
11
|
-
* @property {string} ERROR - Error log level.
|
|
12
|
-
*/
|
|
13
|
-
export var LOG_LEVELS;
|
|
14
|
-
(function (LOG_LEVELS) {
|
|
15
|
-
LOG_LEVELS["DEBUG"] = "DEBUG";
|
|
16
|
-
LOG_LEVELS["INFO"] = "INFO";
|
|
17
|
-
LOG_LEVELS["WARN"] = "WARN";
|
|
18
|
-
LOG_LEVELS["ERROR"] = "ERROR";
|
|
19
|
-
})(LOG_LEVELS || (LOG_LEVELS = {}));
|
|
20
|
-
/**
|
|
21
|
-
* A constant that represents the console object to be used for logging.
|
|
22
|
-
* If the console object has a property named 'notGlobalLogger', it is assumed
|
|
23
|
-
* to be a custom logger and the 'origin' property is used as the console object.
|
|
24
|
-
* Otherwise, the global console object is used.
|
|
25
|
-
* @type {Console}
|
|
26
|
-
*/
|
|
27
|
-
const PURE_CONSOLE = console['notGlobalLogger'] ? console['origin'] : console;
|
|
28
|
-
/**
|
|
29
|
-
* The default log function that is used for logging messages.
|
|
30
|
-
* @type {Function}
|
|
31
|
-
*/
|
|
32
|
-
const DEFAULT_LOG_FUNCTION = PURE_CONSOLE.log.bind(PURE_CONSOLE);
|
|
33
|
-
/**
|
|
34
|
-
* Creates a blacklist array by mapping each string in the given array to its lowercase form.
|
|
35
|
-
* The resulting blacklist array is used to filter out sensitive information.
|
|
36
|
-
* @type {string[]} blacklist - An array of strings to be converted to lowercase and used as a blacklist.
|
|
37
|
-
* @returns {string[]} - An array of lowercase strings representing the blacklist.
|
|
38
|
-
*/
|
|
39
|
-
const blacklist = ['password', 'token', 'accounts', 'rawBody'].map(s => s.toLowerCase());
|
|
40
|
-
/* Used to have a clean log */
|
|
41
|
-
const defaultSuppress = ['rawBody'].map(s => s.toLowerCase());
|
|
42
|
-
/**
|
|
43
|
-
* Logger class for logging messages with different log levels.
|
|
44
|
-
*/
|
|
45
|
-
export default class Logger {
|
|
46
|
-
/**
|
|
47
|
-
* Constructs a Logger object with the given configuration and transaction ID.
|
|
48
|
-
* @param {config} config - The configuration object for the logger. Can be undefined.
|
|
49
|
-
* @param {string} transactionID - The ID of the transaction associated with the logger.
|
|
50
|
-
* @returns None
|
|
51
|
-
*/
|
|
52
|
-
constructor(config, transactionID) {
|
|
53
|
-
abind(this);
|
|
54
|
-
//
|
|
55
|
-
this.origin = PURE_CONSOLE;
|
|
56
|
-
this._LOG_LEVEL = (config === null || config === void 0 ? void 0 : config.logLevel)
|
|
57
|
-
? LOG_LEVELS[config === null || config === void 0 ? void 0 : config.logLevel] || LOG_LEVELS.DEBUG
|
|
58
|
-
: LOG_LEVELS.DEBUG;
|
|
59
|
-
this.config = config || {};
|
|
60
|
-
this.transactionID = transactionID;
|
|
61
|
-
this.filterBlacklist = this.config.sensitiveFilteringKeywords
|
|
62
|
-
? Array.isArray(this.config.sensitiveFilteringKeywords)
|
|
63
|
-
? this.config.sensitiveFilteringKeywords
|
|
64
|
-
: blacklist
|
|
65
|
-
: defaultSuppress;
|
|
66
|
-
//
|
|
67
|
-
this.setupBindings();
|
|
68
|
-
//
|
|
69
|
-
this.log('Using logger with level: ' + this._LOG_LEVEL.toString());
|
|
70
|
-
this.debug('logger config: ', this.config);
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Returns a boolean value indicating whether the notGlobalLogger function is executed successfully.
|
|
74
|
-
* @returns {boolean} - true if the function is executed successfully, false otherwise.
|
|
75
|
-
*/
|
|
76
|
-
notGlobalLogger() {
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Logs the given arguments with the debug log level.
|
|
81
|
-
* @param {...any} args - The arguments to be logged.
|
|
82
|
-
* @returns None
|
|
83
|
-
*/
|
|
84
|
-
debug(...args) {
|
|
85
|
-
this.processLog(LOG_LEVELS.DEBUG, args);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Logs the given arguments with the INFO log level.
|
|
89
|
-
* @param {...any} args - The arguments to be logged.
|
|
90
|
-
* @returns None
|
|
91
|
-
*/
|
|
92
|
-
log(...args) {
|
|
93
|
-
this.processLog(LOG_LEVELS.INFO, args);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Logs an informational message.
|
|
97
|
-
* @param {...any} args - The message(s) to log.
|
|
98
|
-
* @returns None
|
|
99
|
-
*/
|
|
100
|
-
info(...args) {
|
|
101
|
-
this.processLog(LOG_LEVELS.INFO, args);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Logs a warning message with the provided arguments.
|
|
105
|
-
* @param {...any} args - The arguments to be logged as a warning message.
|
|
106
|
-
* @returns None
|
|
107
|
-
*/
|
|
108
|
-
warning(...args) {
|
|
109
|
-
this.processLog(LOG_LEVELS.WARN, args);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Logs a warning message to the console.
|
|
113
|
-
* @param {...any} args - The arguments to be logged.
|
|
114
|
-
* @returns None
|
|
115
|
-
*/
|
|
116
|
-
warn(...args) {
|
|
117
|
-
this.processLog(LOG_LEVELS.WARN, args);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Logs an error message with the given arguments.
|
|
121
|
-
* @param {...any} args - The arguments to log as an error message.
|
|
122
|
-
* @returns None
|
|
123
|
-
*/
|
|
124
|
-
error(...args) {
|
|
125
|
-
this.processLog(LOG_LEVELS.ERROR, args);
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Logs an exception with optional additional arguments.
|
|
129
|
-
* @param {any} exception - The exception to log.
|
|
130
|
-
* @param {...any} args - Additional arguments to include in the log.
|
|
131
|
-
* @returns None
|
|
132
|
-
*/
|
|
133
|
-
exception(exception, ...args) {
|
|
134
|
-
this.iexception(exception, args);
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Sets up the console bindings for logging purposes.
|
|
138
|
-
* @private
|
|
139
|
-
* @returns None
|
|
140
|
-
*/
|
|
141
|
-
setupBindings() {
|
|
142
|
-
global.console = {
|
|
143
|
-
debug: (...args) => this.processLog(LOG_LEVELS.DEBUG, args),
|
|
144
|
-
log: (...args) => this.processLog(LOG_LEVELS.INFO, args),
|
|
145
|
-
info: (...args) => this.processLog(LOG_LEVELS.INFO, args),
|
|
146
|
-
warn: (...args) => this.processLog(LOG_LEVELS.WARN, args),
|
|
147
|
-
error: (...args) => this.processLog(LOG_LEVELS.ERROR, args),
|
|
148
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
149
|
-
// @ts-ignore
|
|
150
|
-
warning: (...args) => this.processLog(LOG_LEVELS.WARN, args),
|
|
151
|
-
exception: (exception, ...args) => this.iexception(exception, args),
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Formats a log message with the specified log level, message, and caller.
|
|
156
|
-
* @param {LOG_LEVELS} level - The log level of the message.
|
|
157
|
-
* @param {Array<string>} msg - An array of strings representing the message.
|
|
158
|
-
* @param {string} caller - The name of the caller function.
|
|
159
|
-
* @returns {string} - The formatted log message.
|
|
160
|
-
*/
|
|
161
|
-
formattedLog(level, msg, caller) {
|
|
162
|
-
if (Utils.isHybridlessContainer() && this.transactionID) {
|
|
163
|
-
return `${this.transactionID}` + ` [${level.toString()}] [${caller}] ${msg.join(' ')}`;
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
return `[${level.toString()}] [${caller}] ${msg.join(' ')}`;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Retrieves the name of the caller function at the specified index in the stack trace.
|
|
171
|
-
* @param {number} index - The index of the caller function in the stack trace.
|
|
172
|
-
* @returns {string} The name of the caller function along with the file path and line number.
|
|
173
|
-
*/
|
|
174
|
-
callerName(index) {
|
|
175
|
-
var _a, _b, _c, _d, _e, _f;
|
|
176
|
-
const safeIndex = Math.min(index, stackTrace.get().length);
|
|
177
|
-
if (stackTrace.get()[safeIndex]) {
|
|
178
|
-
let callerName = (_c = (_b = (_a = stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.get()) === null || _a === void 0 ? void 0 : _a[safeIndex]) === null || _b === void 0 ? void 0 : _b.getFileName()) === null || _c === void 0 ? void 0 : _c.split('/');
|
|
179
|
-
callerName = (_d = callerName === null || callerName === void 0 ? void 0 : callerName.slice(callerName === null || callerName === void 0 ? void 0 : callerName.indexOf('src'))) === null || _d === void 0 ? void 0 : _d.join('/');
|
|
180
|
-
return callerName + ':' + ((_f = (_e = stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.get()) === null || _e === void 0 ? void 0 : _e[safeIndex]) === null || _f === void 0 ? void 0 : _f.getLineNumber());
|
|
181
|
-
}
|
|
182
|
-
return '';
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Processes log messages based on the specified log level.
|
|
186
|
-
* @param {LOG_LEVELS} level - The level of the log message.
|
|
187
|
-
* @param {any} args - The arguments to be logged.
|
|
188
|
-
* @returns None
|
|
189
|
-
*/
|
|
190
|
-
processLog(level, args) {
|
|
191
|
-
if (level < this._LOG_LEVEL)
|
|
192
|
-
return;
|
|
193
|
-
//get args
|
|
194
|
-
const msg = [];
|
|
195
|
-
for (const arg of args) {
|
|
196
|
-
// Deep clone object so we dont modify source
|
|
197
|
-
const fMsg = this.formatArgument(arg);
|
|
198
|
-
msg.push(fMsg);
|
|
199
|
-
}
|
|
200
|
-
//push into logs stack
|
|
201
|
-
// todo: improve error stack
|
|
202
|
-
this.pushLog(level, this.formattedLog(level, msg, this.callerName(3)));
|
|
203
|
-
}
|
|
204
|
-
formatArgument(arg) {
|
|
205
|
-
if (arg instanceof Error) {
|
|
206
|
-
return arg.message + '\n' + arg.stack;
|
|
207
|
-
}
|
|
208
|
-
if (arg && typeof arg === 'object') {
|
|
209
|
-
return stringify(this.suppressSensitiveInfo(JSON.parse(stringify(arg))), null, 2);
|
|
210
|
-
}
|
|
211
|
-
return `${this.suppressSensitiveInfo(arg)}`;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Logs an exception along with additional arguments and the stack trace.
|
|
215
|
-
* @param {Error} exception - The exception object to log.
|
|
216
|
-
* @param {...any} args - Additional arguments to include in the log.
|
|
217
|
-
* @returns None
|
|
218
|
-
*/
|
|
219
|
-
iexception(exception, ...args) {
|
|
220
|
-
//format message
|
|
221
|
-
const msg = [];
|
|
222
|
-
//push exeception
|
|
223
|
-
msg.push(exception.toString() + ' -');
|
|
224
|
-
//get args
|
|
225
|
-
for (const arg of args)
|
|
226
|
-
if (arg != exception)
|
|
227
|
-
msg.push(arg);
|
|
228
|
-
if (exception.stack)
|
|
229
|
-
msg.push(exception.stack); //push Exeception stack at the end
|
|
230
|
-
//push into logs stack
|
|
231
|
-
this.pushLog(LOG_LEVELS.ERROR, this.formattedLog(LOG_LEVELS.ERROR, msg, this.callerName(3)));
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Pushes a log message to the console with the specified log level.
|
|
235
|
-
* @param {LOG_LEVELS} level - The log level of the message.
|
|
236
|
-
* @param {string} fMsg - The formatted log message.
|
|
237
|
-
* @returns None
|
|
238
|
-
*/
|
|
239
|
-
pushLog(level, fMsg) {
|
|
240
|
-
DEFAULT_LOG_FUNCTION.apply(PURE_CONSOLE, [fMsg]);
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Suppresses sensitive information in the given value based on the filter blacklist.
|
|
244
|
-
* @param {any} value - The value to suppress sensitive information from.
|
|
245
|
-
* @returns {string} - The value with sensitive information suppressed.
|
|
246
|
-
*/
|
|
247
|
-
suppressSensitiveInfo(value) {
|
|
248
|
-
if (!value || !this.filterBlacklist.length)
|
|
249
|
-
return value;
|
|
250
|
-
const parent = [value];
|
|
251
|
-
const stack = [{ value, parent, key: 0 }];
|
|
252
|
-
while (stack.length > 0) {
|
|
253
|
-
this.suppressSensitiveInfoItem(stack.pop(), stack.push.bind(stack));
|
|
254
|
-
}
|
|
255
|
-
return parent[0];
|
|
256
|
-
}
|
|
257
|
-
suppressSensitiveInfoItem({ value, parent, key }, push) {
|
|
258
|
-
if (!value)
|
|
259
|
-
return;
|
|
260
|
-
if (typeof value === 'string') {
|
|
261
|
-
this.suppressSensitiveString({ value, parent, key }, push);
|
|
262
|
-
}
|
|
263
|
-
else if (Array.isArray(value)) {
|
|
264
|
-
value.forEach((v, index) => push({ value: v, parent: value, key: index }));
|
|
265
|
-
}
|
|
266
|
-
else if (typeof value === 'object') {
|
|
267
|
-
this.suppressSensitiveObject(value, push);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
suppressSensitiveString({ value, parent, key }, push) {
|
|
271
|
-
var _a;
|
|
272
|
-
let modifiedValue = value;
|
|
273
|
-
try {
|
|
274
|
-
// Try to parse json string
|
|
275
|
-
modifiedValue = JSON.parse(value);
|
|
276
|
-
push({ value: modifiedValue, parent, key });
|
|
277
|
-
}
|
|
278
|
-
catch (_b) {
|
|
279
|
-
const lower = value.toLowerCase();
|
|
280
|
-
if (this.filterBlacklist.some(f => lower == f))
|
|
281
|
-
modifiedValue = `**SUPPRESSED_SENSITIVE_DATA** (${((_a = String(modifiedValue)) === null || _a === void 0 ? void 0 : _a.length) || 0} len)`;
|
|
282
|
-
}
|
|
283
|
-
parent[key] = modifiedValue;
|
|
284
|
-
}
|
|
285
|
-
suppressSensitiveObject(value, push) {
|
|
286
|
-
Object.entries(value).forEach(([k, v]) => {
|
|
287
|
-
var _a;
|
|
288
|
-
const lower = k.toLowerCase();
|
|
289
|
-
const match = v && this.filterBlacklist.some(f => lower == f);
|
|
290
|
-
if (match) {
|
|
291
|
-
value[k] = `**SUPPRESSED_SENSITIVE_DATA** (${((_a = String(v)) === null || _a === void 0 ? void 0 : _a.length) || 0} len)`;
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
push({ value: v, parent: value, key: k });
|
|
295
|
-
}
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
//# sourceMappingURL=Logger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/Logger/Logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import Email from 'email-templates';
|
|
2
|
-
export default class Mailer {
|
|
3
|
-
/**
|
|
4
|
-
* The starting point of a range.
|
|
5
|
-
* @type {string}
|
|
6
|
-
*/
|
|
7
|
-
private readonly from;
|
|
8
|
-
/**
|
|
9
|
-
* The default file template for the application.
|
|
10
|
-
* @type {string}
|
|
11
|
-
*/
|
|
12
|
-
private readonly templateDefaultFile;
|
|
13
|
-
/**
|
|
14
|
-
* The transporter object used for sending emails using the AWS SES service.
|
|
15
|
-
* @type {ReturnType<typeof nodemailer.createTransport<SESTransport.SentMessageInfo>>}
|
|
16
|
-
*/
|
|
17
|
-
private readonly transporter;
|
|
18
|
-
/**
|
|
19
|
-
* Constructs a new instance of the EmailSender class.
|
|
20
|
-
* @param {string} defaultFrom - The default "from" email address.
|
|
21
|
-
* @param {string} region - The AWS region to use for sending emails.
|
|
22
|
-
* @returns None
|
|
23
|
-
*/
|
|
24
|
-
constructor(defaultFrom: string, region: string);
|
|
25
|
-
/**
|
|
26
|
-
* Sends a raw email with the specified parameters.
|
|
27
|
-
* @param {string | Array<string>} to - The recipient(s) of the email.
|
|
28
|
-
* @param {string} htmlMessage - The HTML content of the email.
|
|
29
|
-
* @param {string} subject - The subject of the email.
|
|
30
|
-
* @param {string | Array<string>} [optionalCC] - The optional CC recipient(s) of the email.
|
|
31
|
-
* @param {string} [optionalFrom] - The optional sender of the email. If not provided, the default sender will be used.
|
|
32
|
-
* @param {string} [optionalReplyTo] - The optional reply-to address for the email.
|
|
33
|
-
* @param {any[]} [optionalAttachments] - The optional attachments to include
|
|
34
|
-
*/
|
|
35
|
-
sendRawEmail(to: string | Array<string>, htmlMessage: string, subject: string, optionalCC?: string | Array<string>, optionalFrom?: string, optionalReplyTo?: string, optionalAttachments?: any[], optionalTransport?: Email.NodeMailerTransportOptions): Promise<null>;
|
|
36
|
-
/**
|
|
37
|
-
* Sends a templated email to the specified recipients.
|
|
38
|
-
* @param {string | Array<string>} to - The email address(es) of the recipient(s).
|
|
39
|
-
* @param {string | Array<string>} templates - The template(s) to use for the email.
|
|
40
|
-
* @param {object} data - The data to be used in the email template.
|
|
41
|
-
* @param {string | Array<string>} [optionalCC] - The email address(es) to CC.
|
|
42
|
-
* @param {string} [optionalFrom] - The email address to send the email from.
|
|
43
|
-
* @param {string} [optionalReplyTo] - The email address to set as the reply-to address.
|
|
44
|
-
* @param {any[]} [optionalAttachments] - An array
|
|
45
|
-
*/
|
|
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
|
-
/**
|
|
48
|
-
* Creates a new SMTP transporter for sending emails using NodeMailer.
|
|
49
|
-
* @param {string} host - The SMTP server host.
|
|
50
|
-
* @param {number} portNumber - The port number to connect to the SMTP server.
|
|
51
|
-
* @param {string} user - The username for authentication with the SMTP server.
|
|
52
|
-
* @param {string} password - The password for authentication with the SMTP server.
|
|
53
|
-
* @returns {Email.NodeMailerTransportOptions} - The SMTP transporter object.
|
|
54
|
-
*/
|
|
55
|
-
newSMTPTransporter(host: string, portNumber: number, user: string, password: string): Email.NodeMailerTransportOptions;
|
|
56
|
-
/**
|
|
57
|
-
* Chooses a template from the given array of templates or a single template string based on whether it can be rendered with the provided data.
|
|
58
|
-
* @param {string | Array<string>} templates - The template(s) to choose from.
|
|
59
|
-
* @param {object} data - The data to be used for rendering the template.
|
|
60
|
-
* @returns {Promise<string>} - The chosen template.
|
|
61
|
-
* @throws {Error} - If no template can be rendered with the provided data.
|
|
62
|
-
*/
|
|
63
|
-
private chooseTemplate;
|
|
64
|
-
/**
|
|
65
|
-
* Checks if a given email template can be rendered with the provided data.
|
|
66
|
-
* @param {string} template - The name of the email template.
|
|
67
|
-
* @param {object} data - The data to be used for rendering the template.
|
|
68
|
-
* @returns {Promise<boolean>} - A promise that resolves to true if the template can be rendered, false otherwise.
|
|
69
|
-
*/
|
|
70
|
-
private canRenderTemplate;
|
|
71
|
-
/**
|
|
72
|
-
* Renders the given template with the provided data using the Email class.
|
|
73
|
-
* @param {string} template - The name or path of the template to render.
|
|
74
|
-
* @param {object} data - The data object to pass to the template.
|
|
75
|
-
* @returns {Promise<boolean>} - A promise that resolves to true if the template was rendered successfully, false otherwise.
|
|
76
|
-
*/
|
|
77
|
-
static renderTemplate(template: string, data: object): Promise<any>;
|
|
78
|
-
}
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
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';
|
|
14
|
-
export default class Mailer {
|
|
15
|
-
/**
|
|
16
|
-
* Constructs a new instance of the EmailSender class.
|
|
17
|
-
* @param {string} defaultFrom - The default "from" email address.
|
|
18
|
-
* @param {string} region - The AWS region to use for sending emails.
|
|
19
|
-
* @returns None
|
|
20
|
-
*/
|
|
21
|
-
constructor(defaultFrom, region) {
|
|
22
|
-
/**
|
|
23
|
-
* The default file template for the application.
|
|
24
|
-
* @type {string}
|
|
25
|
-
*/
|
|
26
|
-
this.templateDefaultFile = 'html';
|
|
27
|
-
this.from = defaultFrom;
|
|
28
|
-
this.transporter = nodemailer.createTransport({
|
|
29
|
-
SES: {
|
|
30
|
-
ses: new SES.SESClient({
|
|
31
|
-
credentials: defaultProvider(),
|
|
32
|
-
apiVersion: '2010-12-01',
|
|
33
|
-
region,
|
|
34
|
-
}),
|
|
35
|
-
aws: SES,
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Sends a raw email with the specified parameters.
|
|
41
|
-
* @param {string | Array<string>} to - The recipient(s) of the email.
|
|
42
|
-
* @param {string} htmlMessage - The HTML content of the email.
|
|
43
|
-
* @param {string} subject - The subject of the email.
|
|
44
|
-
* @param {string | Array<string>} [optionalCC] - The optional CC recipient(s) of the email.
|
|
45
|
-
* @param {string} [optionalFrom] - The optional sender of the email. If not provided, the default sender will be used.
|
|
46
|
-
* @param {string} [optionalReplyTo] - The optional reply-to address for the email.
|
|
47
|
-
* @param {any[]} [optionalAttachments] - The optional attachments to include
|
|
48
|
-
*/
|
|
49
|
-
sendRawEmail(to, htmlMessage, subject, optionalCC, optionalFrom, optionalReplyTo,
|
|
50
|
-
// TODO: improve attachment type -> Attachment
|
|
51
|
-
optionalAttachments, optionalTransport) {
|
|
52
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
//Generate emails
|
|
54
|
-
const email = new Email({
|
|
55
|
-
message: Object.assign(Object.assign(Object.assign({ from: optionalFrom || this.from, to: to, html: htmlMessage, subject }, (optionalAttachments ? { attachments: optionalAttachments } : {})), (optionalCC ? { cc: optionalCC } : {})), (optionalReplyTo ? { replyTo: optionalReplyTo } : {})),
|
|
56
|
-
transport: optionalTransport || this.transporter,
|
|
57
|
-
send: true,
|
|
58
|
-
});
|
|
59
|
-
//
|
|
60
|
-
let resp = null;
|
|
61
|
-
try {
|
|
62
|
-
resp = yield email.send();
|
|
63
|
-
console.debug('Mailer resp:', resp);
|
|
64
|
-
}
|
|
65
|
-
catch (e) {
|
|
66
|
-
console.error('Mailer error:', e);
|
|
67
|
-
throw e;
|
|
68
|
-
}
|
|
69
|
-
return resp;
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Sends a templated email to the specified recipients.
|
|
74
|
-
* @param {string | Array<string>} to - The email address(es) of the recipient(s).
|
|
75
|
-
* @param {string | Array<string>} templates - The template(s) to use for the email.
|
|
76
|
-
* @param {object} data - The data to be used in the email template.
|
|
77
|
-
* @param {string | Array<string>} [optionalCC] - The email address(es) to CC.
|
|
78
|
-
* @param {string} [optionalFrom] - The email address to send the email from.
|
|
79
|
-
* @param {string} [optionalReplyTo] - The email address to set as the reply-to address.
|
|
80
|
-
* @param {any[]} [optionalAttachments] - An array
|
|
81
|
-
*/
|
|
82
|
-
sendTemplatedEmail(to, templates, data, optionalCC, optionalFrom, optionalReplyTo,
|
|
83
|
-
// TODO: improve attachment type -> Attachment
|
|
84
|
-
optionalAttachments, optionalTransport) {
|
|
85
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
//Generate emails
|
|
87
|
-
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 } : {})),
|
|
89
|
-
transport: optionalTransport || this.transporter,
|
|
90
|
-
send: true,
|
|
91
|
-
});
|
|
92
|
-
//
|
|
93
|
-
let resp = null;
|
|
94
|
-
try {
|
|
95
|
-
const chosenTemplate = yield this.chooseTemplate(templates, data);
|
|
96
|
-
resp = yield email.send({ template: chosenTemplate, locals: data });
|
|
97
|
-
console.debug('Mailer resp:', resp);
|
|
98
|
-
}
|
|
99
|
-
catch (e) {
|
|
100
|
-
console.error('Mailer error:', e);
|
|
101
|
-
throw e;
|
|
102
|
-
}
|
|
103
|
-
return resp;
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Creates a new SMTP transporter for sending emails using NodeMailer.
|
|
108
|
-
* @param {string} host - The SMTP server host.
|
|
109
|
-
* @param {number} portNumber - The port number to connect to the SMTP server.
|
|
110
|
-
* @param {string} user - The username for authentication with the SMTP server.
|
|
111
|
-
* @param {string} password - The password for authentication with the SMTP server.
|
|
112
|
-
* @returns {Email.NodeMailerTransportOptions} - The SMTP transporter object.
|
|
113
|
-
*/
|
|
114
|
-
newSMTPTransporter(host, portNumber, user, password) {
|
|
115
|
-
const smtpTransporter = nodemailer.createTransport({
|
|
116
|
-
host: host,
|
|
117
|
-
port: portNumber,
|
|
118
|
-
connectionTimeout: 2000,
|
|
119
|
-
auth: {
|
|
120
|
-
user: user,
|
|
121
|
-
pass: password,
|
|
122
|
-
},
|
|
123
|
-
});
|
|
124
|
-
return smtpTransporter;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Chooses a template from the given array of templates or a single template string based on whether it can be rendered with the provided data.
|
|
128
|
-
* @param {string | Array<string>} templates - The template(s) to choose from.
|
|
129
|
-
* @param {object} data - The data to be used for rendering the template.
|
|
130
|
-
* @returns {Promise<string>} - The chosen template.
|
|
131
|
-
* @throws {Error} - If no template can be rendered with the provided data.
|
|
132
|
-
*/
|
|
133
|
-
chooseTemplate(templates, data) {
|
|
134
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
-
if (Array.isArray(templates)) {
|
|
136
|
-
//For each template check if can render it
|
|
137
|
-
for (const template of templates) {
|
|
138
|
-
if (yield this.canRenderTemplate(template, data))
|
|
139
|
-
return template;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
else if (templates) {
|
|
143
|
-
if (yield this.canRenderTemplate(templates, data))
|
|
144
|
-
return templates;
|
|
145
|
-
}
|
|
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
|
-
});
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Checks if a given email template can be rendered with the provided data.
|
|
152
|
-
* @param {string} template - The name of the email template.
|
|
153
|
-
* @param {object} data - The data to be used for rendering the template.
|
|
154
|
-
* @returns {Promise<boolean>} - A promise that resolves to true if the template can be rendered, false otherwise.
|
|
155
|
-
*/
|
|
156
|
-
canRenderTemplate(template, data) {
|
|
157
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
158
|
-
const validRenderResp = yield Mailer.renderTemplate(`${template}/${this.templateDefaultFile}`, data);
|
|
159
|
-
return validRenderResp != null;
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Renders the given template with the provided data using the Email class.
|
|
164
|
-
* @param {string} template - The name or path of the template to render.
|
|
165
|
-
* @param {object} data - The data object to pass to the template.
|
|
166
|
-
* @returns {Promise<boolean>} - A promise that resolves to true if the template was rendered successfully, false otherwise.
|
|
167
|
-
*/
|
|
168
|
-
static renderTemplate(template, data) {
|
|
169
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
170
|
-
let validRenderResp = null;
|
|
171
|
-
try {
|
|
172
|
-
const email = new Email();
|
|
173
|
-
validRenderResp = yield email.render(`${template}`, data);
|
|
174
|
-
}
|
|
175
|
-
catch (e) {
|
|
176
|
-
console.log(`Error while checking renderability of email template ${template}`, e);
|
|
177
|
-
}
|
|
178
|
-
return validRenderResp;
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
//# sourceMappingURL=Mailer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Mailer.js","sourceRoot":"","sources":["../../../src/Mailer/Mailer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { PublishCommandOutput } from '@aws-sdk/client-sns';
|
|
2
|
-
/**
|
|
3
|
-
* Represents the configuration options for a publisher.
|
|
4
|
-
* @typedef {Object} PublisherConfig
|
|
5
|
-
* @property {string} [region] - The region where the publisher is located.
|
|
6
|
-
*/
|
|
7
|
-
export type PublisherConfig = {
|
|
8
|
-
region?: string;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Represents a publisher that can publish messages to an SNS topic.
|
|
12
|
-
*/
|
|
13
|
-
export default class Publisher {
|
|
14
|
-
/**
|
|
15
|
-
* The region of the object or entity.
|
|
16
|
-
* @private
|
|
17
|
-
* @type {string}
|
|
18
|
-
*/
|
|
19
|
-
private region;
|
|
20
|
-
/**
|
|
21
|
-
* Constructs a new instance of the Publisher class.
|
|
22
|
-
* @param {PublisherConfig} [config] - The configuration object for the Publisher.
|
|
23
|
-
* @returns None
|
|
24
|
-
*/
|
|
25
|
-
constructor(config?: PublisherConfig);
|
|
26
|
-
/**
|
|
27
|
-
* Publishes a message on a specified topic.
|
|
28
|
-
* @param {any} messageObject - The message object to be published.
|
|
29
|
-
* @param {string} topic - The ARN of the topic to publish the message to.
|
|
30
|
-
* @param {object} [additionalProps] - Additional properties to include in the publish command.
|
|
31
|
-
* @returns {Promise<PublishCommandOutput>} - A promise that resolves to the response from the publish command.
|
|
32
|
-
*/
|
|
33
|
-
publishOnTopic(messageObject: any, topic: string, additionalProps?: object): Promise<PublishCommandOutput | undefined>;
|
|
34
|
-
/**
|
|
35
|
-
* Establishes a connection to the SNS client if it does not already exist or if the region has changed.
|
|
36
|
-
* @returns None
|
|
37
|
-
*/
|
|
38
|
-
private connect;
|
|
39
|
-
}
|