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,39 @@
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 putObjectService from '../../services/S3Service/putObject';
35
+ const putObject = (key, file, opts, clientOpts) =>
36
+ __awaiter(void 0, void 0, void 0, function* () {
37
+ return putObjectService(key, file, opts, clientOpts);
38
+ });
39
+ export default putObject;
@@ -0,0 +1,3 @@
1
+ import { ClientOptions } from '../../types/aws';
2
+ declare const getClient: (clientOpts?: ClientOptions) => import("@aws-sdk/client-secrets-manager").SecretsManagerClient;
3
+ export default getClient;
@@ -0,0 +1,5 @@
1
+ import getClientService from '../../services/SecretsManagerService/getClient';
2
+ const getClient = clientOpts => {
3
+ return getClientService(clientOpts);
4
+ };
5
+ export default getClient;
@@ -0,0 +1,4 @@
1
+ import { GetSecretValueOptions } from '../../services/SecretsManagerService/getSecretValue';
2
+ import { ClientOptions } from '../../types/aws';
3
+ declare const getSecretValue: (secretId: string, opts?: GetSecretValueOptions, clientOpts?: ClientOptions) => Promise<any>;
4
+ export default getSecretValue;
@@ -0,0 +1,68 @@
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 { LesgoException } from '../../exceptions';
35
+ import getSecretValueService from '../../services/SecretsManagerService/getSecretValue';
36
+ import isEmpty from '../isEmpty';
37
+ const FILE = 'lesgo.utils.secretsmanager.getSecretValue';
38
+ const getSecretValue = (secretId, opts, clientOpts) =>
39
+ __awaiter(void 0, void 0, void 0, function* () {
40
+ let secretString;
41
+ try {
42
+ const { SecretString } = yield getSecretValueService(
43
+ secretId,
44
+ opts,
45
+ clientOpts
46
+ );
47
+ secretString = SecretString;
48
+ } catch (error) {
49
+ throw new LesgoException(
50
+ 'Failed to get secret value',
51
+ `${FILE}::ERROR_GET_SECRET_VALUE`,
52
+ 500
53
+ );
54
+ }
55
+ if (isEmpty(secretString)) {
56
+ throw new LesgoException(
57
+ 'Missing secretString',
58
+ `${FILE}::SECRET_STRING_EMPTY`,
59
+ 500
60
+ );
61
+ }
62
+ try {
63
+ return JSON.parse(secretString);
64
+ } catch (error) {
65
+ return secretString;
66
+ }
67
+ });
68
+ 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,5 @@
1
+ import { DeleteMessageOptions } from '../../services/SQSService/deleteMessage';
2
+ import { Queue } from '../../services/SQSService/getQueueUrl';
3
+ import { ClientOptions } from '../../types/aws';
4
+ export declare const deleteMessage: (queue: string | Queue, receiptHandle: string, opts?: DeleteMessageOptions, clientOpts?: ClientOptions) => Promise<void>;
5
+ export default deleteMessage;
@@ -0,0 +1,39 @@
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 deleteMessageService from '../../services/SQSService/deleteMessage';
35
+ export const deleteMessage = (queue, receiptHandle, opts, clientOpts) =>
36
+ __awaiter(void 0, void 0, void 0, function* () {
37
+ return deleteMessageService(queue, receiptHandle, opts, clientOpts);
38
+ });
39
+ export default deleteMessage;
@@ -0,0 +1,5 @@
1
+ import { DispatchOptions } from '../../services/SQSService/dispatch';
2
+ import { Queue } from '../../services/SQSService/getQueueUrl';
3
+ import { ClientOptions } from '../../types/aws';
4
+ export declare const dispatch: (payload: Record<any, any>, queue: string | Queue, opts?: DispatchOptions, clientOpts?: ClientOptions) => Promise<import("@aws-sdk/client-sqs").SendMessageCommandOutput>;
5
+ export default dispatch;
@@ -0,0 +1,39 @@
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 dispatchService from '../../services/SQSService/dispatch';
35
+ export const dispatch = (payload, queue, opts, clientOpts) =>
36
+ __awaiter(void 0, void 0, void 0, function* () {
37
+ return dispatchService(payload, queue, opts, clientOpts);
38
+ });
39
+ export default dispatch;
@@ -0,0 +1,3 @@
1
+ import { ClientOptions } from '../../types/aws';
2
+ declare const getClient: (clientOpts?: ClientOptions) => import("@aws-sdk/client-sqs").SQSClient;
3
+ export default getClient;
@@ -0,0 +1,5 @@
1
+ import getClientService from '../../services/SQSService/getClient';
2
+ const getClient = clientOpts => {
3
+ return getClientService(clientOpts);
4
+ };
5
+ export default getClient;
@@ -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,5 @@
1
+ import { ReceiveMessagesOptions } from '../../services/SQSService/receiveMessages';
2
+ import { Queue } from '../../services/SQSService/getQueueUrl';
3
+ import { ClientOptions } from '../../types/aws';
4
+ export declare const receiveMessages: (queue: string | Queue, opts?: ReceiveMessagesOptions, clientOpts?: ClientOptions) => Promise<import("@aws-sdk/client-sqs").ReceiveMessageCommandOutput>;
5
+ export default receiveMessages;
@@ -0,0 +1,39 @@
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 receiveMessagesService from '../../services/SQSService/receiveMessages';
35
+ export const receiveMessages = (queue, opts, clientOpts) =>
36
+ __awaiter(void 0, void 0, void 0, function* () {
37
+ return receiveMessagesService(queue, opts, clientOpts);
38
+ });
39
+ export default receiveMessages;
@@ -0,0 +1,22 @@
1
+ export type Params = {
2
+ [key: string]: any;
3
+ };
4
+ export type Field = {
5
+ key: string;
6
+ type: string;
7
+ required: boolean;
8
+ isCollection?: boolean;
9
+ enumValues?: string[];
10
+ };
11
+ /**
12
+ * Validates the fields of an object based on the provided validation rules.
13
+ *
14
+ * @param params - The object containing the fields to be validated.
15
+ * @param validFields - An array of field validation rules.
16
+ * @returns An object containing the validated fields.
17
+ * @throws {LesgoException} If a required field is missing or if a field has an invalid type.
18
+ */
19
+ declare const validateFields: (params: Params, validFields: Field[]) => {
20
+ [key: string]: any;
21
+ };
22
+ export default validateFields;
@@ -1,30 +1,30 @@
1
1
  import LesgoException from '../exceptions/LesgoException';
2
2
  import isEmail from './isEmail';
3
3
  import isDecimal from './isDecimal';
4
-
5
- const FILE = 'Utils/validateFields';
6
-
7
- const isValidJSON = json => {
8
- if (typeof json !== 'string') {
4
+ const FILE = 'lesgo.utils.validateFields';
5
+ const isValidJSON = jsonString => {
6
+ if (typeof jsonString !== 'string') {
9
7
  return false;
10
8
  }
11
-
12
- // Cannot find a regex solution to this
13
9
  try {
14
- JSON.parse(json);
15
-
10
+ JSON.parse(jsonString);
16
11
  return true;
17
- } catch (_) {
12
+ } catch (err) {
18
13
  return false;
19
14
  }
20
15
  };
21
-
16
+ /**
17
+ * Validates the fields of an object based on the provided validation rules.
18
+ *
19
+ * @param params - The object containing the fields to be validated.
20
+ * @param validFields - An array of field validation rules.
21
+ * @returns An object containing the validated fields.
22
+ * @throws {LesgoException} If a required field is missing or if a field has an invalid type.
23
+ */
22
24
  const validateFields = (params, validFields) => {
23
25
  const validated = {};
24
-
25
26
  validFields.forEach(field => {
26
27
  const { required, type, key, isCollection, enumValues = [] } = field;
27
-
28
28
  if (required) {
29
29
  if (typeof params[key] === 'object') {
30
30
  if (Array.isArray(params[key]) && params[key].length === 0) {
@@ -36,7 +36,6 @@ const validateFields = (params, validFields) => {
36
36
  );
37
37
  }
38
38
  }
39
-
40
39
  if (!params[key]) {
41
40
  if (typeof params[key] !== 'number') {
42
41
  throw new LesgoException(
@@ -48,7 +47,6 @@ const validateFields = (params, validFields) => {
48
47
  }
49
48
  }
50
49
  }
51
-
52
50
  if (isCollection) {
53
51
  try {
54
52
  validateFields({ [key]: params[key] }, [
@@ -63,7 +61,6 @@ const validateFields = (params, validFields) => {
63
61
  );
64
62
  }
65
63
  }
66
-
67
64
  (isCollection ? params[key] || [] : [params[key]]).forEach(paramsItem => {
68
65
  if (
69
66
  (type === 'string' &&
@@ -104,13 +101,10 @@ const validateFields = (params, validFields) => {
104
101
  );
105
102
  }
106
103
  });
107
-
108
104
  if (typeof params[key] !== 'undefined') {
109
105
  validated[key] = params[key];
110
106
  }
111
107
  });
112
-
113
108
  return validated;
114
109
  };
115
-
116
110
  export default validateFields;
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "lesgo",
3
- "version": "0.7.8",
3
+ "version": "2.1.0",
4
4
  "description": "Core framework for lesgo node.js serverless framework.",
5
- "main": "./src/index.js",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
6
7
  "author": "Sufiyan Rahmat",
7
8
  "license": "MIT",
8
9
  "bugs": {
@@ -14,51 +15,153 @@
14
15
  "url": "git+https://github.com/reflex-media/lesgo-framework.git"
15
16
  },
16
17
  "files": [
17
- "src",
18
+ "dist",
18
19
  "bin"
19
20
  ],
20
21
  "scripts": {
21
- "pretest": "eslint .",
22
+ "pretest": "eslint 'src/**/*.{ts,tsx}'",
22
23
  "test": "jest",
23
24
  "coverage": "jest --coverage",
24
25
  "coveralls": "npm run coverage && cat ./coverage/lcov.info | coveralls",
25
- "prepublishOnly": "npm run test",
26
- "lint": "eslint '**/*.{js,ts,jsx,tsx}' --quiet",
27
- "lint-fix": "eslint '**/*.{js,ts,jsx,tsx}' --fix"
26
+ "lint": "eslint 'src/**/*.{ts,tsx}' --quiet",
27
+ "lint:dist": "eslint 'dist/**/*.js' --fix --quiet",
28
+ "lint-fix": "eslint 'src/**/*.{js,ts,jsx,tsx}' --fix",
29
+ "format": "prettier --write 'dist/**/*.js'",
30
+ "build": "tsc && npm run format && npm run lint:dist",
31
+ "prepublishOnly": "npm run build"
28
32
  },
29
33
  "bin": {
30
34
  "lesgo-scripts": "./bin/lesgo-scripts.sh"
31
35
  },
32
- "engines": {
33
- "node": ">=12.0.0"
34
- },
35
36
  "devDependencies": {
36
- "@babel/cli": "^7.17.6",
37
- "@babel/core": "^7.17.5",
38
- "@babel/preset-env": "^7.16.11",
39
- "aws-sdk": "^2.1084.0",
40
- "babel-jest": "^24.9.0",
37
+ "@babel/cli": "^7.21.0",
38
+ "@babel/core": "^7.21.3",
39
+ "@babel/preset-env": "^7.20.2",
40
+ "@types/aws-lambda": "^8.10.140",
41
+ "@types/jest": "^29.5.12",
42
+ "@types/jsonwebtoken": "^9.0.6",
43
+ "@types/node": "^20.14.9",
44
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
45
+ "@typescript-eslint/parser": "^5.62.0",
46
+ "aws-lambda": "^1.0.7",
47
+ "aws-sdk-client-mock": "^2.1.1",
48
+ "babel-jest": "^29.5.0",
41
49
  "coveralls": "^3.1.1",
42
- "eslint": "^6.8.0",
43
- "eslint-config-airbnb-base": "^14.2.1",
44
- "eslint-config-prettier": "^6.15.0",
45
- "eslint-plugin-import": "^2.25.4",
46
- "eslint-plugin-jest": "^22.21.0",
47
- "eslint-plugin-prettier": "^3.4.1",
48
- "husky": "^3.1.0",
49
- "jest": "^24.9.0",
50
- "lint-staged": "^9.5.0",
51
- "prettier": "^1.19.1"
50
+ "eslint": "^8.57.0",
51
+ "eslint-config-airbnb-base": "^15.0.0",
52
+ "eslint-config-prettier": "^8.10.0",
53
+ "eslint-plugin-import": "^2.27.5",
54
+ "eslint-plugin-jest": "^27.2.1",
55
+ "eslint-plugin-prettier": "^4.2.1",
56
+ "husky": "^8.0.3",
57
+ "jest": "^29.5.0",
58
+ "lint-staged": "^13.2.0",
59
+ "prettier": "^2.8.8",
60
+ "ts-jest": "^29.1.5",
61
+ "typescript": "^5.1.6"
52
62
  },
53
63
  "dependencies": {
54
- "@elastic/elasticsearch": "7.13.0",
55
- "@firebase/app": "^0.7.17",
56
- "data-api-client": "^1.2.0",
57
- "firebase-admin": "^9.12.0",
58
- "jsonwebtoken": "^8.5.1",
59
- "memcache-plus": "^0.2.22",
60
- "mysql2": "^2.3.3",
61
- "nanoid": "^3.3.1"
64
+ "@aws-sdk/client-dynamodb": "^3.609.0",
65
+ "@aws-sdk/client-elasticache": "^3.620.0",
66
+ "@aws-sdk/client-s3": "^3.609.0",
67
+ "@aws-sdk/client-secrets-manager": "^3.616.0",
68
+ "@aws-sdk/client-sqs": "^3.609.0",
69
+ "@aws-sdk/credential-provider-node": "^3.609.0",
70
+ "@aws-sdk/lib-dynamodb": "^3.610.0",
71
+ "@aws-sdk/s3-request-presigner": "^3.609.0",
72
+ "@middy/core": "^5.4.3",
73
+ "@middy/do-not-wait-for-empty-event-loop": "^5.4.3",
74
+ "@middy/event-normalizer": "^5.4.3",
75
+ "@middy/http-event-normalizer": "^5.4.3",
76
+ "@middy/http-header-normalizer": "^5.4.3",
77
+ "@middy/http-json-body-parser": "^5.4.3",
78
+ "aws4": "^1.12.0",
79
+ "ioredis": "^5.4.1",
80
+ "jsonwebtoken": "^9.0.0",
81
+ "mysql2": "^3.10.3",
82
+ "nanoid": "^3.3.6"
83
+ },
84
+ "exports": {
85
+ ".": {
86
+ "import": "./dist/index.js",
87
+ "require": "./dist/index.js"
88
+ },
89
+ "./exceptions": {
90
+ "import": "./dist/exceptions/index.js",
91
+ "require": "./dist/exceptions/index.js"
92
+ },
93
+ "./middlewares": {
94
+ "import": "./dist/middlewares/index.js",
95
+ "require": "./dist/middlewares/index.js"
96
+ },
97
+ "./services/DynamoDbService": {
98
+ "import": "./dist/services/DynamoDbService/index.js",
99
+ "require": "./dist/services/DynamoDbService/index.js"
100
+ },
101
+ "./services/JWTService": {
102
+ "import": "./dist/services/JWTService/index.js",
103
+ "require": "./dist/services/JWTService/index.js"
104
+ },
105
+ "./services/RDSAuroraMySQLProxyService": {
106
+ "import": "./dist/services/RDSAuroraMySQLProxyService/index.js",
107
+ "require": "./dist/services/RDSAuroraMySQLProxyService/index.js"
108
+ },
109
+ "./services/S3Service": {
110
+ "import": "./dist/services/S3Service/index.js",
111
+ "require": "./dist/services/S3Service/index.js"
112
+ },
113
+ "./services/SecretsManagerService": {
114
+ "import": "./dist/services/SecretsManagerService/index.js",
115
+ "require": "./dist/services/SecretsManagerService/index.js"
116
+ },
117
+ "./services/SQSService": {
118
+ "import": "./dist/services/SQSService/index.js",
119
+ "require": "./dist/services/SQSService/index.js"
120
+ },
121
+ "./services/ElastiCacheRedisService": {
122
+ "import": "./dist/services/ElastiCacheRedisService/index.js",
123
+ "require": "./dist/services/ElastiCacheRedisService/index.js"
124
+ },
125
+ "./types": {
126
+ "import": "./dist/types/index.js",
127
+ "require": "./dist/types/index.js"
128
+ },
129
+ "./utils": {
130
+ "import": "./dist/utils/index.js",
131
+ "require": "./dist/utils/index.js"
132
+ },
133
+ "./utils/crypto": {
134
+ "import": "./dist/utils/crypto/index.js",
135
+ "require": "./dist/utils/crypto/index.js"
136
+ },
137
+ "./utils/jwt": {
138
+ "import": "./dist/utils/jwt/index.js",
139
+ "require": "./dist/utils/jwt/index.js"
140
+ },
141
+ "./utils/s3": {
142
+ "import": "./dist/utils/s3/index.js",
143
+ "require": "./dist/utils/s3/index.js"
144
+ },
145
+ "./utils/sqs": {
146
+ "import": "./dist/utils/sqs/index.js",
147
+ "require": "./dist/utils/sqs/index.js"
148
+ },
149
+ "./utils/dynamodb": {
150
+ "import": "./dist/utils/dynamodb/index.js",
151
+ "require": "./dist/utils/dynamodb/index.js"
152
+ },
153
+ "./utils/secretsmanager": {
154
+ "import": "./dist/utils/secretsmanager/index.js",
155
+ "require": "./dist/utils/secretsmanager/index.js"
156
+ },
157
+ "./utils/db/mysql/proxy": {
158
+ "import": "./dist/utils/db/mysql/proxy/index.js",
159
+ "require": "./dist/utils/db/mysql/proxy/index.js"
160
+ },
161
+ "./utils/cache/redis": {
162
+ "import": "./dist/utils/cache/redis/index.js",
163
+ "require": "./dist/utils/cache/redis/index.js"
164
+ }
62
165
  },
63
166
  "husky": {
64
167
  "hooks": {
@@ -71,5 +174,13 @@
71
174
  "npm run lint",
72
175
  "git add"
73
176
  ]
74
- }
177
+ },
178
+ "engineStrict": true,
179
+ "engines": {
180
+ "node": ">=18.0.0"
181
+ },
182
+ "peerDependencies": {
183
+ "serverless": "^3.0.0"
184
+ },
185
+ "sideEffects": false
75
186
  }
package/CHANGELOG.md DELETED
@@ -1,9 +0,0 @@
1
- # Changes as of November 11, 2019:
2
- - Added DatabaseService
3
- - where you could connect thru your own sql server (mysql, posgres and etc.)
4
- - Added ElasticSearchService
5
- - this service provides a connection that can connect thru local or AWS' ElasticSearch as of the moment.
6
- - Added JwtService
7
- - to validate jwt access token, and custom claims.
8
- - Added ElastiCacheService
9
- - a service that can use memcached/redis for in-memory key-value search.
@@ -1,24 +0,0 @@
1
- import LesgoException from '../LesgoException';
2
-
3
- describe('ExceptionsGroup: test LesgoException', () => {
4
- it('test LesgoException with extra parameters', () => {
5
- const lesgoException = new LesgoException(
6
- 'some message',
7
- 'LESGO_EXCEPTION',
8
- 411,
9
- {
10
- someParam: 'someValue',
11
- }
12
- );
13
-
14
- expect(lesgoException).toMatchObject({
15
- name: 'LesgoException',
16
- message: 'some message',
17
- statusCode: 411,
18
- code: 'LESGO_EXCEPTION',
19
- extra: {
20
- someParam: 'someValue',
21
- },
22
- });
23
- });
24
- });
@@ -1,4 +0,0 @@
1
- import LesgoException from './LesgoException';
2
-
3
- // eslint-disable-next-line import/prefer-default-export
4
- export { LesgoException };
package/src/index.js DELETED
@@ -1,4 +0,0 @@
1
- export * from './exceptions';
2
- export * from './middlewares';
3
- export * from './services';
4
- export * from './utils';