node-server-engine 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/.env.example +193 -193
  2. package/.mocharc.js +13 -13
  3. package/.nycrc +18 -18
  4. package/.prettierrc +7 -7
  5. package/Dockerfile +30 -30
  6. package/README.md +991 -1025
  7. package/babel.config.json +35 -35
  8. package/dist/const/DebeziumEvent.js.map +1 -1
  9. package/dist/const/LogSeverity.js.map +1 -1
  10. package/dist/const/index.js.map +1 -1
  11. package/dist/const/metrics.js.map +1 -1
  12. package/dist/const/mime.js.map +1 -1
  13. package/dist/const/tokenIssuer.js.map +1 -1
  14. package/dist/db/migrations/20241030121500-create-sequelize-meta-table.js.map +1 -1
  15. package/dist/db/models/SequelizeMeta.js.map +1 -1
  16. package/dist/db/models/index.js.map +1 -1
  17. package/dist/entities/ElasticSearch/ElasticSearch.js +7 -7
  18. package/dist/entities/ElasticSearch/ElasticSearch.js.map +1 -1
  19. package/dist/entities/ElasticSearch/ElasticSearch.types.js.map +1 -1
  20. package/dist/entities/ElasticSearch/index.js.map +1 -1
  21. package/dist/entities/Endpoint/Endpoint.js +8 -8
  22. package/dist/entities/Endpoint/Endpoint.js.map +1 -1
  23. package/dist/entities/Endpoint/Endpoint.types.js.map +1 -1
  24. package/dist/entities/Endpoint/index.js.map +1 -1
  25. package/dist/entities/EngineError/EngineError.js +2 -2
  26. package/dist/entities/EngineError/EngineError.js.map +1 -1
  27. package/dist/entities/EngineError/EngineError.types.js.map +1 -1
  28. package/dist/entities/EngineError/index.js.map +1 -1
  29. package/dist/entities/KeySet/KeySet.js +3 -3
  30. package/dist/entities/KeySet/KeySet.js.map +1 -1
  31. package/dist/entities/KeySet/KeySet.types.js.map +1 -1
  32. package/dist/entities/KeySet/index.js.map +1 -1
  33. package/dist/entities/LifecycleController/LifecycleController.js.map +1 -1
  34. package/dist/entities/LifecycleController/LifecycleController.types.js.map +1 -1
  35. package/dist/entities/LifecycleController/index.js.map +1 -1
  36. package/dist/entities/Localizator/Localizator.js +7 -7
  37. package/dist/entities/Localizator/Localizator.js.map +1 -1
  38. package/dist/entities/Localizator/Localizator.types.js.map +1 -1
  39. package/dist/entities/Localizator/guessNamingConvention/guessNamingConvention.js.map +1 -1
  40. package/dist/entities/Localizator/guessNamingConvention/index.js.map +1 -1
  41. package/dist/entities/Localizator/index.js.map +1 -1
  42. package/dist/entities/MessageHandler/MessageHandler.js +2 -2
  43. package/dist/entities/MessageHandler/MessageHandler.js.map +1 -1
  44. package/dist/entities/MessageHandler/MessageHandler.types.js.map +1 -1
  45. package/dist/entities/MessageHandler/index.js.map +1 -1
  46. package/dist/entities/PubSub/PubSub.js +25 -25
  47. package/dist/entities/PubSub/PubSub.js.map +1 -1
  48. package/dist/entities/PubSub/PubSub.types.js.map +1 -1
  49. package/dist/entities/PubSub/handleMessage/handleMessage.js +6 -6
  50. package/dist/entities/PubSub/handleMessage/handleMessage.js.map +1 -1
  51. package/dist/entities/PubSub/handleMessage/index.js.map +1 -1
  52. package/dist/entities/PubSub/index.js.map +1 -1
  53. package/dist/entities/PushNotification/PushNotification.js +4 -4
  54. package/dist/entities/PushNotification/PushNotification.js.map +1 -1
  55. package/dist/entities/PushNotification/PushNotification.types.js.map +1 -1
  56. package/dist/entities/PushNotification/index.js.map +1 -1
  57. package/dist/entities/Redis/Redis.js +8 -8
  58. package/dist/entities/Redis/Redis.js.map +1 -1
  59. package/dist/entities/Redis/Redis.types.js.map +1 -1
  60. package/dist/entities/Redis/Redis.validate.js +2 -2
  61. package/dist/entities/Redis/Redis.validate.js.map +1 -1
  62. package/dist/entities/Redis/index.js.map +1 -1
  63. package/dist/entities/Sequelize/Sequelize.config.js +42 -2
  64. package/dist/entities/Sequelize/Sequelize.config.js.map +1 -1
  65. package/dist/entities/Sequelize/Sequelize.js +3 -3
  66. package/dist/entities/Sequelize/Sequelize.js.map +1 -1
  67. package/dist/entities/Sequelize/Sequelize.types.js.map +1 -1
  68. package/dist/entities/Sequelize/Sequelize.validate.js +2 -2
  69. package/dist/entities/Sequelize/Sequelize.validate.js.map +1 -1
  70. package/dist/entities/Sequelize/index.js.map +1 -1
  71. package/dist/entities/Server/Server.const.js.map +1 -1
  72. package/dist/entities/Server/Server.js +2 -2
  73. package/dist/entities/Server/Server.js.map +1 -1
  74. package/dist/entities/Server/Server.types.js.map +1 -1
  75. package/dist/entities/Server/index.js.map +1 -1
  76. package/dist/entities/SocketClient/SocketClient.js +15 -15
  77. package/dist/entities/SocketClient/SocketClient.js.map +1 -1
  78. package/dist/entities/SocketClient/SocketClient.types.js.map +1 -1
  79. package/dist/entities/SocketClient/index.js.map +1 -1
  80. package/dist/entities/SocketClient/parseMessage/index.js.map +1 -1
  81. package/dist/entities/SocketClient/parseMessage/parseMessage.js +2 -2
  82. package/dist/entities/SocketClient/parseMessage/parseMessage.js.map +1 -1
  83. package/dist/entities/Storage/Storage.js +20 -20
  84. package/dist/entities/Storage/Storage.js.map +1 -1
  85. package/dist/entities/Storage/Storage.types.js.map +1 -1
  86. package/dist/entities/Storage/index.js.map +1 -1
  87. package/dist/entities/ValidationError/ValidationError.js.map +1 -1
  88. package/dist/entities/ValidationError/index.js.map +1 -1
  89. package/dist/entities/WebError/WebError.js +4 -4
  90. package/dist/entities/WebError/WebError.js.map +1 -1
  91. package/dist/entities/WebError/WebError.types.js.map +1 -1
  92. package/dist/entities/WebError/index.js.map +1 -1
  93. package/dist/entities/index.js.map +1 -1
  94. package/dist/index.js.map +1 -1
  95. package/dist/metrics/debug.js.map +1 -1
  96. package/dist/metrics/index.js.map +1 -1
  97. package/dist/metrics/request.js.map +1 -1
  98. package/dist/middleware/authAdmin/authAdmin.js.map +1 -1
  99. package/dist/middleware/authAdmin/authAdmin.types.js.map +1 -1
  100. package/dist/middleware/authAdmin/index.js.map +1 -1
  101. package/dist/middleware/authHmac/authHmac.js.map +1 -1
  102. package/dist/middleware/authHmac/authHmac.types.js.map +1 -1
  103. package/dist/middleware/authHmac/index.js.map +1 -1
  104. package/dist/middleware/authJwt/authJwt.js.map +1 -1
  105. package/dist/middleware/authJwt/authJwt.types.js.map +1 -1
  106. package/dist/middleware/authJwt/index.js.map +1 -1
  107. package/dist/middleware/authStatic/authStatic.js +3 -3
  108. package/dist/middleware/authStatic/authStatic.js.map +1 -1
  109. package/dist/middleware/authStatic/index.js.map +1 -1
  110. package/dist/middleware/authTls/authTls.js +8 -8
  111. package/dist/middleware/authTls/authTls.js.map +1 -1
  112. package/dist/middleware/authTls/authTls.types.js.map +1 -1
  113. package/dist/middleware/authTls/index.js.map +1 -1
  114. package/dist/middleware/checkPermission/checkPermission.js.map +1 -1
  115. package/dist/middleware/error/error.js.map +1 -1
  116. package/dist/middleware/error/index.js.map +1 -1
  117. package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js +2 -2
  118. package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js.map +1 -1
  119. package/dist/middleware/fileUploader/compressAvatar/compressAvatar.types.js.map +1 -1
  120. package/dist/middleware/fileUploader/compressAvatar/index.js.map +1 -1
  121. package/dist/middleware/fileUploader/fileUploader.js +12 -12
  122. package/dist/middleware/fileUploader/fileUploader.js.map +1 -1
  123. package/dist/middleware/fileUploader/fileUploader.types.js.map +1 -1
  124. package/dist/middleware/fileUploader/index.js.map +1 -1
  125. package/dist/middleware/fileUploader/isMultiPart/index.js.map +1 -1
  126. package/dist/middleware/fileUploader/isMultiPart/isMultipart.js.map +1 -1
  127. package/dist/middleware/fileUploader/validate/index.js.map +1 -1
  128. package/dist/middleware/fileUploader/validate/validate.js.map +1 -1
  129. package/dist/middleware/fourOhFour/fourOhFour.js.map +1 -1
  130. package/dist/middleware/fourOhFour/index.js.map +1 -1
  131. package/dist/middleware/geminiFileUploader/geminiFileUploader.js.map +1 -1
  132. package/dist/middleware/geminiFileUploader/index.js.map +1 -1
  133. package/dist/middleware/healthCheck/healthCheck.js +2 -2
  134. package/dist/middleware/healthCheck/healthCheck.js.map +1 -1
  135. package/dist/middleware/healthCheck/index.js.map +1 -1
  136. package/dist/middleware/index.js.map +1 -1
  137. package/dist/middleware/metrics/index.js.map +1 -1
  138. package/dist/middleware/metrics/metrics.js.map +1 -1
  139. package/dist/middleware/requestMetrics/index.js.map +1 -1
  140. package/dist/middleware/requestMetrics/requestMetrics.js.map +1 -1
  141. package/dist/middleware/swaggerDocs/index.js.map +1 -1
  142. package/dist/middleware/swaggerDocs/swaggerDocs.js +7 -7
  143. package/dist/middleware/swaggerDocs/swaggerDocs.js.map +1 -1
  144. package/dist/middleware/swaggerDocs/swaggerDocs.types.js.map +1 -1
  145. package/dist/middleware/userResolver/index.js.map +1 -1
  146. package/dist/middleware/userResolver/userResolver.js.map +1 -1
  147. package/dist/middleware/validate/index.js.map +1 -1
  148. package/dist/middleware/validate/validate.js.map +1 -1
  149. package/dist/middleware/version/index.js.map +1 -1
  150. package/dist/middleware/version/version.js +3 -3
  151. package/dist/middleware/version/version.js.map +1 -1
  152. package/dist/utils/checkEnvironment/index.js +13 -13
  153. package/dist/utils/checkEnvironment/index.js.map +1 -1
  154. package/dist/utils/createHttpServer/createHttpServer.js.map +1 -1
  155. package/dist/utils/createHttpServer/createHttpServer.validate.js +2 -2
  156. package/dist/utils/createHttpServer/createHttpServer.validate.js.map +1 -1
  157. package/dist/utils/createHttpServer/index.js.map +1 -1
  158. package/dist/utils/createSortedObject/createSortedObject.js.map +1 -1
  159. package/dist/utils/createSortedObject/index.js.map +1 -1
  160. package/dist/utils/dbMigration/dbMigration.js +8 -8
  161. package/dist/utils/dbMigration/dbMigration.js.map +1 -1
  162. package/dist/utils/dbMigration/dbMigration.types.js.map +1 -1
  163. package/dist/utils/dbMigration/index.js.map +1 -1
  164. package/dist/utils/dbMigration/migrateMetadataTable/index.js.map +1 -1
  165. package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.d.ts +2 -2
  166. package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js +47 -15
  167. package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js.map +1 -1
  168. package/dist/utils/envAssert/envAssert.js +6 -6
  169. package/dist/utils/envAssert/envAssert.js.map +1 -1
  170. package/dist/utils/envAssert/index.js.map +1 -1
  171. package/dist/utils/envAssert/validators/hostList.js +2 -2
  172. package/dist/utils/envAssert/validators/hostList.js.map +1 -1
  173. package/dist/utils/envAssert/validators/index.js.map +1 -1
  174. package/dist/utils/envAssert/validators/ipList.js +2 -2
  175. package/dist/utils/envAssert/validators/ipList.js.map +1 -1
  176. package/dist/utils/envAssert/validators/path.js +2 -2
  177. package/dist/utils/envAssert/validators/path.js.map +1 -1
  178. package/dist/utils/envAssert/validators/string.js +2 -2
  179. package/dist/utils/envAssert/validators/string.js.map +1 -1
  180. package/dist/utils/envAssert/validators/stringList.js +3 -3
  181. package/dist/utils/envAssert/validators/stringList.js.map +1 -1
  182. package/dist/utils/filter/filter.js +4 -4
  183. package/dist/utils/filter/filter.js.map +1 -1
  184. package/dist/utils/filter/index.js.map +1 -1
  185. package/dist/utils/getDynamicLink/getDynamicLink.js.map +1 -1
  186. package/dist/utils/getDynamicLink/getDynamicLink.types.js.map +1 -1
  187. package/dist/utils/getDynamicLink/getDynamicLink.validate.js.map +1 -1
  188. package/dist/utils/getDynamicLink/index.js.map +1 -1
  189. package/dist/utils/hmac/checkEnv/checkEnv.js +2 -2
  190. package/dist/utils/hmac/checkEnv/checkEnv.js.map +1 -1
  191. package/dist/utils/hmac/checkEnv/index.js.map +1 -1
  192. package/dist/utils/hmac/createHmac/createHmac.js.map +1 -1
  193. package/dist/utils/hmac/createHmac/index.js.map +1 -1
  194. package/dist/utils/hmac/index.js.map +1 -1
  195. package/dist/utils/hmac/index.types.js.map +1 -1
  196. package/dist/utils/hmac/signPayload/index.js.map +1 -1
  197. package/dist/utils/hmac/signPayload/signPayload.js.map +1 -1
  198. package/dist/utils/hmac/verifySignature/index.js.map +1 -1
  199. package/dist/utils/hmac/verifySignature/verifySignature.js.map +1 -1
  200. package/dist/utils/index.js.map +1 -1
  201. package/dist/utils/jwt/index.js.map +1 -1
  202. package/dist/utils/jwt/jwt.js.map +1 -1
  203. package/dist/utils/jwt/jwt.types.js.map +1 -1
  204. package/dist/utils/report/index.js.map +1 -1
  205. package/dist/utils/report/output.js.map +1 -1
  206. package/dist/utils/report/output.types.js.map +1 -1
  207. package/dist/utils/report/report.js.map +1 -1
  208. package/dist/utils/report/report.types.js.map +1 -1
  209. package/dist/utils/request/index.js.map +1 -1
  210. package/dist/utils/request/request.js.map +1 -1
  211. package/dist/utils/semverCompare/index.js.map +1 -1
  212. package/dist/utils/semverCompare/semverCompare.js +5 -5
  213. package/dist/utils/semverCompare/semverCompare.js.map +1 -1
  214. package/dist/utils/sendEmail/index.js.map +1 -1
  215. package/dist/utils/sendEmail/sendEmail.js +8 -8
  216. package/dist/utils/sendEmail/sendEmail.js.map +1 -1
  217. package/dist/utils/sendEmail/sendEmail.types.js.map +1 -1
  218. package/dist/utils/sendPush/index.js.map +1 -1
  219. package/dist/utils/sendPush/sendPush.js +5 -5
  220. package/dist/utils/sendPush/sendPush.js.map +1 -1
  221. package/dist/utils/sendPush/sendPush.types.js.map +1 -1
  222. package/dist/utils/tlsConfig/index.js.map +1 -1
  223. package/dist/utils/tlsConfig/tlsConfig.js +2 -2
  224. package/dist/utils/tlsConfig/tlsConfig.js.map +1 -1
  225. package/dist/utils/tlsConfig/tlsConfig.types.js.map +1 -1
  226. package/dist/utils/tlsConfig/tlsConfig.validate.js +2 -2
  227. package/dist/utils/tlsConfig/tlsConfig.validate.js.map +1 -1
  228. package/dist/utils/tlsRequest/index.js.map +1 -1
  229. package/dist/utils/tlsRequest/tlsRequest.js.map +1 -1
  230. package/dist/utils/trimPathSlash/index.js.map +1 -1
  231. package/dist/utils/trimPathSlash/trimPathSlash.js +4 -4
  232. package/dist/utils/trimPathSlash/trimPathSlash.js.map +1 -1
  233. package/eslint.config.mjs +11 -11
  234. package/package.json +164 -161
  235. package/src/const/DebeziumEvent.ts +6 -6
  236. package/src/const/LogSeverity.ts +7 -7
  237. package/src/const/index.ts +5 -5
  238. package/src/const/metrics.ts +6 -6
  239. package/src/const/mime.ts +37 -37
  240. package/src/const/tokenIssuer.ts +9 -9
  241. package/src/db/migrations/20241030121500-create-sequelize-meta-table.ts +29 -29
  242. package/src/db/models/SequelizeMeta.ts +16 -16
  243. package/src/db/models/index.ts +2 -2
  244. package/src/entities/ElasticSearch/ElasticSearch.ts +103 -103
  245. package/src/entities/ElasticSearch/ElasticSearch.types.ts +7 -7
  246. package/src/entities/ElasticSearch/index.ts +2 -2
  247. package/src/entities/Endpoint/Endpoint.test.ts +337 -337
  248. package/src/entities/Endpoint/Endpoint.ts +202 -202
  249. package/src/entities/Endpoint/Endpoint.types.ts +205 -205
  250. package/src/entities/Endpoint/index.ts +2 -2
  251. package/src/entities/EngineError/EngineError.ts +28 -28
  252. package/src/entities/EngineError/EngineError.types.ts +15 -15
  253. package/src/entities/EngineError/index.ts +2 -2
  254. package/src/entities/KeySet/KeySet.test.ts +126 -126
  255. package/src/entities/KeySet/KeySet.ts +172 -172
  256. package/src/entities/KeySet/KeySet.types.ts +28 -28
  257. package/src/entities/KeySet/index.ts +2 -2
  258. package/src/entities/LifecycleController/LifecycleController.test.ts +48 -48
  259. package/src/entities/LifecycleController/LifecycleController.ts +24 -24
  260. package/src/entities/LifecycleController/LifecycleController.types.ts +5 -5
  261. package/src/entities/LifecycleController/index.ts +2 -2
  262. package/src/entities/Localizator/Localizator.ts +139 -139
  263. package/src/entities/Localizator/Localizator.types.ts +52 -52
  264. package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.test.ts +165 -165
  265. package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.ts +58 -58
  266. package/src/entities/Localizator/guessNamingConvention/index.ts +1 -1
  267. package/src/entities/Localizator/index.ts +2 -2
  268. package/src/entities/MessageHandler/MessageHandler.test.ts +130 -130
  269. package/src/entities/MessageHandler/MessageHandler.ts +72 -72
  270. package/src/entities/MessageHandler/MessageHandler.types.ts +15 -15
  271. package/src/entities/MessageHandler/index.ts +2 -2
  272. package/src/entities/PubSub/PubSub.test.ts +297 -297
  273. package/src/entities/PubSub/PubSub.ts +202 -202
  274. package/src/entities/PubSub/PubSub.types.ts +76 -76
  275. package/src/entities/PubSub/handleMessage/handleMessage.test.ts +102 -102
  276. package/src/entities/PubSub/handleMessage/handleMessage.ts +65 -65
  277. package/src/entities/PubSub/handleMessage/index.ts +1 -1
  278. package/src/entities/PubSub/index.ts +2 -2
  279. package/src/entities/PushNotification/PushNotification.test.ts +35 -35
  280. package/src/entities/PushNotification/PushNotification.ts +44 -44
  281. package/src/entities/PushNotification/PushNotification.types.ts +25 -25
  282. package/src/entities/PushNotification/index.ts +2 -2
  283. package/src/entities/Redis/Redis.ts +71 -71
  284. package/src/entities/Redis/Redis.types.ts +19 -19
  285. package/src/entities/Redis/Redis.validate.ts +17 -17
  286. package/src/entities/Redis/index.ts +2 -2
  287. package/src/entities/Sequelize/Sequelize.config.ts +59 -29
  288. package/src/entities/Sequelize/Sequelize.test.ts +21 -21
  289. package/src/entities/Sequelize/Sequelize.ts +75 -75
  290. package/src/entities/Sequelize/Sequelize.types.ts +10 -10
  291. package/src/entities/Sequelize/Sequelize.validate.ts +15 -15
  292. package/src/entities/Sequelize/index.ts +2 -2
  293. package/src/entities/Server/Server.const.ts +56 -56
  294. package/src/entities/Server/Server.test.ts +272 -272
  295. package/src/entities/Server/Server.ts +445 -445
  296. package/src/entities/Server/Server.types.ts +88 -88
  297. package/src/entities/Server/index.ts +2 -2
  298. package/src/entities/SocketClient/SocketClient.test.ts +392 -392
  299. package/src/entities/SocketClient/SocketClient.ts +401 -401
  300. package/src/entities/SocketClient/SocketClient.types.ts +62 -62
  301. package/src/entities/SocketClient/index.ts +2 -2
  302. package/src/entities/SocketClient/parseMessage/index.ts +1 -1
  303. package/src/entities/SocketClient/parseMessage/parseMessage.test.ts +20 -20
  304. package/src/entities/SocketClient/parseMessage/parseMessage.ts +26 -26
  305. package/src/entities/Storage/Storage.test.ts +58 -58
  306. package/src/entities/Storage/Storage.ts +219 -219
  307. package/src/entities/Storage/Storage.types.ts +57 -57
  308. package/src/entities/Storage/index.ts +2 -2
  309. package/src/entities/ValidationError/ValidationError.ts +34 -34
  310. package/src/entities/ValidationError/index.ts +1 -1
  311. package/src/entities/WebError/WebError.test.ts +18 -18
  312. package/src/entities/WebError/WebError.ts +23 -23
  313. package/src/entities/WebError/WebError.types.ts +9 -9
  314. package/src/entities/WebError/index.ts +2 -2
  315. package/src/entities/index.ts +16 -16
  316. package/src/index.ts +4 -4
  317. package/src/metrics/debug.ts +10 -10
  318. package/src/metrics/index.ts +2 -2
  319. package/src/metrics/request.ts +17 -17
  320. package/src/middleware/authAdmin/authAdmin.test.ts +199 -199
  321. package/src/middleware/authAdmin/authAdmin.ts +114 -114
  322. package/src/middleware/authAdmin/authAdmin.types.ts +19 -19
  323. package/src/middleware/authAdmin/index.ts +2 -2
  324. package/src/middleware/authHmac/authHmac.test.ts +86 -86
  325. package/src/middleware/authHmac/authHmac.ts +56 -56
  326. package/src/middleware/authHmac/authHmac.types.ts +7 -7
  327. package/src/middleware/authHmac/index.ts +2 -2
  328. package/src/middleware/authJwt/authJwt.test.ts +54 -54
  329. package/src/middleware/authJwt/authJwt.ts +55 -55
  330. package/src/middleware/authJwt/authJwt.types.ts +14 -14
  331. package/src/middleware/authJwt/index.ts +2 -2
  332. package/src/middleware/authStatic/authStatic.test.ts +36 -36
  333. package/src/middleware/authStatic/authStatic.ts +45 -45
  334. package/src/middleware/authStatic/index.ts +1 -1
  335. package/src/middleware/authTls/authTls.test.ts +138 -138
  336. package/src/middleware/authTls/authTls.ts +106 -106
  337. package/src/middleware/authTls/authTls.types.ts +13 -13
  338. package/src/middleware/authTls/index.ts +2 -2
  339. package/src/middleware/checkPermission/checkPermission.ts +32 -32
  340. package/src/middleware/error/error.test.ts +60 -60
  341. package/src/middleware/error/error.ts +25 -25
  342. package/src/middleware/error/index.ts +1 -1
  343. package/src/middleware/fileUploader/compressAvatar/compressAvatar.ts +25 -25
  344. package/src/middleware/fileUploader/compressAvatar/compressAvatar.types.ts +12 -12
  345. package/src/middleware/fileUploader/compressAvatar/index.ts +2 -2
  346. package/src/middleware/fileUploader/fileUploader.test.ts +310 -310
  347. package/src/middleware/fileUploader/fileUploader.ts +303 -303
  348. package/src/middleware/fileUploader/fileUploader.types.ts +52 -52
  349. package/src/middleware/fileUploader/index.ts +2 -2
  350. package/src/middleware/fileUploader/isMultiPart/index.ts +1 -1
  351. package/src/middleware/fileUploader/isMultiPart/isMultipart.ts +9 -9
  352. package/src/middleware/fileUploader/validate/index.ts +1 -1
  353. package/src/middleware/fileUploader/validate/validate.ts +27 -27
  354. package/src/middleware/fourOhFour/fourOhFour.test.ts +14 -14
  355. package/src/middleware/fourOhFour/fourOhFour.ts +13 -13
  356. package/src/middleware/fourOhFour/index.ts +1 -1
  357. package/src/middleware/geminiFileUploader/geminiFileUploader.ts +117 -117
  358. package/src/middleware/geminiFileUploader/index.ts +1 -1
  359. package/src/middleware/healthCheck/healthCheck.test.ts +12 -12
  360. package/src/middleware/healthCheck/healthCheck.ts +14 -14
  361. package/src/middleware/healthCheck/index.ts +1 -1
  362. package/src/middleware/index.ts +17 -17
  363. package/src/middleware/metrics/index.ts +1 -1
  364. package/src/middleware/metrics/metrics.test.ts +46 -46
  365. package/src/middleware/metrics/metrics.ts +24 -24
  366. package/src/middleware/requestMetrics/index.ts +1 -1
  367. package/src/middleware/requestMetrics/requestMetrics.test.ts +77 -77
  368. package/src/middleware/requestMetrics/requestMetrics.ts +20 -20
  369. package/src/middleware/swaggerDocs/index.ts +2 -2
  370. package/src/middleware/swaggerDocs/swaggerDocs.ts +114 -114
  371. package/src/middleware/swaggerDocs/swaggerDocs.types.ts +41 -41
  372. package/src/middleware/userResolver/index.ts +1 -1
  373. package/src/middleware/userResolver/userResolver.test.ts +35 -35
  374. package/src/middleware/userResolver/userResolver.ts +35 -35
  375. package/src/middleware/validate/index.ts +1 -1
  376. package/src/middleware/validate/validate.test.ts +43 -43
  377. package/src/middleware/validate/validate.ts +25 -25
  378. package/src/middleware/version/index.ts +1 -1
  379. package/src/middleware/version/version.test.ts +23 -23
  380. package/src/middleware/version/version.ts +12 -12
  381. package/src/utils/checkEnvironment/index.ts +49 -49
  382. package/src/utils/createHttpServer/createHttpServer.test.ts +24 -24
  383. package/src/utils/createHttpServer/createHttpServer.ts +34 -34
  384. package/src/utils/createHttpServer/createHttpServer.validate.ts +17 -17
  385. package/src/utils/createHttpServer/index.ts +1 -1
  386. package/src/utils/createSortedObject/createSortedObject.ts +20 -20
  387. package/src/utils/createSortedObject/createSortedObjet.test.ts +47 -47
  388. package/src/utils/createSortedObject/index.ts +1 -1
  389. package/src/utils/dbMigration/dbMigration.test.ts +209 -209
  390. package/src/utils/dbMigration/dbMigration.ts +199 -199
  391. package/src/utils/dbMigration/dbMigration.types.ts +11 -11
  392. package/src/utils/dbMigration/index.ts +2 -2
  393. package/src/utils/dbMigration/migrateMetadataTable/index.ts +1 -1
  394. package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.test.ts +59 -59
  395. package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.ts +102 -70
  396. package/src/utils/envAssert/envAssert.ts +31 -31
  397. package/src/utils/envAssert/index.ts +1 -1
  398. package/src/utils/envAssert/validators/hostList.ts +17 -17
  399. package/src/utils/envAssert/validators/index.ts +5 -5
  400. package/src/utils/envAssert/validators/ipList.ts +13 -13
  401. package/src/utils/envAssert/validators/path.ts +13 -13
  402. package/src/utils/envAssert/validators/string.ts +9 -9
  403. package/src/utils/envAssert/validators/stringList.ts +13 -13
  404. package/src/utils/filter/filter.ts +17 -17
  405. package/src/utils/filter/index.ts +1 -1
  406. package/src/utils/getDynamicLink/getDynamicLink.test.ts +51 -51
  407. package/src/utils/getDynamicLink/getDynamicLink.ts +28 -28
  408. package/src/utils/getDynamicLink/getDynamicLink.types.ts +11 -11
  409. package/src/utils/getDynamicLink/getDynamicLink.validate.ts +6 -6
  410. package/src/utils/getDynamicLink/index.ts +2 -2
  411. package/src/utils/hmac/checkEnv/checkEnv.test.ts +18 -18
  412. package/src/utils/hmac/checkEnv/checkEnv.ts +9 -9
  413. package/src/utils/hmac/checkEnv/index.ts +1 -1
  414. package/src/utils/hmac/createHmac/createHmac.ts +33 -33
  415. package/src/utils/hmac/createHmac/index.ts +1 -1
  416. package/src/utils/hmac/index.ts +4 -4
  417. package/src/utils/hmac/index.types.ts +13 -13
  418. package/src/utils/hmac/signPayload/index.ts +1 -1
  419. package/src/utils/hmac/signPayload/signPayload.ts +16 -16
  420. package/src/utils/hmac/verifySignature/index.ts +1 -1
  421. package/src/utils/hmac/verifySignature/verifySignature.ts +24 -24
  422. package/src/utils/index.ts +26 -26
  423. package/src/utils/jwt/index.ts +2 -2
  424. package/src/utils/jwt/jwt.test.ts +41 -41
  425. package/src/utils/jwt/jwt.ts +204 -204
  426. package/src/utils/jwt/jwt.types.ts +21 -21
  427. package/src/utils/report/index.ts +3 -3
  428. package/src/utils/report/output.ts +45 -45
  429. package/src/utils/report/output.types.ts +70 -70
  430. package/src/utils/report/report.test.ts +133 -133
  431. package/src/utils/report/report.ts +134 -134
  432. package/src/utils/report/report.types.ts +13 -13
  433. package/src/utils/request/index.ts +1 -1
  434. package/src/utils/request/request.test.ts +26 -26
  435. package/src/utils/request/request.ts +48 -48
  436. package/src/utils/semverCompare/index.ts +1 -1
  437. package/src/utils/semverCompare/semverCompare.test.ts +49 -49
  438. package/src/utils/semverCompare/semverCompare.ts +60 -60
  439. package/src/utils/sendEmail/index.ts +1 -1
  440. package/src/utils/sendEmail/sendEmail.ts +27 -27
  441. package/src/utils/sendEmail/sendEmail.types.ts +7 -7
  442. package/src/utils/sendPush/index.ts +2 -2
  443. package/src/utils/sendPush/sendPush.ts +20 -20
  444. package/src/utils/sendPush/sendPush.types.ts +25 -25
  445. package/src/utils/tlsConfig/index.ts +2 -2
  446. package/src/utils/tlsConfig/tlsConfig.test.ts +32 -32
  447. package/src/utils/tlsConfig/tlsConfig.ts +47 -47
  448. package/src/utils/tlsConfig/tlsConfig.types.ts +11 -11
  449. package/src/utils/tlsConfig/tlsConfig.validate.ts +25 -25
  450. package/src/utils/tlsRequest/index.ts +1 -1
  451. package/src/utils/tlsRequest/tlsRequest.test.ts +63 -63
  452. package/src/utils/tlsRequest/tlsRequest.ts +12 -12
  453. package/src/utils/trimPathSlash/index.ts +1 -1
  454. package/src/utils/trimPathSlash/trimPathSlash.test.ts +26 -26
  455. package/src/utils/trimPathSlash/trimPathSlash.ts +8 -8
  456. package/test/env.ts +56 -56
  457. package/test/factory/index.ts +8 -8
  458. package/test/factory/sequelizeMeta.ts +12 -12
  459. package/test/hooks.ts +37 -37
  460. package/test/index.ts +3 -3
  461. package/test/stub/index.ts +3 -3
  462. package/test/stub/stubLocales.ts +68 -68
  463. package/test/stub/stubPubSub.ts +7 -7
  464. package/test/stub/stubStorage.ts +77 -77
  465. package/test/stub/stubStorage.types.ts +11 -11
  466. package/test/utils/app.ts +31 -31
  467. package/test/utils/index.ts +1 -1
  468. package/tsconfig.build.json +5 -5
  469. package/tsconfig.json +32 -32
@@ -1,199 +1,199 @@
1
- /* eslint-disable @typescript-eslint/no-require-imports */
2
- // Register ts-node at the top of runMigrations.ts
3
- require('ts-node/register');
4
-
5
- import { existsSync, lstatSync } from 'fs';
6
- import { join } from 'path';
7
- import { Sequelize, Transaction } from 'sequelize';
8
- import { Umzug, SequelizeStorage } from 'umzug';
9
- import { ClearDbOptions, RecreateDbOptions } from './dbMigration.types';
10
- import { migrateMetadataTable } from './migrateMetadataTable';
11
- import { SequelizeMeta } from 'db/models';
12
- import { EngineError } from 'entities/EngineError';
13
- import { sequelize } from 'entities/Sequelize';
14
- import { reportDebug } from 'utils/report';
15
- import { semverCompare } from 'utils/semverCompare';
16
-
17
- const namespace = 'engine:utils:dbMigration';
18
-
19
- function getMigrationPaths(): Array<string> | undefined {
20
- // We look between possibilities for the first directory that exists and matches our expectations
21
- // First a user specified one, then the production default, then the development default
22
- const prodDefaultPath = join(process.cwd(), './dist/db/migrations');
23
- const devDefaultPath = join(process.cwd(), './src/db/migrations');
24
- const path = [
25
- process.env.DB_MIGRATIONS_DIR,
26
- process.env.NODE_ENV === 'prod' ? prodDefaultPath : devDefaultPath
27
- ].filter((path) => path && existsSync(path) && lstatSync(path).isDirectory());
28
- reportDebug({
29
- namespace,
30
- message: 'Obtaining Umzug migration options',
31
- data: {
32
- path,
33
- prodPath: prodDefaultPath,
34
- devPath: devDefaultPath,
35
- customPath: process.env.DB_MIGRATIONS_DIR
36
- }
37
- });
38
- return path.map((p) =>
39
- process.env.NODE_ENV === 'prod' ? `${p}/*.js` : `${p}/*.ts`
40
- );
41
- }
42
-
43
- /** Run all the non-executed migrations one by one */
44
- export async function runPendingMigrations(): Promise<void> {
45
- if (!sequelize)
46
- throw new EngineError({ message: 'Sequelize is not initialized' });
47
- // First make sure that the metadata table is up to date
48
- await migrateMetadataTable(sequelize);
49
- const migrationPaths = getMigrationPaths();
50
-
51
- if (!migrationPaths || migrationPaths.length <= 0) {
52
- reportDebug({
53
- namespace,
54
- message: 'No valid migration paths found.',
55
- data: { migrationPaths }
56
- });
57
- return;
58
- }
59
-
60
- migrationPaths?.forEach(async (path) => {
61
- const migrator = new Umzug({
62
- migrations: {
63
- glob: path,
64
- resolve: ({ name, path, context }) => {
65
- // Use require to import the migration file
66
- const migration = require(path || '');
67
- return {
68
- name,
69
- up: async () => migration.up(context),
70
- down: async () => migration.down(context)
71
- };
72
- }
73
- },
74
- context: sequelize.getQueryInterface(),
75
- storage: new SequelizeStorage({ sequelize }),
76
- logger: console
77
- });
78
-
79
- reportDebug({
80
- namespace,
81
- message: 'Starting pending database migrations',
82
- data: { path }
83
- });
84
- await migrator.up();
85
- console.log('Db Migration Completed');
86
- });
87
- }
88
-
89
- /** Rollback all migrations up to a specified target version */
90
- export async function rollbackMigrations(): Promise<void> {
91
- if (!sequelize)
92
- throw new EngineError({ message: 'Sequelize is not initialized' });
93
- if (!process.env.BUILD_ID)
94
- throw new EngineError({ message: 'BUILD_ID is not defined' });
95
-
96
- // Fetch executed migrations in ascending order
97
- const migrations = await SequelizeMeta.findAll({
98
- order: [['name', 'ASC']],
99
- raw: true
100
- });
101
- const rollbackUntil = migrations.find(
102
- (migration) =>
103
- migration.version &&
104
- semverCompare(migration.version, process.env.BUILD_ID as string) === 1
105
- );
106
-
107
- if (!rollbackUntil) {
108
- reportDebug({
109
- namespace,
110
- message: 'No rollback target found for the current BUILD_ID.',
111
- data: { buildId: process.env.BUILD_ID }
112
- });
113
- return;
114
- }
115
-
116
- const migrationPaths = getMigrationPaths();
117
-
118
- if (!migrationPaths || migrationPaths.length <= 0) {
119
- reportDebug({
120
- namespace,
121
- message: 'No valid migration paths found for rollback.',
122
- data: { migrationPaths }
123
- });
124
- return;
125
- }
126
-
127
- migrationPaths.forEach(async (path) => {
128
- const migrator = new Umzug({
129
- migrations: {
130
- glob: path,
131
- resolve: ({ name, path, context }) => {
132
- const migration = require(path || '');
133
- return {
134
- name,
135
- up: async () => migration.up(context),
136
- down: async () => migration.down(context)
137
- };
138
- }
139
- },
140
- context: sequelize.getQueryInterface(),
141
- storage: new SequelizeStorage({ sequelize }),
142
- logger: console
143
- });
144
-
145
- reportDebug({
146
- namespace,
147
- message: `Rolling back migrations up to: ${rollbackUntil.name}`,
148
- data: { path }
149
- });
150
-
151
- await migrator.down({ to: rollbackUntil.name });
152
- });
153
- }
154
-
155
- /**
156
- * Recreate the whole database
157
- * Quick way to make sure that we are working on a clean database
158
- * /!\ Should only be used when running tests
159
- */
160
- export async function testRecreateDB(
161
- options: RecreateDbOptions = {}
162
- ): Promise<void> {
163
- if (!sequelize)
164
- throw new EngineError({ message: 'Sequelize is not initialized' });
165
- await sequelize.query(
166
- `DROP SCHEMA public${process.env.SQL_TYPE === 'postgres' ? ' CASCADE' : ''}`
167
- );
168
- await sequelize.query(`CREATE SCHEMA public`);
169
- if (!options.clean) await runPendingMigrations();
170
- }
171
-
172
- /**
173
- * Empty all the schemas in the database
174
- * Quick way to flush the database data while keep the structure
175
- * /!\ Should only be used when running tests
176
- */
177
- export async function testClearDB(options: ClearDbOptions = {}): Promise<void> {
178
- if (!sequelize)
179
- throw new EngineError({ message: 'Sequelize is not initialized' });
180
- await sequelize.transaction(clearDbTransaction(sequelize, options));
181
- }
182
-
183
- /** DB clearing transaction */
184
- function clearDbTransaction(sequelize: Sequelize, options: ClearDbOptions) {
185
- return async (t: Transaction): Promise<void> => {
186
- for (const model of Object.keys(sequelize.models)) {
187
- // We ignore the migration metadata schema
188
- if (!options.includeMetadata && model === 'sequelizeMeta') continue;
189
- const table = sequelize.models[model].tableName;
190
- await sequelize.query(
191
- `TRUNCATE ${table}${process.env.SQL_TYPE === 'postgres' ? ' CASCADE' : ''};`,
192
- {
193
- raw: true,
194
- transaction: t
195
- }
196
- );
197
- }
198
- };
199
- }
1
+ /* eslint-disable @typescript-eslint/no-require-imports */
2
+ // Register ts-node at the top of runMigrations.ts
3
+ require('ts-node/register');
4
+
5
+ import { existsSync, lstatSync } from 'fs';
6
+ import { join } from 'path';
7
+ import { Sequelize, Transaction } from 'sequelize';
8
+ import { Umzug, SequelizeStorage } from 'umzug';
9
+ import { ClearDbOptions, RecreateDbOptions } from './dbMigration.types';
10
+ import { migrateMetadataTable } from './migrateMetadataTable';
11
+ import { SequelizeMeta } from 'db/models';
12
+ import { EngineError } from 'entities/EngineError';
13
+ import { sequelize } from 'entities/Sequelize';
14
+ import { reportDebug } from 'utils/report';
15
+ import { semverCompare } from 'utils/semverCompare';
16
+
17
+ const namespace = 'engine:utils:dbMigration';
18
+
19
+ function getMigrationPaths(): Array<string> | undefined {
20
+ // We look between possibilities for the first directory that exists and matches our expectations
21
+ // First a user specified one, then the production default, then the development default
22
+ const prodDefaultPath = join(process.cwd(), './dist/db/migrations');
23
+ const devDefaultPath = join(process.cwd(), './src/db/migrations');
24
+ const path = [
25
+ process.env.DB_MIGRATIONS_DIR,
26
+ process.env.NODE_ENV === 'prod' ? prodDefaultPath : devDefaultPath
27
+ ].filter((path) => path && existsSync(path) && lstatSync(path).isDirectory());
28
+ reportDebug({
29
+ namespace,
30
+ message: 'Obtaining Umzug migration options',
31
+ data: {
32
+ path,
33
+ prodPath: prodDefaultPath,
34
+ devPath: devDefaultPath,
35
+ customPath: process.env.DB_MIGRATIONS_DIR
36
+ }
37
+ });
38
+ return path.map((p) =>
39
+ process.env.NODE_ENV === 'prod' ? `${p}/*.js` : `${p}/*.ts`
40
+ );
41
+ }
42
+
43
+ /** Run all the non-executed migrations one by one */
44
+ export async function runPendingMigrations(): Promise<void> {
45
+ if (!sequelize)
46
+ throw new EngineError({ message: 'Sequelize is not initialized' });
47
+ // First make sure that the metadata table is up to date
48
+ await migrateMetadataTable(sequelize);
49
+ const migrationPaths = getMigrationPaths();
50
+
51
+ if (!migrationPaths || migrationPaths.length <= 0) {
52
+ reportDebug({
53
+ namespace,
54
+ message: 'No valid migration paths found.',
55
+ data: { migrationPaths }
56
+ });
57
+ return;
58
+ }
59
+
60
+ migrationPaths?.forEach(async (path) => {
61
+ const migrator = new Umzug({
62
+ migrations: {
63
+ glob: path,
64
+ resolve: ({ name, path, context }) => {
65
+ // Use require to import the migration file
66
+ const migration = require(path || '');
67
+ return {
68
+ name,
69
+ up: async () => migration.up(context),
70
+ down: async () => migration.down(context)
71
+ };
72
+ }
73
+ },
74
+ context: sequelize.getQueryInterface(),
75
+ storage: new SequelizeStorage({ sequelize }),
76
+ logger: console
77
+ });
78
+
79
+ reportDebug({
80
+ namespace,
81
+ message: 'Starting pending database migrations',
82
+ data: { path }
83
+ });
84
+ await migrator.up();
85
+ console.log('Db Migration Completed');
86
+ });
87
+ }
88
+
89
+ /** Rollback all migrations up to a specified target version */
90
+ export async function rollbackMigrations(): Promise<void> {
91
+ if (!sequelize)
92
+ throw new EngineError({ message: 'Sequelize is not initialized' });
93
+ if (!process.env.BUILD_ID)
94
+ throw new EngineError({ message: 'BUILD_ID is not defined' });
95
+
96
+ // Fetch executed migrations in ascending order
97
+ const migrations = await SequelizeMeta.findAll({
98
+ order: [['name', 'ASC']],
99
+ raw: true
100
+ });
101
+ const rollbackUntil = migrations.find(
102
+ (migration) =>
103
+ migration.version &&
104
+ semverCompare(migration.version, process.env.BUILD_ID as string) === 1
105
+ );
106
+
107
+ if (!rollbackUntil) {
108
+ reportDebug({
109
+ namespace,
110
+ message: 'No rollback target found for the current BUILD_ID.',
111
+ data: { buildId: process.env.BUILD_ID }
112
+ });
113
+ return;
114
+ }
115
+
116
+ const migrationPaths = getMigrationPaths();
117
+
118
+ if (!migrationPaths || migrationPaths.length <= 0) {
119
+ reportDebug({
120
+ namespace,
121
+ message: 'No valid migration paths found for rollback.',
122
+ data: { migrationPaths }
123
+ });
124
+ return;
125
+ }
126
+
127
+ migrationPaths.forEach(async (path) => {
128
+ const migrator = new Umzug({
129
+ migrations: {
130
+ glob: path,
131
+ resolve: ({ name, path, context }) => {
132
+ const migration = require(path || '');
133
+ return {
134
+ name,
135
+ up: async () => migration.up(context),
136
+ down: async () => migration.down(context)
137
+ };
138
+ }
139
+ },
140
+ context: sequelize.getQueryInterface(),
141
+ storage: new SequelizeStorage({ sequelize }),
142
+ logger: console
143
+ });
144
+
145
+ reportDebug({
146
+ namespace,
147
+ message: `Rolling back migrations up to: ${rollbackUntil.name}`,
148
+ data: { path }
149
+ });
150
+
151
+ await migrator.down({ to: rollbackUntil.name });
152
+ });
153
+ }
154
+
155
+ /**
156
+ * Recreate the whole database
157
+ * Quick way to make sure that we are working on a clean database
158
+ * /!\ Should only be used when running tests
159
+ */
160
+ export async function testRecreateDB(
161
+ options: RecreateDbOptions = {}
162
+ ): Promise<void> {
163
+ if (!sequelize)
164
+ throw new EngineError({ message: 'Sequelize is not initialized' });
165
+ await sequelize.query(
166
+ `DROP SCHEMA public${process.env.SQL_TYPE === 'postgres' ? ' CASCADE' : ''}`
167
+ );
168
+ await sequelize.query(`CREATE SCHEMA public`);
169
+ if (!options.clean) await runPendingMigrations();
170
+ }
171
+
172
+ /**
173
+ * Empty all the schemas in the database
174
+ * Quick way to flush the database data while keep the structure
175
+ * /!\ Should only be used when running tests
176
+ */
177
+ export async function testClearDB(options: ClearDbOptions = {}): Promise<void> {
178
+ if (!sequelize)
179
+ throw new EngineError({ message: 'Sequelize is not initialized' });
180
+ await sequelize.transaction(clearDbTransaction(sequelize, options));
181
+ }
182
+
183
+ /** DB clearing transaction */
184
+ function clearDbTransaction(sequelize: Sequelize, options: ClearDbOptions) {
185
+ return async (t: Transaction): Promise<void> => {
186
+ for (const model of Object.keys(sequelize.models)) {
187
+ // We ignore the migration metadata schema
188
+ if (!options.includeMetadata && model === 'sequelizeMeta') continue;
189
+ const table = sequelize.models[model].tableName;
190
+ await sequelize.query(
191
+ `TRUNCATE ${table}${process.env.SQL_TYPE === 'postgres' ? ' CASCADE' : ''};`,
192
+ {
193
+ raw: true,
194
+ transaction: t
195
+ }
196
+ );
197
+ }
198
+ };
199
+ }
@@ -1,11 +1,11 @@
1
- /** Options to recreate the database */
2
- export interface RecreateDbOptions {
3
- /** Do not run the migrations, leave the DB empty */
4
- clean?: boolean;
5
- }
6
-
7
- /** Options to clear the database */
8
- export interface ClearDbOptions {
9
- /** Also truncate the migration metadata table. This should only be used when testing on the metadata table itself */
10
- includeMetadata?: boolean;
11
- }
1
+ /** Options to recreate the database */
2
+ export interface RecreateDbOptions {
3
+ /** Do not run the migrations, leave the DB empty */
4
+ clean?: boolean;
5
+ }
6
+
7
+ /** Options to clear the database */
8
+ export interface ClearDbOptions {
9
+ /** Also truncate the migration metadata table. This should only be used when testing on the metadata table itself */
10
+ includeMetadata?: boolean;
11
+ }
@@ -1,2 +1,2 @@
1
- export * from './dbMigration';
2
- export * from './dbMigration.types';
1
+ export * from './dbMigration';
2
+ export * from './dbMigration.types';
@@ -1 +1 @@
1
- export * from './migrateMetadataTable';
1
+ export * from './migrateMetadataTable';
@@ -1,59 +1,59 @@
1
- // import {expect} from 'chai';
2
- // import { faker } from '@faker-js/faker';
3
- // import {QueryTypes} from 'sequelize';
4
- // import {testRecreateDB} from '../dbMigration';
5
- // import {migrateMetadataTable} from './migrateMetadataTable';
6
- // import {sequelize} from 'entities/Sequelize';
7
-
8
- // describe('Utils - DB Migration - Migrate Metadata Table', function () {
9
- // before(async () => {
10
- // sequelize.init();
11
- // await testRecreateDB({clean: true});
12
- // });
13
-
14
- // afterEach(async () => {
15
- // await testRecreateDB({clean: true});
16
- // });
17
-
18
- // // it('should create the metadata table if it does not exist', async () => {
19
- // // await migrateMetadataTable(sequelize);
20
-
21
- // // const tables = await sequelize.query<[string]>(
22
- // // "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'",
23
- // // {type: QueryTypes.SELECT},
24
- // // );
25
- // // const hasTable = tables.some((table) => table[0] === 'sequelize_meta');
26
- // // expect(hasTable).to.be.true;
27
- // // });
28
-
29
- // it('should copy legacy table data to the new table', async () => {
30
- // await sequelize.query('CREATE TABLE SequelizeMeta (name varchar(100) PRIMARY KEY)', {
31
- // type: QueryTypes.RAW,
32
- // });
33
-
34
- // const migrations = [faker.lorem.word(), faker.lorem.word(), faker.lorem.word()];
35
- // await sequelize.query(
36
- // `INSERT INTO "SequelizeMeta" ("name") VALUES ('${migrations[0]}'), ('${migrations[1]}'), ('${migrations[2]}')`,
37
- // {
38
- // type: QueryTypes.RAW,
39
- // },
40
- // );
41
-
42
- // await migrateMetadataTable(sequelize);
43
-
44
- // const results = await sequelize.query<{
45
- // /** Name of the migration */
46
- // name: string;
47
- // /** Version at which the migration was executed */
48
- // version: string;
49
- // }>('SELECT * FROM sequelize_meta', {
50
- // type: QueryTypes.SELECT,
51
- // });
52
-
53
- // expect(results).to.have.length(3);
54
- // results.forEach((result) => {
55
- // expect(migrations).to.include(result.name);
56
- // expect(result.version).to.be.null;
57
- // });
58
- // });
59
- // });
1
+ // import {expect} from 'chai';
2
+ // import { faker } from '@faker-js/faker';
3
+ // import {QueryTypes} from 'sequelize';
4
+ // import {testRecreateDB} from '../dbMigration';
5
+ // import {migrateMetadataTable} from './migrateMetadataTable';
6
+ // import {sequelize} from 'entities/Sequelize';
7
+
8
+ // describe('Utils - DB Migration - Migrate Metadata Table', function () {
9
+ // before(async () => {
10
+ // sequelize.init();
11
+ // await testRecreateDB({clean: true});
12
+ // });
13
+
14
+ // afterEach(async () => {
15
+ // await testRecreateDB({clean: true});
16
+ // });
17
+
18
+ // // it('should create the metadata table if it does not exist', async () => {
19
+ // // await migrateMetadataTable(sequelize);
20
+
21
+ // // const tables = await sequelize.query<[string]>(
22
+ // // "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'",
23
+ // // {type: QueryTypes.SELECT},
24
+ // // );
25
+ // // const hasTable = tables.some((table) => table[0] === 'sequelize_meta');
26
+ // // expect(hasTable).to.be.true;
27
+ // // });
28
+
29
+ // it('should copy legacy table data to the new table', async () => {
30
+ // await sequelize.query('CREATE TABLE SequelizeMeta (name varchar(100) PRIMARY KEY)', {
31
+ // type: QueryTypes.RAW,
32
+ // });
33
+
34
+ // const migrations = [faker.lorem.word(), faker.lorem.word(), faker.lorem.word()];
35
+ // await sequelize.query(
36
+ // `INSERT INTO "SequelizeMeta" ("name") VALUES ('${migrations[0]}'), ('${migrations[1]}'), ('${migrations[2]}')`,
37
+ // {
38
+ // type: QueryTypes.RAW,
39
+ // },
40
+ // );
41
+
42
+ // await migrateMetadataTable(sequelize);
43
+
44
+ // const results = await sequelize.query<{
45
+ // /** Name of the migration */
46
+ // name: string;
47
+ // /** Version at which the migration was executed */
48
+ // version: string;
49
+ // }>('SELECT * FROM sequelize_meta', {
50
+ // type: QueryTypes.SELECT,
51
+ // });
52
+
53
+ // expect(results).to.have.length(3);
54
+ // results.forEach((result) => {
55
+ // expect(migrations).to.include(result.name);
56
+ // expect(result.version).to.be.null;
57
+ // });
58
+ // });
59
+ // });