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,47 +1,47 @@
1
- import fs from 'fs';
2
- import https, { Agent } from 'https';
3
- import { TlsConfig } from './tlsConfig.types';
4
- import { validateTlsConfig } from './tlsConfig.validate';
5
- import { EngineError } from 'entities/EngineError';
6
-
7
- export let tlsConfig: undefined | TlsConfig;
8
- export let httpsAgent: undefined | Agent;
9
-
10
- /**
11
- * Load TLS config by its Environment setting.
12
- */
13
- export function loadTlsConfig(): void {
14
- // Check that environment variables are correctly set
15
- validateTlsConfig();
16
- tlsConfig = undefined;
17
-
18
- if (process.env.TLS_REQUEST_KEY || process.env.TLS_SERVER_KEY) {
19
- tlsConfig = {
20
- key: fs.readFileSync(
21
- (process.env.TLS_REQUEST_KEY ?? process.env.TLS_SERVER_KEY) as string,
22
- 'utf-8'
23
- ),
24
- cert: fs.readFileSync(
25
- (process.env.TLS_REQUEST_CERT ?? process.env.TLS_SERVER_CERT) as string,
26
- 'utf-8'
27
- ),
28
- ca: fs.readFileSync(
29
- (process.env.TLS_REQUEST_CA ?? process.env.TLS_CA) as string,
30
- 'utf-8'
31
- ),
32
- passphrase: (process.env.TLS_REQUEST_KEY_PASSPHRASE ??
33
- process.env.TLS_SERVER_KEY_PASSPHRASE) as string
34
- } as TlsConfig;
35
- httpsAgent = new https.Agent({
36
- key: tlsConfig.key,
37
- cert: tlsConfig.cert,
38
- ca: tlsConfig.ca,
39
- passphrase: tlsConfig.passphrase
40
- });
41
- }
42
- if (!tlsConfig || !(tlsConfig.ca && tlsConfig.cert && tlsConfig.key)) {
43
- throw new EngineError({
44
- message: 'TLS environment variables are not set correctly'
45
- });
46
- }
47
- }
1
+ import fs from 'fs';
2
+ import https, { Agent } from 'https';
3
+ import { TlsConfig } from './tlsConfig.types';
4
+ import { validateTlsConfig } from './tlsConfig.validate';
5
+ import { EngineError } from 'entities/EngineError';
6
+
7
+ export let tlsConfig: undefined | TlsConfig;
8
+ export let httpsAgent: undefined | Agent;
9
+
10
+ /**
11
+ * Load TLS config by its Environment setting.
12
+ */
13
+ export function loadTlsConfig(): void {
14
+ // Check that environment variables are correctly set
15
+ validateTlsConfig();
16
+ tlsConfig = undefined;
17
+
18
+ if (process.env.TLS_REQUEST_KEY || process.env.TLS_SERVER_KEY) {
19
+ tlsConfig = {
20
+ key: fs.readFileSync(
21
+ (process.env.TLS_REQUEST_KEY ?? process.env.TLS_SERVER_KEY) as string,
22
+ 'utf-8'
23
+ ),
24
+ cert: fs.readFileSync(
25
+ (process.env.TLS_REQUEST_CERT ?? process.env.TLS_SERVER_CERT) as string,
26
+ 'utf-8'
27
+ ),
28
+ ca: fs.readFileSync(
29
+ (process.env.TLS_REQUEST_CA ?? process.env.TLS_CA) as string,
30
+ 'utf-8'
31
+ ),
32
+ passphrase: (process.env.TLS_REQUEST_KEY_PASSPHRASE ??
33
+ process.env.TLS_SERVER_KEY_PASSPHRASE) as string
34
+ } as TlsConfig;
35
+ httpsAgent = new https.Agent({
36
+ key: tlsConfig.key,
37
+ cert: tlsConfig.cert,
38
+ ca: tlsConfig.ca,
39
+ passphrase: tlsConfig.passphrase
40
+ });
41
+ }
42
+ if (!tlsConfig || !(tlsConfig.ca && tlsConfig.cert && tlsConfig.key)) {
43
+ throw new EngineError({
44
+ message: 'TLS environment variables are not set correctly'
45
+ });
46
+ }
47
+ }
@@ -1,11 +1,11 @@
1
- /** TLS properties */
2
- export interface TlsConfig {
3
- /** Path to the private key file */
4
- key: string;
5
- /** Path to the certificate file */
6
- cert: string;
7
- /** Path to the CA certificate file */
8
- ca: string;
9
- /** Passphrase to use to unwrap the private key */
10
- passphrase?: string;
11
- }
1
+ /** TLS properties */
2
+ export interface TlsConfig {
3
+ /** Path to the private key file */
4
+ key: string;
5
+ /** Path to the certificate file */
6
+ cert: string;
7
+ /** Path to the CA certificate file */
8
+ ca: string;
9
+ /** Passphrase to use to unwrap the private key */
10
+ passphrase?: string;
11
+ }
@@ -1,25 +1,25 @@
1
- import { assertEnvironment, envAssert } from 'utils';
2
- /**
3
- * Verify that the environment variables
4
- */
5
- export function validateTlsConfig(): void {
6
- // We only check if there is at least the host specified
7
- if (process.env.TLS_REQUEST_CERT) {
8
- assertEnvironment({ TLS_REQUEST_KEY: envAssert.isPath() });
9
- assertEnvironment({ TLS_REQUEST_CERT: envAssert.isPath() });
10
- assertEnvironment({ TLS_REQUEST_CA: envAssert.isPath() });
11
- // Optional variables
12
- if (process.env.TLS_REQUEST_KEY_PASSPHRASE) {
13
- assertEnvironment({ TLS_REQUEST_KEY_PASSPHRASE: envAssert.isString() });
14
- }
15
- } else if (process.env.TLS_SERVER_CERT) {
16
- // if no TLS Request setting, TLS Server setting is essential.
17
- assertEnvironment({ TLS_SERVER_KEY: envAssert.isPath() });
18
- assertEnvironment({ TLS_SERVER_CERT: envAssert.isPath() });
19
- assertEnvironment({ TLS_CA: envAssert.isPath() });
20
- // Optional variables
21
- if (process.env.TLS_SERVER_KEY_PASSPHRASE) {
22
- assertEnvironment({ TLS_SERVER_KEY_PASSPHRASE: envAssert.isString() });
23
- }
24
- }
25
- }
1
+ import { assertEnvironment, envAssert } from 'utils';
2
+ /**
3
+ * Verify that the environment variables
4
+ */
5
+ export function validateTlsConfig(): void {
6
+ // We only check if there is at least the host specified
7
+ if (process.env.TLS_REQUEST_CERT) {
8
+ assertEnvironment({ TLS_REQUEST_KEY: envAssert.isPath() });
9
+ assertEnvironment({ TLS_REQUEST_CERT: envAssert.isPath() });
10
+ assertEnvironment({ TLS_REQUEST_CA: envAssert.isPath() });
11
+ // Optional variables
12
+ if (process.env.TLS_REQUEST_KEY_PASSPHRASE) {
13
+ assertEnvironment({ TLS_REQUEST_KEY_PASSPHRASE: envAssert.isString() });
14
+ }
15
+ } else if (process.env.TLS_SERVER_CERT) {
16
+ // if no TLS Request setting, TLS Server setting is essential.
17
+ assertEnvironment({ TLS_SERVER_KEY: envAssert.isPath() });
18
+ assertEnvironment({ TLS_SERVER_CERT: envAssert.isPath() });
19
+ assertEnvironment({ TLS_CA: envAssert.isPath() });
20
+ // Optional variables
21
+ if (process.env.TLS_SERVER_KEY_PASSPHRASE) {
22
+ assertEnvironment({ TLS_SERVER_KEY_PASSPHRASE: envAssert.isString() });
23
+ }
24
+ }
25
+ }
@@ -1 +1 @@
1
- export * from './tlsRequest';
1
+ export * from './tlsRequest';
@@ -1,63 +1,63 @@
1
- import path from 'path';
2
- import { AxiosRequestConfig } from 'axios';
3
- import { expect } from 'chai';
4
- import { tlsRequest } from './tlsRequest';
5
- import { Endpoint, EndpointAuthType, EndpointMethod } from 'entities/Endpoint';
6
- import { Server } from 'entities/Server';
7
- import { stubPubSub } from 'test';
8
- import { loadTlsConfig } from 'utils/tlsConfig';
9
-
10
- describe('utils - TLS Request', () => {
11
- let server: Server;
12
- const testPath = '/test';
13
- const success = { success: true };
14
- let option: AxiosRequestConfig;
15
-
16
- before(async () => {
17
- process.env.TLS_SERVER_KEY = path.resolve('certs/server.key');
18
- process.env.TLS_SERVER_CERT = path.resolve('certs/server.crt');
19
- process.env.TLS_CA = path.resolve('certs/ca.crt');
20
-
21
- const endpoint = new Endpoint({
22
- path: testPath,
23
- method: EndpointMethod.GET,
24
- authType: EndpointAuthType.TLS,
25
- handler: (request, response): void => {
26
- response.json(success);
27
- },
28
- validator: {}
29
- });
30
- server = new Server({ endpoints: [endpoint] });
31
-
32
- await server.init();
33
- });
34
-
35
- beforeEach(() => {
36
- delete process.env.TLS_REQUEST_KEY;
37
- delete process.env.TLS_REQUEST_CERT;
38
- delete process.env.TLS_REQUEST_CA;
39
- delete process.env.TLS_SERVER_KEY;
40
- delete process.env.TLS_SERVER_CERT;
41
- delete process.env.TLS_CA;
42
- option = {
43
- url: testPath,
44
- baseURL: `https://localhost:${process.env.PORT as string}`
45
- };
46
- stubPubSub();
47
- });
48
-
49
- after(async () => {
50
- await server.shutdown();
51
- });
52
-
53
- it('should successfully establish a TLS connection', async () => {
54
- process.env.TLS_REQUEST_KEY = path.resolve('certs/client.key');
55
- process.env.TLS_REQUEST_CERT = path.resolve('certs/client.crt');
56
- process.env.TLS_REQUEST_CA = path.resolve('certs/ca.crt');
57
-
58
- loadTlsConfig();
59
-
60
- const { data } = await tlsRequest(option);
61
- expect(data).to.deep.equal(success);
62
- });
63
- });
1
+ import path from 'path';
2
+ import { AxiosRequestConfig } from 'axios';
3
+ import { expect } from 'chai';
4
+ import { tlsRequest } from './tlsRequest';
5
+ import { Endpoint, EndpointAuthType, EndpointMethod } from 'entities/Endpoint';
6
+ import { Server } from 'entities/Server';
7
+ import { stubPubSub } from 'test';
8
+ import { loadTlsConfig } from 'utils/tlsConfig';
9
+
10
+ describe('utils - TLS Request', () => {
11
+ let server: Server;
12
+ const testPath = '/test';
13
+ const success = { success: true };
14
+ let option: AxiosRequestConfig;
15
+
16
+ before(async () => {
17
+ process.env.TLS_SERVER_KEY = path.resolve('certs/server.key');
18
+ process.env.TLS_SERVER_CERT = path.resolve('certs/server.crt');
19
+ process.env.TLS_CA = path.resolve('certs/ca.crt');
20
+
21
+ const endpoint = new Endpoint({
22
+ path: testPath,
23
+ method: EndpointMethod.GET,
24
+ authType: EndpointAuthType.TLS,
25
+ handler: (request, response): void => {
26
+ response.json(success);
27
+ },
28
+ validator: {}
29
+ });
30
+ server = new Server({ endpoints: [endpoint] });
31
+
32
+ await server.init();
33
+ });
34
+
35
+ beforeEach(() => {
36
+ delete process.env.TLS_REQUEST_KEY;
37
+ delete process.env.TLS_REQUEST_CERT;
38
+ delete process.env.TLS_REQUEST_CA;
39
+ delete process.env.TLS_SERVER_KEY;
40
+ delete process.env.TLS_SERVER_CERT;
41
+ delete process.env.TLS_CA;
42
+ option = {
43
+ url: testPath,
44
+ baseURL: `https://localhost:${process.env.PORT as string}`
45
+ };
46
+ stubPubSub();
47
+ });
48
+
49
+ after(async () => {
50
+ await server.shutdown();
51
+ });
52
+
53
+ it('should successfully establish a TLS connection', async () => {
54
+ process.env.TLS_REQUEST_KEY = path.resolve('certs/client.key');
55
+ process.env.TLS_REQUEST_CERT = path.resolve('certs/client.crt');
56
+ process.env.TLS_REQUEST_CA = path.resolve('certs/ca.crt');
57
+
58
+ loadTlsConfig();
59
+
60
+ const { data } = await tlsRequest(option);
61
+ expect(data).to.deep.equal(success);
62
+ });
63
+ });
@@ -1,12 +1,12 @@
1
- import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
- import { request } from 'utils/request';
3
- import { httpsAgent, loadTlsConfig } from 'utils/tlsConfig';
4
-
5
- /** Make a network request using TLS, this exposes the server client certificates to the destination */
6
- export async function tlsRequest<T = unknown>(
7
- options: AxiosRequestConfig
8
- ): Promise<AxiosResponse<T>> {
9
- // if the config is not initial, will do that.
10
- if (!httpsAgent) loadTlsConfig();
11
- return request<T>({ httpsAgent, ...options });
12
- }
1
+ import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
+ import { request } from 'utils/request';
3
+ import { httpsAgent, loadTlsConfig } from 'utils/tlsConfig';
4
+
5
+ /** Make a network request using TLS, this exposes the server client certificates to the destination */
6
+ export async function tlsRequest<T = unknown>(
7
+ options: AxiosRequestConfig
8
+ ): Promise<AxiosResponse<T>> {
9
+ // if the config is not initial, will do that.
10
+ if (!httpsAgent) loadTlsConfig();
11
+ return request<T>({ httpsAgent, ...options });
12
+ }
@@ -1 +1 @@
1
- export * from './trimPathSlash';
1
+ export * from './trimPathSlash';
@@ -1,26 +1,26 @@
1
- import { expect } from 'chai';
2
- import { faker } from '@faker-js/faker';
3
- import { trimPathSlash } from './trimPathSlash';
4
-
5
- describe('Trim Path Slash', function () {
6
- it('should remove starting slash', function () {
7
- const result = trimPathSlash(`/${faker.lorem.word()}`);
8
- expect(result[0]).to.not.equal('/');
9
- });
10
-
11
- it('should remove ending slash', function () {
12
- const result = trimPathSlash(`${faker.lorem.word()}/`);
13
- expect(result[result.length]).to.not.equal('/');
14
- });
15
-
16
- it('should remove both slash', function () {
17
- const result = trimPathSlash(`/${faker.lorem.word()}/`);
18
- expect(result[0]).to.not.equal('/');
19
- expect(result[result.length]).to.not.equal('/');
20
- });
21
-
22
- it('should preserve slash in the string', function () {
23
- const result = trimPathSlash(`${faker.lorem.word()}/${faker.lorem.word()}`);
24
- expect(result).to.include('/');
25
- });
26
- });
1
+ import { expect } from 'chai';
2
+ import { faker } from '@faker-js/faker';
3
+ import { trimPathSlash } from './trimPathSlash';
4
+
5
+ describe('Trim Path Slash', function () {
6
+ it('should remove starting slash', function () {
7
+ const result = trimPathSlash(`/${faker.lorem.word()}`);
8
+ expect(result[0]).to.not.equal('/');
9
+ });
10
+
11
+ it('should remove ending slash', function () {
12
+ const result = trimPathSlash(`${faker.lorem.word()}/`);
13
+ expect(result[result.length]).to.not.equal('/');
14
+ });
15
+
16
+ it('should remove both slash', function () {
17
+ const result = trimPathSlash(`/${faker.lorem.word()}/`);
18
+ expect(result[0]).to.not.equal('/');
19
+ expect(result[result.length]).to.not.equal('/');
20
+ });
21
+
22
+ it('should preserve slash in the string', function () {
23
+ const result = trimPathSlash(`${faker.lorem.word()}/${faker.lorem.word()}`);
24
+ expect(result).to.include('/');
25
+ });
26
+ });
@@ -1,8 +1,8 @@
1
- /**
2
- * Remove slashes if they are the first or last chars of a string
3
- * @param url - URL to which slashes should be stripped
4
- * @return Cleaned-up string
5
- */
6
- export function trimPathSlash(url: string): string {
7
- return url.replace(/\/$/, '').replace(/^\//, '');
8
- }
1
+ /**
2
+ * Remove slashes if they are the first or last chars of a string
3
+ * @param url - URL to which slashes should be stripped
4
+ * @return Cleaned-up string
5
+ */
6
+ export function trimPathSlash(url: string): string {
7
+ return url.replace(/\/$/, '').replace(/^\//, '');
8
+ }
package/test/env.ts CHANGED
@@ -1,56 +1,56 @@
1
- import path from 'path';
2
- import { faker } from '@faker-js/faker';
3
-
4
- const audience = faker.internet.url();
5
-
6
- /** Load a test environment */
7
- process.env = {
8
- SILENCE_REPORT: 'true',
9
- // DEBUG: 'engine:*',
10
- PORT: '3030',
11
- SECONDARY_PORT: '3031',
12
- NODE_ENV: 'test',
13
- WEBSOCKET_CLOSE_TIMEOUT: '0',
14
- JWT_SECRET: faker.lorem.word(),
15
- PAYLOAD_SIGNATURE_SECRET: faker.lorem.word(),
16
- ACCESS_TOKEN_AUDIENCE: audience,
17
- ACCESS_TOKEN_ISSUER: faker.lorem.word(),
18
- ADMIN_API_ACCESS_TOKEN_AUDIENCE: audience,
19
- ADMIN_ACCESS_TOKEN_ISSUER: faker.lorem.word(),
20
- AUTH_SERVICE_PUBLIC_URL: faker.internet.url(),
21
- ADMIN_API_PUBLIC_URL: faker.internet.url(),
22
- VALID_IPS: '::ffff:127.0.0.1,127.0.0.1,::1',
23
- REDIS_HOST: process.env.REDIS_HOST ?? '127.0.0.1',
24
- REDIS_PORT: '6379',
25
- REDIS_CLUSTER: 'false',
26
- LOCALES_BUCKET: faker.lorem.word(),
27
- USER_SERVICE_URL: faker.internet.url(),
28
- PUBSUB_CACHE_TOPIC: faker.lorem.word(),
29
- PUBSUB_EVENT_TOPIC: faker.lorem.word(),
30
- TLS_SERVER_KEY: path.resolve('certs/server.key'),
31
- TLS_SERVER_CERT: path.resolve('certs/server.crt'),
32
- TLS_CA: path.resolve('certs/ca.crt'),
33
- TLS_REQUEST_KEY_PASSPHRASE: path.resolve('certs/ecdsa.key.pub'),
34
- ECDSA_PRIVATE_KEY: path.resolve('certs/ecdsa.key'),
35
- ECDSA_PUBLIC_KEY: path.resolve('certs/ecdsa.key.pub'),
36
- ADMIN_API_ECDSA_PUBLIC_KEY: path.resolve('certs/ecdsa.key.pub'),
37
- GITHUB_WEBHOOK_SECRET: faker.lorem.word(),
38
- LINKS_SERVICE_URL: faker.internet.url(),
39
- STATIC_TOKEN: faker.lorem.word(),
40
- HOSTNAME: faker.lorem.slug(),
41
- ELASTIC_SEARCH_HOST:
42
- process.env.ELASTIC_SEARCH_HOST ?? 'http://localhost:9200/',
43
- ELASTIC_SEARCH_USERNAME: 'elastic',
44
- ELASTIC_SEARCH_PASSWORD: 'changeme',
45
- ELASTIC_SEARCH_MIGRATION_PATH: faker.lorem.word(),
46
- RUN_MIGRATION: 'false',
47
- UNDO_MIGRATION: 'false',
48
- SQL_HOST: process.env.SQL_HOST ?? '127.0.0.1',
49
- SQL_PORT: '3306',
50
- SQL_USER: 'tao',
51
- SQL_PASSWORD: 'abc@123',
52
- SQL_DB: 'testDb',
53
- SQL_TYPE: 'mysql',
54
- DEFAULT_MESSAGE_AUDIENCE: audience,
55
- ...process.env
56
- };
1
+ import path from 'path';
2
+ import { faker } from '@faker-js/faker';
3
+
4
+ const audience = faker.internet.url();
5
+
6
+ /** Load a test environment */
7
+ process.env = {
8
+ SILENCE_REPORT: 'true',
9
+ // DEBUG: 'engine:*',
10
+ PORT: '3030',
11
+ SECONDARY_PORT: '3031',
12
+ NODE_ENV: 'test',
13
+ WEBSOCKET_CLOSE_TIMEOUT: '0',
14
+ JWT_SECRET: faker.lorem.word(),
15
+ PAYLOAD_SIGNATURE_SECRET: faker.lorem.word(),
16
+ ACCESS_TOKEN_AUDIENCE: audience,
17
+ ACCESS_TOKEN_ISSUER: faker.lorem.word(),
18
+ ADMIN_API_ACCESS_TOKEN_AUDIENCE: audience,
19
+ ADMIN_ACCESS_TOKEN_ISSUER: faker.lorem.word(),
20
+ AUTH_SERVICE_PUBLIC_URL: faker.internet.url(),
21
+ ADMIN_API_PUBLIC_URL: faker.internet.url(),
22
+ VALID_IPS: '::ffff:127.0.0.1,127.0.0.1,::1',
23
+ REDIS_HOST: process.env.REDIS_HOST ?? '127.0.0.1',
24
+ REDIS_PORT: '6379',
25
+ REDIS_CLUSTER: 'false',
26
+ LOCALES_BUCKET: faker.lorem.word(),
27
+ USER_SERVICE_URL: faker.internet.url(),
28
+ PUBSUB_CACHE_TOPIC: faker.lorem.word(),
29
+ PUBSUB_EVENT_TOPIC: faker.lorem.word(),
30
+ TLS_SERVER_KEY: path.resolve('certs/server.key'),
31
+ TLS_SERVER_CERT: path.resolve('certs/server.crt'),
32
+ TLS_CA: path.resolve('certs/ca.crt'),
33
+ TLS_REQUEST_KEY_PASSPHRASE: path.resolve('certs/ecdsa.key.pub'),
34
+ ECDSA_PRIVATE_KEY: path.resolve('certs/ecdsa.key'),
35
+ ECDSA_PUBLIC_KEY: path.resolve('certs/ecdsa.key.pub'),
36
+ ADMIN_API_ECDSA_PUBLIC_KEY: path.resolve('certs/ecdsa.key.pub'),
37
+ GITHUB_WEBHOOK_SECRET: faker.lorem.word(),
38
+ LINKS_SERVICE_URL: faker.internet.url(),
39
+ STATIC_TOKEN: faker.lorem.word(),
40
+ HOSTNAME: faker.lorem.slug(),
41
+ ELASTIC_SEARCH_HOST:
42
+ process.env.ELASTIC_SEARCH_HOST ?? 'http://localhost:9200/',
43
+ ELASTIC_SEARCH_USERNAME: 'elastic',
44
+ ELASTIC_SEARCH_PASSWORD: 'changeme',
45
+ ELASTIC_SEARCH_MIGRATION_PATH: faker.lorem.word(),
46
+ RUN_MIGRATION: 'false',
47
+ UNDO_MIGRATION: 'false',
48
+ SQL_HOST: process.env.SQL_HOST ?? '127.0.0.1',
49
+ SQL_PORT: '3306',
50
+ SQL_USER: 'tao',
51
+ SQL_PASSWORD: 'abc@123',
52
+ SQL_DB: 'testDb',
53
+ SQL_TYPE: 'mysql',
54
+ DEFAULT_MESSAGE_AUDIENCE: audience,
55
+ ...process.env
56
+ };
@@ -1,8 +1,8 @@
1
- import { factory } from 'factory-waifu';
2
- import { defineSequelizeMetaFactory } from './sequelizeMeta';
3
-
4
- /** Generates and defines a factory object that can create all of our data models */
5
- defineSequelizeMetaFactory(factory);
6
-
7
- export default factory;
8
- export { factory };
1
+ import { factory } from 'factory-waifu';
2
+ import { defineSequelizeMetaFactory } from './sequelizeMeta';
3
+
4
+ /** Generates and defines a factory object that can create all of our data models */
5
+ defineSequelizeMetaFactory(factory);
6
+
7
+ export default factory;
8
+ export { factory };
@@ -1,12 +1,12 @@
1
- import { Factory } from 'factory-waifu';
2
- import { faker } from '@faker-js/faker';
3
- import { SequelizeMeta } from 'db/models';
4
-
5
- /** Defines all the sequelize meta schematics for a factory */
6
- export function defineSequelizeMetaFactory(factory: Factory): void {
7
- factory.define('sequelizeMeta', SequelizeMeta, () => {
8
- return {
9
- name: faker.lorem.word()
10
- };
11
- });
12
- }
1
+ import { Factory } from 'factory-waifu';
2
+ import { faker } from '@faker-js/faker';
3
+ import { SequelizeMeta } from 'db/models';
4
+
5
+ /** Defines all the sequelize meta schematics for a factory */
6
+ export function defineSequelizeMetaFactory(factory: Factory): void {
7
+ factory.define('sequelizeMeta', SequelizeMeta, () => {
8
+ return {
9
+ name: faker.lorem.word()
10
+ };
11
+ });
12
+ }
package/test/hooks.ts CHANGED
@@ -1,37 +1,37 @@
1
- import {
2
- generatePkiEnvironment,
3
- generateEcdsaKeyPair
4
- } from 'backend-test-tools';
5
- import chai from 'chai';
6
- import chaiAsPromised from 'chai-as-promised';
7
- import sinon from 'sinon';
8
- import sinonChai from 'sinon-chai';
9
- import { factory } from './factory';
10
- import { sequelize } from 'entities/Sequelize';
11
- import * as models from 'db/models';
12
-
13
- chai.use(chaiAsPromised);
14
- chai.use(sinonChai);
15
-
16
- // Save a copy to revert the environment variables to their original state before each test
17
- const savedEnv = { ...process.env };
18
- const modelArray = Object.values(models);
19
-
20
- before(async () => {
21
- factory.init(sequelize);
22
- generatePkiEnvironment();
23
- generateEcdsaKeyPair();
24
- sequelize.init();
25
- sequelize.addModels(modelArray);
26
- });
27
-
28
- beforeEach(async () => {
29
- process.env = { ...savedEnv };
30
- sequelize.init();
31
- sequelize.addModels(modelArray);
32
- });
33
-
34
- afterEach(async () => {
35
- sinon.restore();
36
- await sequelize.shutdown();
37
- });
1
+ import {
2
+ generatePkiEnvironment,
3
+ generateEcdsaKeyPair
4
+ } from 'backend-test-tools';
5
+ import chai from 'chai';
6
+ import chaiAsPromised from 'chai-as-promised';
7
+ import sinon from 'sinon';
8
+ import sinonChai from 'sinon-chai';
9
+ import { factory } from './factory';
10
+ import { sequelize } from 'entities/Sequelize';
11
+ import * as models from 'db/models';
12
+
13
+ chai.use(chaiAsPromised);
14
+ chai.use(sinonChai);
15
+
16
+ // Save a copy to revert the environment variables to their original state before each test
17
+ const savedEnv = { ...process.env };
18
+ const modelArray = Object.values(models);
19
+
20
+ before(async () => {
21
+ factory.init(sequelize);
22
+ generatePkiEnvironment();
23
+ generateEcdsaKeyPair();
24
+ sequelize.init();
25
+ sequelize.addModels(modelArray);
26
+ });
27
+
28
+ beforeEach(async () => {
29
+ process.env = { ...savedEnv };
30
+ sequelize.init();
31
+ sequelize.addModels(modelArray);
32
+ });
33
+
34
+ afterEach(async () => {
35
+ sinon.restore();
36
+ await sequelize.shutdown();
37
+ });
package/test/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './stub';
2
- export * from './utils';
3
- export * from './factory';
1
+ export * from './stub';
2
+ export * from './utils';
3
+ export * from './factory';
@@ -1,3 +1,3 @@
1
- export * from './stubLocales';
2
- export * from './stubStorage';
3
- export * from './stubPubSub';
1
+ export * from './stubLocales';
2
+ export * from './stubStorage';
3
+ export * from './stubPubSub';