node-server-engine 1.1.1 → 1.1.3

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 (471) hide show
  1. package/.env.example +193 -193
  2. package/.mocharc.js +13 -13
  3. package/.nycrc +18 -18
  4. package/.prettierrc +7 -7
  5. package/Dockerfile +30 -30
  6. package/README.md +991 -1025
  7. package/babel.config.json +35 -35
  8. package/dist/const/DebeziumEvent.js.map +1 -1
  9. package/dist/const/LogSeverity.js.map +1 -1
  10. package/dist/const/index.js.map +1 -1
  11. package/dist/const/metrics.js.map +1 -1
  12. package/dist/const/mime.js.map +1 -1
  13. package/dist/const/tokenIssuer.js.map +1 -1
  14. package/dist/db/migrations/20241030121500-create-sequelize-meta-table.js.map +1 -1
  15. package/dist/db/models/SequelizeMeta.js.map +1 -1
  16. package/dist/db/models/index.js.map +1 -1
  17. package/dist/entities/ElasticSearch/ElasticSearch.js +7 -7
  18. package/dist/entities/ElasticSearch/ElasticSearch.js.map +1 -1
  19. package/dist/entities/ElasticSearch/ElasticSearch.types.js.map +1 -1
  20. package/dist/entities/ElasticSearch/index.js.map +1 -1
  21. package/dist/entities/Endpoint/Endpoint.js +8 -8
  22. package/dist/entities/Endpoint/Endpoint.js.map +1 -1
  23. package/dist/entities/Endpoint/Endpoint.types.js.map +1 -1
  24. package/dist/entities/Endpoint/index.js.map +1 -1
  25. package/dist/entities/EngineError/EngineError.js +2 -2
  26. package/dist/entities/EngineError/EngineError.js.map +1 -1
  27. package/dist/entities/EngineError/EngineError.types.js.map +1 -1
  28. package/dist/entities/EngineError/index.js.map +1 -1
  29. package/dist/entities/KeySet/KeySet.js +3 -3
  30. package/dist/entities/KeySet/KeySet.js.map +1 -1
  31. package/dist/entities/KeySet/KeySet.types.js.map +1 -1
  32. package/dist/entities/KeySet/index.js.map +1 -1
  33. package/dist/entities/LifecycleController/LifecycleController.js.map +1 -1
  34. package/dist/entities/LifecycleController/LifecycleController.types.js.map +1 -1
  35. package/dist/entities/LifecycleController/index.js.map +1 -1
  36. package/dist/entities/Localizator/Localizator.js +7 -7
  37. package/dist/entities/Localizator/Localizator.js.map +1 -1
  38. package/dist/entities/Localizator/Localizator.types.js.map +1 -1
  39. package/dist/entities/Localizator/guessNamingConvention/guessNamingConvention.js.map +1 -1
  40. package/dist/entities/Localizator/guessNamingConvention/index.js.map +1 -1
  41. package/dist/entities/Localizator/index.js.map +1 -1
  42. package/dist/entities/MessageHandler/MessageHandler.js +2 -2
  43. package/dist/entities/MessageHandler/MessageHandler.js.map +1 -1
  44. package/dist/entities/MessageHandler/MessageHandler.types.js.map +1 -1
  45. package/dist/entities/MessageHandler/index.js.map +1 -1
  46. package/dist/entities/PubSub/PubSub.js +25 -25
  47. package/dist/entities/PubSub/PubSub.js.map +1 -1
  48. package/dist/entities/PubSub/PubSub.types.js.map +1 -1
  49. package/dist/entities/PubSub/handleMessage/handleMessage.js +6 -6
  50. package/dist/entities/PubSub/handleMessage/handleMessage.js.map +1 -1
  51. package/dist/entities/PubSub/handleMessage/index.js.map +1 -1
  52. package/dist/entities/PubSub/index.js.map +1 -1
  53. package/dist/entities/PushNotification/PushNotification.js +4 -4
  54. package/dist/entities/PushNotification/PushNotification.js.map +1 -1
  55. package/dist/entities/PushNotification/PushNotification.types.js.map +1 -1
  56. package/dist/entities/PushNotification/index.js.map +1 -1
  57. package/dist/entities/Redis/Redis.js +8 -8
  58. package/dist/entities/Redis/Redis.js.map +1 -1
  59. package/dist/entities/Redis/Redis.types.js.map +1 -1
  60. package/dist/entities/Redis/Redis.validate.js +2 -2
  61. package/dist/entities/Redis/Redis.validate.js.map +1 -1
  62. package/dist/entities/Redis/index.js.map +1 -1
  63. package/dist/entities/Sequelize/Sequelize.config.js +42 -2
  64. package/dist/entities/Sequelize/Sequelize.config.js.map +1 -1
  65. package/dist/entities/Sequelize/Sequelize.js +3 -3
  66. package/dist/entities/Sequelize/Sequelize.js.map +1 -1
  67. package/dist/entities/Sequelize/Sequelize.types.js.map +1 -1
  68. package/dist/entities/Sequelize/Sequelize.validate.js +2 -2
  69. package/dist/entities/Sequelize/Sequelize.validate.js.map +1 -1
  70. package/dist/entities/Sequelize/index.js.map +1 -1
  71. package/dist/entities/Server/Server.const.js.map +1 -1
  72. package/dist/entities/Server/Server.js +2 -2
  73. package/dist/entities/Server/Server.js.map +1 -1
  74. package/dist/entities/Server/Server.types.js.map +1 -1
  75. package/dist/entities/Server/index.js.map +1 -1
  76. package/dist/entities/SocketClient/SocketClient.js +15 -15
  77. package/dist/entities/SocketClient/SocketClient.js.map +1 -1
  78. package/dist/entities/SocketClient/SocketClient.types.js.map +1 -1
  79. package/dist/entities/SocketClient/index.js.map +1 -1
  80. package/dist/entities/SocketClient/parseMessage/index.js.map +1 -1
  81. package/dist/entities/SocketClient/parseMessage/parseMessage.js +2 -2
  82. package/dist/entities/SocketClient/parseMessage/parseMessage.js.map +1 -1
  83. package/dist/entities/Storage/Storage.js +20 -20
  84. package/dist/entities/Storage/Storage.js.map +1 -1
  85. package/dist/entities/Storage/Storage.types.js.map +1 -1
  86. package/dist/entities/Storage/index.js.map +1 -1
  87. package/dist/entities/ValidationError/ValidationError.js.map +1 -1
  88. package/dist/entities/ValidationError/index.js.map +1 -1
  89. package/dist/entities/WebError/WebError.js +4 -4
  90. package/dist/entities/WebError/WebError.js.map +1 -1
  91. package/dist/entities/WebError/WebError.types.js.map +1 -1
  92. package/dist/entities/WebError/index.js.map +1 -1
  93. package/dist/entities/index.js.map +1 -1
  94. package/dist/index.js.map +1 -1
  95. package/dist/metrics/debug.js.map +1 -1
  96. package/dist/metrics/index.js.map +1 -1
  97. package/dist/metrics/request.js.map +1 -1
  98. package/dist/middleware/authAdmin/authAdmin.js.map +1 -1
  99. package/dist/middleware/authAdmin/authAdmin.types.js.map +1 -1
  100. package/dist/middleware/authAdmin/index.js.map +1 -1
  101. package/dist/middleware/authHmac/authHmac.js.map +1 -1
  102. package/dist/middleware/authHmac/authHmac.types.js.map +1 -1
  103. package/dist/middleware/authHmac/index.js.map +1 -1
  104. package/dist/middleware/authJwt/authJwt.js.map +1 -1
  105. package/dist/middleware/authJwt/authJwt.types.js.map +1 -1
  106. package/dist/middleware/authJwt/index.js.map +1 -1
  107. package/dist/middleware/authStatic/authStatic.js +3 -3
  108. package/dist/middleware/authStatic/authStatic.js.map +1 -1
  109. package/dist/middleware/authStatic/index.js.map +1 -1
  110. package/dist/middleware/authTls/authTls.js +8 -8
  111. package/dist/middleware/authTls/authTls.js.map +1 -1
  112. package/dist/middleware/authTls/authTls.types.js.map +1 -1
  113. package/dist/middleware/authTls/index.js.map +1 -1
  114. package/dist/middleware/checkPermission/checkPermission.d.ts +3 -1
  115. package/dist/middleware/checkPermission/checkPermission.js +2 -2
  116. package/dist/middleware/checkPermission/checkPermission.js.map +1 -1
  117. package/dist/middleware/error/error.js.map +1 -1
  118. package/dist/middleware/error/index.js.map +1 -1
  119. package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js +2 -2
  120. package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js.map +1 -1
  121. package/dist/middleware/fileUploader/compressAvatar/compressAvatar.types.js.map +1 -1
  122. package/dist/middleware/fileUploader/compressAvatar/index.js.map +1 -1
  123. package/dist/middleware/fileUploader/fileUploader.js +12 -12
  124. package/dist/middleware/fileUploader/fileUploader.js.map +1 -1
  125. package/dist/middleware/fileUploader/fileUploader.types.js.map +1 -1
  126. package/dist/middleware/fileUploader/index.js.map +1 -1
  127. package/dist/middleware/fileUploader/isMultiPart/index.js.map +1 -1
  128. package/dist/middleware/fileUploader/isMultiPart/isMultipart.js.map +1 -1
  129. package/dist/middleware/fileUploader/validate/index.js.map +1 -1
  130. package/dist/middleware/fileUploader/validate/validate.js.map +1 -1
  131. package/dist/middleware/fourOhFour/fourOhFour.js.map +1 -1
  132. package/dist/middleware/fourOhFour/index.js.map +1 -1
  133. package/dist/middleware/geminiFileUploader/geminiFileUploader.js.map +1 -1
  134. package/dist/middleware/geminiFileUploader/index.js.map +1 -1
  135. package/dist/middleware/healthCheck/healthCheck.js +2 -2
  136. package/dist/middleware/healthCheck/healthCheck.js.map +1 -1
  137. package/dist/middleware/healthCheck/index.js.map +1 -1
  138. package/dist/middleware/index.js.map +1 -1
  139. package/dist/middleware/metrics/index.js.map +1 -1
  140. package/dist/middleware/metrics/metrics.js.map +1 -1
  141. package/dist/middleware/requestMetrics/index.js.map +1 -1
  142. package/dist/middleware/requestMetrics/requestMetrics.js.map +1 -1
  143. package/dist/middleware/swaggerDocs/index.js.map +1 -1
  144. package/dist/middleware/swaggerDocs/swaggerDocs.js +7 -7
  145. package/dist/middleware/swaggerDocs/swaggerDocs.js.map +1 -1
  146. package/dist/middleware/swaggerDocs/swaggerDocs.types.js.map +1 -1
  147. package/dist/middleware/userResolver/index.js.map +1 -1
  148. package/dist/middleware/userResolver/userResolver.js.map +1 -1
  149. package/dist/middleware/validate/index.js.map +1 -1
  150. package/dist/middleware/validate/validate.js.map +1 -1
  151. package/dist/middleware/version/index.js.map +1 -1
  152. package/dist/middleware/version/version.js +3 -3
  153. package/dist/middleware/version/version.js.map +1 -1
  154. package/dist/utils/checkEnvironment/index.js +13 -13
  155. package/dist/utils/checkEnvironment/index.js.map +1 -1
  156. package/dist/utils/createHttpServer/createHttpServer.js.map +1 -1
  157. package/dist/utils/createHttpServer/createHttpServer.validate.js +2 -2
  158. package/dist/utils/createHttpServer/createHttpServer.validate.js.map +1 -1
  159. package/dist/utils/createHttpServer/index.js.map +1 -1
  160. package/dist/utils/createSortedObject/createSortedObject.js.map +1 -1
  161. package/dist/utils/createSortedObject/index.js.map +1 -1
  162. package/dist/utils/dbMigration/dbMigration.js +8 -8
  163. package/dist/utils/dbMigration/dbMigration.js.map +1 -1
  164. package/dist/utils/dbMigration/dbMigration.types.js.map +1 -1
  165. package/dist/utils/dbMigration/index.js.map +1 -1
  166. package/dist/utils/dbMigration/migrateMetadataTable/index.js.map +1 -1
  167. package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.d.ts +2 -2
  168. package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js +47 -15
  169. package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js.map +1 -1
  170. package/dist/utils/envAssert/envAssert.js +6 -6
  171. package/dist/utils/envAssert/envAssert.js.map +1 -1
  172. package/dist/utils/envAssert/index.js.map +1 -1
  173. package/dist/utils/envAssert/validators/hostList.js +2 -2
  174. package/dist/utils/envAssert/validators/hostList.js.map +1 -1
  175. package/dist/utils/envAssert/validators/index.js.map +1 -1
  176. package/dist/utils/envAssert/validators/ipList.js +2 -2
  177. package/dist/utils/envAssert/validators/ipList.js.map +1 -1
  178. package/dist/utils/envAssert/validators/path.js +2 -2
  179. package/dist/utils/envAssert/validators/path.js.map +1 -1
  180. package/dist/utils/envAssert/validators/string.js +2 -2
  181. package/dist/utils/envAssert/validators/string.js.map +1 -1
  182. package/dist/utils/envAssert/validators/stringList.js +3 -3
  183. package/dist/utils/envAssert/validators/stringList.js.map +1 -1
  184. package/dist/utils/filter/filter.js +4 -4
  185. package/dist/utils/filter/filter.js.map +1 -1
  186. package/dist/utils/filter/index.js.map +1 -1
  187. package/dist/utils/getDynamicLink/getDynamicLink.js.map +1 -1
  188. package/dist/utils/getDynamicLink/getDynamicLink.types.js.map +1 -1
  189. package/dist/utils/getDynamicLink/getDynamicLink.validate.js.map +1 -1
  190. package/dist/utils/getDynamicLink/index.js.map +1 -1
  191. package/dist/utils/hmac/checkEnv/checkEnv.js +2 -2
  192. package/dist/utils/hmac/checkEnv/checkEnv.js.map +1 -1
  193. package/dist/utils/hmac/checkEnv/index.js.map +1 -1
  194. package/dist/utils/hmac/createHmac/createHmac.js.map +1 -1
  195. package/dist/utils/hmac/createHmac/index.js.map +1 -1
  196. package/dist/utils/hmac/index.js.map +1 -1
  197. package/dist/utils/hmac/index.types.js.map +1 -1
  198. package/dist/utils/hmac/signPayload/index.js.map +1 -1
  199. package/dist/utils/hmac/signPayload/signPayload.js.map +1 -1
  200. package/dist/utils/hmac/verifySignature/index.js.map +1 -1
  201. package/dist/utils/hmac/verifySignature/verifySignature.js.map +1 -1
  202. package/dist/utils/index.js.map +1 -1
  203. package/dist/utils/jwt/index.js.map +1 -1
  204. package/dist/utils/jwt/jwt.js.map +1 -1
  205. package/dist/utils/jwt/jwt.types.js.map +1 -1
  206. package/dist/utils/report/index.js.map +1 -1
  207. package/dist/utils/report/output.js.map +1 -1
  208. package/dist/utils/report/output.types.js.map +1 -1
  209. package/dist/utils/report/report.js.map +1 -1
  210. package/dist/utils/report/report.types.js.map +1 -1
  211. package/dist/utils/request/index.js.map +1 -1
  212. package/dist/utils/request/request.js.map +1 -1
  213. package/dist/utils/semverCompare/index.js.map +1 -1
  214. package/dist/utils/semverCompare/semverCompare.js +5 -5
  215. package/dist/utils/semverCompare/semverCompare.js.map +1 -1
  216. package/dist/utils/sendEmail/index.js.map +1 -1
  217. package/dist/utils/sendEmail/sendEmail.js +8 -8
  218. package/dist/utils/sendEmail/sendEmail.js.map +1 -1
  219. package/dist/utils/sendEmail/sendEmail.types.js.map +1 -1
  220. package/dist/utils/sendPush/index.js.map +1 -1
  221. package/dist/utils/sendPush/sendPush.js +5 -5
  222. package/dist/utils/sendPush/sendPush.js.map +1 -1
  223. package/dist/utils/sendPush/sendPush.types.js.map +1 -1
  224. package/dist/utils/tlsConfig/index.js.map +1 -1
  225. package/dist/utils/tlsConfig/tlsConfig.js +2 -2
  226. package/dist/utils/tlsConfig/tlsConfig.js.map +1 -1
  227. package/dist/utils/tlsConfig/tlsConfig.types.js.map +1 -1
  228. package/dist/utils/tlsConfig/tlsConfig.validate.js +2 -2
  229. package/dist/utils/tlsConfig/tlsConfig.validate.js.map +1 -1
  230. package/dist/utils/tlsRequest/index.js.map +1 -1
  231. package/dist/utils/tlsRequest/tlsRequest.js.map +1 -1
  232. package/dist/utils/trimPathSlash/index.js.map +1 -1
  233. package/dist/utils/trimPathSlash/trimPathSlash.js +4 -4
  234. package/dist/utils/trimPathSlash/trimPathSlash.js.map +1 -1
  235. package/eslint.config.mjs +11 -11
  236. package/package.json +164 -161
  237. package/src/const/DebeziumEvent.ts +6 -6
  238. package/src/const/LogSeverity.ts +7 -7
  239. package/src/const/index.ts +5 -5
  240. package/src/const/metrics.ts +6 -6
  241. package/src/const/mime.ts +37 -37
  242. package/src/const/tokenIssuer.ts +9 -9
  243. package/src/db/migrations/20241030121500-create-sequelize-meta-table.ts +29 -29
  244. package/src/db/models/SequelizeMeta.ts +16 -16
  245. package/src/db/models/index.ts +2 -2
  246. package/src/entities/ElasticSearch/ElasticSearch.ts +103 -103
  247. package/src/entities/ElasticSearch/ElasticSearch.types.ts +7 -7
  248. package/src/entities/ElasticSearch/index.ts +2 -2
  249. package/src/entities/Endpoint/Endpoint.test.ts +337 -337
  250. package/src/entities/Endpoint/Endpoint.ts +202 -202
  251. package/src/entities/Endpoint/Endpoint.types.ts +205 -205
  252. package/src/entities/Endpoint/index.ts +2 -2
  253. package/src/entities/EngineError/EngineError.ts +28 -28
  254. package/src/entities/EngineError/EngineError.types.ts +15 -15
  255. package/src/entities/EngineError/index.ts +2 -2
  256. package/src/entities/KeySet/KeySet.test.ts +126 -126
  257. package/src/entities/KeySet/KeySet.ts +172 -172
  258. package/src/entities/KeySet/KeySet.types.ts +28 -28
  259. package/src/entities/KeySet/index.ts +2 -2
  260. package/src/entities/LifecycleController/LifecycleController.test.ts +48 -48
  261. package/src/entities/LifecycleController/LifecycleController.ts +24 -24
  262. package/src/entities/LifecycleController/LifecycleController.types.ts +5 -5
  263. package/src/entities/LifecycleController/index.ts +2 -2
  264. package/src/entities/Localizator/Localizator.ts +139 -139
  265. package/src/entities/Localizator/Localizator.types.ts +52 -52
  266. package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.test.ts +165 -165
  267. package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.ts +58 -58
  268. package/src/entities/Localizator/guessNamingConvention/index.ts +1 -1
  269. package/src/entities/Localizator/index.ts +2 -2
  270. package/src/entities/MessageHandler/MessageHandler.test.ts +130 -130
  271. package/src/entities/MessageHandler/MessageHandler.ts +72 -72
  272. package/src/entities/MessageHandler/MessageHandler.types.ts +15 -15
  273. package/src/entities/MessageHandler/index.ts +2 -2
  274. package/src/entities/PubSub/PubSub.test.ts +297 -297
  275. package/src/entities/PubSub/PubSub.ts +202 -202
  276. package/src/entities/PubSub/PubSub.types.ts +76 -76
  277. package/src/entities/PubSub/handleMessage/handleMessage.test.ts +102 -102
  278. package/src/entities/PubSub/handleMessage/handleMessage.ts +65 -65
  279. package/src/entities/PubSub/handleMessage/index.ts +1 -1
  280. package/src/entities/PubSub/index.ts +2 -2
  281. package/src/entities/PushNotification/PushNotification.test.ts +35 -35
  282. package/src/entities/PushNotification/PushNotification.ts +44 -44
  283. package/src/entities/PushNotification/PushNotification.types.ts +25 -25
  284. package/src/entities/PushNotification/index.ts +2 -2
  285. package/src/entities/Redis/Redis.ts +71 -71
  286. package/src/entities/Redis/Redis.types.ts +19 -19
  287. package/src/entities/Redis/Redis.validate.ts +17 -17
  288. package/src/entities/Redis/index.ts +2 -2
  289. package/src/entities/Sequelize/Sequelize.config.ts +59 -29
  290. package/src/entities/Sequelize/Sequelize.test.ts +21 -21
  291. package/src/entities/Sequelize/Sequelize.ts +75 -75
  292. package/src/entities/Sequelize/Sequelize.types.ts +10 -10
  293. package/src/entities/Sequelize/Sequelize.validate.ts +15 -15
  294. package/src/entities/Sequelize/index.ts +2 -2
  295. package/src/entities/Server/Server.const.ts +56 -56
  296. package/src/entities/Server/Server.test.ts +272 -272
  297. package/src/entities/Server/Server.ts +445 -445
  298. package/src/entities/Server/Server.types.ts +88 -88
  299. package/src/entities/Server/index.ts +2 -2
  300. package/src/entities/SocketClient/SocketClient.test.ts +392 -392
  301. package/src/entities/SocketClient/SocketClient.ts +401 -401
  302. package/src/entities/SocketClient/SocketClient.types.ts +62 -62
  303. package/src/entities/SocketClient/index.ts +2 -2
  304. package/src/entities/SocketClient/parseMessage/index.ts +1 -1
  305. package/src/entities/SocketClient/parseMessage/parseMessage.test.ts +20 -20
  306. package/src/entities/SocketClient/parseMessage/parseMessage.ts +26 -26
  307. package/src/entities/Storage/Storage.test.ts +58 -58
  308. package/src/entities/Storage/Storage.ts +219 -219
  309. package/src/entities/Storage/Storage.types.ts +57 -57
  310. package/src/entities/Storage/index.ts +2 -2
  311. package/src/entities/ValidationError/ValidationError.ts +34 -34
  312. package/src/entities/ValidationError/index.ts +1 -1
  313. package/src/entities/WebError/WebError.test.ts +18 -18
  314. package/src/entities/WebError/WebError.ts +23 -23
  315. package/src/entities/WebError/WebError.types.ts +9 -9
  316. package/src/entities/WebError/index.ts +2 -2
  317. package/src/entities/index.ts +16 -16
  318. package/src/index.ts +4 -4
  319. package/src/metrics/debug.ts +10 -10
  320. package/src/metrics/index.ts +2 -2
  321. package/src/metrics/request.ts +17 -17
  322. package/src/middleware/authAdmin/authAdmin.test.ts +199 -199
  323. package/src/middleware/authAdmin/authAdmin.ts +114 -114
  324. package/src/middleware/authAdmin/authAdmin.types.ts +19 -19
  325. package/src/middleware/authAdmin/index.ts +2 -2
  326. package/src/middleware/authHmac/authHmac.test.ts +86 -86
  327. package/src/middleware/authHmac/authHmac.ts +56 -56
  328. package/src/middleware/authHmac/authHmac.types.ts +7 -7
  329. package/src/middleware/authHmac/index.ts +2 -2
  330. package/src/middleware/authJwt/authJwt.test.ts +54 -54
  331. package/src/middleware/authJwt/authJwt.ts +55 -55
  332. package/src/middleware/authJwt/authJwt.types.ts +14 -14
  333. package/src/middleware/authJwt/index.ts +2 -2
  334. package/src/middleware/authStatic/authStatic.test.ts +36 -36
  335. package/src/middleware/authStatic/authStatic.ts +45 -45
  336. package/src/middleware/authStatic/index.ts +1 -1
  337. package/src/middleware/authTls/authTls.test.ts +138 -138
  338. package/src/middleware/authTls/authTls.ts +106 -106
  339. package/src/middleware/authTls/authTls.types.ts +13 -13
  340. package/src/middleware/authTls/index.ts +2 -2
  341. package/src/middleware/checkPermission/checkPermission.ts +33 -35
  342. package/src/middleware/error/error.test.ts +60 -60
  343. package/src/middleware/error/error.ts +25 -25
  344. package/src/middleware/error/index.ts +1 -1
  345. package/src/middleware/fileUploader/compressAvatar/compressAvatar.ts +25 -25
  346. package/src/middleware/fileUploader/compressAvatar/compressAvatar.types.ts +12 -12
  347. package/src/middleware/fileUploader/compressAvatar/index.ts +2 -2
  348. package/src/middleware/fileUploader/fileUploader.test.ts +310 -310
  349. package/src/middleware/fileUploader/fileUploader.ts +303 -303
  350. package/src/middleware/fileUploader/fileUploader.types.ts +52 -52
  351. package/src/middleware/fileUploader/index.ts +2 -2
  352. package/src/middleware/fileUploader/isMultiPart/index.ts +1 -1
  353. package/src/middleware/fileUploader/isMultiPart/isMultipart.ts +9 -9
  354. package/src/middleware/fileUploader/validate/index.ts +1 -1
  355. package/src/middleware/fileUploader/validate/validate.ts +27 -27
  356. package/src/middleware/fourOhFour/fourOhFour.test.ts +14 -14
  357. package/src/middleware/fourOhFour/fourOhFour.ts +13 -13
  358. package/src/middleware/fourOhFour/index.ts +1 -1
  359. package/src/middleware/geminiFileUploader/geminiFileUploader.ts +117 -117
  360. package/src/middleware/geminiFileUploader/index.ts +1 -1
  361. package/src/middleware/healthCheck/healthCheck.test.ts +12 -12
  362. package/src/middleware/healthCheck/healthCheck.ts +14 -14
  363. package/src/middleware/healthCheck/index.ts +1 -1
  364. package/src/middleware/index.ts +17 -17
  365. package/src/middleware/metrics/index.ts +1 -1
  366. package/src/middleware/metrics/metrics.test.ts +46 -46
  367. package/src/middleware/metrics/metrics.ts +24 -24
  368. package/src/middleware/requestMetrics/index.ts +1 -1
  369. package/src/middleware/requestMetrics/requestMetrics.test.ts +77 -77
  370. package/src/middleware/requestMetrics/requestMetrics.ts +20 -20
  371. package/src/middleware/swaggerDocs/index.ts +2 -2
  372. package/src/middleware/swaggerDocs/swaggerDocs.ts +114 -114
  373. package/src/middleware/swaggerDocs/swaggerDocs.types.ts +41 -41
  374. package/src/middleware/userResolver/index.ts +1 -1
  375. package/src/middleware/userResolver/userResolver.test.ts +35 -35
  376. package/src/middleware/userResolver/userResolver.ts +35 -35
  377. package/src/middleware/validate/index.ts +1 -1
  378. package/src/middleware/validate/validate.test.ts +43 -43
  379. package/src/middleware/validate/validate.ts +25 -25
  380. package/src/middleware/version/index.ts +1 -1
  381. package/src/middleware/version/version.test.ts +23 -23
  382. package/src/middleware/version/version.ts +12 -12
  383. package/src/utils/checkEnvironment/index.ts +49 -49
  384. package/src/utils/createHttpServer/createHttpServer.test.ts +24 -24
  385. package/src/utils/createHttpServer/createHttpServer.ts +34 -34
  386. package/src/utils/createHttpServer/createHttpServer.validate.ts +17 -17
  387. package/src/utils/createHttpServer/index.ts +1 -1
  388. package/src/utils/createSortedObject/createSortedObject.ts +20 -20
  389. package/src/utils/createSortedObject/createSortedObjet.test.ts +47 -47
  390. package/src/utils/createSortedObject/index.ts +1 -1
  391. package/src/utils/dbMigration/dbMigration.test.ts +209 -209
  392. package/src/utils/dbMigration/dbMigration.ts +199 -199
  393. package/src/utils/dbMigration/dbMigration.types.ts +11 -11
  394. package/src/utils/dbMigration/index.ts +2 -2
  395. package/src/utils/dbMigration/migrateMetadataTable/index.ts +1 -1
  396. package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.test.ts +59 -59
  397. package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.ts +102 -70
  398. package/src/utils/envAssert/envAssert.ts +31 -31
  399. package/src/utils/envAssert/index.ts +1 -1
  400. package/src/utils/envAssert/validators/hostList.ts +17 -17
  401. package/src/utils/envAssert/validators/index.ts +5 -5
  402. package/src/utils/envAssert/validators/ipList.ts +13 -13
  403. package/src/utils/envAssert/validators/path.ts +13 -13
  404. package/src/utils/envAssert/validators/string.ts +9 -9
  405. package/src/utils/envAssert/validators/stringList.ts +13 -13
  406. package/src/utils/filter/filter.ts +17 -17
  407. package/src/utils/filter/index.ts +1 -1
  408. package/src/utils/getDynamicLink/getDynamicLink.test.ts +51 -51
  409. package/src/utils/getDynamicLink/getDynamicLink.ts +28 -28
  410. package/src/utils/getDynamicLink/getDynamicLink.types.ts +11 -11
  411. package/src/utils/getDynamicLink/getDynamicLink.validate.ts +6 -6
  412. package/src/utils/getDynamicLink/index.ts +2 -2
  413. package/src/utils/hmac/checkEnv/checkEnv.test.ts +18 -18
  414. package/src/utils/hmac/checkEnv/checkEnv.ts +9 -9
  415. package/src/utils/hmac/checkEnv/index.ts +1 -1
  416. package/src/utils/hmac/createHmac/createHmac.ts +33 -33
  417. package/src/utils/hmac/createHmac/index.ts +1 -1
  418. package/src/utils/hmac/index.ts +4 -4
  419. package/src/utils/hmac/index.types.ts +13 -13
  420. package/src/utils/hmac/signPayload/index.ts +1 -1
  421. package/src/utils/hmac/signPayload/signPayload.ts +16 -16
  422. package/src/utils/hmac/verifySignature/index.ts +1 -1
  423. package/src/utils/hmac/verifySignature/verifySignature.ts +24 -24
  424. package/src/utils/index.ts +26 -26
  425. package/src/utils/jwt/index.ts +2 -2
  426. package/src/utils/jwt/jwt.test.ts +41 -41
  427. package/src/utils/jwt/jwt.ts +204 -204
  428. package/src/utils/jwt/jwt.types.ts +21 -21
  429. package/src/utils/report/index.ts +3 -3
  430. package/src/utils/report/output.ts +45 -45
  431. package/src/utils/report/output.types.ts +70 -70
  432. package/src/utils/report/report.test.ts +133 -133
  433. package/src/utils/report/report.ts +134 -134
  434. package/src/utils/report/report.types.ts +13 -13
  435. package/src/utils/request/index.ts +1 -1
  436. package/src/utils/request/request.test.ts +26 -26
  437. package/src/utils/request/request.ts +48 -48
  438. package/src/utils/semverCompare/index.ts +1 -1
  439. package/src/utils/semverCompare/semverCompare.test.ts +49 -49
  440. package/src/utils/semverCompare/semverCompare.ts +60 -60
  441. package/src/utils/sendEmail/index.ts +1 -1
  442. package/src/utils/sendEmail/sendEmail.ts +27 -27
  443. package/src/utils/sendEmail/sendEmail.types.ts +7 -7
  444. package/src/utils/sendPush/index.ts +2 -2
  445. package/src/utils/sendPush/sendPush.ts +20 -20
  446. package/src/utils/sendPush/sendPush.types.ts +25 -25
  447. package/src/utils/tlsConfig/index.ts +2 -2
  448. package/src/utils/tlsConfig/tlsConfig.test.ts +32 -32
  449. package/src/utils/tlsConfig/tlsConfig.ts +47 -47
  450. package/src/utils/tlsConfig/tlsConfig.types.ts +11 -11
  451. package/src/utils/tlsConfig/tlsConfig.validate.ts +25 -25
  452. package/src/utils/tlsRequest/index.ts +1 -1
  453. package/src/utils/tlsRequest/tlsRequest.test.ts +63 -63
  454. package/src/utils/tlsRequest/tlsRequest.ts +12 -12
  455. package/src/utils/trimPathSlash/index.ts +1 -1
  456. package/src/utils/trimPathSlash/trimPathSlash.test.ts +26 -26
  457. package/src/utils/trimPathSlash/trimPathSlash.ts +8 -8
  458. package/test/env.ts +56 -56
  459. package/test/factory/index.ts +8 -8
  460. package/test/factory/sequelizeMeta.ts +12 -12
  461. package/test/hooks.ts +37 -37
  462. package/test/index.ts +3 -3
  463. package/test/stub/index.ts +3 -3
  464. package/test/stub/stubLocales.ts +68 -68
  465. package/test/stub/stubPubSub.ts +7 -7
  466. package/test/stub/stubStorage.ts +77 -77
  467. package/test/stub/stubStorage.types.ts +11 -11
  468. package/test/utils/app.ts +31 -31
  469. package/test/utils/index.ts +1 -1
  470. package/tsconfig.build.json +5 -5
  471. package/tsconfig.json +32 -32
@@ -1,13 +1,13 @@
1
- import { LogEntry } from './output.types';
2
- import { LogSeverity } from 'const';
3
-
4
- /** Structure of debug logs */
5
- export interface DebugLogEntry extends Omit<LogEntry, 'severity'> {
6
- /** Debugging namespace in which the entry is */
7
- namespace: string;
8
- }
9
-
10
- export type InfoLogEntry = Omit<LogEntry, 'severity'> & {
11
- /** Severity level of the entries */
12
- severity?: LogSeverity;
13
- };
1
+ import { LogEntry } from './output.types';
2
+ import { LogSeverity } from 'const';
3
+
4
+ /** Structure of debug logs */
5
+ export interface DebugLogEntry extends Omit<LogEntry, 'severity'> {
6
+ /** Debugging namespace in which the entry is */
7
+ namespace: string;
8
+ }
9
+
10
+ export type InfoLogEntry = Omit<LogEntry, 'severity'> & {
11
+ /** Severity level of the entries */
12
+ severity?: LogSeverity;
13
+ };
@@ -1 +1 @@
1
- export * from './request';
1
+ export * from './request';
@@ -1,26 +1,26 @@
1
- import { expect } from 'chai';
2
- import { faker } from '@faker-js/faker';
3
- import nock, { cleanAll } from 'nock';
4
- import { request } from './request';
5
- import { EngineError } from 'entities/EngineError';
6
-
7
- describe('Utils - Request', function () {
8
- afterEach(() => {
9
- cleanAll();
10
- });
11
-
12
- it('should retry a request 5 times if network errors happen', async () => {
13
- const url = faker.internet.url();
14
-
15
- const scope = nock(url)
16
- .get('/')
17
- .times(5)
18
- .replyWithError({ code: 'ECONNREFUSED' });
19
-
20
- const promise = request({ url });
21
-
22
- await expect(promise).to.eventually.be.rejectedWith(EngineError);
23
-
24
- scope.isDone();
25
- });
26
- });
1
+ import { expect } from 'chai';
2
+ import { faker } from '@faker-js/faker';
3
+ import nock, { cleanAll } from 'nock';
4
+ import { request } from './request';
5
+ import { EngineError } from 'entities/EngineError';
6
+
7
+ describe('Utils - Request', function () {
8
+ afterEach(() => {
9
+ cleanAll();
10
+ });
11
+
12
+ it('should retry a request 5 times if network errors happen', async () => {
13
+ const url = faker.internet.url();
14
+
15
+ const scope = nock(url)
16
+ .get('/')
17
+ .times(5)
18
+ .replyWithError({ code: 'ECONNREFUSED' });
19
+
20
+ const promise = request({ url });
21
+
22
+ await expect(promise).to.eventually.be.rejectedWith(EngineError);
23
+
24
+ scope.isDone();
25
+ });
26
+ });
@@ -1,48 +1,48 @@
1
- import axios, { AxiosResponse, AxiosRequestConfig } from 'axios';
2
- import { LogSeverity } from 'const';
3
- import { EngineError, EngineErrorOptions } from 'entities/EngineError';
4
-
5
- /** Make a http(s) request through axios with proper error handling */
6
- export async function request<T = unknown>(
7
- options: AxiosRequestConfig,
8
- tryCount = 1
9
- ): Promise<AxiosResponse<T>> {
10
- try {
11
- return await axios.request<T, AxiosResponse<T>>(options);
12
- } catch (error: unknown) {
13
- // In case of networking error, we attempt to retry the connection if we did less than 5 attempts
14
- if (
15
- tryCount < 5 &&
16
- axios.isAxiosError(error) &&
17
- error.code &&
18
- ['ECONNABORTED', 'ECONNREFUSED', 'ECONNRESET', 'EAI_AGAIN'].includes(
19
- error.code
20
- )
21
- ) {
22
- return request<T>(options, tryCount + 1);
23
- }
24
- const errorOptions: EngineErrorOptions = {
25
- message:
26
- error instanceof Error
27
- ? error.message
28
- : typeof error === 'string'
29
- ? error
30
- : 'An unknown error occurred',
31
- severity: LogSeverity.CRITICAL,
32
- data: { error }
33
- };
34
- if (error instanceof Error) {
35
- errorOptions.message = error.message;
36
- errorOptions.error = error;
37
- }
38
- // A response was returned but it was not a 200
39
- if (axios.isAxiosError(error) && error.response) {
40
- errorOptions.data = {
41
- data: error.response.data as unknown,
42
- status: error.response.status,
43
- headers: error.response.headers as unknown
44
- };
45
- }
46
- throw new EngineError(errorOptions);
47
- }
48
- }
1
+ import axios, { AxiosResponse, AxiosRequestConfig } from 'axios';
2
+ import { LogSeverity } from 'const';
3
+ import { EngineError, EngineErrorOptions } from 'entities/EngineError';
4
+
5
+ /** Make a http(s) request through axios with proper error handling */
6
+ export async function request<T = unknown>(
7
+ options: AxiosRequestConfig,
8
+ tryCount = 1
9
+ ): Promise<AxiosResponse<T>> {
10
+ try {
11
+ return await axios.request<T, AxiosResponse<T>>(options);
12
+ } catch (error: unknown) {
13
+ // In case of networking error, we attempt to retry the connection if we did less than 5 attempts
14
+ if (
15
+ tryCount < 5 &&
16
+ axios.isAxiosError(error) &&
17
+ error.code &&
18
+ ['ECONNABORTED', 'ECONNREFUSED', 'ECONNRESET', 'EAI_AGAIN'].includes(
19
+ error.code
20
+ )
21
+ ) {
22
+ return request<T>(options, tryCount + 1);
23
+ }
24
+ const errorOptions: EngineErrorOptions = {
25
+ message:
26
+ error instanceof Error
27
+ ? error.message
28
+ : typeof error === 'string'
29
+ ? error
30
+ : 'An unknown error occurred',
31
+ severity: LogSeverity.CRITICAL,
32
+ data: { error }
33
+ };
34
+ if (error instanceof Error) {
35
+ errorOptions.message = error.message;
36
+ errorOptions.error = error;
37
+ }
38
+ // A response was returned but it was not a 200
39
+ if (axios.isAxiosError(error) && error.response) {
40
+ errorOptions.data = {
41
+ data: error.response.data as unknown,
42
+ status: error.response.status,
43
+ headers: error.response.headers as unknown
44
+ };
45
+ }
46
+ throw new EngineError(errorOptions);
47
+ }
48
+ }
@@ -1 +1 @@
1
- export * from './semverCompare';
1
+ export * from './semverCompare';
@@ -1,49 +1,49 @@
1
- import { expect } from 'chai';
2
- import { semverCompare } from './semverCompare';
3
- import { EngineError } from 'entities/EngineError';
4
-
5
- describe('Utils - SemVer Compare', function () {
6
- it('Should throw an error if given a wrong formatted item', () => {
7
- expect(() => semverCompare('1.0.0', 'test')).to.throw(EngineError);
8
- expect(() => semverCompare('wrong', '1.0.0')).to.throw(EngineError);
9
- });
10
-
11
- it('Should compare majors', () => {
12
- expect(semverCompare('1.0.0', '2.0.0')).to.equal(-1);
13
- expect(semverCompare('2.0.0', '1.0.0')).to.equal(1);
14
- });
15
-
16
- it('Should compare minors', () => {
17
- expect(semverCompare('1.1.0', '1.2.0')).to.equal(-1);
18
- expect(semverCompare('2.5.0', '2.3.0')).to.equal(1);
19
- });
20
-
21
- it('Should compare patches', () => {
22
- expect(semverCompare('1.1.1', '1.1.2')).to.equal(-1);
23
- expect(semverCompare('2.5.6', '2.5.0')).to.equal(1);
24
- });
25
-
26
- it('Should compare patches', () => {
27
- expect(semverCompare('1.1.1', '1.1.2')).to.equal(-1);
28
- expect(semverCompare('2.5.6', '2.5.0')).to.equal(1);
29
- });
30
-
31
- it('Should compare releases types', () => {
32
- expect(semverCompare('1.1.1-rc.1', '1.1.1')).to.equal(-1);
33
- expect(semverCompare('1.1.1-beta.1', '1.1.1-rc.1')).to.equal(-1);
34
- expect(semverCompare('1.1.1-alpha.1', '1.1.1-beta.1')).to.equal(-1);
35
- expect(semverCompare('2.5.5', '2.5.5-rc.1')).to.equal(1);
36
- expect(semverCompare('2.5.5-rc.1', '2.5.5-beta.1')).to.equal(1);
37
- expect(semverCompare('2.5.5-beta.1', '2.5.5-alpha.1')).to.equal(1);
38
- });
39
-
40
- it('Should compare pre-release versions', () => {
41
- expect(semverCompare('1.1.1-alpha.1', '1.1.1-alpha.2')).to.equal(-1);
42
- expect(semverCompare('2.5.6-rc.5', '2.5.6-rc.3')).to.equal(1);
43
- });
44
-
45
- it('Should handle equality', () => {
46
- expect(semverCompare('1.1.1', '1.1.1')).to.equal(0);
47
- expect(semverCompare('2.5.6-rc.5', '2.5.6-rc.5')).to.equal(0);
48
- });
49
- });
1
+ import { expect } from 'chai';
2
+ import { semverCompare } from './semverCompare';
3
+ import { EngineError } from 'entities/EngineError';
4
+
5
+ describe('Utils - SemVer Compare', function () {
6
+ it('Should throw an error if given a wrong formatted item', () => {
7
+ expect(() => semverCompare('1.0.0', 'test')).to.throw(EngineError);
8
+ expect(() => semverCompare('wrong', '1.0.0')).to.throw(EngineError);
9
+ });
10
+
11
+ it('Should compare majors', () => {
12
+ expect(semverCompare('1.0.0', '2.0.0')).to.equal(-1);
13
+ expect(semverCompare('2.0.0', '1.0.0')).to.equal(1);
14
+ });
15
+
16
+ it('Should compare minors', () => {
17
+ expect(semverCompare('1.1.0', '1.2.0')).to.equal(-1);
18
+ expect(semverCompare('2.5.0', '2.3.0')).to.equal(1);
19
+ });
20
+
21
+ it('Should compare patches', () => {
22
+ expect(semverCompare('1.1.1', '1.1.2')).to.equal(-1);
23
+ expect(semverCompare('2.5.6', '2.5.0')).to.equal(1);
24
+ });
25
+
26
+ it('Should compare patches', () => {
27
+ expect(semverCompare('1.1.1', '1.1.2')).to.equal(-1);
28
+ expect(semverCompare('2.5.6', '2.5.0')).to.equal(1);
29
+ });
30
+
31
+ it('Should compare releases types', () => {
32
+ expect(semverCompare('1.1.1-rc.1', '1.1.1')).to.equal(-1);
33
+ expect(semverCompare('1.1.1-beta.1', '1.1.1-rc.1')).to.equal(-1);
34
+ expect(semverCompare('1.1.1-alpha.1', '1.1.1-beta.1')).to.equal(-1);
35
+ expect(semverCompare('2.5.5', '2.5.5-rc.1')).to.equal(1);
36
+ expect(semverCompare('2.5.5-rc.1', '2.5.5-beta.1')).to.equal(1);
37
+ expect(semverCompare('2.5.5-beta.1', '2.5.5-alpha.1')).to.equal(1);
38
+ });
39
+
40
+ it('Should compare pre-release versions', () => {
41
+ expect(semverCompare('1.1.1-alpha.1', '1.1.1-alpha.2')).to.equal(-1);
42
+ expect(semverCompare('2.5.6-rc.5', '2.5.6-rc.3')).to.equal(1);
43
+ });
44
+
45
+ it('Should handle equality', () => {
46
+ expect(semverCompare('1.1.1', '1.1.1')).to.equal(0);
47
+ expect(semverCompare('2.5.6-rc.5', '2.5.6-rc.5')).to.equal(0);
48
+ });
49
+ });
@@ -1,60 +1,60 @@
1
- import validator from 'validator';
2
- import { EngineError } from 'entities/EngineError';
3
-
4
- // Regex to validate our SemVer style and capture the different parts
5
- const SEMVER_REGEX =
6
- /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-(?:(alpha|beta|rc)(?:\.(0|[1-9]\d*))))?$/;
7
-
8
- /**
9
- * Comparison function for our SemVer strings, includes support ofr pre-releases
10
- * @param {string} v1
11
- * @param {string} v2
12
- * @return {number} - -1 if v1 < v2, 0 if v1 = v2, +1 if v1 > v2
13
- */
14
- export function semverCompare(v1: string, v2: string): 1 | -1 | 0 {
15
- const [match1, match2] = [v1, v2].map((v) => v.match(SEMVER_REGEX));
16
- if (!match1 || !match2)
17
- throw new EngineError({
18
- message: 'Provided invalid SemVer string, can not compare',
19
- data: { v1, v2 }
20
- });
21
- const [
22
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
23
- [_1, major1, minor1, patch1, preType1, preVersion1],
24
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
- [_2, major2, minor2, patch2, preType2, preVersion2]
26
- ] = [match1, match2].map((group) =>
27
- // We parse to int the parts that can be
28
- group.map((item) => (item && validator.isInt(item) ? parseInt(item) : item))
29
- );
30
-
31
- // Compare majors first
32
- if (major1 < major2) return -1;
33
- if (major1 > major2) return 1;
34
-
35
- // Compare minors second
36
- if (minor1 < minor2) return -1;
37
- if (minor1 > minor2) return 1;
38
-
39
- // Compare patch third
40
- if (patch1 < patch2) return -1;
41
- if (patch1 > patch2) return 1;
42
-
43
- // Compare pre-release type
44
- // Release > pre-release
45
- if (!preType1 && !preType2) return 0;
46
- if (preType1 && !preType2) return -1;
47
- if (!preType1 && preType2) return 1;
48
-
49
- // RC > Beta > Alpha
50
- if (preType1 !== 'rc' && preType2 === 'rc') return -1;
51
- if (preType1 === 'rc' && preType2 !== 'rc') return 1;
52
- if (preType1 !== 'beta' && preType2 === 'beta') return -1;
53
- if (preType1 === 'beta' && preType2 !== 'beta') return 1;
54
-
55
- // Finally compare the pre-release versions
56
- if (preVersion1 < preVersion2) return -1;
57
- if (preVersion1 > preVersion2) return 1;
58
-
59
- return 0;
60
- }
1
+ import validator from 'validator';
2
+ import { EngineError } from 'entities/EngineError';
3
+
4
+ // Regex to validate our SemVer style and capture the different parts
5
+ const SEMVER_REGEX =
6
+ /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-(?:(alpha|beta|rc)(?:\.(0|[1-9]\d*))))?$/;
7
+
8
+ /**
9
+ * Comparison function for our SemVer strings, includes support ofr pre-releases
10
+ * @param {string} v1
11
+ * @param {string} v2
12
+ * @return {number} - -1 if v1 < v2, 0 if v1 = v2, +1 if v1 > v2
13
+ */
14
+ export function semverCompare(v1: string, v2: string): 1 | -1 | 0 {
15
+ const [match1, match2] = [v1, v2].map((v) => v.match(SEMVER_REGEX));
16
+ if (!match1 || !match2)
17
+ throw new EngineError({
18
+ message: 'Provided invalid SemVer string, can not compare',
19
+ data: { v1, v2 }
20
+ });
21
+ const [
22
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
23
+ [_1, major1, minor1, patch1, preType1, preVersion1],
24
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
+ [_2, major2, minor2, patch2, preType2, preVersion2]
26
+ ] = [match1, match2].map((group) =>
27
+ // We parse to int the parts that can be
28
+ group.map((item) => (item && validator.isInt(item) ? parseInt(item) : item))
29
+ );
30
+
31
+ // Compare majors first
32
+ if (major1 < major2) return -1;
33
+ if (major1 > major2) return 1;
34
+
35
+ // Compare minors second
36
+ if (minor1 < minor2) return -1;
37
+ if (minor1 > minor2) return 1;
38
+
39
+ // Compare patch third
40
+ if (patch1 < patch2) return -1;
41
+ if (patch1 > patch2) return 1;
42
+
43
+ // Compare pre-release type
44
+ // Release > pre-release
45
+ if (!preType1 && !preType2) return 0;
46
+ if (preType1 && !preType2) return -1;
47
+ if (!preType1 && preType2) return 1;
48
+
49
+ // RC > Beta > Alpha
50
+ if (preType1 !== 'rc' && preType2 === 'rc') return -1;
51
+ if (preType1 === 'rc' && preType2 !== 'rc') return 1;
52
+ if (preType1 !== 'beta' && preType2 === 'beta') return -1;
53
+ if (preType1 === 'beta' && preType2 !== 'beta') return 1;
54
+
55
+ // Finally compare the pre-release versions
56
+ if (preVersion1 < preVersion2) return -1;
57
+ if (preVersion1 > preVersion2) return 1;
58
+
59
+ return 0;
60
+ }
@@ -1 +1 @@
1
- export * from './sendEmail';
1
+ export * from './sendEmail';
@@ -1,27 +1,27 @@
1
- import { EmailRecipient } from './sendEmail.types';
2
- import { tlsRequest } from 'utils/tlsRequest';
3
-
4
- /**
5
- * Send an email through the email service
6
- * @param userId - ID of the user that should receive the email
7
- * @param template - Email template to use
8
- * @param translationKey - Key used to get localized strings
9
- * @param parameters - Variables that can be inserted in the email template and localized strings
10
- * @param tags - Data injected in the localized strings as HTML tags
11
- * @param to - Users to which the email should be sent
12
- */
13
- export async function sendEmail(
14
- userId: string,
15
- template: string,
16
- translationKey: string,
17
- parameters?: unknown,
18
- tags?: unknown,
19
- to?: Array<EmailRecipient>
20
- ): Promise<unknown> {
21
- return tlsRequest({
22
- method: 'post',
23
- url: '/send',
24
- baseURL: process.env.EMAIL_SERVICE_URL,
25
- data: { userId, template, translationKey, parameters, tags, to }
26
- });
27
- }
1
+ import { EmailRecipient } from './sendEmail.types';
2
+ import { tlsRequest } from 'utils/tlsRequest';
3
+
4
+ /**
5
+ * Send an email through the email service
6
+ * @param userId - ID of the user that should receive the email
7
+ * @param template - Email template to use
8
+ * @param translationKey - Key used to get localized strings
9
+ * @param parameters - Variables that can be inserted in the email template and localized strings
10
+ * @param tags - Data injected in the localized strings as HTML tags
11
+ * @param to - Users to which the email should be sent
12
+ */
13
+ export async function sendEmail(
14
+ userId: string,
15
+ template: string,
16
+ translationKey: string,
17
+ parameters?: unknown,
18
+ tags?: unknown,
19
+ to?: Array<EmailRecipient>
20
+ ): Promise<unknown> {
21
+ return tlsRequest({
22
+ method: 'post',
23
+ url: '/send',
24
+ baseURL: process.env.EMAIL_SERVICE_URL,
25
+ data: { userId, template, translationKey, parameters, tags, to }
26
+ });
27
+ }
@@ -1,7 +1,7 @@
1
- /** Structure representing an email recipient */
2
- export interface EmailRecipient {
3
- /** Email of the person to which the email should be sent */
4
- email: string;
5
- /** Name of the person receiving the email */
6
- name?: string;
7
- }
1
+ /** Structure representing an email recipient */
2
+ export interface EmailRecipient {
3
+ /** Email of the person to which the email should be sent */
4
+ email: string;
5
+ /** Name of the person receiving the email */
6
+ name?: string;
7
+ }
@@ -1,2 +1,2 @@
1
- export * from './sendPush';
2
- export * from './sendPush.types';
1
+ export * from './sendPush';
2
+ export * from './sendPush.types';
@@ -1,20 +1,20 @@
1
- import { SendPushNotification } from './sendPush.types';
2
- import { tlsRequest } from 'utils/tlsRequest';
3
-
4
- /**
5
- * Send a push notification through the push service
6
- * @param userId - ID of the user that should receive the notification
7
- * @param notification - Notification that should be sent
8
- * @return Push service response
9
- */
10
- export async function sendPush(
11
- userId: string,
12
- notification: SendPushNotification
13
- ): Promise<unknown> {
14
- return tlsRequest({
15
- method: 'post',
16
- url: '/push',
17
- baseURL: process.env.PUSH_SERVICE_URL,
18
- data: { userId, ...notification }
19
- });
20
- }
1
+ import { SendPushNotification } from './sendPush.types';
2
+ import { tlsRequest } from 'utils/tlsRequest';
3
+
4
+ /**
5
+ * Send a push notification through the push service
6
+ * @param userId - ID of the user that should receive the notification
7
+ * @param notification - Notification that should be sent
8
+ * @return Push service response
9
+ */
10
+ export async function sendPush(
11
+ userId: string,
12
+ notification: SendPushNotification
13
+ ): Promise<unknown> {
14
+ return tlsRequest({
15
+ method: 'post',
16
+ url: '/push',
17
+ baseURL: process.env.PUSH_SERVICE_URL,
18
+ data: { userId, ...notification }
19
+ });
20
+ }
@@ -1,25 +1,25 @@
1
- /** Stricture representing a push notification to send */
2
- export interface SendPushNotification {
3
- /** Title of the notification */
4
- title?: string;
5
- /** Body of the notification */
6
- body?: string;
7
- /** Data payload of the notification */
8
- payload?: unknown;
9
- /** Indicates that the notification is a VOIP notification */
10
- voip?: boolean;
11
- /** Indicate that it is a background notification (data only, low priority) */
12
- background?: boolean;
13
- /** Push token can be specified here is we want to send to a given user */
14
- token?: string;
15
- /** Indicates that the data content can be mutated by the client (iOS) */
16
- mutable?: boolean;
17
- /** Indicates that the notification requires some client side processing to be displayed (iOS) */
18
- contentAvailable?: boolean;
19
- /** Time to live of the notification in seconds. After this the notification will not be distributed */
20
- ttl?: number;
21
- /** Indicate that it is a high priority notification */
22
- priority?: boolean;
23
- /** Notifications with the same string here will be collapsed in the system tray */
24
- collapseId?: string;
25
- }
1
+ /** Stricture representing a push notification to send */
2
+ export interface SendPushNotification {
3
+ /** Title of the notification */
4
+ title?: string;
5
+ /** Body of the notification */
6
+ body?: string;
7
+ /** Data payload of the notification */
8
+ payload?: unknown;
9
+ /** Indicates that the notification is a VOIP notification */
10
+ voip?: boolean;
11
+ /** Indicate that it is a background notification (data only, low priority) */
12
+ background?: boolean;
13
+ /** Push token can be specified here is we want to send to a given user */
14
+ token?: string;
15
+ /** Indicates that the data content can be mutated by the client (iOS) */
16
+ mutable?: boolean;
17
+ /** Indicates that the notification requires some client side processing to be displayed (iOS) */
18
+ contentAvailable?: boolean;
19
+ /** Time to live of the notification in seconds. After this the notification will not be distributed */
20
+ ttl?: number;
21
+ /** Indicate that it is a high priority notification */
22
+ priority?: boolean;
23
+ /** Notifications with the same string here will be collapsed in the system tray */
24
+ collapseId?: string;
25
+ }
@@ -1,2 +1,2 @@
1
- export * from './tlsConfig';
2
- export * from './tlsConfig.types';
1
+ export * from './tlsConfig';
2
+ export * from './tlsConfig.types';
@@ -1,32 +1,32 @@
1
- import path from 'path';
2
- import { expect } from 'chai';
3
- import { validateTlsConfig } from './tlsConfig.validate';
4
-
5
- describe('utils - TLS Config', () => {
6
- beforeEach(() => {
7
- delete process.env.TLS_REQUEST_KEY;
8
- delete process.env.TLS_REQUEST_CERT;
9
- delete process.env.TLS_REQUEST_CA;
10
- delete process.env.TLS_SERVER_KEY;
11
- delete process.env.TLS_SERVER_CERT;
12
- delete process.env.TLS_CA;
13
- });
14
-
15
- it('should accept Request TLS environment variables', () => {
16
- process.env.TLS_REQUEST_KEY = path.resolve('certs/client.key');
17
- process.env.TLS_REQUEST_CERT = path.resolve('certs/client.crt');
18
- process.env.TLS_REQUEST_CA = path.resolve('certs/ca.crt');
19
- expect(validateTlsConfig).to.throw;
20
- });
21
-
22
- it('should accept Server TLS environment variables', () => {
23
- process.env.TLS_SERVER_KEY = path.resolve('certs/server.key');
24
- process.env.TLS_SERVER_CERT = path.resolve('certs/server.crt');
25
- process.env.TLS_CA = path.resolve('certs/ca.crt');
26
- expect(validateTlsConfig).to.throw;
27
- });
28
-
29
- it('should throw an EngineError if no environment setting', () => {
30
- expect(validateTlsConfig).to.throw;
31
- });
32
- });
1
+ import path from 'path';
2
+ import { expect } from 'chai';
3
+ import { validateTlsConfig } from './tlsConfig.validate';
4
+
5
+ describe('utils - TLS Config', () => {
6
+ beforeEach(() => {
7
+ delete process.env.TLS_REQUEST_KEY;
8
+ delete process.env.TLS_REQUEST_CERT;
9
+ delete process.env.TLS_REQUEST_CA;
10
+ delete process.env.TLS_SERVER_KEY;
11
+ delete process.env.TLS_SERVER_CERT;
12
+ delete process.env.TLS_CA;
13
+ });
14
+
15
+ it('should accept Request TLS environment variables', () => {
16
+ process.env.TLS_REQUEST_KEY = path.resolve('certs/client.key');
17
+ process.env.TLS_REQUEST_CERT = path.resolve('certs/client.crt');
18
+ process.env.TLS_REQUEST_CA = path.resolve('certs/ca.crt');
19
+ expect(validateTlsConfig).to.throw;
20
+ });
21
+
22
+ it('should accept Server TLS environment variables', () => {
23
+ process.env.TLS_SERVER_KEY = path.resolve('certs/server.key');
24
+ process.env.TLS_SERVER_CERT = path.resolve('certs/server.crt');
25
+ process.env.TLS_CA = path.resolve('certs/ca.crt');
26
+ expect(validateTlsConfig).to.throw;
27
+ });
28
+
29
+ it('should throw an EngineError if no environment setting', () => {
30
+ expect(validateTlsConfig).to.throw;
31
+ });
32
+ });