lesgo 0.7.8 → 2.1.0

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 (318) hide show
  1. package/README.md +5 -4
  2. package/bin/lesgo-scripts.sh +52 -7
  3. package/dist/config/app.d.ts +7 -0
  4. package/dist/config/app.js +9 -0
  5. package/dist/config/aws.d.ts +5 -0
  6. package/dist/config/aws.js +4 -0
  7. package/dist/config/basicAuth.d.ts +7 -0
  8. package/dist/config/basicAuth.js +8 -0
  9. package/dist/config/crypto.d.ts +10 -0
  10. package/dist/config/crypto.js +9 -0
  11. package/dist/config/dynamodb.d.ts +8 -0
  12. package/dist/config/dynamodb.js +14 -0
  13. package/dist/config/elasticache.d.ts +7 -0
  14. package/dist/config/elasticache.js +6 -0
  15. package/dist/config/index.d.ts +11 -0
  16. package/dist/config/index.js +11 -0
  17. package/dist/config/jwt.d.ts +12 -0
  18. package/dist/config/jwt.js +16 -0
  19. package/dist/config/rds.d.ts +12 -0
  20. package/dist/config/rds.js +13 -0
  21. package/dist/config/s3.d.ts +5 -0
  22. package/dist/config/s3.js +5 -0
  23. package/dist/config/secretsManager.d.ts +4 -0
  24. package/dist/config/secretsManager.js +4 -0
  25. package/dist/config/sqs.d.ts +9 -0
  26. package/dist/config/sqs.js +18 -0
  27. package/dist/exceptions/LesgoException.d.ts +6 -0
  28. package/{src → dist}/exceptions/LesgoException.js +5 -4
  29. package/dist/exceptions/index.d.ts +1 -0
  30. package/dist/exceptions/index.js +1 -0
  31. package/dist/middlewares/disconnectMiddleware.d.ts +8 -0
  32. package/dist/middlewares/disconnectMiddleware.js +78 -0
  33. package/dist/middlewares/httpMiddleware.d.ts +12 -0
  34. package/dist/middlewares/httpMiddleware.js +74 -0
  35. package/dist/middlewares/httpResponseMiddleware.d.ts +7 -0
  36. package/dist/middlewares/httpResponseMiddleware.js +128 -0
  37. package/dist/middlewares/index.d.ts +7 -0
  38. package/dist/middlewares/index.js +7 -0
  39. package/dist/middlewares/invokeCommandMiddleware.d.ts +12 -0
  40. package/dist/middlewares/invokeCommandMiddleware.js +70 -0
  41. package/dist/middlewares/sqsMiddleware.d.ts +10 -0
  42. package/dist/middlewares/sqsMiddleware.js +70 -0
  43. package/dist/middlewares/verifyBasicAuthMiddleware.d.ts +8 -0
  44. package/dist/middlewares/verifyBasicAuthMiddleware.js +59 -0
  45. package/dist/middlewares/verifyJwtMiddleware.d.ts +6 -0
  46. package/dist/middlewares/verifyJwtMiddleware.js +37 -0
  47. package/dist/services/DynamoDbService/deleteRecord.d.ts +8 -0
  48. package/dist/services/DynamoDbService/deleteRecord.js +69 -0
  49. package/dist/services/DynamoDbService/getClient.d.ts +7 -0
  50. package/dist/services/DynamoDbService/getClient.js +30 -0
  51. package/dist/services/DynamoDbService/getTableName.d.ts +2 -0
  52. package/dist/services/DynamoDbService/getTableName.js +15 -0
  53. package/dist/services/DynamoDbService/index.d.ts +6 -0
  54. package/dist/services/DynamoDbService/index.js +6 -0
  55. package/dist/services/DynamoDbService/putRecord.d.ts +8 -0
  56. package/dist/services/DynamoDbService/putRecord.js +64 -0
  57. package/dist/services/DynamoDbService/query.d.ts +7 -0
  58. package/dist/services/DynamoDbService/query.js +78 -0
  59. package/dist/services/DynamoDbService/scan.d.ts +7 -0
  60. package/dist/services/DynamoDbService/scan.js +60 -0
  61. package/dist/services/DynamoDbService/updateRecord.d.ts +9 -0
  62. package/dist/services/DynamoDbService/updateRecord.js +89 -0
  63. package/dist/services/ElastiCacheRedisService/deleteRedisCache.d.ts +3 -0
  64. package/dist/services/ElastiCacheRedisService/deleteRedisCache.js +62 -0
  65. package/dist/services/ElastiCacheRedisService/disconnectElastiCacheRedisClient.d.ts +11 -0
  66. package/dist/services/ElastiCacheRedisService/disconnectElastiCacheRedisClient.js +69 -0
  67. package/dist/services/ElastiCacheRedisService/getElastiCacheRedisClient.d.ts +12 -0
  68. package/dist/services/ElastiCacheRedisService/getElastiCacheRedisClient.js +114 -0
  69. package/dist/services/ElastiCacheRedisService/getRedisCache.d.ts +3 -0
  70. package/dist/services/ElastiCacheRedisService/getRedisCache.js +70 -0
  71. package/dist/services/ElastiCacheRedisService/index.d.ts +5 -0
  72. package/dist/services/ElastiCacheRedisService/index.js +5 -0
  73. package/dist/services/ElastiCacheRedisService/setRedisCache.d.ts +6 -0
  74. package/dist/services/ElastiCacheRedisService/setRedisCache.js +77 -0
  75. package/dist/services/JWTService/decodeJwt.d.ts +7 -0
  76. package/dist/services/JWTService/decodeJwt.js +9 -0
  77. package/dist/services/JWTService/getJwtSecret.d.ts +13 -0
  78. package/dist/services/JWTService/getJwtSecret.js +54 -0
  79. package/dist/services/JWTService/index.d.ts +2 -0
  80. package/dist/services/JWTService/index.js +2 -0
  81. package/dist/services/JWTService/sign.d.ts +3 -0
  82. package/dist/services/JWTService/sign.js +31 -0
  83. package/dist/services/JWTService/verify.d.ts +7 -0
  84. package/dist/services/JWTService/verify.js +61 -0
  85. package/dist/services/LoggerService.d.ts +46 -0
  86. package/{src → dist}/services/LoggerService.js +36 -60
  87. package/dist/services/RDSAuroraMySQLProxyService/disconnectMySQLProxyClient.d.ts +2 -0
  88. package/dist/services/RDSAuroraMySQLProxyService/disconnectMySQLProxyClient.js +60 -0
  89. package/dist/services/RDSAuroraMySQLProxyService/getMySQLProxyClient.d.ts +8 -0
  90. package/dist/services/RDSAuroraMySQLProxyService/getMySQLProxyClient.js +87 -0
  91. package/dist/services/RDSAuroraMySQLProxyService/index.d.ts +3 -0
  92. package/dist/services/RDSAuroraMySQLProxyService/index.js +3 -0
  93. package/dist/services/RDSAuroraMySQLProxyService/query.d.ts +4 -0
  94. package/dist/services/RDSAuroraMySQLProxyService/query.js +63 -0
  95. package/dist/services/S3Service/getClient.d.ts +4 -0
  96. package/dist/services/S3Service/getClient.js +28 -0
  97. package/dist/services/S3Service/getDownloadSignedUrl.d.ts +7 -0
  98. package/dist/services/S3Service/getDownloadSignedUrl.js +58 -0
  99. package/dist/services/S3Service/getHeadObject.d.ts +13 -0
  100. package/dist/services/S3Service/getHeadObject.js +83 -0
  101. package/dist/services/S3Service/getObject.d.ts +10 -0
  102. package/dist/services/S3Service/getObject.js +89 -0
  103. package/dist/services/S3Service/getUploadSignedUrl.d.ts +7 -0
  104. package/dist/services/S3Service/getUploadSignedUrl.js +61 -0
  105. package/dist/services/S3Service/index.d.ts +6 -0
  106. package/dist/services/S3Service/index.js +6 -0
  107. package/dist/services/S3Service/putObject.d.ts +9 -0
  108. package/dist/services/S3Service/putObject.js +77 -0
  109. package/dist/services/SQSService/deleteMessage.d.ts +9 -0
  110. package/dist/services/SQSService/deleteMessage.js +69 -0
  111. package/dist/services/SQSService/dispatch.d.ts +9 -0
  112. package/dist/services/SQSService/dispatch.js +71 -0
  113. package/dist/services/SQSService/getClient.d.ts +4 -0
  114. package/dist/services/SQSService/getClient.js +28 -0
  115. package/dist/services/SQSService/getQueueUrl.d.ts +7 -0
  116. package/dist/services/SQSService/getQueueUrl.js +25 -0
  117. package/dist/services/SQSService/index.d.ts +4 -0
  118. package/dist/services/SQSService/index.js +4 -0
  119. package/dist/services/SQSService/receiveMessages.d.ts +8 -0
  120. package/dist/services/SQSService/receiveMessages.js +65 -0
  121. package/dist/services/SecretsManagerService/getClient.d.ts +7 -0
  122. package/dist/services/SecretsManagerService/getClient.js +28 -0
  123. package/dist/services/SecretsManagerService/getSecretValue.d.ts +7 -0
  124. package/dist/services/SecretsManagerService/getSecretValue.js +65 -0
  125. package/dist/services/SecretsManagerService/index.d.ts +2 -0
  126. package/dist/services/SecretsManagerService/index.js +2 -0
  127. package/dist/services/index.d.ts +1 -0
  128. package/dist/services/index.js +1 -0
  129. package/dist/types/aws.d.ts +8 -0
  130. package/dist/types/aws.js +1 -0
  131. package/dist/utils/cache/redis/deleteCache.d.ts +19 -0
  132. package/dist/utils/cache/redis/deleteCache.js +21 -0
  133. package/dist/utils/cache/redis/getCache.d.ts +22 -0
  134. package/dist/utils/cache/redis/getCache.js +24 -0
  135. package/dist/utils/cache/redis/getClient.d.ts +30 -0
  136. package/dist/utils/cache/redis/getClient.js +32 -0
  137. package/dist/utils/cache/redis/index.d.ts +4 -0
  138. package/dist/utils/cache/redis/index.js +4 -0
  139. package/dist/utils/cache/redis/setCache.d.ts +25 -0
  140. package/dist/utils/cache/redis/setCache.js +26 -0
  141. package/dist/utils/crypto/decrypt.d.ts +33 -0
  142. package/dist/utils/crypto/decrypt.js +59 -0
  143. package/dist/utils/crypto/encrypt.d.ts +31 -0
  144. package/dist/utils/crypto/encrypt.js +41 -0
  145. package/dist/utils/crypto/hash.d.ts +31 -0
  146. package/dist/utils/crypto/hash.js +56 -0
  147. package/dist/utils/crypto/index.d.ts +3 -0
  148. package/dist/utils/crypto/index.js +3 -0
  149. package/dist/utils/crypto/validateEncryptionFields.d.ts +19 -0
  150. package/dist/utils/crypto/validateEncryptionFields.js +71 -0
  151. package/dist/utils/db/mysql/proxy/disconnect.d.ts +2 -0
  152. package/dist/utils/db/mysql/proxy/disconnect.js +5 -0
  153. package/dist/utils/db/mysql/proxy/disconnectDb.d.ts +2 -0
  154. package/dist/utils/db/mysql/proxy/disconnectDb.js +5 -0
  155. package/dist/utils/db/mysql/proxy/getClient.d.ts +4 -0
  156. package/dist/utils/db/mysql/proxy/getClient.js +5 -0
  157. package/dist/utils/db/mysql/proxy/index.d.ts +3 -0
  158. package/dist/utils/db/mysql/proxy/index.js +3 -0
  159. package/dist/utils/db/mysql/proxy/query.d.ts +4 -0
  160. package/dist/utils/db/mysql/proxy/query.js +45 -0
  161. package/dist/utils/dynamodb/deleteRecord.d.ts +5 -0
  162. package/dist/utils/dynamodb/deleteRecord.js +39 -0
  163. package/dist/utils/dynamodb/getClient.d.ts +3 -0
  164. package/dist/utils/dynamodb/getClient.js +5 -0
  165. package/dist/utils/dynamodb/index.d.ts +6 -0
  166. package/dist/utils/dynamodb/index.js +6 -0
  167. package/dist/utils/dynamodb/putRecord.d.ts +4 -0
  168. package/dist/utils/dynamodb/putRecord.js +39 -0
  169. package/dist/utils/dynamodb/query.d.ts +5 -0
  170. package/dist/utils/dynamodb/query.js +52 -0
  171. package/dist/utils/dynamodb/scan.d.ts +4 -0
  172. package/dist/utils/dynamodb/scan.js +40 -0
  173. package/dist/utils/dynamodb/updateRecord.d.ts +5 -0
  174. package/dist/utils/dynamodb/updateRecord.js +53 -0
  175. package/dist/utils/formatUnixTimestamp.d.ts +8 -0
  176. package/dist/utils/formatUnixTimestamp.js +17 -0
  177. package/dist/utils/generateUid.d.ts +13 -0
  178. package/{src → dist}/utils/generateUid.js +9 -4
  179. package/dist/utils/getCurrentDatetime.d.ts +2 -0
  180. package/dist/utils/getCurrentDatetime.js +4 -0
  181. package/dist/utils/getCurrentTimestamp.d.ts +7 -0
  182. package/dist/utils/getCurrentTimestamp.js +9 -0
  183. package/dist/utils/getJwtSubFromAuthHeader.d.ts +9 -0
  184. package/dist/utils/getJwtSubFromAuthHeader.js +24 -0
  185. package/dist/utils/index.d.ts +9 -0
  186. package/dist/utils/index.js +9 -0
  187. package/dist/utils/isDecimal.d.ts +8 -0
  188. package/dist/utils/isDecimal.js +9 -0
  189. package/dist/utils/isEmail.d.ts +9 -0
  190. package/{src → dist}/utils/isEmail.js +9 -4
  191. package/dist/utils/isEmpty.d.ts +8 -0
  192. package/dist/utils/isEmpty.js +19 -0
  193. package/dist/utils/jwt/index.d.ts +2 -0
  194. package/dist/utils/jwt/index.js +2 -0
  195. package/dist/utils/jwt/sign.d.ts +3 -0
  196. package/dist/utils/jwt/sign.js +5 -0
  197. package/dist/utils/jwt/verify.d.ts +3 -0
  198. package/dist/utils/jwt/verify.js +12 -0
  199. package/dist/utils/logger.d.ts +20 -0
  200. package/dist/utils/logger.js +38 -0
  201. package/dist/utils/s3/getClient.d.ts +3 -0
  202. package/dist/utils/s3/getClient.js +5 -0
  203. package/dist/utils/s3/getDownloadSignedUrl.d.ts +5 -0
  204. package/dist/utils/s3/getDownloadSignedUrl.js +39 -0
  205. package/dist/utils/s3/getHeadObject.d.ts +10 -0
  206. package/dist/utils/s3/getHeadObject.js +39 -0
  207. package/dist/utils/s3/getObject.d.ts +13 -0
  208. package/dist/utils/s3/getObject.js +51 -0
  209. package/dist/utils/s3/getUploadSignedUrl.d.ts +5 -0
  210. package/dist/utils/s3/getUploadSignedUrl.js +39 -0
  211. package/dist/utils/s3/index.d.ts +6 -0
  212. package/dist/utils/s3/index.js +6 -0
  213. package/dist/utils/s3/putObject.d.ts +5 -0
  214. package/dist/utils/s3/putObject.js +39 -0
  215. package/dist/utils/secretsmanager/getClient.d.ts +3 -0
  216. package/dist/utils/secretsmanager/getClient.js +5 -0
  217. package/dist/utils/secretsmanager/getSecretValue.d.ts +4 -0
  218. package/dist/utils/secretsmanager/getSecretValue.js +68 -0
  219. package/dist/utils/secretsmanager/index.d.ts +2 -0
  220. package/dist/utils/secretsmanager/index.js +2 -0
  221. package/dist/utils/sqs/deleteMessage.d.ts +5 -0
  222. package/dist/utils/sqs/deleteMessage.js +39 -0
  223. package/dist/utils/sqs/dispatch.d.ts +5 -0
  224. package/dist/utils/sqs/dispatch.js +39 -0
  225. package/dist/utils/sqs/getClient.d.ts +3 -0
  226. package/dist/utils/sqs/getClient.js +5 -0
  227. package/dist/utils/sqs/index.d.ts +4 -0
  228. package/dist/utils/sqs/index.js +4 -0
  229. package/dist/utils/sqs/receiveMessages.d.ts +5 -0
  230. package/dist/utils/sqs/receiveMessages.js +39 -0
  231. package/dist/utils/validateFields.d.ts +22 -0
  232. package/{src → dist}/utils/validateFields.js +13 -19
  233. package/package.json +145 -34
  234. package/CHANGELOG.md +0 -9
  235. package/src/exceptions/__tests__/LesgoException.spec.js +0 -24
  236. package/src/exceptions/index.js +0 -4
  237. package/src/index.js +0 -4
  238. package/src/middlewares/__mocks__/ValidationErrorException.js +0 -18
  239. package/src/middlewares/__tests__/basicAuthMiddleware.spec.js +0 -225
  240. package/src/middlewares/__tests__/clientAuthMiddleware.spec.js +0 -137
  241. package/src/middlewares/__tests__/errorHttpResponseMiddleware.spec.js +0 -190
  242. package/src/middlewares/__tests__/gzipHttpResponse.spec.js +0 -185
  243. package/src/middlewares/__tests__/httpNoOutputMiddleware.spec.js +0 -199
  244. package/src/middlewares/__tests__/normalizeHttpRequestMiddleware.spec.js +0 -181
  245. package/src/middlewares/__tests__/normalizeSQSMessageMiddleware.spec.js +0 -120
  246. package/src/middlewares/__tests__/serverAuthMiddleware.spec.js +0 -170
  247. package/src/middlewares/__tests__/successHttpResponseMiddleware.spec.js +0 -159
  248. package/src/middlewares/__tests__/verifyJwtMiddleware.spec.js +0 -222
  249. package/src/middlewares/basicAuthMiddleware.js +0 -145
  250. package/src/middlewares/clientAuthMiddleware.js +0 -82
  251. package/src/middlewares/errorHttpResponseMiddleware.js +0 -99
  252. package/src/middlewares/gzipHttpResponse.js +0 -98
  253. package/src/middlewares/httpMiddleware.js +0 -19
  254. package/src/middlewares/httpNoOutputMiddleware.js +0 -87
  255. package/src/middlewares/index.js +0 -15
  256. package/src/middlewares/normalizeHttpRequestMiddleware.js +0 -101
  257. package/src/middlewares/normalizeSQSMessageMiddleware.js +0 -67
  258. package/src/middlewares/serverAuthMiddleware.js +0 -29
  259. package/src/middlewares/successHttpResponseMiddleware.js +0 -83
  260. package/src/middlewares/verifyJwtMiddleware.js +0 -62
  261. package/src/services/AuroraDbRDSProxyService.js +0 -182
  262. package/src/services/AuroraDbService.js +0 -111
  263. package/src/services/DynamoDbService.js +0 -177
  264. package/src/services/ElastiCacheService.js +0 -17
  265. package/src/services/ElasticsearchService.js +0 -181
  266. package/src/services/FirebaseAdminService.js +0 -108
  267. package/src/services/JwtService.js +0 -52
  268. package/src/services/S3Service.js +0 -59
  269. package/src/services/SQSService.js +0 -65
  270. package/src/services/__tests__/AuroraDbRDSProxyService.spec.js +0 -278
  271. package/src/services/__tests__/AuroraDbService.spec.js +0 -211
  272. package/src/services/__tests__/AwsElasticsearchConnection.spec.js +0 -89
  273. package/src/services/__tests__/DynamoDbService.spec.js +0 -314
  274. package/src/services/__tests__/ElasticsearchService.spec.js +0 -201
  275. package/src/services/__tests__/FirebaseAdminService.spec.js +0 -356
  276. package/src/services/__tests__/JwtService.spec.js +0 -35
  277. package/src/services/__tests__/LengthAwarePaginator.spec.js +0 -223
  278. package/src/services/__tests__/LoggerService.spec.js +0 -252
  279. package/src/services/__tests__/Paginator.spec.js +0 -383
  280. package/src/services/__tests__/S3Service.spec.js +0 -55
  281. package/src/services/__tests__/SQSService.spec.js +0 -47
  282. package/src/services/__tests__/SignedRequest.spec.js +0 -103
  283. package/src/services/aws/AwsElasticsearchConnection.js +0 -59
  284. package/src/services/aws/SignedRequest.js +0 -158
  285. package/src/services/index.js +0 -19
  286. package/src/services/pagination/LengthAwarePaginator.js +0 -49
  287. package/src/services/pagination/Paginator.js +0 -260
  288. package/src/utils/__mocks__/db.js +0 -109
  289. package/src/utils/__tests__/cache.spec.js +0 -131
  290. package/src/utils/__tests__/crypto.spec.js +0 -122
  291. package/src/utils/__tests__/db.spec.js +0 -70
  292. package/src/utils/__tests__/dynamodb.spec.js +0 -27
  293. package/src/utils/__tests__/elasticsearch.spec.js +0 -43
  294. package/src/utils/__tests__/generateUid.spec.js +0 -36
  295. package/src/utils/__tests__/getJwtSubFromAuthHeader.spec.js +0 -20
  296. package/src/utils/__tests__/isDecimal.spec.js +0 -12
  297. package/src/utils/__tests__/isEmail.spec.js +0 -28
  298. package/src/utils/__tests__/isEmpty.spec.js +0 -31
  299. package/src/utils/__tests__/logger.spec.js +0 -11
  300. package/src/utils/__tests__/objectStore.spec.js +0 -67
  301. package/src/utils/__tests__/prepSQLInsertParams.spec.js +0 -46
  302. package/src/utils/__tests__/prepSQLUpdateParams.spec.js +0 -36
  303. package/src/utils/__tests__/queue.spec.js +0 -54
  304. package/src/utils/__tests__/validateFields.spec.js +0 -374
  305. package/src/utils/cache.js +0 -215
  306. package/src/utils/crypto.js +0 -77
  307. package/src/utils/db.js +0 -17
  308. package/src/utils/dynamodb.js +0 -6
  309. package/src/utils/elasticsearch.js +0 -20
  310. package/src/utils/getJwtSubFromAuthHeader.js +0 -18
  311. package/src/utils/index.js +0 -26
  312. package/src/utils/isDecimal.js +0 -2
  313. package/src/utils/isEmpty.js +0 -6
  314. package/src/utils/logger.js +0 -25
  315. package/src/utils/objectStore.js +0 -11
  316. package/src/utils/prepSQLInsertParams.js +0 -21
  317. package/src/utils/prepSQLUpdateParams.js +0 -25
  318. package/src/utils/queue.js +0 -11
@@ -0,0 +1,71 @@
1
+ var __awaiter =
2
+ (this && this.__awaiter) ||
3
+ function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) {
5
+ return value instanceof P
6
+ ? value
7
+ : new P(function (resolve) {
8
+ resolve(value);
9
+ });
10
+ }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) {
13
+ try {
14
+ step(generator.next(value));
15
+ } catch (e) {
16
+ reject(e);
17
+ }
18
+ }
19
+ function rejected(value) {
20
+ try {
21
+ step(generator['throw'](value));
22
+ } catch (e) {
23
+ reject(e);
24
+ }
25
+ }
26
+ function step(result) {
27
+ result.done
28
+ ? resolve(result.value)
29
+ : adopt(result.value).then(fulfilled, rejected);
30
+ }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ import { SendMessageCommand } from '@aws-sdk/client-sqs';
35
+ import LesgoException from '../../exceptions/LesgoException';
36
+ import { logger, validateFields } from '../../utils';
37
+ import getClient from './getClient';
38
+ import getQueueUrl from './getQueueUrl';
39
+ const FILE = 'lesgo.services.SQSService.dispatch';
40
+ const dispatch = (payload, queue, opts, clientOpts) =>
41
+ __awaiter(void 0, void 0, void 0, function* () {
42
+ const queueUrl = getQueueUrl(queue);
43
+ const input = validateFields({ payload }, [
44
+ { key: 'payload', type: 'object', required: true },
45
+ ]);
46
+ const client = getClient(clientOpts);
47
+ const commandInput = Object.assign(
48
+ { MessageBody: JSON.stringify(input.payload), QueueUrl: queueUrl },
49
+ opts
50
+ );
51
+ try {
52
+ const data = yield client.send(new SendMessageCommand(commandInput));
53
+ logger.debug(`${FILE}::MESSAGE_SENT_TO_QUEUE`, {
54
+ data,
55
+ commandInput,
56
+ });
57
+ return data;
58
+ } catch (error) {
59
+ throw new LesgoException(
60
+ 'Error occurred sending message to queue',
61
+ `${FILE}::SEND_MESSAGE_ERROR`,
62
+ 500,
63
+ {
64
+ error,
65
+ commandInput,
66
+ opts,
67
+ }
68
+ );
69
+ }
70
+ });
71
+ export default dispatch;
@@ -0,0 +1,4 @@
1
+ import { SQSClient } from '@aws-sdk/client-sqs';
2
+ import { ClientOptions } from '../../types/aws';
3
+ declare const getClient: (clientOpts?: ClientOptions) => SQSClient;
4
+ export default getClient;
@@ -0,0 +1,28 @@
1
+ import { SQSClient } from '@aws-sdk/client-sqs';
2
+ import { logger, isEmpty, validateFields } from '../../utils';
3
+ import { sqs as sqsConfig } from '../../config';
4
+ const FILE = 'lesgo.services.SQSService.getClient';
5
+ const singleton = {};
6
+ const getClient = (clientOpts = {}) => {
7
+ const options = validateFields(clientOpts, [
8
+ { key: 'region', type: 'string', required: false },
9
+ { key: 'singletonConn', type: 'string', required: false },
10
+ ]);
11
+ const region = options.region || sqsConfig.region;
12
+ const singletonConn = options.singletonConn || 'default';
13
+ if (!isEmpty(singleton[singletonConn])) {
14
+ logger.debug(`${FILE}::REUSE_CLIENT_SINGLETON`, {
15
+ client: singleton[singletonConn],
16
+ region,
17
+ });
18
+ return singleton[singletonConn];
19
+ }
20
+ const client = new SQSClient({ region });
21
+ logger.debug(`${FILE}::NEW_CLIENT`, {
22
+ client,
23
+ region,
24
+ });
25
+ singleton[singletonConn] = client;
26
+ return client;
27
+ };
28
+ export default getClient;
@@ -0,0 +1,7 @@
1
+ export type Queue = {
2
+ alias: string;
3
+ name: string;
4
+ url: string;
5
+ };
6
+ declare const _default: (queue: string | Queue) => string;
7
+ export default _default;
@@ -0,0 +1,25 @@
1
+ import { LesgoException } from '../../exceptions';
2
+ import sqsConfig from '../../config/sqs';
3
+ const FILE = 'lesgo.services.SQSService.getQueueUrl';
4
+ export default queue => {
5
+ if (
6
+ typeof queue !== 'string' &&
7
+ 'alias' in queue &&
8
+ 'name' in queue &&
9
+ 'url' in queue
10
+ ) {
11
+ return queue.url;
12
+ }
13
+ const configQueue = sqsConfig.queues.find(q => q.alias === queue);
14
+ if (!configQueue) {
15
+ throw new LesgoException(
16
+ `Queue with alias ${queue} not found in config`,
17
+ `${FILE}::QUEUE_NOT_FOUND`,
18
+ 404,
19
+ {
20
+ queue,
21
+ }
22
+ );
23
+ }
24
+ return configQueue.url;
25
+ };
@@ -0,0 +1,4 @@
1
+ export { default as deleteMessage } from './deleteMessage';
2
+ export { default as dispatch } from './dispatch';
3
+ export { default as getClient } from './getClient';
4
+ export { default as receiveMessages } from './receiveMessages';
@@ -0,0 +1,4 @@
1
+ export { default as deleteMessage } from './deleteMessage';
2
+ export { default as dispatch } from './dispatch';
3
+ export { default as getClient } from './getClient';
4
+ export { default as receiveMessages } from './receiveMessages';
@@ -0,0 +1,8 @@
1
+ import { ReceiveMessageCommandInput } from '@aws-sdk/client-sqs';
2
+ import { ClientOptions } from '../../types/aws';
3
+ import { Queue } from './getQueueUrl';
4
+ export interface ReceiveMessagesOptions extends Partial<Omit<ReceiveMessageCommandInput, 'QueueUrl'>> {
5
+ QueueUrl?: string;
6
+ }
7
+ declare const receiveMessages: (queue: string | Queue, opts?: ReceiveMessagesOptions, clientOpts?: ClientOptions) => Promise<import("@aws-sdk/client-sqs").ReceiveMessageCommandOutput>;
8
+ export default receiveMessages;
@@ -0,0 +1,65 @@
1
+ var __awaiter =
2
+ (this && this.__awaiter) ||
3
+ function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) {
5
+ return value instanceof P
6
+ ? value
7
+ : new P(function (resolve) {
8
+ resolve(value);
9
+ });
10
+ }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) {
13
+ try {
14
+ step(generator.next(value));
15
+ } catch (e) {
16
+ reject(e);
17
+ }
18
+ }
19
+ function rejected(value) {
20
+ try {
21
+ step(generator['throw'](value));
22
+ } catch (e) {
23
+ reject(e);
24
+ }
25
+ }
26
+ function step(result) {
27
+ result.done
28
+ ? resolve(result.value)
29
+ : adopt(result.value).then(fulfilled, rejected);
30
+ }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ import { ReceiveMessageCommand } from '@aws-sdk/client-sqs';
35
+ import LesgoException from '../../exceptions/LesgoException';
36
+ import { logger } from '../../utils';
37
+ import getClient from './getClient';
38
+ import getQueueUrl from './getQueueUrl';
39
+ const FILE = 'lesgo.services.SQSService.receiveMessages';
40
+ const receiveMessages = (queue, opts, clientOpts) =>
41
+ __awaiter(void 0, void 0, void 0, function* () {
42
+ const queueUrl = getQueueUrl(queue);
43
+ const client = getClient(clientOpts);
44
+ const commandInput = Object.assign({ QueueUrl: queueUrl }, opts);
45
+ try {
46
+ const data = yield client.send(new ReceiveMessageCommand(commandInput));
47
+ logger.debug(`${FILE}::MESSAGES_RECEIVED_FROM_QUEUE`, {
48
+ data,
49
+ commandInput,
50
+ });
51
+ return data;
52
+ } catch (error) {
53
+ throw new LesgoException(
54
+ 'Error occurred receiving messages from queue',
55
+ `${FILE}::RECEIVE_MESSAGES_ERROR`,
56
+ 500,
57
+ {
58
+ error,
59
+ commandInput,
60
+ opts,
61
+ }
62
+ );
63
+ }
64
+ });
65
+ export default receiveMessages;
@@ -0,0 +1,7 @@
1
+ import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
2
+ import { ClientOptions } from '../../types/aws';
3
+ export interface Singleton {
4
+ [key: string]: SecretsManagerClient;
5
+ }
6
+ declare const getClient: (clientOpts?: ClientOptions) => SecretsManagerClient;
7
+ export default getClient;
@@ -0,0 +1,28 @@
1
+ import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
2
+ import { logger, isEmpty, validateFields } from '../../utils';
3
+ import { secretsmanager as secretsmanagerConfig } from '../../config';
4
+ const FILE = 'lesgo.services.SecretsManager.getClient';
5
+ const singleton = {};
6
+ const getClient = (clientOpts = {}) => {
7
+ const options = validateFields(clientOpts, [
8
+ { key: 'region', type: 'string', required: false },
9
+ { key: 'singletonConn', type: 'string', required: false },
10
+ ]);
11
+ const region = options.region || secretsmanagerConfig.region;
12
+ const singletonConn = options.singletonConn || 'default';
13
+ if (!isEmpty(singleton[singletonConn])) {
14
+ logger.debug(`${FILE}::REUSE_CLIENT_SINGLETON`, {
15
+ singletonConn,
16
+ region,
17
+ });
18
+ return singleton[singletonConn];
19
+ }
20
+ const client = new SecretsManagerClient({ region });
21
+ logger.debug(`${FILE}::NEW_CLIENT`, {
22
+ singletonConn,
23
+ region,
24
+ });
25
+ singleton[singletonConn] = client;
26
+ return client;
27
+ };
28
+ export default getClient;
@@ -0,0 +1,7 @@
1
+ import { GetSecretValueCommandInput } from '@aws-sdk/client-secrets-manager';
2
+ import { ClientOptions } from '../../types/aws';
3
+ export type GetSecretValueOptions = Omit<GetSecretValueCommandInput, 'SecretId'> & {
4
+ SecretId?: string;
5
+ };
6
+ declare const getSecretValue: (secretId: string, opts?: GetSecretValueOptions, clientOpts?: ClientOptions) => Promise<import("@aws-sdk/client-secrets-manager").GetSecretValueCommandOutput>;
7
+ export default getSecretValue;
@@ -0,0 +1,65 @@
1
+ var __awaiter =
2
+ (this && this.__awaiter) ||
3
+ function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) {
5
+ return value instanceof P
6
+ ? value
7
+ : new P(function (resolve) {
8
+ resolve(value);
9
+ });
10
+ }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) {
13
+ try {
14
+ step(generator.next(value));
15
+ } catch (e) {
16
+ reject(e);
17
+ }
18
+ }
19
+ function rejected(value) {
20
+ try {
21
+ step(generator['throw'](value));
22
+ } catch (e) {
23
+ reject(e);
24
+ }
25
+ }
26
+ function step(result) {
27
+ result.done
28
+ ? resolve(result.value)
29
+ : adopt(result.value).then(fulfilled, rejected);
30
+ }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ import { GetSecretValueCommand } from '@aws-sdk/client-secrets-manager';
35
+ import LesgoException from '../../exceptions/LesgoException';
36
+ import { logger, validateFields } from '../../utils';
37
+ import getClient from './getClient';
38
+ const FILE = 'lesgo.services.SecretsManager.getSecretValue';
39
+ const getSecretValue = (secretId, opts, clientOpts) =>
40
+ __awaiter(void 0, void 0, void 0, function* () {
41
+ const input = validateFields({ secretId }, [
42
+ { key: 'secretId', type: 'string', required: true },
43
+ ]);
44
+ const client = getClient(clientOpts);
45
+ const command = new GetSecretValueCommand(
46
+ Object.assign({ SecretId: input.secretId }, opts)
47
+ );
48
+ try {
49
+ const resp = yield client.send(command);
50
+ logger.debug(`${FILE}::RESPONSE`, { resp: '<REDACTED>', command });
51
+ return resp;
52
+ } catch (error) {
53
+ throw new LesgoException(
54
+ 'Error occurred getting secret value from Secrets Manager',
55
+ `${FILE}::ERROR`,
56
+ 500,
57
+ {
58
+ error,
59
+ command,
60
+ opts,
61
+ }
62
+ );
63
+ }
64
+ });
65
+ export default getSecretValue;
@@ -0,0 +1,2 @@
1
+ export { default as getClient } from './getClient';
2
+ export { default as getSecretValue } from './getSecretValue';
@@ -0,0 +1,2 @@
1
+ export { default as getClient } from './getClient';
2
+ export { default as getSecretValue } from './getSecretValue';
@@ -0,0 +1 @@
1
+ export { default as LoggerService } from './LoggerService';
@@ -0,0 +1 @@
1
+ export { default as LoggerService } from './LoggerService';
@@ -0,0 +1,8 @@
1
+ export interface ClientOptions {
2
+ region?: string;
3
+ singletonConn?: string;
4
+ }
5
+ export interface RDSAuroraMySQLProxyClientOptions extends ClientOptions {
6
+ dbCredentialsSecretId?: string;
7
+ databaseName?: string;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ import { ClientOptions } from '../../../types/aws';
2
+ /**
3
+ * Deletes the cache value from the Redis cache.
4
+ *
5
+ * @param {string} key - The key of the cache value to delete.
6
+ * @param {ClientOptions} clientOpts - Optional client options for Redis connection.
7
+ * @returns A promise that resolves to the deleted cache value.
8
+ * @throws {LesgoException} If there is an error deleting the cache.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { deleteCache } from 'lesgo/utils/cache/redis';
13
+ *
14
+ * const key = 'myKey';
15
+ *
16
+ * await deleteCache(key);
17
+ */
18
+ declare const getCache: (key: string, clientOpts?: ClientOptions) => Promise<number>;
19
+ export default getCache;
@@ -0,0 +1,21 @@
1
+ import { deleteRedisCache } from '../../../services/ElastiCacheRedisService';
2
+ /**
3
+ * Deletes the cache value from the Redis cache.
4
+ *
5
+ * @param {string} key - The key of the cache value to delete.
6
+ * @param {ClientOptions} clientOpts - Optional client options for Redis connection.
7
+ * @returns A promise that resolves to the deleted cache value.
8
+ * @throws {LesgoException} If there is an error deleting the cache.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { deleteCache } from 'lesgo/utils/cache/redis';
13
+ *
14
+ * const key = 'myKey';
15
+ *
16
+ * await deleteCache(key);
17
+ */
18
+ const getCache = (key, clientOpts) => {
19
+ return deleteRedisCache(key, clientOpts);
20
+ };
21
+ export default getCache;
@@ -0,0 +1,22 @@
1
+ import { ClientOptions } from '../../../types/aws';
2
+ /**
3
+ * Retrieves the value from the cache based on the provided key.
4
+ *
5
+ * @param {string} key - The key used to identify the value in the cache.
6
+ * @param {ClientOptions} clientOpts - Optional client options for the cache client.
7
+ * @returns A promise that resolves when the value is retrieved from the cache.
8
+ *
9
+ * @throws {LesgoException} If there is an error retrieving the cache.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { getCache } from 'lesgo/utils/cache/redis';
14
+ *
15
+ * const key = 'myKey';
16
+ *
17
+ * const value = await getCache(key);
18
+ * console.log(value); // Value retrieved from the cache
19
+ * ```
20
+ */
21
+ declare const getCache: (key: string, clientOpts?: ClientOptions) => Promise<any>;
22
+ export default getCache;
@@ -0,0 +1,24 @@
1
+ import { getRedisCache } from '../../../services/ElastiCacheRedisService';
2
+ /**
3
+ * Retrieves the value from the cache based on the provided key.
4
+ *
5
+ * @param {string} key - The key used to identify the value in the cache.
6
+ * @param {ClientOptions} clientOpts - Optional client options for the cache client.
7
+ * @returns A promise that resolves when the value is retrieved from the cache.
8
+ *
9
+ * @throws {LesgoException} If there is an error retrieving the cache.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { getCache } from 'lesgo/utils/cache/redis';
14
+ *
15
+ * const key = 'myKey';
16
+ *
17
+ * const value = await getCache(key);
18
+ * console.log(value); // Value retrieved from the cache
19
+ * ```
20
+ */
21
+ const getCache = (key, clientOpts) => {
22
+ return getRedisCache(key, clientOpts);
23
+ };
24
+ export default getCache;
@@ -0,0 +1,30 @@
1
+ import { ClientOptions } from '../../../types/aws';
2
+ /**
3
+ * Retrieves a Redis client.
4
+ *
5
+ * This function will return a Redis client that is connected to the ElastiCache Redis cluster.
6
+ * A new client will be created if one does not already exist. The client will be reused if it is already connected.
7
+ * This is useful if you need to use the Redis Client functions directly.
8
+ *
9
+ * This function is not intended to be used directly.
10
+ * Use the available `getCache`, `setCache`, and `deleteCache` functions instead.
11
+ *
12
+ * @param {ClientOptions} clientOpts - Optional client options.
13
+ * @returns A promise of with Redis client.
14
+ *
15
+ * @throws {LesgoException} If there is an error creating the client.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { getClient } from 'lesgo/utils/cache/redis';
20
+ *
21
+ * const client = await getClient();
22
+ *
23
+ * const key = 'myKey';
24
+ * const value = 'myValue';
25
+ *
26
+ * await client.set(key, value);
27
+ * ```
28
+ */
29
+ declare const getClient: (clientOpts?: ClientOptions) => Promise<import("ioredis/built/cluster").default>;
30
+ export default getClient;
@@ -0,0 +1,32 @@
1
+ import { getElastiCacheRedisClient } from '../../../services/ElastiCacheRedisService';
2
+ /**
3
+ * Retrieves a Redis client.
4
+ *
5
+ * This function will return a Redis client that is connected to the ElastiCache Redis cluster.
6
+ * A new client will be created if one does not already exist. The client will be reused if it is already connected.
7
+ * This is useful if you need to use the Redis Client functions directly.
8
+ *
9
+ * This function is not intended to be used directly.
10
+ * Use the available `getCache`, `setCache`, and `deleteCache` functions instead.
11
+ *
12
+ * @param {ClientOptions} clientOpts - Optional client options.
13
+ * @returns A promise of with Redis client.
14
+ *
15
+ * @throws {LesgoException} If there is an error creating the client.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { getClient } from 'lesgo/utils/cache/redis';
20
+ *
21
+ * const client = await getClient();
22
+ *
23
+ * const key = 'myKey';
24
+ * const value = 'myValue';
25
+ *
26
+ * await client.set(key, value);
27
+ * ```
28
+ */
29
+ const getClient = clientOpts => {
30
+ return getElastiCacheRedisClient(clientOpts);
31
+ };
32
+ export default getClient;
@@ -0,0 +1,4 @@
1
+ export { default as deleteCache } from './deleteCache';
2
+ export { default as getCache } from './getCache';
3
+ export { default as getClient } from './getClient';
4
+ export { default as setCache } from './setCache';
@@ -0,0 +1,4 @@
1
+ export { default as deleteCache } from './deleteCache';
2
+ export { default as getCache } from './getCache';
3
+ export { default as getClient } from './getClient';
4
+ export { default as setCache } from './setCache';
@@ -0,0 +1,25 @@
1
+ import { ClientOptions } from '../../../types/aws';
2
+ import { SetRedisCacheOptions } from '../../../services/ElastiCacheRedisService/setRedisCache';
3
+ /**
4
+ * Sets a value in the Redis cache.
5
+ *
6
+ * @param {string} key - The key to set in the cache.
7
+ * @param {any} value - The value to set in the cache.
8
+ * @param {SetRedisCacheOptions} opts - Optional settings for setting the cache.
9
+ * @param {ClientOptions} clientOpts - Optional client options for connecting to Redis.
10
+ * @returns A promise that resolves when the value is successfully set in the cache.
11
+ *
12
+ * @throws {LesgoException} If there is an error setting the cache.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { setCache } from 'lesgo/utils/cache/redis';
17
+ *
18
+ * const key = 'myKey';
19
+ * const value = 'myValue';
20
+ *
21
+ * await setCache(key, value);
22
+ * ```
23
+ */
24
+ declare const setCache: (key: string, value: any, opts?: SetRedisCacheOptions, clientOpts?: ClientOptions) => Promise<"OK">;
25
+ export default setCache;
@@ -0,0 +1,26 @@
1
+ import { setRedisCache } from '../../../services/ElastiCacheRedisService';
2
+ /**
3
+ * Sets a value in the Redis cache.
4
+ *
5
+ * @param {string} key - The key to set in the cache.
6
+ * @param {any} value - The value to set in the cache.
7
+ * @param {SetRedisCacheOptions} opts - Optional settings for setting the cache.
8
+ * @param {ClientOptions} clientOpts - Optional client options for connecting to Redis.
9
+ * @returns A promise that resolves when the value is successfully set in the cache.
10
+ *
11
+ * @throws {LesgoException} If there is an error setting the cache.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { setCache } from 'lesgo/utils/cache/redis';
16
+ *
17
+ * const key = 'myKey';
18
+ * const value = 'myValue';
19
+ *
20
+ * await setCache(key, value);
21
+ * ```
22
+ */
23
+ const setCache = (key, value, opts, clientOpts) => {
24
+ return setRedisCache(key, value, opts, clientOpts);
25
+ };
26
+ export default setCache;
@@ -0,0 +1,33 @@
1
+ import { EncryptionAlgorithm } from './validateEncryptionFields';
2
+ export interface DecryptOptions {
3
+ algorithm?: EncryptionAlgorithm;
4
+ secretKey?: string;
5
+ }
6
+ /**
7
+ * Decrypts the given encrypted text.
8
+ *
9
+ * @param text - The encrypted text to be decrypted.
10
+ * @param opts - Optional decryption options.
11
+ * @returns The decrypted text.
12
+ *
13
+ * @throws {LesgoException} If there is an error decrypting the text.
14
+ * @throws {LesgoException} If the text is not a string.
15
+ * @throws {LesgoException} If the text is not encrypted.
16
+ * @throws {LesgoException} If the algorithm is not valid.
17
+ * @throws {LesgoException} If the secret key is not valid.
18
+ * @throws {LesgoException} If the secret key is not provided.
19
+ * @throws {LesgoException} If the algorithm is not provided.
20
+ * @throws {LesgoException} If the text is not provided.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * import { decrypt } from 'lesgo/utils/crypto';
25
+ *
26
+ * const encryptedText = 'encryptedText';
27
+ *
28
+ * const decryptedText = decrypt(encryptedText);
29
+ * console.log(decryptedText); // Decrypted text
30
+ * ```
31
+ */
32
+ declare const decrypt: (text: string, opts?: DecryptOptions) => string;
33
+ export default decrypt;