node-server-engine 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +48 -16
  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,70 +1,102 @@
1
- import { Sequelize, QueryTypes } from 'sequelize';
2
- import { SequelizeMeta } from 'db/models';
3
- import { reportDebug } from 'utils/report';
4
-
5
- const namespace = 'engine:utils:dbMigration';
6
-
7
- /**
8
- * Run migrations on the metadata table
9
- * The table containing the migrations metadata can not be handled through migrations
10
- * Therefore we use a more classic approach with this function and pure SQL queries
11
- */
12
- export async function migrateMetadataTable(
13
- sequelize: Sequelize
14
- ): Promise<void> {
15
- reportDebug({ namespace, message: 'Executing metadata migration routine' });
16
-
17
- const query = `SELECT table_name FROM information_schema.tables WHERE table_schema = '${process.env.SQL_DB}'`;
18
- // We check if we have a custom sequelize_meta table yet
19
- const tables = await sequelize.query<Array<string>>(query, {
20
- type: QueryTypes.SELECT
21
- });
22
-
23
- const hasCustomSequelizeMeta =
24
- process.env.SQL_TYPE === 'mysql'
25
- ? tables.some((table) => Object.values(table)[0] === 'sequelize_meta')
26
- : tables.some((table) => table[0] === 'sequelize_meta');
27
- const hasLegacySequelizeMeta =
28
- process.env.SQL_TYPE === 'mysql'
29
- ? tables.some((table) => Object.values(table)[0] === 'SequelizeMeta')
30
- : tables.some((table) => table[0] === 'SequelizeMeta');
31
-
32
- if (!hasCustomSequelizeMeta) {
33
- reportDebug({
34
- namespace,
35
- message: 'No metadata table found, creating new one'
36
- });
37
- // Create the new sequelize_meta table if it does not exist
38
- await sequelize.query(
39
- `
40
- CREATE TABLE sequelize_meta (
41
- name varchar(100) PRIMARY KEY,
42
- version varchar(25),
43
- createdAt timestamp NOT NULL,
44
- updatedAt timestamp NOT NULL
45
- )`,
46
- { type: QueryTypes.RAW }
47
- );
48
-
49
- // Migrate the data from the old table to the new one if needed
50
- if (hasLegacySequelizeMeta) {
51
- reportDebug({
52
- namespace,
53
- message: 'Legacy metadata table found, migrating data'
54
- });
55
-
56
- const migrations = await sequelize.query<SequelizeMeta>(
57
- 'SELECT name FROM SequelizeMeta ORDER BY name',
58
- {
59
- type: QueryTypes.SELECT
60
- }
61
- );
62
- const insertQuery = `
63
- INSERT INTO sequelize_meta (name, version, createdAt, updatedAt) VALUES
64
- ${migrations.map((migration) => `('${migration.name}', NULL, NOW(), NOW())`).join(',')}
65
- `;
66
-
67
- await sequelize.query(insertQuery, { type: QueryTypes.INSERT });
68
- }
69
- }
70
- }
1
+ import { Sequelize, QueryTypes } from 'sequelize';
2
+ import { SequelizeMeta } from 'db/models';
3
+ import { reportDebug } from 'utils/report';
4
+
5
+ const namespace = 'engine:utils:dbMigration';
6
+
7
+ /**
8
+ * Run migrations on the metadata table
9
+ * The table containing the migrations metadata cannot be handled through migrations
10
+ * Therefore, we use a more classic approach with this function and pure SQL queries
11
+ */
12
+ export async function migrateMetadataTable(
13
+ sequelize: Sequelize
14
+ ): Promise<void> {
15
+ reportDebug({ namespace, message: 'Executing metadata migration routine' });
16
+
17
+ const query = `SELECT table_name FROM information_schema.tables`;
18
+
19
+ // We check if we have a custom sequelize_meta table yet
20
+ const tables = await sequelize.query<Array<string>>(query, {
21
+ type: QueryTypes.SELECT
22
+ });
23
+
24
+ const hasCustomSequelizeMeta =
25
+ process.env.SQL_TYPE === 'postgres'
26
+ ? tables.some((table) => table[0] === 'sequelize_meta')
27
+ : tables.some((table) => Object.values(table)[0] === 'sequelize_meta');
28
+ const hasLegacySequelizeMeta =
29
+ process.env.SQL_TYPE === 'postgres'
30
+ ? tables.some((table) => table[0] === 'SequelizeMeta')
31
+ : tables.some((table) => Object.values(table)[0] === 'SequelizeMeta');
32
+ if (!hasCustomSequelizeMeta) {
33
+ reportDebug({
34
+ namespace,
35
+ message: 'No metadata table found, creating new one'
36
+ });
37
+
38
+ // Define SQL for creating the table based on the database type
39
+ let createTableQuery = '';
40
+
41
+ switch (process.env.SQL_TYPE) {
42
+ case 'mysql':
43
+ case 'postgres':
44
+ createTableQuery = `
45
+ CREATE TABLE sequelize_meta (
46
+ name VARCHAR(100) PRIMARY KEY,
47
+ version VARCHAR(25),
48
+ createdAt TIMESTAMP NOT NULL,
49
+ updatedAt TIMESTAMP NOT NULL
50
+ )`;
51
+ break;
52
+ case 'mssql':
53
+ createTableQuery = `
54
+ CREATE TABLE sequelize_meta (
55
+ name VARCHAR(100) PRIMARY KEY,
56
+ version VARCHAR(25),
57
+ createdAt DATETIME NOT NULL,
58
+ updatedAt DATETIME NOT NULL
59
+ )`;
60
+ break;
61
+ default:
62
+ throw new Error('Unsupported SQL type');
63
+ }
64
+
65
+ // Create the new sequelize_meta table if it does not exist
66
+ await sequelize.query(createTableQuery, { type: QueryTypes.RAW });
67
+
68
+ // Migrate the data from the old table to the new one if needed
69
+ if (hasLegacySequelizeMeta) {
70
+ reportDebug({
71
+ namespace,
72
+ message: 'Legacy metadata table found, migrating data'
73
+ });
74
+
75
+ const migrations = await sequelize.query<SequelizeMeta>(
76
+ 'SELECT name FROM SequelizeMeta ORDER BY name',
77
+ {
78
+ type: QueryTypes.SELECT
79
+ }
80
+ );
81
+
82
+ const insertQuery = `
83
+ INSERT INTO sequelize_meta (name, version, createdAt, updatedAt) VALUES
84
+ ${migrations
85
+ .map((migration) => {
86
+ switch (process.env.SQL_TYPE) {
87
+ case 'mysql':
88
+ case 'postgres':
89
+ return `('${migration.name}', NULL, NOW(), NOW())`;
90
+ case 'mssql':
91
+ return `('${migration.name}', NULL, GETDATE(), GETDATE())`;
92
+ default:
93
+ throw new Error('Unsupported SQL type');
94
+ }
95
+ })
96
+ .join(',')}
97
+ `;
98
+
99
+ await sequelize.query(insertQuery, { type: QueryTypes.INSERT });
100
+ }
101
+ }
102
+ }
@@ -1,31 +1,31 @@
1
- import { bool, num, host, email, port, url, json } from 'envalid';
2
-
3
- import {
4
- envIsIpList,
5
- envIsPath,
6
- envIsHostList,
7
- envIsStringList,
8
- envIsString
9
- } from './validators';
10
-
11
- /**
12
- * envalid validators to use with checkEnvironment made with evalid.makeValidator and validator.js
13
- * is* functions. + Also Added isString, isHost, and isIPList.
14
- *
15
- *
16
- * envalid docs: https://github.com/af/envalid
17
- */
18
- export const envAssert = {
19
- isString: envIsString,
20
- isBoolean: bool,
21
- isNumber: num,
22
- isEmail: email,
23
- isHost: host,
24
- isPort: port,
25
- isURL: url,
26
- isJSON: json,
27
- isIPList: envIsIpList,
28
- isPath: envIsPath,
29
- isHostList: envIsHostList,
30
- isStringList: envIsStringList
31
- };
1
+ import { bool, num, host, email, port, url, json } from 'envalid';
2
+
3
+ import {
4
+ envIsIpList,
5
+ envIsPath,
6
+ envIsHostList,
7
+ envIsStringList,
8
+ envIsString
9
+ } from './validators';
10
+
11
+ /**
12
+ * envalid validators to use with checkEnvironment made with evalid.makeValidator and validator.js
13
+ * is* functions. + Also Added isString, isHost, and isIPList.
14
+ *
15
+ *
16
+ * envalid docs: https://github.com/af/envalid
17
+ */
18
+ export const envAssert = {
19
+ isString: envIsString,
20
+ isBoolean: bool,
21
+ isNumber: num,
22
+ isEmail: email,
23
+ isHost: host,
24
+ isPort: port,
25
+ isURL: url,
26
+ isJSON: json,
27
+ isIPList: envIsIpList,
28
+ isPath: envIsPath,
29
+ isHostList: envIsHostList,
30
+ isStringList: envIsStringList
31
+ };
@@ -1 +1 @@
1
- export * from './envAssert';
1
+ export * from './envAssert';
@@ -1,17 +1,17 @@
1
- import { makeValidator } from 'envalid';
2
- import validator from 'validator';
3
-
4
- /**
5
- * Validate that a string is a list of comma separated host names
6
- */
7
- export const envIsHostList = makeValidator((value): boolean => {
8
- if (!value) throw new Error('expected a host name');
9
- const hosts = value.split(',');
10
- const valid = hosts.every(
11
- (host) =>
12
- validator.isIP(host.trim()) ||
13
- validator.isFQDN(host.trim(), { require_tld: false })
14
- );
15
- if (!valid) throw new Error('expected a host name');
16
- return valid;
17
- });
1
+ import { makeValidator } from 'envalid';
2
+ import validator from 'validator';
3
+
4
+ /**
5
+ * Validate that a string is a list of comma separated host names
6
+ */
7
+ export const envIsHostList = makeValidator((value): boolean => {
8
+ if (!value) throw new Error('expected a host name');
9
+ const hosts = value.split(',');
10
+ const valid = hosts.every(
11
+ (host) =>
12
+ validator.isIP(host.trim()) ||
13
+ validator.isFQDN(host.trim(), { require_tld: false })
14
+ );
15
+ if (!valid) throw new Error('expected a host name');
16
+ return valid;
17
+ });
@@ -1,5 +1,5 @@
1
- export * from './ipList';
2
- export * from './path';
3
- export * from './hostList';
4
- export * from './stringList';
5
- export * from './string';
1
+ export * from './ipList';
2
+ export * from './path';
3
+ export * from './hostList';
4
+ export * from './stringList';
5
+ export * from './string';
@@ -1,13 +1,13 @@
1
- import { makeValidator } from 'envalid';
2
- import validator from 'validator';
3
-
4
- /**
5
- * Validate that a string is a list of comma separated ip (V4/V6) addresses
6
- */
7
- export const envIsIpList = makeValidator((value): boolean => {
8
- if (!value) throw new Error('expected an ip address');
9
- const ips = value.split(',');
10
- const valid = ips.every((v) => validator.isIP(v));
11
- if (!valid) throw new Error('expected an ip address');
12
- return valid;
13
- });
1
+ import { makeValidator } from 'envalid';
2
+ import validator from 'validator';
3
+
4
+ /**
5
+ * Validate that a string is a list of comma separated ip (V4/V6) addresses
6
+ */
7
+ export const envIsIpList = makeValidator((value): boolean => {
8
+ if (!value) throw new Error('expected an ip address');
9
+ const ips = value.split(',');
10
+ const valid = ips.every((v) => validator.isIP(v));
11
+ if (!valid) throw new Error('expected an ip address');
12
+ return valid;
13
+ });
@@ -1,13 +1,13 @@
1
- import { makeValidator } from 'envalid';
2
-
3
- const pathRegex = /^(\.\.\/(?:\.\.\/)*)?(?!.*?\/\/)(?!(?:.*\/)?\.+(?:\/|$)).+$/;
4
-
5
- /**
6
- * Validate that a string is a system path (linux only)
7
- */
8
- export const envIsPath = makeValidator((value): boolean => {
9
- if (!value) throw new Error('expected a path');
10
- const valid = pathRegex.test(value);
11
- if (!valid) throw new Error('expected a path');
12
- return valid;
13
- });
1
+ import { makeValidator } from 'envalid';
2
+
3
+ const pathRegex = /^(\.\.\/(?:\.\.\/)*)?(?!.*?\/\/)(?!(?:.*\/)?\.+(?:\/|$)).+$/;
4
+
5
+ /**
6
+ * Validate that a string is a system path (linux only)
7
+ */
8
+ export const envIsPath = makeValidator((value): boolean => {
9
+ if (!value) throw new Error('expected a path');
10
+ const valid = pathRegex.test(value);
11
+ if (!valid) throw new Error('expected a path');
12
+ return valid;
13
+ });
@@ -1,9 +1,9 @@
1
- import { makeValidator } from 'envalid';
2
-
3
- /**
4
- * Validate that aa value is a string
5
- */
6
- export const envIsString = makeValidator((value): boolean => {
7
- if (!value || typeof value !== 'string') throw new Error('expected a string');
8
- return value.length > 0;
9
- });
1
+ import { makeValidator } from 'envalid';
2
+
3
+ /**
4
+ * Validate that aa value is a string
5
+ */
6
+ export const envIsString = makeValidator((value): boolean => {
7
+ if (!value || typeof value !== 'string') throw new Error('expected a string');
8
+ return value.length > 0;
9
+ });
@@ -1,13 +1,13 @@
1
- import { makeValidator } from 'envalid';
2
-
3
- /**
4
- * Validate that a string is a list of comma separated strings
5
-
6
- */
7
- export const envIsStringList = makeValidator((value): boolean => {
8
- if (!value) throw new Error('expected a string');
9
- const strings = value.split(',');
10
- const valid = strings.every((v) => typeof v === 'string');
11
- if (!valid) throw new Error('expected a string');
12
- return valid;
13
- });
1
+ import { makeValidator } from 'envalid';
2
+
3
+ /**
4
+ * Validate that a string is a list of comma separated strings
5
+
6
+ */
7
+ export const envIsStringList = makeValidator((value): boolean => {
8
+ if (!value) throw new Error('expected a string');
9
+ const strings = value.split(',');
10
+ const valid = strings.every((v) => typeof v === 'string');
11
+ if (!valid) throw new Error('expected a string');
12
+ return valid;
13
+ });
@@ -1,17 +1,17 @@
1
- /**
2
- * Filters an object, returns a copy of that object with only the keys specified in the whitelist
3
- * @param object - The object to filter
4
- * @param whitelist - A list of keys to keep
5
- */
6
- export function filter<T extends Record<string, unknown>>(
7
- object: T,
8
- whitelist: Array<string>
9
- ): T {
10
- const copy: Record<string, unknown> = {};
11
- for (const key of Object.keys(object)) {
12
- if (whitelist.includes(key)) {
13
- copy[key] = object[key];
14
- }
15
- }
16
- return copy as T;
17
- }
1
+ /**
2
+ * Filters an object, returns a copy of that object with only the keys specified in the whitelist
3
+ * @param object - The object to filter
4
+ * @param whitelist - A list of keys to keep
5
+ */
6
+ export function filter<T extends Record<string, unknown>>(
7
+ object: T,
8
+ whitelist: Array<string>
9
+ ): T {
10
+ const copy: Record<string, unknown> = {};
11
+ for (const key of Object.keys(object)) {
12
+ if (whitelist.includes(key)) {
13
+ copy[key] = object[key];
14
+ }
15
+ }
16
+ return copy as T;
17
+ }
@@ -1 +1 @@
1
- export * from './filter';
1
+ export * from './filter';
@@ -1,51 +1,51 @@
1
- import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
- import chai, { expect } from 'chai';
3
- import { faker } from '@faker-js/faker';
4
- import { stub, SinonStub, match } from 'sinon';
5
- import sinonChai from 'sinon-chai';
6
- import { getDynamicLink } from './getDynamicLink';
7
- import { DynamicLinkResponseBody } from './getDynamicLink.types';
8
- import * as tlsRequest from 'utils/tlsRequest/tlsRequest';
9
-
10
- chai.use(sinonChai);
11
-
12
- describe('Utils - Get Dynamic Link', () => {
13
- let expectedPayload: AxiosRequestConfig;
14
- let path: string;
15
- let requestStub: SinonStub;
16
- let link: string;
17
-
18
- beforeEach(() => {
19
- link = faker.internet.url();
20
- requestStub = stub(tlsRequest, 'tlsRequest').resolves({
21
- data: { link }
22
- } as AxiosResponse<DynamicLinkResponseBody>);
23
- path = faker.system.directoryPath();
24
- expectedPayload = {
25
- method: 'get',
26
- url: '/link',
27
- baseURL: process.env.LINKS_SERVICE_URL,
28
- params: {
29
- path
30
- }
31
- };
32
- });
33
-
34
- it('should get a dynamic link', async () => {
35
- // should return a link from the res
36
- const dynamicLink = await getDynamicLink(path);
37
- expect(dynamicLink).to.equal(link);
38
- expect(requestStub).to.have.been.calledOnceWithExactly(
39
- match(expectedPayload)
40
- );
41
- });
42
-
43
- it('should get a dynamic link with custom settings', async () => {
44
- // should return a link from the res
45
- const dynamicLink = await getDynamicLink(path, { short: false });
46
- expect(dynamicLink).to.equal(link);
47
- expect(requestStub).to.have.been.calledOnceWithExactly(
48
- match({ ...expectedPayload, params: { path, short: false } })
49
- );
50
- });
51
- });
1
+ import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
+ import chai, { expect } from 'chai';
3
+ import { faker } from '@faker-js/faker';
4
+ import { stub, SinonStub, match } from 'sinon';
5
+ import sinonChai from 'sinon-chai';
6
+ import { getDynamicLink } from './getDynamicLink';
7
+ import { DynamicLinkResponseBody } from './getDynamicLink.types';
8
+ import * as tlsRequest from 'utils/tlsRequest/tlsRequest';
9
+
10
+ chai.use(sinonChai);
11
+
12
+ describe('Utils - Get Dynamic Link', () => {
13
+ let expectedPayload: AxiosRequestConfig;
14
+ let path: string;
15
+ let requestStub: SinonStub;
16
+ let link: string;
17
+
18
+ beforeEach(() => {
19
+ link = faker.internet.url();
20
+ requestStub = stub(tlsRequest, 'tlsRequest').resolves({
21
+ data: { link }
22
+ } as AxiosResponse<DynamicLinkResponseBody>);
23
+ path = faker.system.directoryPath();
24
+ expectedPayload = {
25
+ method: 'get',
26
+ url: '/link',
27
+ baseURL: process.env.LINKS_SERVICE_URL,
28
+ params: {
29
+ path
30
+ }
31
+ };
32
+ });
33
+
34
+ it('should get a dynamic link', async () => {
35
+ // should return a link from the res
36
+ const dynamicLink = await getDynamicLink(path);
37
+ expect(dynamicLink).to.equal(link);
38
+ expect(requestStub).to.have.been.calledOnceWithExactly(
39
+ match(expectedPayload)
40
+ );
41
+ });
42
+
43
+ it('should get a dynamic link with custom settings', async () => {
44
+ // should return a link from the res
45
+ const dynamicLink = await getDynamicLink(path, { short: false });
46
+ expect(dynamicLink).to.equal(link);
47
+ expect(requestStub).to.have.been.calledOnceWithExactly(
48
+ match({ ...expectedPayload, params: { path, short: false } })
49
+ );
50
+ });
51
+ });
@@ -1,28 +1,28 @@
1
- import { AxiosRequestConfig } from 'axios';
2
- import {
3
- getDynamicLinksOptions,
4
- DynamicLinkResponseBody
5
- } from './getDynamicLink.types';
6
- import { validateDynamicLinkEnvironment } from './getDynamicLink.validate';
7
- import { tlsRequest } from 'utils/tlsRequest';
8
-
9
- /** Fetch a dynamic link from the links service */
10
- export async function getDynamicLink(
11
- path: string,
12
- options: getDynamicLinksOptions = {}
13
- ): Promise<string> {
14
- validateDynamicLinkEnvironment();
15
- const option: AxiosRequestConfig = {
16
- method: 'get',
17
- url: '/link',
18
- baseURL: process.env.LINKS_SERVICE_URL,
19
- params: {
20
- path,
21
- short: options.short ?? true
22
- }
23
- };
24
- const {
25
- data: { link }
26
- } = await tlsRequest<DynamicLinkResponseBody>(option);
27
- return link;
28
- }
1
+ import { AxiosRequestConfig } from 'axios';
2
+ import {
3
+ getDynamicLinksOptions,
4
+ DynamicLinkResponseBody
5
+ } from './getDynamicLink.types';
6
+ import { validateDynamicLinkEnvironment } from './getDynamicLink.validate';
7
+ import { tlsRequest } from 'utils/tlsRequest';
8
+
9
+ /** Fetch a dynamic link from the links service */
10
+ export async function getDynamicLink(
11
+ path: string,
12
+ options: getDynamicLinksOptions = {}
13
+ ): Promise<string> {
14
+ validateDynamicLinkEnvironment();
15
+ const option: AxiosRequestConfig = {
16
+ method: 'get',
17
+ url: '/link',
18
+ baseURL: process.env.LINKS_SERVICE_URL,
19
+ params: {
20
+ path,
21
+ short: options.short ?? true
22
+ }
23
+ };
24
+ const {
25
+ data: { link }
26
+ } = await tlsRequest<DynamicLinkResponseBody>(option);
27
+ return link;
28
+ }
@@ -1,11 +1,11 @@
1
- /** Options to fetch dynamic links */
2
- export interface getDynamicLinksOptions {
3
- /** Make a shortened link */
4
- short?: boolean;
5
- }
6
-
7
- /** Dynamic link query server response */
8
- export interface DynamicLinkResponseBody {
9
- /** The generated dynamic link */
10
- link: string;
11
- }
1
+ /** Options to fetch dynamic links */
2
+ export interface getDynamicLinksOptions {
3
+ /** Make a shortened link */
4
+ short?: boolean;
5
+ }
6
+
7
+ /** Dynamic link query server response */
8
+ export interface DynamicLinkResponseBody {
9
+ /** The generated dynamic link */
10
+ link: string;
11
+ }
@@ -1,6 +1,6 @@
1
- import { assertEnvironment, envAssert } from 'utils';
2
-
3
- /** Environment variable validator for get dynamic link from LinkService */
4
- export function validateDynamicLinkEnvironment(): void {
5
- assertEnvironment({ LINKS_SERVICE_URL: envAssert.isURL() });
6
- }
1
+ import { assertEnvironment, envAssert } from 'utils';
2
+
3
+ /** Environment variable validator for get dynamic link from LinkService */
4
+ export function validateDynamicLinkEnvironment(): void {
5
+ assertEnvironment({ LINKS_SERVICE_URL: envAssert.isURL() });
6
+ }
@@ -1,2 +1,2 @@
1
- export * from './getDynamicLink';
2
- export * from './getDynamicLink.types';
1
+ export * from './getDynamicLink';
2
+ export * from './getDynamicLink.types';