equipped 5.2.9 → 5.3.0-alpha.0

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 (779) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/README.md +362 -34
  3. package/dist/cjs/cache/adapters/in-memory/index.cjs +824 -0
  4. package/dist/cjs/cache/adapters/in-memory/index.cjs.map +1 -0
  5. package/dist/cjs/cache/adapters/in-memory/index.min.cjs +4 -0
  6. package/dist/cjs/cache/adapters/in-memory/index.min.cjs.map +1 -0
  7. package/dist/cjs/cache/adapters/redis/index.cjs +844 -0
  8. package/dist/cjs/cache/adapters/redis/index.cjs.map +1 -0
  9. package/dist/cjs/cache/adapters/redis/index.min.cjs +4 -0
  10. package/dist/cjs/cache/adapters/redis/index.min.cjs.map +1 -0
  11. package/dist/cjs/cache/index.cjs +602 -4
  12. package/dist/cjs/cache/index.cjs.map +1 -1
  13. package/dist/cjs/cache/index.min.cjs +3 -1
  14. package/dist/cjs/cache/index.min.cjs.map +1 -1
  15. package/dist/cjs/dbs/adapters/mongodb/index.cjs +1314 -0
  16. package/dist/cjs/dbs/adapters/mongodb/index.cjs.map +1 -0
  17. package/dist/cjs/dbs/adapters/mongodb/index.min.cjs +4 -0
  18. package/dist/cjs/dbs/adapters/mongodb/index.min.cjs.map +1 -0
  19. package/dist/cjs/dbs/index.cjs +965 -6
  20. package/dist/cjs/dbs/index.cjs.map +1 -1
  21. package/dist/cjs/dbs/index.min.cjs +3 -1
  22. package/dist/cjs/dbs/index.min.cjs.map +1 -1
  23. package/dist/cjs/errors/index.cjs +127 -8
  24. package/dist/cjs/errors/index.cjs.map +1 -1
  25. package/dist/cjs/errors/index.min.cjs +1 -1
  26. package/dist/cjs/errors/index.min.cjs.map +1 -1
  27. package/dist/cjs/events/adapters/kafka/index.cjs +845 -0
  28. package/dist/cjs/events/adapters/kafka/index.cjs.map +1 -0
  29. package/dist/cjs/events/adapters/kafka/index.min.cjs +4 -0
  30. package/dist/cjs/events/adapters/kafka/index.min.cjs.map +1 -0
  31. package/dist/cjs/events/adapters/rabbitmq/index.cjs +836 -0
  32. package/dist/cjs/events/adapters/rabbitmq/index.cjs.map +1 -0
  33. package/dist/cjs/events/adapters/rabbitmq/index.min.cjs +4 -0
  34. package/dist/cjs/events/adapters/rabbitmq/index.min.cjs.map +1 -0
  35. package/dist/cjs/events/index.cjs +33 -4
  36. package/dist/cjs/events/index.cjs.map +1 -1
  37. package/dist/cjs/events/index.min.cjs +1 -1
  38. package/dist/cjs/events/index.min.cjs.map +1 -1
  39. package/dist/cjs/index.cjs +588 -1
  40. package/dist/cjs/index.cjs.map +1 -1
  41. package/dist/cjs/index.min.cjs +3 -1
  42. package/dist/cjs/index.min.cjs.map +1 -1
  43. package/dist/cjs/instance/index.cjs +514 -64
  44. package/dist/cjs/instance/index.cjs.map +1 -1
  45. package/dist/cjs/instance/index.min.cjs +3 -3
  46. package/dist/cjs/instance/index.min.cjs.map +1 -1
  47. package/dist/cjs/jobs/adapters/redis/index.cjs +979 -0
  48. package/dist/cjs/jobs/adapters/redis/index.cjs.map +1 -0
  49. package/dist/cjs/jobs/adapters/redis/index.min.cjs +4 -0
  50. package/dist/cjs/jobs/adapters/redis/index.min.cjs.map +1 -0
  51. package/dist/cjs/jobs/index.cjs +55 -2
  52. package/dist/cjs/jobs/index.cjs.map +1 -1
  53. package/dist/cjs/jobs/index.min.cjs +1 -1
  54. package/dist/cjs/jobs/index.min.cjs.map +1 -1
  55. package/dist/cjs/orm/adapters/in-memory/index.cjs +2551 -0
  56. package/dist/cjs/orm/adapters/in-memory/index.cjs.map +1 -0
  57. package/dist/cjs/orm/adapters/in-memory/index.min.cjs +4 -0
  58. package/dist/cjs/orm/adapters/in-memory/index.min.cjs.map +1 -0
  59. package/dist/cjs/orm/adapters/json/index.cjs +3518 -0
  60. package/dist/cjs/orm/adapters/json/index.cjs.map +1 -0
  61. package/dist/cjs/orm/adapters/json/index.min.cjs +4 -0
  62. package/dist/cjs/orm/adapters/json/index.min.cjs.map +1 -0
  63. package/dist/cjs/orm/adapters/mongodb/index.cjs +3299 -0
  64. package/dist/cjs/orm/adapters/mongodb/index.cjs.map +1 -0
  65. package/dist/cjs/orm/adapters/mongodb/index.min.cjs +4 -0
  66. package/dist/cjs/orm/adapters/mongodb/index.min.cjs.map +1 -0
  67. package/dist/cjs/orm/adapters/postgresql/index.cjs +4114 -0
  68. package/dist/cjs/orm/adapters/postgresql/index.cjs.map +1 -0
  69. package/dist/cjs/orm/adapters/postgresql/index.min.cjs +49 -0
  70. package/dist/cjs/orm/adapters/postgresql/index.min.cjs.map +1 -0
  71. package/dist/cjs/orm/index.cjs +9216 -0
  72. package/dist/cjs/orm/index.cjs.map +1 -0
  73. package/dist/cjs/orm/index.min.cjs +4 -0
  74. package/dist/cjs/orm/index.min.cjs.map +1 -0
  75. package/dist/cjs/server/adapters/express/index.cjs +1705 -0
  76. package/dist/cjs/server/adapters/express/index.cjs.map +1 -0
  77. package/dist/cjs/server/adapters/express/index.min.cjs +32 -0
  78. package/dist/cjs/server/adapters/express/index.min.cjs.map +1 -0
  79. package/dist/cjs/server/adapters/fastify/index.cjs +1709 -0
  80. package/dist/cjs/server/adapters/fastify/index.cjs.map +1 -0
  81. package/dist/cjs/server/adapters/fastify/index.min.cjs +32 -0
  82. package/dist/cjs/server/adapters/fastify/index.min.cjs.map +1 -0
  83. package/dist/cjs/server/index.cjs +1600 -9
  84. package/dist/cjs/server/index.cjs.map +1 -1
  85. package/dist/cjs/server/index.min.cjs +31 -1
  86. package/dist/cjs/server/index.min.cjs.map +1 -1
  87. package/dist/cjs/types/index.cjs +18 -1
  88. package/dist/cjs/types/index.cjs.map +1 -1
  89. package/dist/cjs/types/index.min.cjs +1 -1
  90. package/dist/cjs/types/index.min.cjs.map +1 -1
  91. package/dist/cjs/utilities/index.cjs +862 -7
  92. package/dist/cjs/utilities/index.cjs.map +1 -1
  93. package/dist/cjs/utilities/index.min.cjs +3 -1
  94. package/dist/cjs/utilities/index.min.cjs.map +1 -1
  95. package/dist/cjs/validations/index.cjs +679 -10
  96. package/dist/cjs/validations/index.cjs.map +1 -1
  97. package/dist/cjs/validations/index.min.cjs +3 -1
  98. package/dist/cjs/validations/index.min.cjs.map +1 -1
  99. package/dist/esm/cache/adapters/in-memory/index.min.mjs +2 -0
  100. package/dist/esm/cache/adapters/in-memory/index.min.mjs.map +1 -0
  101. package/dist/esm/cache/adapters/in-memory/index.mjs +93 -0
  102. package/dist/esm/cache/adapters/in-memory/index.mjs.map +1 -0
  103. package/dist/esm/cache/adapters/redis/index.min.mjs +2 -0
  104. package/dist/esm/cache/adapters/redis/index.mjs +13 -0
  105. package/dist/esm/cache/index.min.mjs +1 -1
  106. package/dist/esm/cache/index.min.mjs.map +1 -1
  107. package/dist/esm/cache/index.mjs +9 -4
  108. package/dist/esm/cache/index.mjs.map +1 -1
  109. package/dist/esm/chunk-2TCFNKRZ.mjs +1824 -0
  110. package/dist/esm/chunk-2TCFNKRZ.mjs.map +1 -0
  111. package/dist/esm/chunk-6DW4GW3R.min.mjs +2 -0
  112. package/dist/esm/chunk-6DW4GW3R.min.mjs.map +1 -0
  113. package/dist/esm/chunk-6SB5M4XH.mjs +795 -0
  114. package/dist/esm/chunk-6SB5M4XH.mjs.map +1 -0
  115. package/dist/esm/chunk-AQY7QVYI.min.mjs +2 -0
  116. package/dist/esm/chunk-AUKXL4EA.min.mjs +2 -0
  117. package/dist/esm/chunk-AUKXL4EA.min.mjs.map +1 -0
  118. package/dist/esm/chunk-BJNIUCPT.min.mjs +2 -0
  119. package/dist/esm/chunk-BJNIUCPT.min.mjs.map +1 -0
  120. package/dist/esm/chunk-DKPZJIIR.mjs +29 -0
  121. package/dist/esm/chunk-DKPZJIIR.mjs.map +1 -0
  122. package/dist/esm/chunk-DSUJ5FUL.min.mjs +2 -0
  123. package/dist/esm/chunk-DSUJ5FUL.min.mjs.map +1 -0
  124. package/dist/esm/chunk-ECBJ3NT3.min.mjs +2 -0
  125. package/dist/esm/chunk-ECBJ3NT3.min.mjs.map +1 -0
  126. package/dist/{types/events/types/kafka.js → esm/chunk-I4BB436E.mjs} +60 -37
  127. package/dist/esm/chunk-I4BB436E.mjs.map +1 -0
  128. package/dist/esm/chunk-IEBC3OWN.mjs +22 -0
  129. package/dist/esm/chunk-IEBC3OWN.mjs.map +1 -0
  130. package/dist/esm/chunk-J5LGTIGS.mjs +10 -0
  131. package/dist/esm/chunk-KW3PBDFD.mjs +53 -0
  132. package/dist/esm/chunk-KW3PBDFD.mjs.map +1 -0
  133. package/dist/esm/chunk-LTDVZJYJ.min.mjs +32 -0
  134. package/dist/esm/chunk-LTDVZJYJ.min.mjs.map +1 -0
  135. package/dist/esm/chunk-MYGAF2AC.min.mjs +2 -0
  136. package/dist/esm/chunk-MYGAF2AC.min.mjs.map +1 -0
  137. package/dist/esm/chunk-OXI6IKAM.min.mjs +2 -0
  138. package/dist/esm/chunk-OXI6IKAM.min.mjs.map +1 -0
  139. package/dist/esm/chunk-RIRBNBTC.mjs +113 -0
  140. package/dist/esm/chunk-RIRBNBTC.mjs.map +1 -0
  141. package/dist/esm/chunk-TWKHVLLT.mjs +1280 -0
  142. package/dist/esm/chunk-TWKHVLLT.mjs.map +1 -0
  143. package/dist/esm/chunk-VCCS7CAI.mjs +8 -0
  144. package/dist/esm/chunk-VCCS7CAI.mjs.map +1 -0
  145. package/dist/esm/chunk-WHIWTP2Z.min.mjs +2 -0
  146. package/dist/esm/chunk-WHIWTP2Z.min.mjs.map +1 -0
  147. package/dist/esm/chunk-YTHRK2PO.mjs +126 -0
  148. package/dist/esm/chunk-YTHRK2PO.mjs.map +1 -0
  149. package/dist/esm/chunk-YTM6ZURZ.min.mjs +2 -0
  150. package/dist/esm/chunk-YTM6ZURZ.min.mjs.map +1 -0
  151. package/dist/esm/dbs/adapters/mongodb/index.min.mjs +2 -0
  152. package/dist/esm/dbs/adapters/mongodb/index.min.mjs.map +1 -0
  153. package/dist/esm/dbs/adapters/mongodb/index.mjs +419 -0
  154. package/dist/esm/dbs/adapters/mongodb/index.mjs.map +1 -0
  155. package/dist/esm/dbs/index.min.mjs +1 -1
  156. package/dist/esm/dbs/index.min.mjs.map +1 -1
  157. package/dist/esm/dbs/index.mjs +22 -6
  158. package/dist/esm/dbs/index.mjs.map +1 -1
  159. package/dist/esm/errors/index.min.mjs +1 -1
  160. package/dist/esm/errors/index.min.mjs.map +1 -1
  161. package/dist/esm/errors/index.mjs +22 -8
  162. package/dist/esm/errors/index.mjs.map +1 -1
  163. package/dist/esm/events/adapters/kafka/index.min.mjs +2 -0
  164. package/dist/esm/events/adapters/kafka/index.min.mjs.map +1 -0
  165. package/dist/esm/events/adapters/kafka/index.mjs +12 -0
  166. package/dist/esm/events/adapters/kafka/index.mjs.map +1 -0
  167. package/dist/esm/events/adapters/rabbitmq/index.min.mjs +2 -0
  168. package/dist/esm/events/adapters/rabbitmq/index.min.mjs.map +1 -0
  169. package/dist/esm/events/adapters/rabbitmq/index.mjs +92 -0
  170. package/dist/esm/events/adapters/rabbitmq/index.mjs.map +1 -0
  171. package/dist/esm/events/index.min.mjs +1 -1
  172. package/dist/esm/events/index.min.mjs.map +1 -1
  173. package/dist/esm/events/index.mjs +7 -4
  174. package/dist/esm/events/index.mjs.map +1 -1
  175. package/dist/esm/index.min.mjs +1 -1
  176. package/dist/esm/index.min.mjs.map +1 -1
  177. package/dist/esm/index.mjs +8 -1
  178. package/dist/esm/index.mjs.map +1 -1
  179. package/dist/esm/instance/index.min.mjs +1 -3
  180. package/dist/esm/instance/index.min.mjs.map +1 -1
  181. package/dist/esm/instance/index.mjs +4 -132
  182. package/dist/esm/instance/index.mjs.map +1 -1
  183. package/dist/esm/introspection-GP3G26B6.min.mjs +2 -0
  184. package/dist/esm/introspection-GP3G26B6.min.mjs.map +1 -0
  185. package/dist/esm/introspection-Y7EXSYPD.mjs +10 -0
  186. package/dist/esm/introspection-Y7EXSYPD.mjs.map +1 -0
  187. package/dist/esm/jobs/adapters/redis/index.min.mjs +2 -0
  188. package/dist/esm/jobs/adapters/redis/index.min.mjs.map +1 -0
  189. package/dist/esm/jobs/{types/redis.mjs → adapters/redis/index.mjs} +71 -56
  190. package/dist/esm/jobs/adapters/redis/index.mjs.map +1 -0
  191. package/dist/esm/jobs/index.min.mjs +1 -1
  192. package/dist/esm/jobs/index.min.mjs.map +1 -1
  193. package/dist/esm/jobs/index.mjs +9 -2
  194. package/dist/esm/jobs/index.mjs.map +1 -1
  195. package/dist/esm/orm/adapters/in-memory/index.min.mjs +2 -0
  196. package/dist/esm/orm/adapters/in-memory/index.min.mjs.map +1 -0
  197. package/dist/esm/orm/adapters/in-memory/index.mjs +11 -0
  198. package/dist/esm/orm/adapters/in-memory/index.mjs.map +1 -0
  199. package/dist/esm/orm/adapters/json/index.min.mjs +2 -0
  200. package/dist/esm/orm/adapters/json/index.min.mjs.map +1 -0
  201. package/dist/esm/orm/adapters/json/index.mjs +980 -0
  202. package/dist/esm/orm/adapters/json/index.mjs.map +1 -0
  203. package/dist/esm/orm/adapters/mongodb/index.min.mjs +2 -0
  204. package/dist/esm/orm/adapters/mongodb/index.min.mjs.map +1 -0
  205. package/dist/esm/orm/adapters/mongodb/index.mjs +1539 -0
  206. package/dist/esm/orm/adapters/mongodb/index.mjs.map +1 -0
  207. package/dist/esm/orm/adapters/postgresql/index.min.mjs +47 -0
  208. package/dist/esm/orm/adapters/postgresql/index.min.mjs.map +1 -0
  209. package/dist/esm/orm/adapters/postgresql/index.mjs +2070 -0
  210. package/dist/esm/orm/adapters/postgresql/index.mjs.map +1 -0
  211. package/dist/esm/orm/index.min.mjs +2 -0
  212. package/dist/esm/orm/index.min.mjs.map +1 -0
  213. package/dist/esm/orm/index.mjs +7326 -0
  214. package/dist/esm/orm/index.mjs.map +1 -0
  215. package/dist/esm/server/adapters/express/index.min.mjs +2 -0
  216. package/dist/esm/server/adapters/express/index.min.mjs.map +1 -0
  217. package/dist/esm/server/adapters/express/index.mjs +126 -0
  218. package/dist/esm/server/adapters/express/index.mjs.map +1 -0
  219. package/dist/esm/server/adapters/fastify/index.min.mjs +2 -0
  220. package/dist/esm/server/adapters/fastify/index.min.mjs.map +1 -0
  221. package/dist/{types/server/impls/fastify.js → esm/server/adapters/fastify/index.mjs} +56 -45
  222. package/dist/esm/server/adapters/fastify/index.mjs.map +1 -0
  223. package/dist/esm/server/index.min.mjs +1 -1
  224. package/dist/esm/server/index.min.mjs.map +1 -1
  225. package/dist/esm/server/index.mjs +38 -9
  226. package/dist/esm/server/index.mjs.map +1 -1
  227. package/dist/esm/types/index.min.mjs +0 -1
  228. package/dist/esm/types/index.min.mjs.map +1 -1
  229. package/dist/esm/types/index.mjs +0 -1
  230. package/dist/esm/types/index.mjs.map +1 -1
  231. package/dist/esm/utilities/index.min.mjs +1 -1
  232. package/dist/esm/utilities/index.min.mjs.map +1 -1
  233. package/dist/esm/utilities/index.mjs +22 -9
  234. package/dist/esm/utilities/index.mjs.map +1 -1
  235. package/dist/esm/validations/index.min.mjs +1 -1
  236. package/dist/esm/validations/index.min.mjs.map +1 -1
  237. package/dist/esm/validations/index.mjs +8 -18
  238. package/dist/esm/validations/index.mjs.map +1 -1
  239. package/dist/types/adapter-Coap9ISX.d.ts +1435 -0
  240. package/dist/types/{fastify-DLPUK3vD.d.ts → base-3PpBAx1K.d.ts} +58 -143
  241. package/dist/types/cache/adapters/in-memory/index.d.ts +21 -0
  242. package/dist/types/cache/adapters/in-memory/index.js +92 -0
  243. package/dist/types/cache/adapters/redis/index.d.ts +73 -0
  244. package/dist/types/cache/adapters/redis/index.js +12 -0
  245. package/dist/types/cache/index.d.ts +2 -42
  246. package/dist/types/cache/index.js +9 -4
  247. package/dist/types/chunk-32DMHN3G.js +1823 -0
  248. package/dist/types/chunk-4LRJJSGG.js +112 -0
  249. package/dist/types/chunk-A2MRYMCA.js +1279 -0
  250. package/dist/types/chunk-H6JBLKX5.js +794 -0
  251. package/dist/{esm/events/types/kafka.mjs → types/chunk-IAHTILKJ.js} +59 -38
  252. package/dist/types/chunk-JZ2JTENY.js +125 -0
  253. package/dist/types/chunk-KZKFYO4V.js +7 -0
  254. package/dist/types/chunk-LN3A6R4Y.js +28 -0
  255. package/dist/types/chunk-LWUMIHL4.js +21 -0
  256. package/dist/types/chunk-MLKGABMK.js +9 -0
  257. package/dist/types/chunk-XOU2A2Y6.js +52 -0
  258. package/dist/types/{core-BrkNSwvc.d.ts → core-tNlIMH9Y.d.ts} +48 -38
  259. package/dist/types/dbs/adapters/mongodb/index.d.ts +43 -0
  260. package/dist/types/dbs/adapters/mongodb/index.js +418 -0
  261. package/dist/types/dbs/index.d.ts +14 -12
  262. package/dist/types/dbs/index.js +22 -6
  263. package/dist/types/equippedError-Cmo60Kn-.d.ts +8 -0
  264. package/dist/types/errors/index.d.ts +3 -3
  265. package/dist/types/errors/index.js +22 -8
  266. package/dist/types/events/adapters/kafka/index.d.ts +83 -0
  267. package/dist/types/events/adapters/kafka/index.js +11 -0
  268. package/dist/types/events/adapters/rabbitmq/index.d.ts +41 -0
  269. package/dist/types/events/adapters/rabbitmq/index.js +91 -0
  270. package/dist/types/events/index.d.ts +11 -11
  271. package/dist/types/events/index.js +7 -4
  272. package/dist/types/index.d.ts +2 -25
  273. package/dist/types/index.js +8 -1
  274. package/dist/types/instance/index.d.ts +12 -179
  275. package/dist/types/instance/index.js +4 -132
  276. package/dist/types/introspection-ZQCAW254.js +9 -0
  277. package/dist/types/jobs/adapters/redis/index.d.ts +93 -0
  278. package/dist/types/jobs/{types/redis.js → adapters/redis/index.js} +70 -55
  279. package/dist/types/jobs/index.d.ts +19 -35
  280. package/dist/types/jobs/index.js +9 -2
  281. package/dist/types/orm/adapters/in-memory/index.d.ts +92 -0
  282. package/dist/types/orm/adapters/in-memory/index.js +10 -0
  283. package/dist/types/orm/adapters/json/index.d.ts +72 -0
  284. package/dist/types/orm/adapters/json/index.js +979 -0
  285. package/dist/types/orm/adapters/mongodb/index.d.ts +74 -0
  286. package/dist/types/orm/adapters/mongodb/index.js +1538 -0
  287. package/dist/types/orm/adapters/postgresql/index.d.ts +112 -0
  288. package/dist/types/orm/adapters/postgresql/index.js +2069 -0
  289. package/dist/types/orm/index.d.ts +160 -0
  290. package/dist/types/orm/index.js +7325 -0
  291. package/dist/types/{requestError-C2PNWUrt.d.ts → requestError-DdaL8hc3.d.ts} +2 -8
  292. package/dist/types/server/adapters/express/index.d.ts +194 -0
  293. package/dist/types/server/adapters/express/index.js +125 -0
  294. package/dist/types/server/adapters/fastify/index.d.ts +219 -0
  295. package/dist/{esm/server/impls/fastify.mjs → types/server/adapters/fastify/index.js} +55 -46
  296. package/dist/types/server/index.d.ts +10 -11
  297. package/dist/types/server/index.js +38 -9
  298. package/dist/types/types/index.js +0 -1
  299. package/dist/types/utilities/index.d.ts +22 -9
  300. package/dist/types/utilities/index.js +22 -9
  301. package/dist/types/{validationError-Bw8OYv5s.d.ts → validationError-oigtHqBi.d.ts} +1 -1
  302. package/dist/types/validations/index.d.ts +3 -2
  303. package/dist/types/validations/index.js +8 -18
  304. package/package.json +154 -15
  305. package/dist/cjs/audit/events.cjs +0 -101
  306. package/dist/cjs/audit/events.cjs.map +0 -1
  307. package/dist/cjs/audit/events.min.cjs +0 -2
  308. package/dist/cjs/audit/events.min.cjs.map +0 -1
  309. package/dist/cjs/audit/index.cjs +0 -2
  310. package/dist/cjs/audit/index.cjs.map +0 -1
  311. package/dist/cjs/audit/index.min.cjs +0 -2
  312. package/dist/cjs/audit/index.min.cjs.map +0 -1
  313. package/dist/cjs/cache/base.cjs +0 -6
  314. package/dist/cjs/cache/base.cjs.map +0 -1
  315. package/dist/cjs/cache/base.min.cjs +0 -2
  316. package/dist/cjs/cache/base.min.cjs.map +0 -1
  317. package/dist/cjs/cache/pipes.cjs +0 -16
  318. package/dist/cjs/cache/pipes.cjs.map +0 -1
  319. package/dist/cjs/cache/pipes.min.cjs +0 -2
  320. package/dist/cjs/cache/pipes.min.cjs.map +0 -1
  321. package/dist/cjs/cache/types/in-memory.cjs +0 -47
  322. package/dist/cjs/cache/types/in-memory.cjs.map +0 -1
  323. package/dist/cjs/cache/types/in-memory.min.cjs +0 -2
  324. package/dist/cjs/cache/types/in-memory.min.cjs.map +0 -1
  325. package/dist/cjs/cache/types/redis.cjs +0 -55
  326. package/dist/cjs/cache/types/redis.cjs.map +0 -1
  327. package/dist/cjs/cache/types/redis.min.cjs +0 -2
  328. package/dist/cjs/cache/types/redis.min.cjs.map +0 -1
  329. package/dist/cjs/dbs/base/changes.cjs +0 -36
  330. package/dist/cjs/dbs/base/changes.cjs.map +0 -1
  331. package/dist/cjs/dbs/base/changes.min.cjs +0 -2
  332. package/dist/cjs/dbs/base/changes.min.cjs.map +0 -1
  333. package/dist/cjs/dbs/base/core.cjs +0 -1
  334. package/dist/cjs/dbs/base/core.cjs.map +0 -1
  335. package/dist/cjs/dbs/base/core.min.cjs +0 -1
  336. package/dist/cjs/dbs/base/core.min.cjs.map +0 -1
  337. package/dist/cjs/dbs/base/db.cjs +0 -14
  338. package/dist/cjs/dbs/base/db.cjs.map +0 -1
  339. package/dist/cjs/dbs/base/db.min.cjs +0 -2
  340. package/dist/cjs/dbs/base/db.min.cjs.map +0 -1
  341. package/dist/cjs/dbs/base/types.cjs +0 -2
  342. package/dist/cjs/dbs/base/types.cjs.map +0 -1
  343. package/dist/cjs/dbs/base/types.min.cjs +0 -2
  344. package/dist/cjs/dbs/base/types.min.cjs.map +0 -1
  345. package/dist/cjs/dbs/mongo/changes.cjs +0 -81
  346. package/dist/cjs/dbs/mongo/changes.cjs.map +0 -1
  347. package/dist/cjs/dbs/mongo/changes.min.cjs +0 -2
  348. package/dist/cjs/dbs/mongo/changes.min.cjs.map +0 -1
  349. package/dist/cjs/dbs/mongo/db.cjs +0 -225
  350. package/dist/cjs/dbs/mongo/db.cjs.map +0 -1
  351. package/dist/cjs/dbs/mongo/db.min.cjs +0 -2
  352. package/dist/cjs/dbs/mongo/db.min.cjs.map +0 -1
  353. package/dist/cjs/dbs/mongo/query.cjs +0 -66
  354. package/dist/cjs/dbs/mongo/query.cjs.map +0 -1
  355. package/dist/cjs/dbs/mongo/query.min.cjs +0 -2
  356. package/dist/cjs/dbs/mongo/query.min.cjs.map +0 -1
  357. package/dist/cjs/dbs/pipes.cjs +0 -104
  358. package/dist/cjs/dbs/pipes.cjs.map +0 -1
  359. package/dist/cjs/dbs/pipes.min.cjs +0 -2
  360. package/dist/cjs/dbs/pipes.min.cjs.map +0 -1
  361. package/dist/cjs/errors/equippedError.cjs +0 -12
  362. package/dist/cjs/errors/equippedError.cjs.map +0 -1
  363. package/dist/cjs/errors/equippedError.min.cjs +0 -2
  364. package/dist/cjs/errors/equippedError.min.cjs.map +0 -1
  365. package/dist/cjs/errors/requestError.cjs +0 -12
  366. package/dist/cjs/errors/requestError.cjs.map +0 -1
  367. package/dist/cjs/errors/requestError.min.cjs +0 -2
  368. package/dist/cjs/errors/requestError.min.cjs.map +0 -1
  369. package/dist/cjs/errors/types/badRequestError.cjs +0 -12
  370. package/dist/cjs/errors/types/badRequestError.cjs.map +0 -1
  371. package/dist/cjs/errors/types/badRequestError.min.cjs +0 -2
  372. package/dist/cjs/errors/types/badRequestError.min.cjs.map +0 -1
  373. package/dist/cjs/errors/types/notAuthenticatedError.cjs +0 -12
  374. package/dist/cjs/errors/types/notAuthenticatedError.cjs.map +0 -1
  375. package/dist/cjs/errors/types/notAuthenticatedError.min.cjs +0 -2
  376. package/dist/cjs/errors/types/notAuthenticatedError.min.cjs.map +0 -1
  377. package/dist/cjs/errors/types/notAuthorizedError.cjs +0 -12
  378. package/dist/cjs/errors/types/notAuthorizedError.cjs.map +0 -1
  379. package/dist/cjs/errors/types/notAuthorizedError.min.cjs +0 -2
  380. package/dist/cjs/errors/types/notAuthorizedError.min.cjs.map +0 -1
  381. package/dist/cjs/errors/types/notFoundError.cjs +0 -12
  382. package/dist/cjs/errors/types/notFoundError.cjs.map +0 -1
  383. package/dist/cjs/errors/types/notFoundError.min.cjs +0 -2
  384. package/dist/cjs/errors/types/notFoundError.min.cjs.map +0 -1
  385. package/dist/cjs/errors/types/tokenExpired.cjs +0 -12
  386. package/dist/cjs/errors/types/tokenExpired.cjs.map +0 -1
  387. package/dist/cjs/errors/types/tokenExpired.min.cjs +0 -2
  388. package/dist/cjs/errors/types/tokenExpired.min.cjs.map +0 -1
  389. package/dist/cjs/errors/types/validationError.cjs +0 -16
  390. package/dist/cjs/errors/types/validationError.cjs.map +0 -1
  391. package/dist/cjs/errors/types/validationError.min.cjs +0 -2
  392. package/dist/cjs/errors/types/validationError.min.cjs.map +0 -1
  393. package/dist/cjs/events/base.cjs +0 -6
  394. package/dist/cjs/events/base.cjs.map +0 -1
  395. package/dist/cjs/events/base.min.cjs +0 -2
  396. package/dist/cjs/events/base.min.cjs.map +0 -1
  397. package/dist/cjs/events/pipes.cjs +0 -28
  398. package/dist/cjs/events/pipes.cjs.map +0 -1
  399. package/dist/cjs/events/pipes.min.cjs +0 -2
  400. package/dist/cjs/events/pipes.min.cjs.map +0 -1
  401. package/dist/cjs/events/types/kafka.cjs +0 -80
  402. package/dist/cjs/events/types/kafka.cjs.map +0 -1
  403. package/dist/cjs/events/types/kafka.min.cjs +0 -2
  404. package/dist/cjs/events/types/kafka.min.cjs.map +0 -1
  405. package/dist/cjs/events/types/rabbitmq.cjs +0 -54
  406. package/dist/cjs/events/types/rabbitmq.cjs.map +0 -1
  407. package/dist/cjs/events/types/rabbitmq.min.cjs +0 -2
  408. package/dist/cjs/events/types/rabbitmq.min.cjs.map +0 -1
  409. package/dist/cjs/instance/hooks.cjs +0 -26
  410. package/dist/cjs/instance/hooks.cjs.map +0 -1
  411. package/dist/cjs/instance/hooks.min.cjs +0 -2
  412. package/dist/cjs/instance/hooks.min.cjs.map +0 -1
  413. package/dist/cjs/instance/settings.cjs +0 -57
  414. package/dist/cjs/instance/settings.cjs.map +0 -1
  415. package/dist/cjs/instance/settings.min.cjs +0 -2
  416. package/dist/cjs/instance/settings.min.cjs.map +0 -1
  417. package/dist/cjs/jobs/pipes.cjs +0 -13
  418. package/dist/cjs/jobs/pipes.cjs.map +0 -1
  419. package/dist/cjs/jobs/pipes.min.cjs +0 -2
  420. package/dist/cjs/jobs/pipes.min.cjs.map +0 -1
  421. package/dist/cjs/jobs/types/redis.cjs +0 -106
  422. package/dist/cjs/jobs/types/redis.cjs.map +0 -1
  423. package/dist/cjs/jobs/types/redis.min.cjs +0 -2
  424. package/dist/cjs/jobs/types/redis.min.cjs.map +0 -1
  425. package/dist/cjs/server/impls/base.cjs +0 -211
  426. package/dist/cjs/server/impls/base.cjs.map +0 -1
  427. package/dist/cjs/server/impls/base.min.cjs +0 -2
  428. package/dist/cjs/server/impls/base.min.cjs.map +0 -1
  429. package/dist/cjs/server/impls/express.cjs +0 -111
  430. package/dist/cjs/server/impls/express.cjs.map +0 -1
  431. package/dist/cjs/server/impls/express.min.cjs +0 -2
  432. package/dist/cjs/server/impls/express.min.cjs.map +0 -1
  433. package/dist/cjs/server/impls/fastify.cjs +0 -121
  434. package/dist/cjs/server/impls/fastify.cjs.map +0 -1
  435. package/dist/cjs/server/impls/fastify.min.cjs +0 -2
  436. package/dist/cjs/server/impls/fastify.min.cjs.map +0 -1
  437. package/dist/cjs/server/middlewares/index.cjs +0 -2
  438. package/dist/cjs/server/middlewares/index.cjs.map +0 -1
  439. package/dist/cjs/server/middlewares/index.min.cjs +0 -2
  440. package/dist/cjs/server/middlewares/index.min.cjs.map +0 -1
  441. package/dist/cjs/server/middlewares/requireAuthUser.cjs +0 -22
  442. package/dist/cjs/server/middlewares/requireAuthUser.cjs.map +0 -1
  443. package/dist/cjs/server/middlewares/requireAuthUser.min.cjs +0 -2
  444. package/dist/cjs/server/middlewares/requireAuthUser.min.cjs.map +0 -1
  445. package/dist/cjs/server/openapi.cjs +0 -191
  446. package/dist/cjs/server/openapi.cjs.map +0 -1
  447. package/dist/cjs/server/openapi.min.cjs +0 -30
  448. package/dist/cjs/server/openapi.min.cjs.map +0 -1
  449. package/dist/cjs/server/pipes.cjs +0 -67
  450. package/dist/cjs/server/pipes.cjs.map +0 -1
  451. package/dist/cjs/server/pipes.min.cjs +0 -2
  452. package/dist/cjs/server/pipes.min.cjs.map +0 -1
  453. package/dist/cjs/server/requests-auth-methods/apiKeys.cjs +0 -21
  454. package/dist/cjs/server/requests-auth-methods/apiKeys.cjs.map +0 -1
  455. package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs +0 -2
  456. package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs.map +0 -1
  457. package/dist/cjs/server/requests-auth-methods/base.cjs +0 -20
  458. package/dist/cjs/server/requests-auth-methods/base.cjs.map +0 -1
  459. package/dist/cjs/server/requests-auth-methods/base.min.cjs +0 -2
  460. package/dist/cjs/server/requests-auth-methods/base.min.cjs.map +0 -1
  461. package/dist/cjs/server/requests-auth-methods/index.cjs +0 -4
  462. package/dist/cjs/server/requests-auth-methods/index.cjs.map +0 -1
  463. package/dist/cjs/server/requests-auth-methods/index.min.cjs +0 -2
  464. package/dist/cjs/server/requests-auth-methods/index.min.cjs.map +0 -1
  465. package/dist/cjs/server/requests-auth-methods/jwt.cjs +0 -78
  466. package/dist/cjs/server/requests-auth-methods/jwt.cjs.map +0 -1
  467. package/dist/cjs/server/requests-auth-methods/jwt.min.cjs +0 -2
  468. package/dist/cjs/server/requests-auth-methods/jwt.min.cjs.map +0 -1
  469. package/dist/cjs/server/requests.cjs +0 -80
  470. package/dist/cjs/server/requests.cjs.map +0 -1
  471. package/dist/cjs/server/requests.min.cjs +0 -2
  472. package/dist/cjs/server/requests.min.cjs.map +0 -1
  473. package/dist/cjs/server/routes.cjs +0 -74
  474. package/dist/cjs/server/routes.cjs.map +0 -1
  475. package/dist/cjs/server/routes.min.cjs +0 -2
  476. package/dist/cjs/server/routes.min.cjs.map +0 -1
  477. package/dist/cjs/server/sockets.cjs +0 -126
  478. package/dist/cjs/server/sockets.cjs.map +0 -1
  479. package/dist/cjs/server/sockets.min.cjs +0 -2
  480. package/dist/cjs/server/sockets.min.cjs.map +0 -1
  481. package/dist/cjs/server/types.cjs +0 -34
  482. package/dist/cjs/server/types.cjs.map +0 -1
  483. package/dist/cjs/server/types.min.cjs +0 -2
  484. package/dist/cjs/server/types.min.cjs.map +0 -1
  485. package/dist/cjs/types/overrides.cjs +0 -1
  486. package/dist/cjs/types/overrides.cjs.map +0 -1
  487. package/dist/cjs/types/overrides.min.cjs +0 -1
  488. package/dist/cjs/types/overrides.min.cjs.map +0 -1
  489. package/dist/cjs/utilities/authProviders.cjs +0 -53
  490. package/dist/cjs/utilities/authProviders.cjs.map +0 -1
  491. package/dist/cjs/utilities/authProviders.min.cjs +0 -2
  492. package/dist/cjs/utilities/authProviders.min.cjs.map +0 -1
  493. package/dist/cjs/utilities/hash.cjs +0 -17
  494. package/dist/cjs/utilities/hash.cjs.map +0 -1
  495. package/dist/cjs/utilities/hash.min.cjs +0 -2
  496. package/dist/cjs/utilities/hash.min.cjs.map +0 -1
  497. package/dist/cjs/utilities/json.cjs +0 -16
  498. package/dist/cjs/utilities/json.cjs.map +0 -1
  499. package/dist/cjs/utilities/json.min.cjs +0 -2
  500. package/dist/cjs/utilities/json.min.cjs.map +0 -1
  501. package/dist/cjs/utilities/media.cjs +0 -13
  502. package/dist/cjs/utilities/media.cjs.map +0 -1
  503. package/dist/cjs/utilities/media.min.cjs +0 -2
  504. package/dist/cjs/utilities/media.min.cjs.map +0 -1
  505. package/dist/cjs/utilities/random.cjs +0 -12
  506. package/dist/cjs/utilities/random.cjs.map +0 -1
  507. package/dist/cjs/utilities/random.min.cjs +0 -2
  508. package/dist/cjs/utilities/random.min.cjs.map +0 -1
  509. package/dist/cjs/utilities/retry.cjs +0 -14
  510. package/dist/cjs/utilities/retry.cjs.map +0 -1
  511. package/dist/cjs/utilities/retry.min.cjs +0 -2
  512. package/dist/cjs/utilities/retry.min.cjs.map +0 -1
  513. package/dist/cjs/validations/valleyed.cjs +0 -43
  514. package/dist/cjs/validations/valleyed.cjs.map +0 -1
  515. package/dist/cjs/validations/valleyed.min.cjs +0 -2
  516. package/dist/cjs/validations/valleyed.min.cjs.map +0 -1
  517. package/dist/esm/audit/events.min.mjs +0 -2
  518. package/dist/esm/audit/events.min.mjs.map +0 -1
  519. package/dist/esm/audit/events.mjs +0 -101
  520. package/dist/esm/audit/events.mjs.map +0 -1
  521. package/dist/esm/audit/index.min.mjs +0 -2
  522. package/dist/esm/audit/index.min.mjs.map +0 -1
  523. package/dist/esm/audit/index.mjs +0 -2
  524. package/dist/esm/audit/index.mjs.map +0 -1
  525. package/dist/esm/cache/base.min.mjs +0 -2
  526. package/dist/esm/cache/base.min.mjs.map +0 -1
  527. package/dist/esm/cache/base.mjs +0 -6
  528. package/dist/esm/cache/base.mjs.map +0 -1
  529. package/dist/esm/cache/pipes.min.mjs +0 -2
  530. package/dist/esm/cache/pipes.min.mjs.map +0 -1
  531. package/dist/esm/cache/pipes.mjs +0 -16
  532. package/dist/esm/cache/pipes.mjs.map +0 -1
  533. package/dist/esm/cache/types/in-memory.min.mjs +0 -2
  534. package/dist/esm/cache/types/in-memory.min.mjs.map +0 -1
  535. package/dist/esm/cache/types/in-memory.mjs +0 -47
  536. package/dist/esm/cache/types/in-memory.mjs.map +0 -1
  537. package/dist/esm/cache/types/redis.min.mjs +0 -2
  538. package/dist/esm/cache/types/redis.min.mjs.map +0 -1
  539. package/dist/esm/cache/types/redis.mjs +0 -55
  540. package/dist/esm/cache/types/redis.mjs.map +0 -1
  541. package/dist/esm/dbs/base/changes.min.mjs +0 -2
  542. package/dist/esm/dbs/base/changes.min.mjs.map +0 -1
  543. package/dist/esm/dbs/base/changes.mjs +0 -36
  544. package/dist/esm/dbs/base/changes.mjs.map +0 -1
  545. package/dist/esm/dbs/base/core.min.mjs +0 -1
  546. package/dist/esm/dbs/base/core.mjs +0 -1
  547. package/dist/esm/dbs/base/db.min.mjs +0 -2
  548. package/dist/esm/dbs/base/db.min.mjs.map +0 -1
  549. package/dist/esm/dbs/base/db.mjs +0 -14
  550. package/dist/esm/dbs/base/db.mjs.map +0 -1
  551. package/dist/esm/dbs/base/types.min.mjs +0 -2
  552. package/dist/esm/dbs/base/types.min.mjs.map +0 -1
  553. package/dist/esm/dbs/base/types.mjs +0 -2
  554. package/dist/esm/dbs/base/types.mjs.map +0 -1
  555. package/dist/esm/dbs/mongo/changes.min.mjs +0 -2
  556. package/dist/esm/dbs/mongo/changes.min.mjs.map +0 -1
  557. package/dist/esm/dbs/mongo/changes.mjs +0 -81
  558. package/dist/esm/dbs/mongo/changes.mjs.map +0 -1
  559. package/dist/esm/dbs/mongo/db.min.mjs +0 -2
  560. package/dist/esm/dbs/mongo/db.min.mjs.map +0 -1
  561. package/dist/esm/dbs/mongo/db.mjs +0 -225
  562. package/dist/esm/dbs/mongo/db.mjs.map +0 -1
  563. package/dist/esm/dbs/mongo/query.min.mjs +0 -2
  564. package/dist/esm/dbs/mongo/query.min.mjs.map +0 -1
  565. package/dist/esm/dbs/mongo/query.mjs +0 -66
  566. package/dist/esm/dbs/mongo/query.mjs.map +0 -1
  567. package/dist/esm/dbs/pipes.min.mjs +0 -2
  568. package/dist/esm/dbs/pipes.min.mjs.map +0 -1
  569. package/dist/esm/dbs/pipes.mjs +0 -104
  570. package/dist/esm/dbs/pipes.mjs.map +0 -1
  571. package/dist/esm/errors/equippedError.min.mjs +0 -2
  572. package/dist/esm/errors/equippedError.min.mjs.map +0 -1
  573. package/dist/esm/errors/equippedError.mjs +0 -12
  574. package/dist/esm/errors/equippedError.mjs.map +0 -1
  575. package/dist/esm/errors/requestError.min.mjs +0 -2
  576. package/dist/esm/errors/requestError.min.mjs.map +0 -1
  577. package/dist/esm/errors/requestError.mjs +0 -12
  578. package/dist/esm/errors/requestError.mjs.map +0 -1
  579. package/dist/esm/errors/types/badRequestError.min.mjs +0 -2
  580. package/dist/esm/errors/types/badRequestError.min.mjs.map +0 -1
  581. package/dist/esm/errors/types/badRequestError.mjs +0 -12
  582. package/dist/esm/errors/types/badRequestError.mjs.map +0 -1
  583. package/dist/esm/errors/types/notAuthenticatedError.min.mjs +0 -2
  584. package/dist/esm/errors/types/notAuthenticatedError.min.mjs.map +0 -1
  585. package/dist/esm/errors/types/notAuthenticatedError.mjs +0 -12
  586. package/dist/esm/errors/types/notAuthenticatedError.mjs.map +0 -1
  587. package/dist/esm/errors/types/notAuthorizedError.min.mjs +0 -2
  588. package/dist/esm/errors/types/notAuthorizedError.min.mjs.map +0 -1
  589. package/dist/esm/errors/types/notAuthorizedError.mjs +0 -12
  590. package/dist/esm/errors/types/notAuthorizedError.mjs.map +0 -1
  591. package/dist/esm/errors/types/notFoundError.min.mjs +0 -2
  592. package/dist/esm/errors/types/notFoundError.min.mjs.map +0 -1
  593. package/dist/esm/errors/types/notFoundError.mjs +0 -12
  594. package/dist/esm/errors/types/notFoundError.mjs.map +0 -1
  595. package/dist/esm/errors/types/tokenExpired.min.mjs +0 -2
  596. package/dist/esm/errors/types/tokenExpired.min.mjs.map +0 -1
  597. package/dist/esm/errors/types/tokenExpired.mjs +0 -12
  598. package/dist/esm/errors/types/tokenExpired.mjs.map +0 -1
  599. package/dist/esm/errors/types/validationError.min.mjs +0 -2
  600. package/dist/esm/errors/types/validationError.min.mjs.map +0 -1
  601. package/dist/esm/errors/types/validationError.mjs +0 -16
  602. package/dist/esm/errors/types/validationError.mjs.map +0 -1
  603. package/dist/esm/events/base.min.mjs +0 -2
  604. package/dist/esm/events/base.min.mjs.map +0 -1
  605. package/dist/esm/events/base.mjs +0 -6
  606. package/dist/esm/events/base.mjs.map +0 -1
  607. package/dist/esm/events/pipes.min.mjs +0 -2
  608. package/dist/esm/events/pipes.min.mjs.map +0 -1
  609. package/dist/esm/events/pipes.mjs +0 -28
  610. package/dist/esm/events/pipes.mjs.map +0 -1
  611. package/dist/esm/events/types/kafka.min.mjs +0 -2
  612. package/dist/esm/events/types/kafka.min.mjs.map +0 -1
  613. package/dist/esm/events/types/kafka.mjs.map +0 -1
  614. package/dist/esm/events/types/rabbitmq.min.mjs +0 -2
  615. package/dist/esm/events/types/rabbitmq.min.mjs.map +0 -1
  616. package/dist/esm/events/types/rabbitmq.mjs +0 -54
  617. package/dist/esm/events/types/rabbitmq.mjs.map +0 -1
  618. package/dist/esm/instance/hooks.min.mjs +0 -2
  619. package/dist/esm/instance/hooks.min.mjs.map +0 -1
  620. package/dist/esm/instance/hooks.mjs +0 -26
  621. package/dist/esm/instance/hooks.mjs.map +0 -1
  622. package/dist/esm/instance/settings.min.mjs +0 -2
  623. package/dist/esm/instance/settings.min.mjs.map +0 -1
  624. package/dist/esm/instance/settings.mjs +0 -57
  625. package/dist/esm/instance/settings.mjs.map +0 -1
  626. package/dist/esm/jobs/pipes.min.mjs +0 -2
  627. package/dist/esm/jobs/pipes.min.mjs.map +0 -1
  628. package/dist/esm/jobs/pipes.mjs +0 -13
  629. package/dist/esm/jobs/pipes.mjs.map +0 -1
  630. package/dist/esm/jobs/types/redis.min.mjs +0 -2
  631. package/dist/esm/jobs/types/redis.min.mjs.map +0 -1
  632. package/dist/esm/jobs/types/redis.mjs.map +0 -1
  633. package/dist/esm/server/impls/base.min.mjs +0 -2
  634. package/dist/esm/server/impls/base.min.mjs.map +0 -1
  635. package/dist/esm/server/impls/base.mjs +0 -211
  636. package/dist/esm/server/impls/base.mjs.map +0 -1
  637. package/dist/esm/server/impls/express.min.mjs +0 -2
  638. package/dist/esm/server/impls/express.min.mjs.map +0 -1
  639. package/dist/esm/server/impls/express.mjs +0 -111
  640. package/dist/esm/server/impls/express.mjs.map +0 -1
  641. package/dist/esm/server/impls/fastify.min.mjs +0 -2
  642. package/dist/esm/server/impls/fastify.min.mjs.map +0 -1
  643. package/dist/esm/server/impls/fastify.mjs.map +0 -1
  644. package/dist/esm/server/middlewares/index.min.mjs +0 -2
  645. package/dist/esm/server/middlewares/index.min.mjs.map +0 -1
  646. package/dist/esm/server/middlewares/index.mjs +0 -2
  647. package/dist/esm/server/middlewares/index.mjs.map +0 -1
  648. package/dist/esm/server/middlewares/requireAuthUser.min.mjs +0 -2
  649. package/dist/esm/server/middlewares/requireAuthUser.min.mjs.map +0 -1
  650. package/dist/esm/server/middlewares/requireAuthUser.mjs +0 -22
  651. package/dist/esm/server/middlewares/requireAuthUser.mjs.map +0 -1
  652. package/dist/esm/server/openapi.min.mjs +0 -30
  653. package/dist/esm/server/openapi.min.mjs.map +0 -1
  654. package/dist/esm/server/openapi.mjs +0 -191
  655. package/dist/esm/server/openapi.mjs.map +0 -1
  656. package/dist/esm/server/pipes.min.mjs +0 -2
  657. package/dist/esm/server/pipes.min.mjs.map +0 -1
  658. package/dist/esm/server/pipes.mjs +0 -67
  659. package/dist/esm/server/pipes.mjs.map +0 -1
  660. package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs +0 -2
  661. package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs.map +0 -1
  662. package/dist/esm/server/requests-auth-methods/apiKeys.mjs +0 -21
  663. package/dist/esm/server/requests-auth-methods/apiKeys.mjs.map +0 -1
  664. package/dist/esm/server/requests-auth-methods/base.min.mjs +0 -2
  665. package/dist/esm/server/requests-auth-methods/base.min.mjs.map +0 -1
  666. package/dist/esm/server/requests-auth-methods/base.mjs +0 -20
  667. package/dist/esm/server/requests-auth-methods/base.mjs.map +0 -1
  668. package/dist/esm/server/requests-auth-methods/index.min.mjs +0 -2
  669. package/dist/esm/server/requests-auth-methods/index.min.mjs.map +0 -1
  670. package/dist/esm/server/requests-auth-methods/index.mjs +0 -4
  671. package/dist/esm/server/requests-auth-methods/index.mjs.map +0 -1
  672. package/dist/esm/server/requests-auth-methods/jwt.min.mjs +0 -2
  673. package/dist/esm/server/requests-auth-methods/jwt.min.mjs.map +0 -1
  674. package/dist/esm/server/requests-auth-methods/jwt.mjs +0 -78
  675. package/dist/esm/server/requests-auth-methods/jwt.mjs.map +0 -1
  676. package/dist/esm/server/requests.min.mjs +0 -2
  677. package/dist/esm/server/requests.min.mjs.map +0 -1
  678. package/dist/esm/server/requests.mjs +0 -80
  679. package/dist/esm/server/requests.mjs.map +0 -1
  680. package/dist/esm/server/routes.min.mjs +0 -2
  681. package/dist/esm/server/routes.min.mjs.map +0 -1
  682. package/dist/esm/server/routes.mjs +0 -74
  683. package/dist/esm/server/routes.mjs.map +0 -1
  684. package/dist/esm/server/sockets.min.mjs +0 -2
  685. package/dist/esm/server/sockets.min.mjs.map +0 -1
  686. package/dist/esm/server/sockets.mjs +0 -126
  687. package/dist/esm/server/sockets.mjs.map +0 -1
  688. package/dist/esm/server/types.min.mjs +0 -2
  689. package/dist/esm/server/types.min.mjs.map +0 -1
  690. package/dist/esm/server/types.mjs +0 -34
  691. package/dist/esm/server/types.mjs.map +0 -1
  692. package/dist/esm/types/overrides.min.mjs +0 -1
  693. package/dist/esm/types/overrides.mjs +0 -1
  694. package/dist/esm/utilities/authProviders.min.mjs +0 -2
  695. package/dist/esm/utilities/authProviders.min.mjs.map +0 -1
  696. package/dist/esm/utilities/authProviders.mjs +0 -53
  697. package/dist/esm/utilities/authProviders.mjs.map +0 -1
  698. package/dist/esm/utilities/hash.min.mjs +0 -2
  699. package/dist/esm/utilities/hash.min.mjs.map +0 -1
  700. package/dist/esm/utilities/hash.mjs +0 -17
  701. package/dist/esm/utilities/hash.mjs.map +0 -1
  702. package/dist/esm/utilities/json.min.mjs +0 -2
  703. package/dist/esm/utilities/json.min.mjs.map +0 -1
  704. package/dist/esm/utilities/json.mjs +0 -16
  705. package/dist/esm/utilities/json.mjs.map +0 -1
  706. package/dist/esm/utilities/media.min.mjs +0 -2
  707. package/dist/esm/utilities/media.min.mjs.map +0 -1
  708. package/dist/esm/utilities/media.mjs +0 -13
  709. package/dist/esm/utilities/media.mjs.map +0 -1
  710. package/dist/esm/utilities/random.min.mjs +0 -2
  711. package/dist/esm/utilities/random.min.mjs.map +0 -1
  712. package/dist/esm/utilities/random.mjs +0 -12
  713. package/dist/esm/utilities/random.mjs.map +0 -1
  714. package/dist/esm/utilities/retry.min.mjs +0 -2
  715. package/dist/esm/utilities/retry.min.mjs.map +0 -1
  716. package/dist/esm/utilities/retry.mjs +0 -14
  717. package/dist/esm/utilities/retry.mjs.map +0 -1
  718. package/dist/esm/validations/valleyed.min.mjs +0 -2
  719. package/dist/esm/validations/valleyed.min.mjs.map +0 -1
  720. package/dist/esm/validations/valleyed.mjs +0 -43
  721. package/dist/esm/validations/valleyed.mjs.map +0 -1
  722. package/dist/types/audit/events.js +0 -100
  723. package/dist/types/audit/index.d.ts +0 -44
  724. package/dist/types/audit/index.js +0 -1
  725. package/dist/types/cache/base.js +0 -5
  726. package/dist/types/cache/pipes.js +0 -15
  727. package/dist/types/cache/types/in-memory.js +0 -46
  728. package/dist/types/cache/types/redis.js +0 -54
  729. package/dist/types/db-C8YY1yTO.d.ts +0 -14
  730. package/dist/types/db-Dj1SGto0.d.ts +0 -24
  731. package/dist/types/dbs/base/changes.js +0 -35
  732. package/dist/types/dbs/base/core.js +0 -0
  733. package/dist/types/dbs/base/db.js +0 -13
  734. package/dist/types/dbs/base/types.js +0 -1
  735. package/dist/types/dbs/mongo/changes.js +0 -80
  736. package/dist/types/dbs/mongo/db.js +0 -224
  737. package/dist/types/dbs/mongo/query.js +0 -65
  738. package/dist/types/dbs/pipes.js +0 -103
  739. package/dist/types/errors/equippedError.js +0 -11
  740. package/dist/types/errors/requestError.js +0 -11
  741. package/dist/types/errors/types/badRequestError.js +0 -11
  742. package/dist/types/errors/types/notAuthenticatedError.js +0 -11
  743. package/dist/types/errors/types/notAuthorizedError.js +0 -11
  744. package/dist/types/errors/types/notFoundError.js +0 -11
  745. package/dist/types/errors/types/tokenExpired.js +0 -11
  746. package/dist/types/errors/types/validationError.js +0 -15
  747. package/dist/types/events/base.js +0 -5
  748. package/dist/types/events/pipes.js +0 -27
  749. package/dist/types/events/types/rabbitmq.js +0 -53
  750. package/dist/types/instance/hooks.js +0 -25
  751. package/dist/types/instance/settings.js +0 -56
  752. package/dist/types/jobs/pipes.js +0 -12
  753. package/dist/types/kafka-Cf-TUJgv.d.ts +0 -54
  754. package/dist/types/server/impls/base.js +0 -210
  755. package/dist/types/server/impls/express.js +0 -110
  756. package/dist/types/server/middlewares/index.js +0 -1
  757. package/dist/types/server/middlewares/requireAuthUser.js +0 -21
  758. package/dist/types/server/openapi.js +0 -190
  759. package/dist/types/server/pipes.js +0 -66
  760. package/dist/types/server/requests-auth-methods/apiKeys.js +0 -20
  761. package/dist/types/server/requests-auth-methods/base.js +0 -19
  762. package/dist/types/server/requests-auth-methods/index.js +0 -3
  763. package/dist/types/server/requests-auth-methods/jwt.js +0 -77
  764. package/dist/types/server/requests.js +0 -79
  765. package/dist/types/server/routes.js +0 -73
  766. package/dist/types/server/sockets.js +0 -125
  767. package/dist/types/server/types.js +0 -33
  768. package/dist/types/types/overrides.js +0 -0
  769. package/dist/types/utilities/authProviders.js +0 -52
  770. package/dist/types/utilities/hash.js +0 -16
  771. package/dist/types/utilities/json.js +0 -15
  772. package/dist/types/utilities/media.js +0 -12
  773. package/dist/types/utilities/random.js +0 -11
  774. package/dist/types/utilities/retry.js +0 -13
  775. package/dist/types/validations/valleyed.js +0 -42
  776. /package/dist/esm/{dbs/base/core.min.mjs.map → cache/adapters/redis/index.min.mjs.map} +0 -0
  777. /package/dist/esm/{dbs/base/core.mjs.map → cache/adapters/redis/index.mjs.map} +0 -0
  778. /package/dist/esm/{types/overrides.min.mjs.map → chunk-AQY7QVYI.min.mjs.map} +0 -0
  779. /package/dist/esm/{types/overrides.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/instance/settings.ts","/home/runner/work/equipped/equipped/dist/cjs/instance/settings.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/instance/settings.cjs","sourcesContent":["import { type ConditionalObjectKeys, type PipeInput, type PipeOutput, v } from 'valleyed'\n\nimport { InMemoryCache, RedisCache, redisConfigPipe } from '../cache'\nimport { MongoDb, mongoDbConfigPipe } from '../dbs'\nimport { KafkaEventBus, RabbitMQEventBus, kafkaConfigPipe, rabbitmqConfigPipe } from '../events'\nimport { RedisJob, redisJobsConfigPipe } from '../jobs'\nimport { ExpressServer, FastifyServer, serverConfigPipe } from '../server'\n\nexport const instanceSettingsPipe = () =>\n\tv.object({\n\t\tapp: v.object({\n\t\t\tname: v.string(),\n\t\t}),\n\t\tlog: v.defaults(\n\t\t\tv.object({\n\t\t\t\tlevel: v.defaults(v.in(['fatal', 'error', 'warn', 'info', 'debug', 'trace', 'silent'] as const), 'info'),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\tutils: v.defaults(\n\t\t\tv.object({\n\t\t\t\thashSaltRounds: v.defaults(v.number(), 10),\n\t\t\t\tpaginationDefaultLimit: v.defaults(v.number(), 100),\n\t\t\t\tmaxFileUploadSizeInMb: v.defaults(v.number(), 500),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t})\n\nexport type Settings = PipeOutput<ReturnType<typeof instanceSettingsPipe>>\nexport type SettingsInput = ConditionalObjectKeys<PipeInput<ReturnType<typeof instanceSettingsPipe>>>\n\nexport type CacheTypes = {\n\t'in-memory': InMemoryCache\n\tredis: RedisCache\n}\n\nexport const cachePipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\t'in-memory': v.object({ type: v.is('in-memory' as const) }).pipe(() => new InMemoryCache()),\n\t\tredis: v\n\t\t\t.merge(redisConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisCache(config)),\n\t})\n\nexport type JobTypes = {\n\tredis: RedisJob\n}\n\nexport const jobsPipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\tredis: v\n\t\t\t.merge(redisJobsConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisJob(config)),\n\t})\n\nexport type EventBusTypes = {\n\tkafka: KafkaEventBus\n\trabbitmq: RabbitMQEventBus\n}\n\nexport const eventBusPipe = () =>\n\tv.discriminate((e: any) => e?.type, {\n\t\tkafka: v\n\t\t\t.merge(kafkaConfigPipe(), v.object({ type: v.is('kafka' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new KafkaEventBus(config)),\n\t\trabbitmq: v\n\t\t\t.merge(rabbitmqConfigPipe(), v.object({ type: v.is('rabbitmq' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RabbitMQEventBus(config)),\n\t})\n\nexport type DbTypes = {\n\tmongo: MongoDb\n}\n\nexport const dbPipe = () =>\n\tv\n\t\t.object({\n\t\t\tdb: v.discriminate((e) => e?.type, {\n\t\t\t\tmongo: v.merge(mongoDbConfigPipe(), v.object({ type: v.is('mongo' as const) })),\n\t\t\t}),\n\t\t\tchanges: v.optional(\n\t\t\t\tv.object({\n\t\t\t\t\tdebeziumUrl: v.string(),\n\t\t\t\t\teventBus: v.instanceOf(KafkaEventBus),\n\t\t\t\t}),\n\t\t\t),\n\t\t})\n\t\t.pipe((config) => new MongoDb(config.db, { changes: config.changes }))\n\nexport type ServerTypes = {\n\texpress: ExpressServer\n\tfastify: FastifyServer\n}\n\nexport const serverTypePipe = () =>\n\tserverConfigPipe().pipe((config) => (config.type === 'express' ? new ExpressServer(config) : new FastifyServer(config)))\n",null]}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _valleyed = require('valleyed');var _indexmincjs = require('../cache/index.min.cjs');var _indexmincjs3 = require('../dbs/index.min.cjs');var _indexmincjs5 = require('../events/index.min.cjs');var _indexmincjs7 = require('../jobs/index.min.cjs');var _indexmincjs9 = require('../server/index.min.cjs');const S=()=>_valleyed.v.object({app:_valleyed.v.object({name:_valleyed.v.string()}),log:_valleyed.v.defaults(_valleyed.v.object({level:_valleyed.v.defaults(_valleyed.v.in(["fatal","error","warn","info","debug","trace","silent"]),"info")}),{}),utils:_valleyed.v.defaults(_valleyed.v.object({hashSaltRounds:_valleyed.v.defaults(_valleyed.v.number(),10),paginationDefaultLimit:_valleyed.v.defaults(_valleyed.v.number(),100),maxFileUploadSizeInMb:_valleyed.v.defaults(_valleyed.v.number(),500)}),{})}),h= exports.cachePipe =()=>_valleyed.v.discriminate(t=>_optionalChain([t, 'optionalAccess', _ => _.type]),{"in-memory":_valleyed.v.object({type:_valleyed.v.is("in-memory")}).pipe(()=>new _indexmincjs.InMemoryCache),redis:_valleyed.v.merge(_indexmincjs.redisConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("redis")})).pipe(({type:t,...i})=>new (0, _indexmincjs.RedisCache)(i))}),k= exports.jobsPipe =()=>_valleyed.v.discriminate(t=>_optionalChain([t, 'optionalAccess', _2 => _2.type]),{redis:_valleyed.v.merge(_indexmincjs7.redisJobsConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("redis")})).pipe(({type:t,...i})=>new (0, _indexmincjs7.RedisJob)(i))}),w= exports.eventBusPipe =()=>_valleyed.v.discriminate(t=>_optionalChain([t, 'optionalAccess', _3 => _3.type]),{kafka:_valleyed.v.merge(_indexmincjs5.kafkaConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("kafka")})).pipe(({type:t,...i})=>new (0, _indexmincjs5.KafkaEventBus)(i)),rabbitmq:_valleyed.v.merge(_indexmincjs5.rabbitmqConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("rabbitmq")})).pipe(({type:t,...i})=>new (0, _indexmincjs5.RabbitMQEventBus)(i))}),R= exports.dbPipe =()=>_valleyed.v.object({db:_valleyed.v.discriminate(t=>_optionalChain([t, 'optionalAccess', _4 => _4.type]),{mongo:_valleyed.v.merge(_indexmincjs3.mongoDbConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("mongo")}))}),changes:_valleyed.v.optional(_valleyed.v.object({debeziumUrl:_valleyed.v.string(),eventBus:_valleyed.v.instanceOf(_indexmincjs5.KafkaEventBus)}))}).pipe(t=>new (0, _indexmincjs3.MongoDb)(t.db,{changes:t.changes})),T= exports.serverTypePipe =()=>_indexmincjs9.serverConfigPipe.call(void 0, ).pipe(t=>t.type==="express"?new (0, _indexmincjs9.ExpressServer)(t):new (0, _indexmincjs9.FastifyServer)(t));exports.cachePipe = h; exports.dbPipe = R; exports.eventBusPipe = w; exports.instanceSettingsPipe = S; exports.jobsPipe = k; exports.serverTypePipe = T;
2
- //# sourceMappingURL=settings.min.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/instance/settings.ts"],"names":["redisJobsConfigPipe","v","cachePipe","_","e","config","kafkaConfigPipe","RabbitMQEventBus","dbPipe","mongoDbConfigPipe","KafkaEventBus","MongoDb","serverTypePipe","ExpressServer","FastifyServer"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/instance/settings.min.cjs","sourcesContent":["import { type ConditionalObjectKeys, type PipeInput, type PipeOutput, v } from 'valleyed'\n\nimport { InMemoryCache, RedisCache, redisConfigPipe } from '../cache'\nimport { MongoDb, mongoDbConfigPipe } from '../dbs'\nimport { KafkaEventBus, RabbitMQEventBus, kafkaConfigPipe, rabbitmqConfigPipe } from '../events'\nimport { RedisJob, redisJobsConfigPipe } from '../jobs'\nimport { ExpressServer, FastifyServer, serverConfigPipe } from '../server'\n\nexport const instanceSettingsPipe = () =>\n\tv.object({\n\t\tapp: v.object({\n\t\t\tname: v.string(),\n\t\t}),\n\t\tlog: v.defaults(\n\t\t\tv.object({\n\t\t\t\tlevel: v.defaults(v.in(['fatal', 'error', 'warn', 'info', 'debug', 'trace', 'silent'] as const), 'info'),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\tutils: v.defaults(\n\t\t\tv.object({\n\t\t\t\thashSaltRounds: v.defaults(v.number(), 10),\n\t\t\t\tpaginationDefaultLimit: v.defaults(v.number(), 100),\n\t\t\t\tmaxFileUploadSizeInMb: v.defaults(v.number(), 500),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t})\n\nexport type Settings = PipeOutput<ReturnType<typeof instanceSettingsPipe>>\nexport type SettingsInput = ConditionalObjectKeys<PipeInput<ReturnType<typeof instanceSettingsPipe>>>\n\nexport type CacheTypes = {\n\t'in-memory': InMemoryCache\n\tredis: RedisCache\n}\n\nexport const cachePipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\t'in-memory': v.object({ type: v.is('in-memory' as const) }).pipe(() => new InMemoryCache()),\n\t\tredis: v\n\t\t\t.merge(redisConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisCache(config)),\n\t})\n\nexport type JobTypes = {\n\tredis: RedisJob\n}\n\nexport const jobsPipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\tredis: v\n\t\t\t.merge(redisJobsConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisJob(config)),\n\t})\n\nexport type EventBusTypes = {\n\tkafka: KafkaEventBus\n\trabbitmq: RabbitMQEventBus\n}\n\nexport const eventBusPipe = () =>\n\tv.discriminate((e: any) => e?.type, {\n\t\tkafka: v\n\t\t\t.merge(kafkaConfigPipe(), v.object({ type: v.is('kafka' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new KafkaEventBus(config)),\n\t\trabbitmq: v\n\t\t\t.merge(rabbitmqConfigPipe(), v.object({ type: v.is('rabbitmq' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RabbitMQEventBus(config)),\n\t})\n\nexport type DbTypes = {\n\tmongo: MongoDb\n}\n\nexport const dbPipe = () =>\n\tv\n\t\t.object({\n\t\t\tdb: v.discriminate((e) => e?.type, {\n\t\t\t\tmongo: v.merge(mongoDbConfigPipe(), v.object({ type: v.is('mongo' as const) })),\n\t\t\t}),\n\t\t\tchanges: v.optional(\n\t\t\t\tv.object({\n\t\t\t\t\tdebeziumUrl: v.string(),\n\t\t\t\t\teventBus: v.instanceOf(KafkaEventBus),\n\t\t\t\t}),\n\t\t\t),\n\t\t})\n\t\t.pipe((config) => new MongoDb(config.db, { changes: config.changes }))\n\nexport type ServerTypes = {\n\texpress: ExpressServer\n\tfastify: FastifyServer\n}\n\nexport const serverTypePipe = () =>\n\tserverConfigPipe().pipe((config) => (config.type === 'express' ? new ExpressServer(config) : new FastifyServer(config)))\n"]}
@@ -1,13 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _valleyed = require('valleyed');
2
- var _indexcjs = require('../cache/index.cjs');
3
- const redisJobsConfigPipe = () => _valleyed.v.meta(
4
- _valleyed.v.object({
5
- redisConfig: _indexcjs.redisConfigPipe.call(void 0, ),
6
- queueName: _valleyed.v.string()
7
- }),
8
- { title: "Redis Jobs Config", $refId: "RedisJobsConfig" }
9
- );
10
-
11
-
12
- exports.redisJobsConfigPipe = redisJobsConfigPipe;
13
- //# sourceMappingURL=pipes.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/jobs/pipes.ts","/home/runner/work/equipped/equipped/dist/cjs/jobs/pipes.cjs"],"names":[],"mappings":"AAAA,6GAAmC;AAEnC,8CAAgC;AAEzB,MAAM,oBAAA,EAAsB,CAAA,EAAA,GAClC,WAAA,CAAE,IAAA;AAAA,EACD,WAAA,CAAE,MAAA,CAAO;AAAA,IACR,WAAA,EAAa,uCAAA,CAAgB;AAAA,IAC7B,SAAA,EAAW,WAAA,CAAE,MAAA,CAAO;AAAA,EACrB,CAAC,CAAA;AAAA,EACD,EAAE,KAAA,EAAO,mBAAA,EAAqB,MAAA,EAAQ,kBAAkB;AACzD,CAAA;ACFD;AACE;AACF,kDAAC","file":"/home/runner/work/equipped/equipped/dist/cjs/jobs/pipes.cjs","sourcesContent":["import { type PipeOutput, v } from 'valleyed'\n\nimport { redisConfigPipe } from '../cache'\n\nexport const redisJobsConfigPipe = () =>\n\tv.meta(\n\t\tv.object({\n\t\t\tredisConfig: redisConfigPipe(),\n\t\t\tqueueName: v.string(),\n\t\t}),\n\t\t{ title: 'Redis Jobs Config', $refId: 'RedisJobsConfig' },\n\t)\n\nexport type RedisJobConfig = PipeOutput<ReturnType<typeof redisJobsConfigPipe>>\n",null]}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _valleyed = require('valleyed');var _indexmincjs = require('../cache/index.min.cjs');const p=()=>_valleyed.v.meta(_valleyed.v.object({redisConfig:_indexmincjs.redisConfigPipe.call(void 0, ),queueName:_valleyed.v.string()}),{title:"Redis Jobs Config",$refId:"RedisJobsConfig"});exports.redisJobsConfigPipe = p;
2
- //# sourceMappingURL=pipes.min.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/jobs/pipes.ts"],"names":["redisConfigPipe","v"],"mappings":"AAAA,6GAAmC,qDAKhC,MACC,CAAA,CAAA,CAAA,CAAA,EAAA,WAAO,CACR,IAAA,CAAA,WAAA,CAAA,MAAaA,CAAgB,CAAA,WAClBC,CAAAA,0CAAE,CAAA,CAAA,SAEZ,CAAA,WAAA,CAAA,MAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,mBAA6B,CAAA,MAAA,CAAA,iBACvC,CAAA,CAAA,CAAA,gCAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/jobs/pipes.min.cjs","sourcesContent":["import { type PipeOutput, v } from 'valleyed'\n\nimport { redisConfigPipe } from '../cache'\n\nexport const redisJobsConfigPipe = () =>\n\tv.meta(\n\t\tv.object({\n\t\t\tredisConfig: redisConfigPipe(),\n\t\t\tqueueName: v.string(),\n\t\t}),\n\t\t{ title: 'Redis Jobs Config', $refId: 'RedisJobsConfig' },\n\t)\n\nexport type RedisJobConfig = PipeOutput<ReturnType<typeof redisJobsConfigPipe>>\n"]}
@@ -1,106 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _bullmq = require('bullmq');
2
- var _rediscjs = require('../../cache/types/redis.cjs');
3
- var _indexcjs = require('../../instance/index.cjs');
4
- var _indexcjs3 = require('../../utilities/index.cjs');
5
- var JobNames = /* @__PURE__ */ ((JobNames2) => {
6
- JobNames2["CronJob"] = "CronJob";
7
- JobNames2["RepeatableJob"] = "RepeatableJob";
8
- JobNames2["DelayedJob"] = "DelayedJob";
9
- return JobNames2;
10
- })(JobNames || {});
11
- class RedisJob {
12
- #queue;
13
- #callbacks = {};
14
- #crons = [];
15
- constructor(config) {
16
- const redisCache = new (0, _rediscjs.RedisCache)(config.redisConfig, {
17
- maxRetriesPerRequest: null,
18
- enableReadyCheck: false
19
- });
20
- const queueName = _indexcjs.Instance.get().getScopedName(config.queueName);
21
- this.#queue = new (0, _bullmq.Queue)(queueName, { connection: redisCache.client.options, skipVersionCheck: true });
22
- const worker = new (0, _bullmq.Worker)(
23
- queueName,
24
- async (job) => {
25
- switch (job.name) {
26
- case "DelayedJob" /* DelayedJob */:
27
- return _optionalChain([this, 'access', _ => _.#callbacks, 'access', _2 => _2.onDelayed, 'optionalCall', _3 => _3(job.data)]);
28
- case "CronJob" /* CronJob */:
29
- return _optionalChain([this, 'access', _4 => _4.#callbacks, 'access', _5 => _5.onCron, 'optionalCall', _6 => _6(job.data.type)]);
30
- case "RepeatableJob" /* RepeatableJob */:
31
- return _optionalChain([this, 'access', _7 => _7.#callbacks, 'access', _8 => _8.onRepeatable, 'optionalCall', _9 => _9(job.data)]);
32
- }
33
- },
34
- { connection: redisCache.client.options, autorun: false, skipVersionCheck: true }
35
- );
36
- _indexcjs.Instance.on(
37
- "start",
38
- async () => {
39
- await this.#cleanup();
40
- await Promise.all(this.#crons.map(({ cron, name }) => this.#addCron(name, cron)));
41
- worker.run();
42
- },
43
- 10
44
- );
45
- }
46
- set callbacks(callbacks) {
47
- this.#callbacks = callbacks;
48
- }
49
- set crons(crons) {
50
- this.#crons = crons;
51
- }
52
- static #getNewId() {
53
- return [Date.now(), _indexcjs3.Random.string()].join("_");
54
- }
55
- async addDelayed(data, delayInMs) {
56
- const job = await this.#queue.add("DelayedJob" /* DelayedJob */, data, {
57
- jobId: RedisJob.#getNewId(),
58
- delay: delayInMs,
59
- removeOnComplete: true,
60
- backoff: 1e3,
61
- attempts: 3
62
- });
63
- return job.id.toString();
64
- }
65
- async addRepeatable(data, cron, tz) {
66
- const job = await this.#queue.add("RepeatableJob" /* RepeatableJob */, data, {
67
- jobId: RedisJob.#getNewId(),
68
- repeat: { pattern: cron, ...tz ? { tz } : {} },
69
- removeOnComplete: true,
70
- backoff: 1e3,
71
- attempts: 3
72
- });
73
- return _nullishCoalesce(_optionalChain([job, 'access', _10 => _10.opts, 'optionalAccess', _11 => _11.repeat, 'optionalAccess', _12 => _12.key]), () => ( ""));
74
- }
75
- async removeDelayed(jobId) {
76
- const job = await this.#queue.getJob(jobId);
77
- if (job) await job.remove();
78
- }
79
- async retryAllFailedJobs() {
80
- const failedJobs = await this.#queue.getFailed();
81
- await Promise.all(failedJobs.map((job) => job.retry()));
82
- }
83
- async #addCron(type, cron) {
84
- const job = await this.#queue.add(
85
- "CronJob" /* CronJob */,
86
- { type },
87
- {
88
- jobId: RedisJob.#getNewId(),
89
- repeat: { pattern: cron },
90
- removeOnComplete: true,
91
- backoff: 1e3,
92
- attempts: 3
93
- }
94
- );
95
- return job.id.toString();
96
- }
97
- async #cleanup() {
98
- await this.retryAllFailedJobs();
99
- const repeatableJobs = await this.#queue.getJobSchedulers();
100
- await Promise.all(repeatableJobs.map((job) => this.#queue.removeJobScheduler(job.key)));
101
- }
102
- }
103
-
104
-
105
- exports.RedisJob = RedisJob;
106
- //# sourceMappingURL=redis.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/jobs/types/redis.ts","/home/runner/work/equipped/equipped/dist/cjs/jobs/types/redis.cjs"],"names":["JobNames"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/jobs/types/redis.cjs","sourcesContent":["import { Queue, Worker } from 'bullmq'\n\nimport { RedisCache } from '../../cache/types/redis'\nimport { Instance } from '../../instance'\nimport type { CronTypes, DelayedJobs, RepeatableJobs } from '../../types'\nimport { Random } from '../../utilities'\nimport type { RedisJobConfig } from '../pipes'\n\nenum JobNames {\n\tCronJob = 'CronJob',\n\tRepeatableJob = 'RepeatableJob',\n\tDelayedJob = 'DelayedJob',\n}\n\ntype Cron = CronTypes[keyof CronTypes]\ntype DelayedJobEvent = DelayedJobs[keyof DelayedJobs]\ntype RepeatableJobEvent = RepeatableJobs[keyof RepeatableJobs]\ntype DelayedJobCallback = (data: DelayedJobEvent) => Promise<void> | void\ntype CronJobCallback = (name: CronTypes[keyof CronTypes]) => Promise<void> | void\ntype RepeatableJobCallback = (data: RepeatableJobEvent) => Promise<void> | void\n\ntype JobCallbacks = { onDelayed?: DelayedJobCallback; onCron?: CronJobCallback; onRepeatable?: RepeatableJobCallback }\n\nexport class RedisJob {\n\t#queue: Queue\n\t#callbacks: JobCallbacks = {}\n\t#crons: { name: Cron; cron: string }[] = []\n\n\tconstructor(config: RedisJobConfig) {\n\t\tconst redisCache = new RedisCache(config.redisConfig, {\n\t\t\tmaxRetriesPerRequest: null,\n\t\t\tenableReadyCheck: false,\n\t\t})\n\t\tconst queueName = Instance.get().getScopedName(config.queueName)\n\t\tthis.#queue = new Queue(queueName, { connection: redisCache.client.options, skipVersionCheck: true })\n\t\tconst worker = new Worker(\n\t\t\tqueueName,\n\t\t\tasync (job) => {\n\t\t\t\tswitch (job.name) {\n\t\t\t\t\tcase JobNames.DelayedJob:\n\t\t\t\t\t\treturn (this.#callbacks.onDelayed as any)?.(job.data)\n\t\t\t\t\tcase JobNames.CronJob:\n\t\t\t\t\t\treturn (this.#callbacks.onCron as any)?.(job.data.type)\n\t\t\t\t\tcase JobNames.RepeatableJob:\n\t\t\t\t\t\treturn (this.#callbacks.onRepeatable as any)?.(job.data)\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ connection: redisCache.client.options, autorun: false, skipVersionCheck: true },\n\t\t)\n\n\t\tInstance.on(\n\t\t\t'start',\n\t\t\tasync () => {\n\t\t\t\tawait this.#cleanup()\n\t\t\t\tawait Promise.all(this.#crons.map(({ cron, name }) => this.#addCron(name, cron)))\n\t\t\t\tworker.run()\n\t\t\t},\n\t\t\t10,\n\t\t)\n\t}\n\n\tset callbacks(callbacks: JobCallbacks) {\n\t\tthis.#callbacks = callbacks\n\t}\n\n\tset crons(crons: { name: Cron; cron: string }[]) {\n\t\tthis.#crons = crons\n\t}\n\n\tstatic #getNewId() {\n\t\treturn [Date.now(), Random.string()].join('_')\n\t}\n\n\tasync addDelayed(data: DelayedJobEvent, delayInMs: number): Promise<string> {\n\t\tconst job = await this.#queue.add(JobNames.DelayedJob, data, {\n\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\tdelay: delayInMs,\n\t\t\tremoveOnComplete: true,\n\t\t\tbackoff: 1000,\n\t\t\tattempts: 3,\n\t\t})\n\t\treturn job.id!.toString()\n\t}\n\n\tasync addRepeatable(data: RepeatableJobEvent, cron: string, tz?: string): Promise<string> {\n\t\tconst job = await this.#queue.add(JobNames.RepeatableJob, data, {\n\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\trepeat: { pattern: cron, ...(tz ? { tz } : {}) },\n\t\t\tremoveOnComplete: true,\n\t\t\tbackoff: 1000,\n\t\t\tattempts: 3,\n\t\t})\n\t\treturn job.opts?.repeat?.key ?? ''\n\t}\n\n\tasync removeDelayed(jobId: string) {\n\t\tconst job = await this.#queue.getJob(jobId)\n\t\tif (job) await job.remove()\n\t}\n\n\tasync retryAllFailedJobs() {\n\t\tconst failedJobs = await this.#queue.getFailed()\n\t\tawait Promise.all(failedJobs.map((job) => job.retry()))\n\t}\n\n\tasync #addCron(type: Cron | string, cron: string): Promise<string> {\n\t\tconst job = await this.#queue.add(\n\t\t\tJobNames.CronJob,\n\t\t\t{ type },\n\t\t\t{\n\t\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\t\trepeat: { pattern: cron },\n\t\t\t\tremoveOnComplete: true,\n\t\t\t\tbackoff: 1000,\n\t\t\t\tattempts: 3,\n\t\t\t},\n\t\t)\n\t\treturn job.id!.toString()\n\t}\n\n\tasync #cleanup() {\n\t\tawait this.retryAllFailedJobs()\n\t\tconst repeatableJobs = await this.#queue.getJobSchedulers()\n\t\tawait Promise.all(repeatableJobs.map((job) => this.#queue.removeJobScheduler(job.key)))\n\t}\n}\n",null]}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _bullmq = require('bullmq');var _redismincjs = require('../../cache/types/redis.min.cjs');var _indexmincjs = require('../../instance/index.min.cjs');var _indexmincjs3 = require('../../utilities/index.min.cjs');var d=(t=>(t.CronJob="CronJob",t.RepeatableJob="RepeatableJob",t.DelayedJob="DelayedJob",t))(d||{});class n{#e;#a={};#o=[];constructor(e){const a=new (0, _redismincjs.RedisCache)(e.redisConfig,{maxRetriesPerRequest:null,enableReadyCheck:!1}),t=_indexmincjs.Instance.get().getScopedName(e.queueName);this.#e=new (0, _bullmq.Queue)(t,{connection:a.client.options,skipVersionCheck:!0});const s=new (0, _bullmq.Worker)(t,async o=>{switch(o.name){case"DelayedJob":return _optionalChain([this, 'access', _ => _.#a, 'access', _2 => _2.onDelayed, 'optionalCall', _3 => _3(o.data)]);case"CronJob":return _optionalChain([this, 'access', _4 => _4.#a, 'access', _5 => _5.onCron, 'optionalCall', _6 => _6(o.data.type)]);case"RepeatableJob":return _optionalChain([this, 'access', _7 => _7.#a, 'access', _8 => _8.onRepeatable, 'optionalCall', _9 => _9(o.data)])}},{connection:a.client.options,autorun:!1,skipVersionCheck:!0});_indexmincjs.Instance.on("start",async()=>{await this.#s(),await Promise.all(this.#o.map(({cron:o,name:i})=>this.#n(i,o))),s.run()},10)}set callbacks(e){this.#a=e}set crons(e){this.#o=e}static#t(){return[Date.now(),_indexmincjs3.Random.string()].join("_")}async addDelayed(e,a){return(await this.#e.add("DelayedJob",e,{jobId:n.#t(),delay:a,removeOnComplete:!0,backoff:1e3,attempts:3})).id.toString()}async addRepeatable(e,a,t){returnawait _asyncNullishCoalesce(await _asyncOptionalChain([(await this.#e.add("RepeatableJob",e,{jobId:n.#t(),repeat:{pattern:a,...t?{tz:t}:{}},removeOnComplete:!0,backoff:1e3,attempts:3})), 'access', async _10 => _10.opts, 'optionalAccess', async _11 => _11.repeat, 'optionalAccess', async _12 => _12.key]), async () => (""))}async removeDelayed(e){const a=await this.#e.getJob(e);a&&await a.remove()}async retryAllFailedJobs(){const e=await this.#e.getFailed();await Promise.all(e.map(a=>a.retry()))}async#n(e,a){return(await this.#e.add("CronJob",{type:e},{jobId:n.#t(),repeat:{pattern:a},removeOnComplete:!0,backoff:1e3,attempts:3})).id.toString()}async#s(){await this.retryAllFailedJobs();const e=await this.#e.getJobSchedulers();await Promise.all(e.map(a=>this.#e.removeJobScheduler(a.key)))}}exports.RedisJob = n;
2
- //# sourceMappingURL=redis.min.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/jobs/types/redis.ts"],"names":["config","redisCache","RedisCache","#queue","Queue","job","#callbacks","#cleanup","#crons","cron","#addCron","name","worker","callbacks","crons","#getNewId","Random","data","delayInMs","tz","jobId","failedJobs","RedisJob","repeatableJobs"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/jobs/types/redis.min.cjs","sourcesContent":["import { Queue, Worker } from 'bullmq'\n\nimport { RedisCache } from '../../cache/types/redis'\nimport { Instance } from '../../instance'\nimport type { CronTypes, DelayedJobs, RepeatableJobs } from '../../types'\nimport { Random } from '../../utilities'\nimport type { RedisJobConfig } from '../pipes'\n\nenum JobNames {\n\tCronJob = 'CronJob',\n\tRepeatableJob = 'RepeatableJob',\n\tDelayedJob = 'DelayedJob',\n}\n\ntype Cron = CronTypes[keyof CronTypes]\ntype DelayedJobEvent = DelayedJobs[keyof DelayedJobs]\ntype RepeatableJobEvent = RepeatableJobs[keyof RepeatableJobs]\ntype DelayedJobCallback = (data: DelayedJobEvent) => Promise<void> | void\ntype CronJobCallback = (name: CronTypes[keyof CronTypes]) => Promise<void> | void\ntype RepeatableJobCallback = (data: RepeatableJobEvent) => Promise<void> | void\n\ntype JobCallbacks = { onDelayed?: DelayedJobCallback; onCron?: CronJobCallback; onRepeatable?: RepeatableJobCallback }\n\nexport class RedisJob {\n\t#queue: Queue\n\t#callbacks: JobCallbacks = {}\n\t#crons: { name: Cron; cron: string }[] = []\n\n\tconstructor(config: RedisJobConfig) {\n\t\tconst redisCache = new RedisCache(config.redisConfig, {\n\t\t\tmaxRetriesPerRequest: null,\n\t\t\tenableReadyCheck: false,\n\t\t})\n\t\tconst queueName = Instance.get().getScopedName(config.queueName)\n\t\tthis.#queue = new Queue(queueName, { connection: redisCache.client.options, skipVersionCheck: true })\n\t\tconst worker = new Worker(\n\t\t\tqueueName,\n\t\t\tasync (job) => {\n\t\t\t\tswitch (job.name) {\n\t\t\t\t\tcase JobNames.DelayedJob:\n\t\t\t\t\t\treturn (this.#callbacks.onDelayed as any)?.(job.data)\n\t\t\t\t\tcase JobNames.CronJob:\n\t\t\t\t\t\treturn (this.#callbacks.onCron as any)?.(job.data.type)\n\t\t\t\t\tcase JobNames.RepeatableJob:\n\t\t\t\t\t\treturn (this.#callbacks.onRepeatable as any)?.(job.data)\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ connection: redisCache.client.options, autorun: false, skipVersionCheck: true },\n\t\t)\n\n\t\tInstance.on(\n\t\t\t'start',\n\t\t\tasync () => {\n\t\t\t\tawait this.#cleanup()\n\t\t\t\tawait Promise.all(this.#crons.map(({ cron, name }) => this.#addCron(name, cron)))\n\t\t\t\tworker.run()\n\t\t\t},\n\t\t\t10,\n\t\t)\n\t}\n\n\tset callbacks(callbacks: JobCallbacks) {\n\t\tthis.#callbacks = callbacks\n\t}\n\n\tset crons(crons: { name: Cron; cron: string }[]) {\n\t\tthis.#crons = crons\n\t}\n\n\tstatic #getNewId() {\n\t\treturn [Date.now(), Random.string()].join('_')\n\t}\n\n\tasync addDelayed(data: DelayedJobEvent, delayInMs: number): Promise<string> {\n\t\tconst job = await this.#queue.add(JobNames.DelayedJob, data, {\n\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\tdelay: delayInMs,\n\t\t\tremoveOnComplete: true,\n\t\t\tbackoff: 1000,\n\t\t\tattempts: 3,\n\t\t})\n\t\treturn job.id!.toString()\n\t}\n\n\tasync addRepeatable(data: RepeatableJobEvent, cron: string, tz?: string): Promise<string> {\n\t\tconst job = await this.#queue.add(JobNames.RepeatableJob, data, {\n\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\trepeat: { pattern: cron, ...(tz ? { tz } : {}) },\n\t\t\tremoveOnComplete: true,\n\t\t\tbackoff: 1000,\n\t\t\tattempts: 3,\n\t\t})\n\t\treturn job.opts?.repeat?.key ?? ''\n\t}\n\n\tasync removeDelayed(jobId: string) {\n\t\tconst job = await this.#queue.getJob(jobId)\n\t\tif (job) await job.remove()\n\t}\n\n\tasync retryAllFailedJobs() {\n\t\tconst failedJobs = await this.#queue.getFailed()\n\t\tawait Promise.all(failedJobs.map((job) => job.retry()))\n\t}\n\n\tasync #addCron(type: Cron | string, cron: string): Promise<string> {\n\t\tconst job = await this.#queue.add(\n\t\t\tJobNames.CronJob,\n\t\t\t{ type },\n\t\t\t{\n\t\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\t\trepeat: { pattern: cron },\n\t\t\t\tremoveOnComplete: true,\n\t\t\t\tbackoff: 1000,\n\t\t\t\tattempts: 3,\n\t\t\t},\n\t\t)\n\t\treturn job.id!.toString()\n\t}\n\n\tasync #cleanup() {\n\t\tawait this.retryAllFailedJobs()\n\t\tconst repeatableJobs = await this.#queue.getJobSchedulers()\n\t\tawait Promise.all(repeatableJobs.map((job) => this.#queue.removeJobScheduler(job.key)))\n\t}\n}\n"]}
@@ -1,211 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('@fastify/cors');
2
- require('cors');
3
- var _socketio = require('socket.io');
4
- var _supertest = require('supertest'); var _supertest2 = _interopRequireDefault(_supertest);
5
- var _valleyed = require('valleyed');
6
- var _indexcjs = require('../../errors/index.cjs');
7
- var _indexcjs3 = require('../../instance/index.cjs');
8
- var _indexcjs5 = require('../../validations/index.cjs');
9
- var _valleyedcjs = require('../../validations/valleyed.cjs');
10
- var _openapicjs = require('../openapi.cjs');
11
- var _requestscjs = require('../requests.cjs');
12
- var _routescjs = require('../routes.cjs');
13
- var _socketscjs = require('../sockets.cjs');
14
- var _typescjs = require('../types.cjs');
15
- const errorsSchemas = Object.entries(_typescjs.StatusCodes).filter(([, value]) => value > 399).map(([key, value]) => ({
16
- status: value,
17
- contentType: "application/json",
18
- pipe: _valleyed.v.meta(_valleyed.v.array(_valleyed.v.object({ message: _valleyed.v.string(), field: _valleyed.v.optional(_valleyed.v.string()) })), {
19
- $refId: `Errors.${key}Response`,
20
- description: `${key} Response`
21
- })
22
- }));
23
- class Server {
24
- constructor(server, config, implementations) {
25
- this.config = config;
26
- this.implementations = implementations;
27
- this.server = server;
28
- this.#openapi = new (0, _openapicjs.OpenApi)(config);
29
- const socketInstance = new (0, _socketio.Server)(server, { cors: this.cors });
30
- this.socket = new (0, _socketscjs.SocketEmitter)(socketInstance, config);
31
- this.addRouter(this.#openapi.router());
32
- }
33
- #queue = [];
34
- #routesByKey = /* @__PURE__ */ new Map();
35
- #openapi;
36
-
37
-
38
- get cors() {
39
- return {
40
- origin: _optionalChain([this, 'access', _2 => _2.config, 'access', _3 => _3.cors, 'optionalAccess', _4 => _4.origin]) ? (_, cb) => cb(null, true) : _optionalChain([this, 'access', _5 => _5.config, 'access', _6 => _6.cors, 'optionalAccess', _7 => _7.origin]),
41
- methods: (_nullishCoalesce(_optionalChain([this, 'access', _8 => _8.config, 'access', _9 => _9.cors, 'optionalAccess', _10 => _10.methods]), () => ( Object.values(_typescjs.Methods)))).filter((m) => m !== _typescjs.Methods.options).map((m) => m.toUpperCase()),
42
- credentials: _optionalChain([this, 'access', _11 => _11.config, 'access', _12 => _12.cors, 'optionalAccess', _13 => _13.credentials])
43
- };
44
- }
45
- addRouter(...routers) {
46
- routers.map((router) => router.routes).forEach((routes) => this.addRoute(...routes));
47
- }
48
- addRoute(...routes) {
49
- routes.forEach((route) => {
50
- this.#queue.push(async () => {
51
- const { method, path, schema = {}, onError, middlewares = [], responseMiddlewares = [] } = route;
52
- const key = `(${method.toUpperCase()}) ${this.#openapi.cleanPath(path)}`;
53
- if (this.#routesByKey.get(key))
54
- throw new (0, _indexcjs.EquippedError)(`Route key ${key} already registered. All route keys must be unique`, { route, key });
55
- middlewares.forEach((m) => _optionalChain([m, 'access', _14 => _14.onSetup, 'optionalCall', _15 => _15(route)]));
56
- _optionalChain([onError, 'optionalAccess', _16 => _16.onSetup, 'optionalCall', _17 => _17(route)]);
57
- responseMiddlewares.forEach((m) => _optionalChain([m, 'access', _18 => _18.onSetup, 'optionalCall', _19 => _19(route)]));
58
- const { validateRequest, validateResponse, jsonSchema } = this.#resolveSchema(method, schema);
59
- this.#routesByKey.set(key, true);
60
- await this.#openapi.register(route, jsonSchema);
61
- this.implementations.registerRoute(method, this.#openapi.cleanPath(path), async (req, res) => {
62
- const request = await validateRequest(await this.implementations.parseRequest(req));
63
- try {
64
- for (const middleware of middlewares) await middleware.cb(request);
65
- const rawRes = await route.handler(request);
66
- const response = rawRes instanceof _requestscjs.Response ? rawRes : new (0, _requestscjs.Response)({ body: rawRes, status: _typescjs.StatusCodes.Ok, headers: {}, piped: false });
67
- for (const middleware of responseMiddlewares) await middleware.cb(request, response);
68
- return await this.implementations.handleResponse(res, await validateResponse(response));
69
- } catch (error) {
70
- if (_optionalChain([onError, 'optionalAccess', _20 => _20.cb])) {
71
- const rawResponse = await onError.cb(request, error);
72
- const response = rawResponse instanceof _requestscjs.Response ? rawResponse : new (0, _requestscjs.Response)({ body: rawResponse, status: _typescjs.StatusCodes.BadRequest, headers: {} });
73
- return await this.implementations.handleResponse(res, await validateResponse(response));
74
- }
75
- throw error;
76
- }
77
- });
78
- });
79
- });
80
- }
81
- #resolveSchema(method, schema) {
82
- const defaultStatusCode = _nullishCoalesce(_optionalChain([schema, 'optionalAccess', _21 => _21.defaultStatusCode]), () => ( _typescjs.StatusCodes.Ok));
83
- const defaultContentType = _nullishCoalesce(_optionalChain([schema, 'optionalAccess', _22 => _22.defaultContentType]), () => ( "application/json"));
84
- let status = defaultStatusCode;
85
- let contentType = defaultContentType;
86
- const jsonSchema = { response: {}, request: {} };
87
- const requestPipeDefs = {};
88
- const responsePipeDefs = {};
89
- const defs = [
90
- { key: "params", type: "request" },
91
- { key: "headers", type: "request" },
92
- { key: "cookies", type: "request" },
93
- { key: "query", type: "request" },
94
- { key: "body", type: "request", skip: ![_typescjs.Methods.post, _typescjs.Methods.put, _typescjs.Methods.patch].includes(method) },
95
- { key: "response", type: "response" },
96
- { key: "responseHeaders", type: "response" },
97
- { key: "responseCookies", type: "response" }
98
- ];
99
- defs.forEach((def) => {
100
- const pipe = _nullishCoalesce(schema[def.key], () => ( _valleyed.v.any()));
101
- if (def.skip) return;
102
- if (def.type === "request") {
103
- requestPipeDefs[def.key] = pipe;
104
- jsonSchema.request[def.key] = _valleyed.v.schema(pipe);
105
- }
106
- if (def.type === "response") {
107
- const pipeRecords = errorsSchemas.concat({ status: defaultStatusCode, contentType, pipe });
108
- responsePipeDefs[def.key] = _valleyed.v.any().pipe((input) => {
109
- const p = _optionalChain([pipeRecords, 'access', _23 => _23.find, 'call', _24 => _24((r) => r.status === status), 'optionalAccess', _25 => _25.pipe]);
110
- if (!p) throw _valleyed.PipeError.root(`schema not defined for status code: ${status}`, input);
111
- return _valleyed.v.assert(p, input);
112
- });
113
- jsonSchema.response[def.key] = pipeRecords.map((record) => ({
114
- status: record.status,
115
- contentType: record.contentType,
116
- schema: _valleyed.v.schema(record.pipe)
117
- }));
118
- }
119
- });
120
- const requestPipe = _valleyed.v.object(requestPipeDefs);
121
- _valleyed.v.compile(requestPipe, { allErrors: true });
122
- const responsePipe = _valleyed.v.object(responsePipeDefs);
123
- _valleyed.v.compile(responsePipe, { allErrors: true });
124
- const validateRequest = async (request) => {
125
- if (!Object.keys(requestPipeDefs)) return request;
126
- const validity = _valleyedcjs.requestLocalStorage.run(
127
- request,
128
- () => _valleyed.v.validate(requestPipe, {
129
- params: request.params,
130
- headers: request.headers,
131
- query: request.query,
132
- body: request.body,
133
- cookies: request.cookies
134
- })
135
- );
136
- if (!validity.valid) throw _indexcjs5.pipeErrorToValidationError.call(void 0, validity.error);
137
- request.params = validity.value.params;
138
- request.headers = validity.value.headers;
139
- request.query = validity.value.query;
140
- request.body = validity.value.body;
141
- request.cookies = validity.value.cookies;
142
- return request;
143
- };
144
- const validateResponse = async (response) => {
145
- if (!Object.keys(responsePipeDefs)) return response;
146
- status = response.status;
147
- contentType = response.contentType;
148
- const validity = _valleyedcjs.responseLocalStorage.run(
149
- response,
150
- () => _valleyed.v.validate(responsePipe, {
151
- responseHeaders: response.headers,
152
- responseCookies: Object.fromEntries(Object.entries(response.cookies).map(([key, val]) => [key, val.value])),
153
- response: response.body
154
- })
155
- );
156
- if (!validity.valid) throw _indexcjs5.pipeErrorToValidationError.call(void 0, validity.error);
157
- response.body = validity.value.response;
158
- response.headers = validity.value.responseHeaders;
159
- response.cookieValues = validity.value.responseCookies;
160
- return response;
161
- };
162
- return {
163
- jsonSchema,
164
- validateRequest,
165
- validateResponse
166
- };
167
- }
168
- test() {
169
- return _supertest2.default.call(void 0, this.server);
170
- }
171
- async start() {
172
- const port = this.config.port;
173
- const instance = _indexcjs3.Instance.get();
174
- const { app } = instance.settings;
175
- if (this.config.healthPath)
176
- this.addRoute({
177
- method: _typescjs.Methods.get,
178
- path: this.config.healthPath,
179
- handler: async (req) => req.res({
180
- body: `${instance.id}(${app.name}) service running`,
181
- contentType: "text/plain"
182
- })
183
- });
184
- await Promise.all(this.#queue.map((cb) => cb()));
185
- this.implementations.registerNotFoundHandler(async (req) => {
186
- const request = await this.implementations.parseRequest(req);
187
- throw new (0, _indexcjs.NotFoundError)(`Route ${request.path} not found`);
188
- });
189
- this.implementations.registerErrorHandler(async (error, _, res) => {
190
- if (!(error instanceof _indexcjs.EquippedError)) _indexcjs3.Instance.get().log.error({ error }, "Uncaught error in route handler");
191
- const response = error instanceof _indexcjs.RequestError ? new (0, _requestscjs.Response)({
192
- body: error.serializedErrors,
193
- status: error.statusCode
194
- }) : error instanceof _indexcjs.EquippedError ? new (0, _requestscjs.Response)({
195
- body: [{ message: error.message }],
196
- status: _typescjs.StatusCodes.BadRequest
197
- }) : new (0, _requestscjs.Response)({
198
- body: [{ message: "Something went wrong", data: error.message }],
199
- status: _typescjs.StatusCodes.BadRequest
200
- });
201
- return await this.implementations.handleResponse(res, response);
202
- });
203
- const started = await this.implementations.start(port);
204
- if (started) _indexcjs3.Instance.get().log.info(`${instance.id}(${app.name}) service listening on port ${port}`);
205
- return started;
206
- }
207
- }
208
-
209
-
210
- exports.Server = Server;
211
- //# sourceMappingURL=base.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/impls/base.ts","/home/runner/work/equipped/equipped/dist/cjs/server/impls/base.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/impls/base.cjs","sourcesContent":["import type http from 'node:http'\n\nimport { type FastifyCorsOptions } from '@fastify/cors'\nimport { type CorsOptions } from 'cors'\nimport { Server as SocketServer } from 'socket.io'\nimport supertest from 'supertest'\nimport { type Pipe, PipeError, v } from 'valleyed'\n\nimport { EquippedError, NotFoundError, RequestError } from '../../errors'\nimport { Instance } from '../../instance'\nimport { pipeErrorToValidationError } from '../../validations'\nimport { requestLocalStorage, responseLocalStorage } from '../../validations/valleyed'\nimport { OpenApi, type OpenApiSchemaDef } from '../openapi'\nimport type { ServerConfig } from '../pipes'\nimport { type Request, Response } from '../requests'\nimport { Router } from '../routes'\nimport { SocketEmitter } from '../sockets'\nimport { Methods, type MethodsEnum, type Route, type RouteDef, StatusCodes } from '../types'\n\ntype RequestValidator = (req: Request<any>) => Promise<Request<any>>\ntype ResponseValidator = (res: Response<any>) => Promise<Response<any>>\n\nconst errorsSchemas = Object.entries(StatusCodes)\n\t.filter(([, value]) => value > 399)\n\t.map(([key, value]) => ({\n\t\tstatus: value,\n\t\tcontentType: 'application/json',\n\t\tpipe: v.meta(v.array(v.object({ message: v.string(), field: v.optional(v.string()) })), {\n\t\t\t$refId: `Errors.${key}Response`,\n\t\t\tdescription: `${key} Response`,\n\t\t}) as Pipe<any, any>,\n\t}))\n\nexport abstract class Server<Req = any, Res = any> {\n\t#queue: (() => void | Promise<void>)[] = []\n\t#routesByKey = new Map<string, boolean>()\n\t#openapi: OpenApi\n\tsocket: SocketEmitter\n\tprotected server: http.Server\n\tprotected get cors(): CorsOptions & FastifyCorsOptions {\n\t\treturn {\n\t\t\torigin: this.config.cors?.origin ? (_, cb) => cb(null, true) : this.config.cors?.origin,\n\t\t\tmethods: (this.config.cors?.methods ?? Object.values(Methods)).filter((m) => m !== Methods.options).map((m) => m.toUpperCase()),\n\t\t\tcredentials: this.config.cors?.credentials,\n\t\t}\n\t}\n\n\tconstructor(\n\t\tserver: http.Server,\n\t\tprivate config: ServerConfig,\n\t\tprivate implementations: {\n\t\t\tparseRequest: (req: Req) => Promise<Request<any>>\n\t\t\thandleResponse: (res: Res, response: Response<any>) => Promise<void>\n\t\t\tregisterRoute: (method: MethodsEnum, path: string, cb: (req: Req, res: Res) => Promise<void>) => void\n\t\t\tregisterErrorHandler: (cb: (error: Error, req: Req, res: Res) => Promise<void>) => void\n\t\t\tregisterNotFoundHandler: (cb: (req: Req, res: Res) => Promise<void>) => void\n\t\t\tstart: (port: number) => Promise<boolean>\n\t\t},\n\t) {\n\t\tthis.server = server\n\t\tthis.#openapi = new OpenApi(config)\n\t\tconst socketInstance = new SocketServer(server, { cors: this.cors })\n\t\tthis.socket = new SocketEmitter(socketInstance, config)\n\t\tthis.addRouter(this.#openapi.router())\n\t}\n\n\taddRouter(...routers: Router<any>[]) {\n\t\trouters.map((router) => router.routes).forEach((routes) => this.addRoute(...routes))\n\t}\n\n\taddRoute<T extends RouteDef>(...routes: Route<T>[]) {\n\t\troutes.forEach((route) => {\n\t\t\tthis.#queue.push(async () => {\n\t\t\t\tconst { method, path, schema = {}, onError, middlewares = [], responseMiddlewares = [] } = route\n\n\t\t\t\tconst key = `(${method.toUpperCase()}) ${this.#openapi.cleanPath(path)}`\n\t\t\t\tif (this.#routesByKey.get(key))\n\t\t\t\t\tthrow new EquippedError(`Route key ${key} already registered. All route keys must be unique`, { route, key })\n\n\t\t\t\tmiddlewares.forEach((m) => m.onSetup?.(route as any))\n\t\t\t\tonError?.onSetup?.(route as any)\n\t\t\t\tresponseMiddlewares.forEach((m) => m.onSetup?.(route as any))\n\n\t\t\t\tconst { validateRequest, validateResponse, jsonSchema } = this.#resolveSchema(method, schema)\n\n\t\t\t\tthis.#routesByKey.set(key, true)\n\t\t\t\tawait this.#openapi.register(route, jsonSchema)\n\t\t\t\tthis.implementations.registerRoute(method, this.#openapi.cleanPath(path), async (req: Req, res: Res) => {\n\t\t\t\t\tconst request = await validateRequest(await this.implementations.parseRequest(req))\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (const middleware of middlewares) await middleware.cb(request)\n\t\t\t\t\t\tconst rawRes = await route.handler(request)\n\t\t\t\t\t\tconst response =\n\t\t\t\t\t\t\trawRes instanceof Response\n\t\t\t\t\t\t\t\t? rawRes\n\t\t\t\t\t\t\t\t: new Response({ body: rawRes, status: StatusCodes.Ok, headers: {}, piped: false })\n\t\t\t\t\t\tfor (const middleware of responseMiddlewares) await middleware.cb(request, response)\n\t\t\t\t\t\treturn await this.implementations.handleResponse(res, await validateResponse(response))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (onError?.cb) {\n\t\t\t\t\t\t\tconst rawResponse = await onError.cb(request, error as Error)\n\t\t\t\t\t\t\tconst response =\n\t\t\t\t\t\t\t\trawResponse instanceof Response\n\t\t\t\t\t\t\t\t\t? rawResponse\n\t\t\t\t\t\t\t\t\t: new Response({ body: rawResponse, status: StatusCodes.BadRequest, headers: {} })\n\t\t\t\t\t\t\treturn await this.implementations.handleResponse(res, await validateResponse(response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t#resolveSchema(method: MethodsEnum, schema: RouteDef) {\n\t\tconst defaultStatusCode = schema?.defaultStatusCode ?? StatusCodes.Ok\n\t\tconst defaultContentType = schema?.defaultContentType ?? 'application/json'\n\t\tlet status = defaultStatusCode\n\t\tlet contentType = defaultContentType\n\t\tconst jsonSchema: OpenApiSchemaDef = { response: {}, request: {} }\n\t\tconst requestPipeDefs: Pick<RouteDef, 'body' | 'headers' | 'query' | 'params' | 'cookies'> = {}\n\t\tconst responsePipeDefs: Pick<RouteDef, 'response' | 'responseHeaders' | 'responseCookies'> = {}\n\n\t\tconst defs: {\n\t\t\tkey: Exclude<keyof RouteDef, `default${string}` | 'context'>\n\t\t\ttype: keyof OpenApiSchemaDef\n\t\t\tskip?: boolean\n\t\t}[] = [\n\t\t\t{ key: 'params', type: 'request' },\n\t\t\t{ key: 'headers', type: 'request' },\n\t\t\t{ key: 'cookies', type: 'request' },\n\t\t\t{ key: 'query', type: 'request' },\n\t\t\t{ key: 'body', type: 'request', skip: !(<MethodsEnum[]>[Methods.post, Methods.put, Methods.patch]).includes(method) },\n\t\t\t{ key: 'response', type: 'response' },\n\t\t\t{ key: 'responseHeaders', type: 'response' },\n\t\t\t{ key: 'responseCookies', type: 'response' },\n\t\t]\n\t\tdefs.forEach((def) => {\n\t\t\tconst pipe = schema[def.key] ?? v.any()\n\t\t\tif (def.skip) return\n\n\t\t\tif (def.type === 'request') {\n\t\t\t\trequestPipeDefs[def.key] = pipe\n\t\t\t\tjsonSchema.request[def.key as keyof typeof jsonSchema.request] = v.schema(pipe)\n\t\t\t}\n\t\t\tif (def.type === 'response') {\n\t\t\t\tconst pipeRecords = errorsSchemas.concat({ status: defaultStatusCode, contentType, pipe })\n\t\t\t\tresponsePipeDefs[def.key] = v.any().pipe((input) => {\n\t\t\t\t\tconst p = pipeRecords.find((r) => r.status === status)?.pipe\n\t\t\t\t\tif (!p) throw PipeError.root(`schema not defined for status code: ${status}`, input)\n\t\t\t\t\treturn v.assert(p, input)\n\t\t\t\t})\n\t\t\t\tjsonSchema.response[def.key as keyof typeof jsonSchema.response] = pipeRecords.map((record) => ({\n\t\t\t\t\tstatus: record.status,\n\t\t\t\t\tcontentType: record.contentType,\n\t\t\t\t\tschema: v.schema(record.pipe),\n\t\t\t\t}))\n\t\t\t}\n\t\t})\n\t\tconst requestPipe = v.object(requestPipeDefs)\n\t\tv.compile(requestPipe, { allErrors: true })\n\t\tconst responsePipe = v.object(responsePipeDefs)\n\t\tv.compile(responsePipe, { allErrors: true })\n\t\tconst validateRequest: RequestValidator = async (request) => {\n\t\t\tif (!Object.keys(requestPipeDefs)) return request\n\t\t\tconst validity = requestLocalStorage.run(request, () =>\n\t\t\t\tv.validate(requestPipe, {\n\t\t\t\t\tparams: request.params,\n\t\t\t\t\theaders: request.headers,\n\t\t\t\t\tquery: request.query,\n\t\t\t\t\tbody: request.body,\n\t\t\t\t\tcookies: request.cookies,\n\t\t\t\t}),\n\t\t\t)\n\n\t\t\tif (!validity.valid) throw pipeErrorToValidationError(validity.error)\n\t\t\trequest.params = validity.value.params!\n\t\t\trequest.headers = validity.value.headers!\n\t\t\trequest.query = validity.value.query!\n\t\t\trequest.body = validity.value.body!\n\t\t\trequest.cookies = validity.value.cookies!\n\t\t\treturn request\n\t\t}\n\t\tconst validateResponse: ResponseValidator = async (response) => {\n\t\t\tif (!Object.keys(responsePipeDefs)) return response\n\t\t\tstatus = response.status\n\t\t\tcontentType = response.contentType\n\n\t\t\tconst validity = responseLocalStorage.run(response, () =>\n\t\t\t\tv.validate(responsePipe, {\n\t\t\t\t\tresponseHeaders: response.headers,\n\t\t\t\t\tresponseCookies: Object.fromEntries(Object.entries(response.cookies).map(([key, val]) => [key, val.value] as const)),\n\t\t\t\t\tresponse: response.body,\n\t\t\t\t}),\n\t\t\t)\n\n\t\t\tif (!validity.valid) throw pipeErrorToValidationError(validity.error)\n\t\t\tresponse.body = validity.value.response!\n\t\t\tresponse.headers = validity.value.responseHeaders!\n\t\t\tresponse.cookieValues = validity.value.responseCookies!\n\t\t\treturn response\n\t\t}\n\t\treturn {\n\t\t\tjsonSchema,\n\t\t\tvalidateRequest,\n\t\t\tvalidateResponse,\n\t\t}\n\t}\n\n\ttest() {\n\t\treturn supertest(this.server)\n\t}\n\n\tasync start() {\n\t\tconst port = this.config.port\n\t\tconst instance = Instance.get()\n\t\tconst { app } = instance.settings\n\t\tif (this.config.healthPath)\n\t\t\tthis.addRoute({\n\t\t\t\tmethod: Methods.get,\n\t\t\t\tpath: this.config.healthPath,\n\t\t\t\thandler: async (req) =>\n\t\t\t\t\treq.res({\n\t\t\t\t\t\tbody: `${instance.id}(${app.name}) service running`,\n\t\t\t\t\t\tcontentType: 'text/plain',\n\t\t\t\t\t}),\n\t\t\t})\n\n\t\tawait Promise.all(this.#queue.map((cb) => cb()))\n\n\t\tthis.implementations.registerNotFoundHandler(async (req) => {\n\t\t\tconst request = await this.implementations.parseRequest(req)\n\t\t\tthrow new NotFoundError(`Route ${request.path} not found`)\n\t\t})\n\t\tthis.implementations.registerErrorHandler(async (error, _, res) => {\n\t\t\tif (!(error instanceof EquippedError)) Instance.get().log.error({ error }, 'Uncaught error in route handler')\n\t\t\tconst response =\n\t\t\t\terror instanceof RequestError\n\t\t\t\t\t? new Response({\n\t\t\t\t\t\t\tbody: error.serializedErrors,\n\t\t\t\t\t\t\tstatus: error.statusCode,\n\t\t\t\t\t\t})\n\t\t\t\t\t: error instanceof EquippedError\n\t\t\t\t\t\t? new Response({\n\t\t\t\t\t\t\t\tbody: [{ message: error.message }],\n\t\t\t\t\t\t\t\tstatus: StatusCodes.BadRequest,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: new Response({\n\t\t\t\t\t\t\t\tbody: [{ message: 'Something went wrong', data: error.message }],\n\t\t\t\t\t\t\t\tstatus: StatusCodes.BadRequest,\n\t\t\t\t\t\t\t})\n\t\t\treturn await this.implementations.handleResponse(res, response)\n\t\t})\n\n\t\tconst started = await this.implementations.start(port)\n\t\tif (started) Instance.get().log.info(`${instance.id}(${app.name}) service listening on port ${port}`)\n\t\treturn started\n\t}\n}\n",null]}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('@fastify/cors');require('cors');var _socketio = require('socket.io');var _supertest = require('supertest'); var _supertest2 = _interopRequireDefault(_supertest);var _valleyed = require('valleyed');var _indexmincjs = require('../../errors/index.min.cjs');var _indexmincjs3 = require('../../instance/index.min.cjs');var _indexmincjs5 = require('../../validations/index.min.cjs');var _valleyedmincjs = require('../../validations/valleyed.min.cjs');var _openapimincjs = require('../openapi.min.cjs');var _requestsmincjs = require('../requests.min.cjs');require('../routes');var _socketsmincjs = require('../sockets.min.cjs');var _typesmincjs = require('../types.min.cjs');const x=Object.entries(_typesmincjs.StatusCodes).filter(([,k])=>k>399).map(([k,r])=>({status:r,contentType:"application/json",pipe:_valleyed.v.meta(_valleyed.v.array(_valleyed.v.object({message:_valleyed.v.string(),field:_valleyed.v.optional(_valleyed.v.string())})),{$refId:`Errors.${k}Response`,description:`${k} Response`})}));class Z{constructor(r,t,p){this.config=t;this.implementations=p;this.server=r,this.#e=new (0, _openapimincjs.OpenApi)(t);const c=new (0, _socketio.Server)(r,{cors:this.cors});this.socket=new (0, _socketsmincjs.SocketEmitter)(c,t),this.addRouter(this.#e.router())}#t=[];#s=new Map;#e;get cors(){return{origin:_optionalChain([this, 'access', _ => _.config, 'access', _2 => _2.cors, 'optionalAccess', _3 => _3.origin])?(r,t)=>t(null,!0):_optionalChain([this, 'access', _4 => _4.config, 'access', _5 => _5.cors, 'optionalAccess', _6 => _6.origin]),methods:(_nullishCoalesce(_optionalChain([this, 'access', _7 => _7.config, 'access', _8 => _8.cors, 'optionalAccess', _9 => _9.methods]), () => (Object.values(_typesmincjs.Methods)))).filter(r=>r!==_typesmincjs.Methods.options).map(r=>r.toUpperCase()),credentials:_optionalChain([this, 'access', _10 => _10.config, 'access', _11 => _11.cors, 'optionalAccess', _12 => _12.credentials])}}addRouter(...r){r.map(t=>t.routes).forEach(t=>this.addRoute(...t))}addRoute(...r){r.forEach(t=>{this.#t.push(async()=>{const{method:p,path:c,schema:o={},onError:d,middlewares:u=[],responseMiddlewares:m=[]}=t,y=`(${p.toUpperCase()}) ${this.#e.cleanPath(c)}`;if(this.#s.get(y))throw new (0, _indexmincjs.EquippedError)(`Route key ${y} already registered. All route keys must be unique`,{route:t,key:y});u.forEach(l=>_optionalChain([l, 'access', _13 => _13.onSetup, 'optionalCall', _14 => _14(t)])),_optionalChain([d, 'optionalAccess', _15 => _15.onSetup, 'optionalCall', _16 => _16(t)]),m.forEach(l=>_optionalChain([l, 'access', _17 => _17.onSetup, 'optionalCall', _18 => _18(t)]));const{validateRequest:E,validateResponse:v,jsonSchema:g}=this.#o(p,o);this.#s.set(y,!0),await this.#e.register(t,g),this.implementations.registerRoute(p,this.#e.cleanPath(c),async(l,w)=>{const e=await E(await this.implementations.parseRequest(l));try{for(const n of u)await n.cb(e);const s=await t.handler(e),i=s instanceof _requestsmincjs.Response?s:new (0, _requestsmincjs.Response)({body:s,status:_typesmincjs.StatusCodes.Ok,headers:{},piped:!1});for(const n of m)await n.cb(e,i);return await this.implementations.handleResponse(w,await v(i))}catch(s){if(_optionalChain([d, 'optionalAccess', _19 => _19.cb])){const i=await d.cb(e,s),n=i instanceof _requestsmincjs.Response?i:new (0, _requestsmincjs.Response)({body:i,status:_typesmincjs.StatusCodes.BadRequest,headers:{}});return await this.implementations.handleResponse(w,await v(n))}throw s}})})})}#o(r,t){const p=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _20 => _20.defaultStatusCode]), () => (_typesmincjs.StatusCodes.Ok)),c=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _21 => _21.defaultContentType]), () => ("application/json"));let o=p,d=c;const u={response:{},request:{}},m={},y={};[{key:"params",type:"request"},{key:"headers",type:"request"},{key:"cookies",type:"request"},{key:"query",type:"request"},{key:"body",type:"request",skip:![_typesmincjs.Methods.post,_typesmincjs.Methods.put,_typesmincjs.Methods.patch].includes(r)},{key:"response",type:"response"},{key:"responseHeaders",type:"response"},{key:"responseCookies",type:"response"}].forEach(e=>{const s=_nullishCoalesce(t[e.key], () => (_valleyed.v.any()));if(!e.skip&&(e.type==="request"&&(m[e.key]=s,u.request[e.key]=_valleyed.v.schema(s)),e.type==="response")){const i=x.concat({status:p,contentType:d,pipe:s});y[e.key]=_valleyed.v.any().pipe(n=>{const S=_optionalChain([i, 'access', _22 => _22.find, 'call', _23 => _23(C=>C.status===o), 'optionalAccess', _24 => _24.pipe]);if(!S)throw _valleyed.PipeError.root(`schema not defined for status code: ${o}`,n);return _valleyed.v.assert(S,n)}),u.response[e.key]=i.map(n=>({status:n.status,contentType:n.contentType,schema:_valleyed.v.schema(n.pipe)}))}});const v=_valleyed.v.object(m);_valleyed.v.compile(v,{allErrors:!0});const g=_valleyed.v.object(y);return _valleyed.v.compile(g,{allErrors:!0}),{jsonSchema:u,validateRequest:async e=>{if(!Object.keys(m))return e;const s=_valleyedmincjs.requestLocalStorage.run(e,()=>_valleyed.v.validate(v,{params:e.params,headers:e.headers,query:e.query,body:e.body,cookies:e.cookies}));if(!s.valid)throw _indexmincjs5.pipeErrorToValidationError.call(void 0, s.error);return e.params=s.value.params,e.headers=s.value.headers,e.query=s.value.query,e.body=s.value.body,e.cookies=s.value.cookies,e},validateResponse:async e=>{if(!Object.keys(y))return e;o=e.status,d=e.contentType;const s=_valleyedmincjs.responseLocalStorage.run(e,()=>_valleyed.v.validate(g,{responseHeaders:e.headers,responseCookies:Object.fromEntries(Object.entries(e.cookies).map(([i,n])=>[i,n.value])),response:e.body}));if(!s.valid)throw _indexmincjs5.pipeErrorToValidationError.call(void 0, s.error);return e.body=s.value.response,e.headers=s.value.responseHeaders,e.cookieValues=s.value.responseCookies,e}}}test(){return _supertest2.default.call(void 0, this.server)}async start(){const r=this.config.port,t=_indexmincjs3.Instance.get(),{app:p}=t.settings;this.config.healthPath&&this.addRoute({method:_typesmincjs.Methods.get,path:this.config.healthPath,handler:async o=>o.res({body:`${t.id}(${p.name}) service running`,contentType:"text/plain"})}),await Promise.all(this.#t.map(o=>o())),this.implementations.registerNotFoundHandler(async o=>{const d=await this.implementations.parseRequest(o);throw new (0, _indexmincjs.NotFoundError)(`Route ${d.path} not found`)}),this.implementations.registerErrorHandler(async(o,d,u)=>{o instanceof _indexmincjs.EquippedError||_indexmincjs3.Instance.get().log.error({error:o},"Uncaught error in route handler");const m=o instanceof _indexmincjs.RequestError?new (0, _requestsmincjs.Response)({body:o.serializedErrors,status:o.statusCode}):o instanceof _indexmincjs.EquippedError?new (0, _requestsmincjs.Response)({body:[{message:o.message}],status:_typesmincjs.StatusCodes.BadRequest}):new (0, _requestsmincjs.Response)({body:[{message:"Something went wrong",data:o.message}],status:_typesmincjs.StatusCodes.BadRequest});return await this.implementations.handleResponse(u,m)});const c=await this.implementations.start(r);return c&&_indexmincjs3.Instance.get().log.info(`${t.id}(${p.name}) service listening on port ${r}`),c}}exports.Server = Z;
2
- //# sourceMappingURL=base.min.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/impls/base.ts"],"names":["v","server","config","implementations"],"mappings":"AAEA,0yBAAwC,gBACP,qCACM,4FACjB,oCACkB,yDAG/B,4DACA,+DACqB,oEAGP,mDAEvB,qDACS,qBAAsD,mDAM7D,+CAGa,MAAA,CAAA,CAAA,MACb,CAAA,OAAQ,CAAA,wBAAA,CAAKA,CAAAA,MAAE,CAAMA,CAAAA,CAAE,CAAA,CAAA,CAAA,CAAA,EAAA,CAAO,CAAE,GAAA,CAAA,CAAA,GAASA,CAAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAG,CAAA,MAAOA,CAAE,CAAA,CAAA,WAAW,CAAA,kBAChE,CAAA,IAAA,CAAA,WAAA,CAAA,IAAa,CAAA,WAAA,CAAA,KAAA,CAAA,WACrB,CAAA,MAAA,CAAA,CAAA,OAAmB,CAAA,WAAA,CAAA,MAAA,CAAA,CACpB,CAAC,KAGI,CAAA,WAAA,CAAA,QAcN,CAAA,WAAA,CAAA,MACCC,CAAAA,CACQC,CAAAA,CACAC,CAAAA,CAQP,CATO,CAAA,MAAA,CAAA,CAAA,OACA,EAAA,CAAA,CAAA,QAAA,CAAA,CAAA,WASR,CAAK,CAAA,EAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/impls/base.min.cjs","sourcesContent":["import type http from 'node:http'\n\nimport { type FastifyCorsOptions } from '@fastify/cors'\nimport { type CorsOptions } from 'cors'\nimport { Server as SocketServer } from 'socket.io'\nimport supertest from 'supertest'\nimport { type Pipe, PipeError, v } from 'valleyed'\n\nimport { EquippedError, NotFoundError, RequestError } from '../../errors'\nimport { Instance } from '../../instance'\nimport { pipeErrorToValidationError } from '../../validations'\nimport { requestLocalStorage, responseLocalStorage } from '../../validations/valleyed'\nimport { OpenApi, type OpenApiSchemaDef } from '../openapi'\nimport type { ServerConfig } from '../pipes'\nimport { type Request, Response } from '../requests'\nimport { Router } from '../routes'\nimport { SocketEmitter } from '../sockets'\nimport { Methods, type MethodsEnum, type Route, type RouteDef, StatusCodes } from '../types'\n\ntype RequestValidator = (req: Request<any>) => Promise<Request<any>>\ntype ResponseValidator = (res: Response<any>) => Promise<Response<any>>\n\nconst errorsSchemas = Object.entries(StatusCodes)\n\t.filter(([, value]) => value > 399)\n\t.map(([key, value]) => ({\n\t\tstatus: value,\n\t\tcontentType: 'application/json',\n\t\tpipe: v.meta(v.array(v.object({ message: v.string(), field: v.optional(v.string()) })), {\n\t\t\t$refId: `Errors.${key}Response`,\n\t\t\tdescription: `${key} Response`,\n\t\t}) as Pipe<any, any>,\n\t}))\n\nexport abstract class Server<Req = any, Res = any> {\n\t#queue: (() => void | Promise<void>)[] = []\n\t#routesByKey = new Map<string, boolean>()\n\t#openapi: OpenApi\n\tsocket: SocketEmitter\n\tprotected server: http.Server\n\tprotected get cors(): CorsOptions & FastifyCorsOptions {\n\t\treturn {\n\t\t\torigin: this.config.cors?.origin ? (_, cb) => cb(null, true) : this.config.cors?.origin,\n\t\t\tmethods: (this.config.cors?.methods ?? Object.values(Methods)).filter((m) => m !== Methods.options).map((m) => m.toUpperCase()),\n\t\t\tcredentials: this.config.cors?.credentials,\n\t\t}\n\t}\n\n\tconstructor(\n\t\tserver: http.Server,\n\t\tprivate config: ServerConfig,\n\t\tprivate implementations: {\n\t\t\tparseRequest: (req: Req) => Promise<Request<any>>\n\t\t\thandleResponse: (res: Res, response: Response<any>) => Promise<void>\n\t\t\tregisterRoute: (method: MethodsEnum, path: string, cb: (req: Req, res: Res) => Promise<void>) => void\n\t\t\tregisterErrorHandler: (cb: (error: Error, req: Req, res: Res) => Promise<void>) => void\n\t\t\tregisterNotFoundHandler: (cb: (req: Req, res: Res) => Promise<void>) => void\n\t\t\tstart: (port: number) => Promise<boolean>\n\t\t},\n\t) {\n\t\tthis.server = server\n\t\tthis.#openapi = new OpenApi(config)\n\t\tconst socketInstance = new SocketServer(server, { cors: this.cors })\n\t\tthis.socket = new SocketEmitter(socketInstance, config)\n\t\tthis.addRouter(this.#openapi.router())\n\t}\n\n\taddRouter(...routers: Router<any>[]) {\n\t\trouters.map((router) => router.routes).forEach((routes) => this.addRoute(...routes))\n\t}\n\n\taddRoute<T extends RouteDef>(...routes: Route<T>[]) {\n\t\troutes.forEach((route) => {\n\t\t\tthis.#queue.push(async () => {\n\t\t\t\tconst { method, path, schema = {}, onError, middlewares = [], responseMiddlewares = [] } = route\n\n\t\t\t\tconst key = `(${method.toUpperCase()}) ${this.#openapi.cleanPath(path)}`\n\t\t\t\tif (this.#routesByKey.get(key))\n\t\t\t\t\tthrow new EquippedError(`Route key ${key} already registered. All route keys must be unique`, { route, key })\n\n\t\t\t\tmiddlewares.forEach((m) => m.onSetup?.(route as any))\n\t\t\t\tonError?.onSetup?.(route as any)\n\t\t\t\tresponseMiddlewares.forEach((m) => m.onSetup?.(route as any))\n\n\t\t\t\tconst { validateRequest, validateResponse, jsonSchema } = this.#resolveSchema(method, schema)\n\n\t\t\t\tthis.#routesByKey.set(key, true)\n\t\t\t\tawait this.#openapi.register(route, jsonSchema)\n\t\t\t\tthis.implementations.registerRoute(method, this.#openapi.cleanPath(path), async (req: Req, res: Res) => {\n\t\t\t\t\tconst request = await validateRequest(await this.implementations.parseRequest(req))\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (const middleware of middlewares) await middleware.cb(request)\n\t\t\t\t\t\tconst rawRes = await route.handler(request)\n\t\t\t\t\t\tconst response =\n\t\t\t\t\t\t\trawRes instanceof Response\n\t\t\t\t\t\t\t\t? rawRes\n\t\t\t\t\t\t\t\t: new Response({ body: rawRes, status: StatusCodes.Ok, headers: {}, piped: false })\n\t\t\t\t\t\tfor (const middleware of responseMiddlewares) await middleware.cb(request, response)\n\t\t\t\t\t\treturn await this.implementations.handleResponse(res, await validateResponse(response))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (onError?.cb) {\n\t\t\t\t\t\t\tconst rawResponse = await onError.cb(request, error as Error)\n\t\t\t\t\t\t\tconst response =\n\t\t\t\t\t\t\t\trawResponse instanceof Response\n\t\t\t\t\t\t\t\t\t? rawResponse\n\t\t\t\t\t\t\t\t\t: new Response({ body: rawResponse, status: StatusCodes.BadRequest, headers: {} })\n\t\t\t\t\t\t\treturn await this.implementations.handleResponse(res, await validateResponse(response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t#resolveSchema(method: MethodsEnum, schema: RouteDef) {\n\t\tconst defaultStatusCode = schema?.defaultStatusCode ?? StatusCodes.Ok\n\t\tconst defaultContentType = schema?.defaultContentType ?? 'application/json'\n\t\tlet status = defaultStatusCode\n\t\tlet contentType = defaultContentType\n\t\tconst jsonSchema: OpenApiSchemaDef = { response: {}, request: {} }\n\t\tconst requestPipeDefs: Pick<RouteDef, 'body' | 'headers' | 'query' | 'params' | 'cookies'> = {}\n\t\tconst responsePipeDefs: Pick<RouteDef, 'response' | 'responseHeaders' | 'responseCookies'> = {}\n\n\t\tconst defs: {\n\t\t\tkey: Exclude<keyof RouteDef, `default${string}` | 'context'>\n\t\t\ttype: keyof OpenApiSchemaDef\n\t\t\tskip?: boolean\n\t\t}[] = [\n\t\t\t{ key: 'params', type: 'request' },\n\t\t\t{ key: 'headers', type: 'request' },\n\t\t\t{ key: 'cookies', type: 'request' },\n\t\t\t{ key: 'query', type: 'request' },\n\t\t\t{ key: 'body', type: 'request', skip: !(<MethodsEnum[]>[Methods.post, Methods.put, Methods.patch]).includes(method) },\n\t\t\t{ key: 'response', type: 'response' },\n\t\t\t{ key: 'responseHeaders', type: 'response' },\n\t\t\t{ key: 'responseCookies', type: 'response' },\n\t\t]\n\t\tdefs.forEach((def) => {\n\t\t\tconst pipe = schema[def.key] ?? v.any()\n\t\t\tif (def.skip) return\n\n\t\t\tif (def.type === 'request') {\n\t\t\t\trequestPipeDefs[def.key] = pipe\n\t\t\t\tjsonSchema.request[def.key as keyof typeof jsonSchema.request] = v.schema(pipe)\n\t\t\t}\n\t\t\tif (def.type === 'response') {\n\t\t\t\tconst pipeRecords = errorsSchemas.concat({ status: defaultStatusCode, contentType, pipe })\n\t\t\t\tresponsePipeDefs[def.key] = v.any().pipe((input) => {\n\t\t\t\t\tconst p = pipeRecords.find((r) => r.status === status)?.pipe\n\t\t\t\t\tif (!p) throw PipeError.root(`schema not defined for status code: ${status}`, input)\n\t\t\t\t\treturn v.assert(p, input)\n\t\t\t\t})\n\t\t\t\tjsonSchema.response[def.key as keyof typeof jsonSchema.response] = pipeRecords.map((record) => ({\n\t\t\t\t\tstatus: record.status,\n\t\t\t\t\tcontentType: record.contentType,\n\t\t\t\t\tschema: v.schema(record.pipe),\n\t\t\t\t}))\n\t\t\t}\n\t\t})\n\t\tconst requestPipe = v.object(requestPipeDefs)\n\t\tv.compile(requestPipe, { allErrors: true })\n\t\tconst responsePipe = v.object(responsePipeDefs)\n\t\tv.compile(responsePipe, { allErrors: true })\n\t\tconst validateRequest: RequestValidator = async (request) => {\n\t\t\tif (!Object.keys(requestPipeDefs)) return request\n\t\t\tconst validity = requestLocalStorage.run(request, () =>\n\t\t\t\tv.validate(requestPipe, {\n\t\t\t\t\tparams: request.params,\n\t\t\t\t\theaders: request.headers,\n\t\t\t\t\tquery: request.query,\n\t\t\t\t\tbody: request.body,\n\t\t\t\t\tcookies: request.cookies,\n\t\t\t\t}),\n\t\t\t)\n\n\t\t\tif (!validity.valid) throw pipeErrorToValidationError(validity.error)\n\t\t\trequest.params = validity.value.params!\n\t\t\trequest.headers = validity.value.headers!\n\t\t\trequest.query = validity.value.query!\n\t\t\trequest.body = validity.value.body!\n\t\t\trequest.cookies = validity.value.cookies!\n\t\t\treturn request\n\t\t}\n\t\tconst validateResponse: ResponseValidator = async (response) => {\n\t\t\tif (!Object.keys(responsePipeDefs)) return response\n\t\t\tstatus = response.status\n\t\t\tcontentType = response.contentType\n\n\t\t\tconst validity = responseLocalStorage.run(response, () =>\n\t\t\t\tv.validate(responsePipe, {\n\t\t\t\t\tresponseHeaders: response.headers,\n\t\t\t\t\tresponseCookies: Object.fromEntries(Object.entries(response.cookies).map(([key, val]) => [key, val.value] as const)),\n\t\t\t\t\tresponse: response.body,\n\t\t\t\t}),\n\t\t\t)\n\n\t\t\tif (!validity.valid) throw pipeErrorToValidationError(validity.error)\n\t\t\tresponse.body = validity.value.response!\n\t\t\tresponse.headers = validity.value.responseHeaders!\n\t\t\tresponse.cookieValues = validity.value.responseCookies!\n\t\t\treturn response\n\t\t}\n\t\treturn {\n\t\t\tjsonSchema,\n\t\t\tvalidateRequest,\n\t\t\tvalidateResponse,\n\t\t}\n\t}\n\n\ttest() {\n\t\treturn supertest(this.server)\n\t}\n\n\tasync start() {\n\t\tconst port = this.config.port\n\t\tconst instance = Instance.get()\n\t\tconst { app } = instance.settings\n\t\tif (this.config.healthPath)\n\t\t\tthis.addRoute({\n\t\t\t\tmethod: Methods.get,\n\t\t\t\tpath: this.config.healthPath,\n\t\t\t\thandler: async (req) =>\n\t\t\t\t\treq.res({\n\t\t\t\t\t\tbody: `${instance.id}(${app.name}) service running`,\n\t\t\t\t\t\tcontentType: 'text/plain',\n\t\t\t\t\t}),\n\t\t\t})\n\n\t\tawait Promise.all(this.#queue.map((cb) => cb()))\n\n\t\tthis.implementations.registerNotFoundHandler(async (req) => {\n\t\t\tconst request = await this.implementations.parseRequest(req)\n\t\t\tthrow new NotFoundError(`Route ${request.path} not found`)\n\t\t})\n\t\tthis.implementations.registerErrorHandler(async (error, _, res) => {\n\t\t\tif (!(error instanceof EquippedError)) Instance.get().log.error({ error }, 'Uncaught error in route handler')\n\t\t\tconst response =\n\t\t\t\terror instanceof RequestError\n\t\t\t\t\t? new Response({\n\t\t\t\t\t\t\tbody: error.serializedErrors,\n\t\t\t\t\t\t\tstatus: error.statusCode,\n\t\t\t\t\t\t})\n\t\t\t\t\t: error instanceof EquippedError\n\t\t\t\t\t\t? new Response({\n\t\t\t\t\t\t\t\tbody: [{ message: error.message }],\n\t\t\t\t\t\t\t\tstatus: StatusCodes.BadRequest,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: new Response({\n\t\t\t\t\t\t\t\tbody: [{ message: 'Something went wrong', data: error.message }],\n\t\t\t\t\t\t\t\tstatus: StatusCodes.BadRequest,\n\t\t\t\t\t\t\t})\n\t\t\treturn await this.implementations.handleResponse(res, response)\n\t\t})\n\n\t\tconst started = await this.implementations.start(port)\n\t\tif (started) Instance.get().log.info(`${instance.id}(${app.name}) service listening on port ${port}`)\n\t\treturn started\n\t}\n}\n"]}