node-server-engine 1.1.2 → 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 (469) 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.js.map +1 -1
  115. package/dist/middleware/error/error.js.map +1 -1
  116. package/dist/middleware/error/index.js.map +1 -1
  117. package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js +2 -2
  118. package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js.map +1 -1
  119. package/dist/middleware/fileUploader/compressAvatar/compressAvatar.types.js.map +1 -1
  120. package/dist/middleware/fileUploader/compressAvatar/index.js.map +1 -1
  121. package/dist/middleware/fileUploader/fileUploader.js +12 -12
  122. package/dist/middleware/fileUploader/fileUploader.js.map +1 -1
  123. package/dist/middleware/fileUploader/fileUploader.types.js.map +1 -1
  124. package/dist/middleware/fileUploader/index.js.map +1 -1
  125. package/dist/middleware/fileUploader/isMultiPart/index.js.map +1 -1
  126. package/dist/middleware/fileUploader/isMultiPart/isMultipart.js.map +1 -1
  127. package/dist/middleware/fileUploader/validate/index.js.map +1 -1
  128. package/dist/middleware/fileUploader/validate/validate.js.map +1 -1
  129. package/dist/middleware/fourOhFour/fourOhFour.js.map +1 -1
  130. package/dist/middleware/fourOhFour/index.js.map +1 -1
  131. package/dist/middleware/geminiFileUploader/geminiFileUploader.js.map +1 -1
  132. package/dist/middleware/geminiFileUploader/index.js.map +1 -1
  133. package/dist/middleware/healthCheck/healthCheck.js +2 -2
  134. package/dist/middleware/healthCheck/healthCheck.js.map +1 -1
  135. package/dist/middleware/healthCheck/index.js.map +1 -1
  136. package/dist/middleware/index.js.map +1 -1
  137. package/dist/middleware/metrics/index.js.map +1 -1
  138. package/dist/middleware/metrics/metrics.js.map +1 -1
  139. package/dist/middleware/requestMetrics/index.js.map +1 -1
  140. package/dist/middleware/requestMetrics/requestMetrics.js.map +1 -1
  141. package/dist/middleware/swaggerDocs/index.js.map +1 -1
  142. package/dist/middleware/swaggerDocs/swaggerDocs.js +7 -7
  143. package/dist/middleware/swaggerDocs/swaggerDocs.js.map +1 -1
  144. package/dist/middleware/swaggerDocs/swaggerDocs.types.js.map +1 -1
  145. package/dist/middleware/userResolver/index.js.map +1 -1
  146. package/dist/middleware/userResolver/userResolver.js.map +1 -1
  147. package/dist/middleware/validate/index.js.map +1 -1
  148. package/dist/middleware/validate/validate.js.map +1 -1
  149. package/dist/middleware/version/index.js.map +1 -1
  150. package/dist/middleware/version/version.js +3 -3
  151. package/dist/middleware/version/version.js.map +1 -1
  152. package/dist/utils/checkEnvironment/index.js +13 -13
  153. package/dist/utils/checkEnvironment/index.js.map +1 -1
  154. package/dist/utils/createHttpServer/createHttpServer.js.map +1 -1
  155. package/dist/utils/createHttpServer/createHttpServer.validate.js +2 -2
  156. package/dist/utils/createHttpServer/createHttpServer.validate.js.map +1 -1
  157. package/dist/utils/createHttpServer/index.js.map +1 -1
  158. package/dist/utils/createSortedObject/createSortedObject.js.map +1 -1
  159. package/dist/utils/createSortedObject/index.js.map +1 -1
  160. package/dist/utils/dbMigration/dbMigration.js +8 -8
  161. package/dist/utils/dbMigration/dbMigration.js.map +1 -1
  162. package/dist/utils/dbMigration/dbMigration.types.js.map +1 -1
  163. package/dist/utils/dbMigration/index.js.map +1 -1
  164. package/dist/utils/dbMigration/migrateMetadataTable/index.js.map +1 -1
  165. package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.d.ts +2 -2
  166. package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js +47 -15
  167. package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js.map +1 -1
  168. package/dist/utils/envAssert/envAssert.js +6 -6
  169. package/dist/utils/envAssert/envAssert.js.map +1 -1
  170. package/dist/utils/envAssert/index.js.map +1 -1
  171. package/dist/utils/envAssert/validators/hostList.js +2 -2
  172. package/dist/utils/envAssert/validators/hostList.js.map +1 -1
  173. package/dist/utils/envAssert/validators/index.js.map +1 -1
  174. package/dist/utils/envAssert/validators/ipList.js +2 -2
  175. package/dist/utils/envAssert/validators/ipList.js.map +1 -1
  176. package/dist/utils/envAssert/validators/path.js +2 -2
  177. package/dist/utils/envAssert/validators/path.js.map +1 -1
  178. package/dist/utils/envAssert/validators/string.js +2 -2
  179. package/dist/utils/envAssert/validators/string.js.map +1 -1
  180. package/dist/utils/envAssert/validators/stringList.js +3 -3
  181. package/dist/utils/envAssert/validators/stringList.js.map +1 -1
  182. package/dist/utils/filter/filter.js +4 -4
  183. package/dist/utils/filter/filter.js.map +1 -1
  184. package/dist/utils/filter/index.js.map +1 -1
  185. package/dist/utils/getDynamicLink/getDynamicLink.js.map +1 -1
  186. package/dist/utils/getDynamicLink/getDynamicLink.types.js.map +1 -1
  187. package/dist/utils/getDynamicLink/getDynamicLink.validate.js.map +1 -1
  188. package/dist/utils/getDynamicLink/index.js.map +1 -1
  189. package/dist/utils/hmac/checkEnv/checkEnv.js +2 -2
  190. package/dist/utils/hmac/checkEnv/checkEnv.js.map +1 -1
  191. package/dist/utils/hmac/checkEnv/index.js.map +1 -1
  192. package/dist/utils/hmac/createHmac/createHmac.js.map +1 -1
  193. package/dist/utils/hmac/createHmac/index.js.map +1 -1
  194. package/dist/utils/hmac/index.js.map +1 -1
  195. package/dist/utils/hmac/index.types.js.map +1 -1
  196. package/dist/utils/hmac/signPayload/index.js.map +1 -1
  197. package/dist/utils/hmac/signPayload/signPayload.js.map +1 -1
  198. package/dist/utils/hmac/verifySignature/index.js.map +1 -1
  199. package/dist/utils/hmac/verifySignature/verifySignature.js.map +1 -1
  200. package/dist/utils/index.js.map +1 -1
  201. package/dist/utils/jwt/index.js.map +1 -1
  202. package/dist/utils/jwt/jwt.js.map +1 -1
  203. package/dist/utils/jwt/jwt.types.js.map +1 -1
  204. package/dist/utils/report/index.js.map +1 -1
  205. package/dist/utils/report/output.js.map +1 -1
  206. package/dist/utils/report/output.types.js.map +1 -1
  207. package/dist/utils/report/report.js.map +1 -1
  208. package/dist/utils/report/report.types.js.map +1 -1
  209. package/dist/utils/request/index.js.map +1 -1
  210. package/dist/utils/request/request.js.map +1 -1
  211. package/dist/utils/semverCompare/index.js.map +1 -1
  212. package/dist/utils/semverCompare/semverCompare.js +5 -5
  213. package/dist/utils/semverCompare/semverCompare.js.map +1 -1
  214. package/dist/utils/sendEmail/index.js.map +1 -1
  215. package/dist/utils/sendEmail/sendEmail.js +8 -8
  216. package/dist/utils/sendEmail/sendEmail.js.map +1 -1
  217. package/dist/utils/sendEmail/sendEmail.types.js.map +1 -1
  218. package/dist/utils/sendPush/index.js.map +1 -1
  219. package/dist/utils/sendPush/sendPush.js +5 -5
  220. package/dist/utils/sendPush/sendPush.js.map +1 -1
  221. package/dist/utils/sendPush/sendPush.types.js.map +1 -1
  222. package/dist/utils/tlsConfig/index.js.map +1 -1
  223. package/dist/utils/tlsConfig/tlsConfig.js +2 -2
  224. package/dist/utils/tlsConfig/tlsConfig.js.map +1 -1
  225. package/dist/utils/tlsConfig/tlsConfig.types.js.map +1 -1
  226. package/dist/utils/tlsConfig/tlsConfig.validate.js +2 -2
  227. package/dist/utils/tlsConfig/tlsConfig.validate.js.map +1 -1
  228. package/dist/utils/tlsRequest/index.js.map +1 -1
  229. package/dist/utils/tlsRequest/tlsRequest.js.map +1 -1
  230. package/dist/utils/trimPathSlash/index.js.map +1 -1
  231. package/dist/utils/trimPathSlash/trimPathSlash.js +4 -4
  232. package/dist/utils/trimPathSlash/trimPathSlash.js.map +1 -1
  233. package/eslint.config.mjs +11 -11
  234. package/package.json +164 -161
  235. package/src/const/DebeziumEvent.ts +6 -6
  236. package/src/const/LogSeverity.ts +7 -7
  237. package/src/const/index.ts +5 -5
  238. package/src/const/metrics.ts +6 -6
  239. package/src/const/mime.ts +37 -37
  240. package/src/const/tokenIssuer.ts +9 -9
  241. package/src/db/migrations/20241030121500-create-sequelize-meta-table.ts +29 -29
  242. package/src/db/models/SequelizeMeta.ts +16 -16
  243. package/src/db/models/index.ts +2 -2
  244. package/src/entities/ElasticSearch/ElasticSearch.ts +103 -103
  245. package/src/entities/ElasticSearch/ElasticSearch.types.ts +7 -7
  246. package/src/entities/ElasticSearch/index.ts +2 -2
  247. package/src/entities/Endpoint/Endpoint.test.ts +337 -337
  248. package/src/entities/Endpoint/Endpoint.ts +202 -202
  249. package/src/entities/Endpoint/Endpoint.types.ts +205 -205
  250. package/src/entities/Endpoint/index.ts +2 -2
  251. package/src/entities/EngineError/EngineError.ts +28 -28
  252. package/src/entities/EngineError/EngineError.types.ts +15 -15
  253. package/src/entities/EngineError/index.ts +2 -2
  254. package/src/entities/KeySet/KeySet.test.ts +126 -126
  255. package/src/entities/KeySet/KeySet.ts +172 -172
  256. package/src/entities/KeySet/KeySet.types.ts +28 -28
  257. package/src/entities/KeySet/index.ts +2 -2
  258. package/src/entities/LifecycleController/LifecycleController.test.ts +48 -48
  259. package/src/entities/LifecycleController/LifecycleController.ts +24 -24
  260. package/src/entities/LifecycleController/LifecycleController.types.ts +5 -5
  261. package/src/entities/LifecycleController/index.ts +2 -2
  262. package/src/entities/Localizator/Localizator.ts +139 -139
  263. package/src/entities/Localizator/Localizator.types.ts +52 -52
  264. package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.test.ts +165 -165
  265. package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.ts +58 -58
  266. package/src/entities/Localizator/guessNamingConvention/index.ts +1 -1
  267. package/src/entities/Localizator/index.ts +2 -2
  268. package/src/entities/MessageHandler/MessageHandler.test.ts +130 -130
  269. package/src/entities/MessageHandler/MessageHandler.ts +72 -72
  270. package/src/entities/MessageHandler/MessageHandler.types.ts +15 -15
  271. package/src/entities/MessageHandler/index.ts +2 -2
  272. package/src/entities/PubSub/PubSub.test.ts +297 -297
  273. package/src/entities/PubSub/PubSub.ts +202 -202
  274. package/src/entities/PubSub/PubSub.types.ts +76 -76
  275. package/src/entities/PubSub/handleMessage/handleMessage.test.ts +102 -102
  276. package/src/entities/PubSub/handleMessage/handleMessage.ts +65 -65
  277. package/src/entities/PubSub/handleMessage/index.ts +1 -1
  278. package/src/entities/PubSub/index.ts +2 -2
  279. package/src/entities/PushNotification/PushNotification.test.ts +35 -35
  280. package/src/entities/PushNotification/PushNotification.ts +44 -44
  281. package/src/entities/PushNotification/PushNotification.types.ts +25 -25
  282. package/src/entities/PushNotification/index.ts +2 -2
  283. package/src/entities/Redis/Redis.ts +71 -71
  284. package/src/entities/Redis/Redis.types.ts +19 -19
  285. package/src/entities/Redis/Redis.validate.ts +17 -17
  286. package/src/entities/Redis/index.ts +2 -2
  287. package/src/entities/Sequelize/Sequelize.config.ts +59 -29
  288. package/src/entities/Sequelize/Sequelize.test.ts +21 -21
  289. package/src/entities/Sequelize/Sequelize.ts +75 -75
  290. package/src/entities/Sequelize/Sequelize.types.ts +10 -10
  291. package/src/entities/Sequelize/Sequelize.validate.ts +15 -15
  292. package/src/entities/Sequelize/index.ts +2 -2
  293. package/src/entities/Server/Server.const.ts +56 -56
  294. package/src/entities/Server/Server.test.ts +272 -272
  295. package/src/entities/Server/Server.ts +445 -445
  296. package/src/entities/Server/Server.types.ts +88 -88
  297. package/src/entities/Server/index.ts +2 -2
  298. package/src/entities/SocketClient/SocketClient.test.ts +392 -392
  299. package/src/entities/SocketClient/SocketClient.ts +401 -401
  300. package/src/entities/SocketClient/SocketClient.types.ts +62 -62
  301. package/src/entities/SocketClient/index.ts +2 -2
  302. package/src/entities/SocketClient/parseMessage/index.ts +1 -1
  303. package/src/entities/SocketClient/parseMessage/parseMessage.test.ts +20 -20
  304. package/src/entities/SocketClient/parseMessage/parseMessage.ts +26 -26
  305. package/src/entities/Storage/Storage.test.ts +58 -58
  306. package/src/entities/Storage/Storage.ts +219 -219
  307. package/src/entities/Storage/Storage.types.ts +57 -57
  308. package/src/entities/Storage/index.ts +2 -2
  309. package/src/entities/ValidationError/ValidationError.ts +34 -34
  310. package/src/entities/ValidationError/index.ts +1 -1
  311. package/src/entities/WebError/WebError.test.ts +18 -18
  312. package/src/entities/WebError/WebError.ts +23 -23
  313. package/src/entities/WebError/WebError.types.ts +9 -9
  314. package/src/entities/WebError/index.ts +2 -2
  315. package/src/entities/index.ts +16 -16
  316. package/src/index.ts +4 -4
  317. package/src/metrics/debug.ts +10 -10
  318. package/src/metrics/index.ts +2 -2
  319. package/src/metrics/request.ts +17 -17
  320. package/src/middleware/authAdmin/authAdmin.test.ts +199 -199
  321. package/src/middleware/authAdmin/authAdmin.ts +114 -114
  322. package/src/middleware/authAdmin/authAdmin.types.ts +19 -19
  323. package/src/middleware/authAdmin/index.ts +2 -2
  324. package/src/middleware/authHmac/authHmac.test.ts +86 -86
  325. package/src/middleware/authHmac/authHmac.ts +56 -56
  326. package/src/middleware/authHmac/authHmac.types.ts +7 -7
  327. package/src/middleware/authHmac/index.ts +2 -2
  328. package/src/middleware/authJwt/authJwt.test.ts +54 -54
  329. package/src/middleware/authJwt/authJwt.ts +55 -55
  330. package/src/middleware/authJwt/authJwt.types.ts +14 -14
  331. package/src/middleware/authJwt/index.ts +2 -2
  332. package/src/middleware/authStatic/authStatic.test.ts +36 -36
  333. package/src/middleware/authStatic/authStatic.ts +45 -45
  334. package/src/middleware/authStatic/index.ts +1 -1
  335. package/src/middleware/authTls/authTls.test.ts +138 -138
  336. package/src/middleware/authTls/authTls.ts +106 -106
  337. package/src/middleware/authTls/authTls.types.ts +13 -13
  338. package/src/middleware/authTls/index.ts +2 -2
  339. package/src/middleware/checkPermission/checkPermission.ts +32 -32
  340. package/src/middleware/error/error.test.ts +60 -60
  341. package/src/middleware/error/error.ts +25 -25
  342. package/src/middleware/error/index.ts +1 -1
  343. package/src/middleware/fileUploader/compressAvatar/compressAvatar.ts +25 -25
  344. package/src/middleware/fileUploader/compressAvatar/compressAvatar.types.ts +12 -12
  345. package/src/middleware/fileUploader/compressAvatar/index.ts +2 -2
  346. package/src/middleware/fileUploader/fileUploader.test.ts +310 -310
  347. package/src/middleware/fileUploader/fileUploader.ts +303 -303
  348. package/src/middleware/fileUploader/fileUploader.types.ts +52 -52
  349. package/src/middleware/fileUploader/index.ts +2 -2
  350. package/src/middleware/fileUploader/isMultiPart/index.ts +1 -1
  351. package/src/middleware/fileUploader/isMultiPart/isMultipart.ts +9 -9
  352. package/src/middleware/fileUploader/validate/index.ts +1 -1
  353. package/src/middleware/fileUploader/validate/validate.ts +27 -27
  354. package/src/middleware/fourOhFour/fourOhFour.test.ts +14 -14
  355. package/src/middleware/fourOhFour/fourOhFour.ts +13 -13
  356. package/src/middleware/fourOhFour/index.ts +1 -1
  357. package/src/middleware/geminiFileUploader/geminiFileUploader.ts +117 -117
  358. package/src/middleware/geminiFileUploader/index.ts +1 -1
  359. package/src/middleware/healthCheck/healthCheck.test.ts +12 -12
  360. package/src/middleware/healthCheck/healthCheck.ts +14 -14
  361. package/src/middleware/healthCheck/index.ts +1 -1
  362. package/src/middleware/index.ts +17 -17
  363. package/src/middleware/metrics/index.ts +1 -1
  364. package/src/middleware/metrics/metrics.test.ts +46 -46
  365. package/src/middleware/metrics/metrics.ts +24 -24
  366. package/src/middleware/requestMetrics/index.ts +1 -1
  367. package/src/middleware/requestMetrics/requestMetrics.test.ts +77 -77
  368. package/src/middleware/requestMetrics/requestMetrics.ts +20 -20
  369. package/src/middleware/swaggerDocs/index.ts +2 -2
  370. package/src/middleware/swaggerDocs/swaggerDocs.ts +114 -114
  371. package/src/middleware/swaggerDocs/swaggerDocs.types.ts +41 -41
  372. package/src/middleware/userResolver/index.ts +1 -1
  373. package/src/middleware/userResolver/userResolver.test.ts +35 -35
  374. package/src/middleware/userResolver/userResolver.ts +35 -35
  375. package/src/middleware/validate/index.ts +1 -1
  376. package/src/middleware/validate/validate.test.ts +43 -43
  377. package/src/middleware/validate/validate.ts +25 -25
  378. package/src/middleware/version/index.ts +1 -1
  379. package/src/middleware/version/version.test.ts +23 -23
  380. package/src/middleware/version/version.ts +12 -12
  381. package/src/utils/checkEnvironment/index.ts +49 -49
  382. package/src/utils/createHttpServer/createHttpServer.test.ts +24 -24
  383. package/src/utils/createHttpServer/createHttpServer.ts +34 -34
  384. package/src/utils/createHttpServer/createHttpServer.validate.ts +17 -17
  385. package/src/utils/createHttpServer/index.ts +1 -1
  386. package/src/utils/createSortedObject/createSortedObject.ts +20 -20
  387. package/src/utils/createSortedObject/createSortedObjet.test.ts +47 -47
  388. package/src/utils/createSortedObject/index.ts +1 -1
  389. package/src/utils/dbMigration/dbMigration.test.ts +209 -209
  390. package/src/utils/dbMigration/dbMigration.ts +199 -199
  391. package/src/utils/dbMigration/dbMigration.types.ts +11 -11
  392. package/src/utils/dbMigration/index.ts +2 -2
  393. package/src/utils/dbMigration/migrateMetadataTable/index.ts +1 -1
  394. package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.test.ts +59 -59
  395. package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.ts +102 -70
  396. package/src/utils/envAssert/envAssert.ts +31 -31
  397. package/src/utils/envAssert/index.ts +1 -1
  398. package/src/utils/envAssert/validators/hostList.ts +17 -17
  399. package/src/utils/envAssert/validators/index.ts +5 -5
  400. package/src/utils/envAssert/validators/ipList.ts +13 -13
  401. package/src/utils/envAssert/validators/path.ts +13 -13
  402. package/src/utils/envAssert/validators/string.ts +9 -9
  403. package/src/utils/envAssert/validators/stringList.ts +13 -13
  404. package/src/utils/filter/filter.ts +17 -17
  405. package/src/utils/filter/index.ts +1 -1
  406. package/src/utils/getDynamicLink/getDynamicLink.test.ts +51 -51
  407. package/src/utils/getDynamicLink/getDynamicLink.ts +28 -28
  408. package/src/utils/getDynamicLink/getDynamicLink.types.ts +11 -11
  409. package/src/utils/getDynamicLink/getDynamicLink.validate.ts +6 -6
  410. package/src/utils/getDynamicLink/index.ts +2 -2
  411. package/src/utils/hmac/checkEnv/checkEnv.test.ts +18 -18
  412. package/src/utils/hmac/checkEnv/checkEnv.ts +9 -9
  413. package/src/utils/hmac/checkEnv/index.ts +1 -1
  414. package/src/utils/hmac/createHmac/createHmac.ts +33 -33
  415. package/src/utils/hmac/createHmac/index.ts +1 -1
  416. package/src/utils/hmac/index.ts +4 -4
  417. package/src/utils/hmac/index.types.ts +13 -13
  418. package/src/utils/hmac/signPayload/index.ts +1 -1
  419. package/src/utils/hmac/signPayload/signPayload.ts +16 -16
  420. package/src/utils/hmac/verifySignature/index.ts +1 -1
  421. package/src/utils/hmac/verifySignature/verifySignature.ts +24 -24
  422. package/src/utils/index.ts +26 -26
  423. package/src/utils/jwt/index.ts +2 -2
  424. package/src/utils/jwt/jwt.test.ts +41 -41
  425. package/src/utils/jwt/jwt.ts +204 -204
  426. package/src/utils/jwt/jwt.types.ts +21 -21
  427. package/src/utils/report/index.ts +3 -3
  428. package/src/utils/report/output.ts +45 -45
  429. package/src/utils/report/output.types.ts +70 -70
  430. package/src/utils/report/report.test.ts +133 -133
  431. package/src/utils/report/report.ts +134 -134
  432. package/src/utils/report/report.types.ts +13 -13
  433. package/src/utils/request/index.ts +1 -1
  434. package/src/utils/request/request.test.ts +26 -26
  435. package/src/utils/request/request.ts +48 -48
  436. package/src/utils/semverCompare/index.ts +1 -1
  437. package/src/utils/semverCompare/semverCompare.test.ts +49 -49
  438. package/src/utils/semverCompare/semverCompare.ts +60 -60
  439. package/src/utils/sendEmail/index.ts +1 -1
  440. package/src/utils/sendEmail/sendEmail.ts +27 -27
  441. package/src/utils/sendEmail/sendEmail.types.ts +7 -7
  442. package/src/utils/sendPush/index.ts +2 -2
  443. package/src/utils/sendPush/sendPush.ts +20 -20
  444. package/src/utils/sendPush/sendPush.types.ts +25 -25
  445. package/src/utils/tlsConfig/index.ts +2 -2
  446. package/src/utils/tlsConfig/tlsConfig.test.ts +32 -32
  447. package/src/utils/tlsConfig/tlsConfig.ts +47 -47
  448. package/src/utils/tlsConfig/tlsConfig.types.ts +11 -11
  449. package/src/utils/tlsConfig/tlsConfig.validate.ts +25 -25
  450. package/src/utils/tlsRequest/index.ts +1 -1
  451. package/src/utils/tlsRequest/tlsRequest.test.ts +63 -63
  452. package/src/utils/tlsRequest/tlsRequest.ts +12 -12
  453. package/src/utils/trimPathSlash/index.ts +1 -1
  454. package/src/utils/trimPathSlash/trimPathSlash.test.ts +26 -26
  455. package/src/utils/trimPathSlash/trimPathSlash.ts +8 -8
  456. package/test/env.ts +56 -56
  457. package/test/factory/index.ts +8 -8
  458. package/test/factory/sequelizeMeta.ts +12 -12
  459. package/test/hooks.ts +37 -37
  460. package/test/index.ts +3 -3
  461. package/test/stub/index.ts +3 -3
  462. package/test/stub/stubLocales.ts +68 -68
  463. package/test/stub/stubPubSub.ts +7 -7
  464. package/test/stub/stubStorage.ts +77 -77
  465. package/test/stub/stubStorage.types.ts +11 -11
  466. package/test/utils/app.ts +31 -31
  467. package/test/utils/index.ts +1 -1
  468. package/tsconfig.build.json +5 -5
  469. 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
+ });