@forklaunch/core 0.2.3 → 0.2.6

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 (549) hide show
  1. package/LICENSE +21 -0
  2. package/lib/dist/cache/index.d.ts +4 -0
  3. package/lib/dist/cache/index.d.ts.map +1 -0
  4. package/lib/dist/cache/interfaces/ttlCache.interface.d.ts +2 -0
  5. package/lib/dist/cache/interfaces/ttlCache.interface.d.ts.map +1 -0
  6. package/lib/dist/cache/redisTtlCache.d.ts +353 -0
  7. package/lib/dist/cache/redisTtlCache.d.ts.map +1 -0
  8. package/{dist → lib/dist}/cache/redisTtlCache.js +1 -4
  9. package/lib/dist/cache/types/ttlCacheRecord.types.d.ts +2 -0
  10. package/lib/dist/cache/types/ttlCacheRecord.types.d.ts.map +1 -0
  11. package/lib/dist/controllers/index.d.ts +2 -0
  12. package/lib/dist/controllers/index.d.ts.map +1 -0
  13. package/lib/dist/controllers/interfaces/controller.interface.d.ts +2 -0
  14. package/lib/dist/controllers/interfaces/controller.interface.d.ts.map +1 -0
  15. package/lib/dist/database/index.d.ts +2 -0
  16. package/lib/dist/database/index.d.ts.map +1 -0
  17. package/lib/dist/database/mikro/models/entities/base.entity.d.ts +26 -0
  18. package/lib/dist/database/mikro/models/entities/base.entity.d.ts.map +1 -0
  19. package/lib/dist/database/mikro/models/entities/base.entity.js +46 -0
  20. package/lib/dist/entityMapper/index.d.ts +3 -0
  21. package/lib/dist/entityMapper/index.d.ts.map +1 -0
  22. package/lib/dist/entityMapper/interfaces/entityMapper.interface.d.ts +2 -0
  23. package/lib/dist/entityMapper/interfaces/entityMapper.interface.d.ts.map +1 -0
  24. package/lib/dist/entityMapper/models/baseEntityMapper.model.d.ts +63 -0
  25. package/lib/dist/entityMapper/models/baseEntityMapper.model.d.ts.map +1 -0
  26. package/lib/dist/entityMapper/models/requestEntityMapper.model.d.ts +58 -0
  27. package/lib/dist/entityMapper/models/requestEntityMapper.model.d.ts.map +1 -0
  28. package/lib/dist/entityMapper/models/responseEntityMapper.model.d.ts +56 -0
  29. package/lib/dist/entityMapper/models/responseEntityMapper.model.d.ts.map +1 -0
  30. package/lib/dist/entityMapper/types/entityMapper.types.d.ts +2 -0
  31. package/lib/dist/entityMapper/types/entityMapper.types.d.ts.map +1 -0
  32. package/lib/dist/http/guards/isHttpContractDetails.d.ts +5 -0
  33. package/lib/dist/http/guards/isHttpContractDetails.d.ts.map +1 -0
  34. package/lib/dist/http/guards/isHttpContractDetails.js +6 -0
  35. package/lib/dist/http/guards/isResponseShape.d.ts +2 -0
  36. package/lib/dist/http/guards/isResponseShape.d.ts.map +1 -0
  37. package/lib/dist/http/guards/isResponseShape.js +7 -0
  38. package/lib/dist/http/index.d.ts +6 -0
  39. package/lib/dist/http/index.d.ts.map +1 -0
  40. package/{dist → lib/dist}/http/index.js +1 -2
  41. package/lib/dist/http/interfaces/expressLikeApplication.interface.d.ts +12 -0
  42. package/lib/dist/http/interfaces/expressLikeApplication.interface.d.ts.map +1 -0
  43. package/lib/dist/http/interfaces/expressLikeRouter.interface.d.ts +103 -0
  44. package/lib/dist/http/interfaces/expressLikeRouter.interface.d.ts.map +1 -0
  45. package/lib/dist/http/interfaces/expressLikeRouter.interface.js +336 -0
  46. package/lib/dist/http/interfaces/index.d.ts +3 -0
  47. package/lib/dist/http/interfaces/index.d.ts.map +1 -0
  48. package/lib/dist/http/interfaces/index.js +2 -0
  49. package/lib/dist/http/middleware/index.d.ts +3 -0
  50. package/lib/dist/http/middleware/index.d.ts.map +1 -0
  51. package/lib/dist/http/middleware/request.middleware.d.ts +69 -0
  52. package/lib/dist/http/middleware/request.middleware.d.ts.map +1 -0
  53. package/{dist → lib/dist}/http/middleware/request.middleware.js +55 -117
  54. package/lib/dist/http/middleware/response.middleware.d.ts +27 -0
  55. package/lib/dist/http/middleware/response.middleware.d.ts.map +1 -0
  56. package/lib/dist/http/middleware/response.middleware.js +52 -0
  57. package/lib/dist/http/openApiV3Generator/index.d.ts +2 -0
  58. package/lib/dist/http/openApiV3Generator/index.d.ts.map +1 -0
  59. package/lib/dist/http/openApiV3Generator/index.js +1 -0
  60. package/lib/dist/http/openApiV3Generator/openApiV3Generator.d.ts +11 -0
  61. package/lib/dist/http/openApiV3Generator/openApiV3Generator.d.ts.map +1 -0
  62. package/{dist/http → lib/dist/http/openApiV3Generator}/openApiV3Generator.js +2 -24
  63. package/lib/dist/http/types/apiDefinition.types.d.ts +2 -0
  64. package/lib/dist/http/types/apiDefinition.types.d.ts.map +1 -0
  65. package/lib/dist/http/types/contractDetails.types.d.ts +2 -0
  66. package/lib/dist/http/types/contractDetails.types.d.ts.map +1 -0
  67. package/lib/dist/http/types/index.d.ts +4 -0
  68. package/lib/dist/http/types/index.d.ts.map +1 -0
  69. package/lib/dist/http/types/index.js +3 -0
  70. package/lib/dist/http/types/router.types.d.ts +2 -0
  71. package/lib/dist/http/types/router.types.d.ts.map +1 -0
  72. package/lib/dist/http/utils/enrichExpressLikeSend.d.ts +28 -0
  73. package/lib/dist/http/utils/enrichExpressLikeSend.d.ts.map +1 -0
  74. package/lib/dist/http/utils/enrichExpressLikeSend.js +50 -0
  75. package/lib/dist/http/utils/httpStatusCodes.d.ts +986 -0
  76. package/lib/dist/http/utils/httpStatusCodes.d.ts.map +1 -0
  77. package/lib/dist/http/utils/index.d.ts +3 -0
  78. package/lib/dist/http/utils/index.d.ts.map +1 -0
  79. package/lib/dist/http/utils/index.js +2 -0
  80. package/lib/dist/index.d.ts +7 -0
  81. package/lib/dist/index.d.ts.map +1 -0
  82. package/lib/dist/jest.config.d.ts +15 -0
  83. package/lib/dist/jest.config.d.ts.map +1 -0
  84. package/lib/dist/jest.config.js +21 -0
  85. package/lib/dist/lib/index.d.ts +7 -0
  86. package/lib/dist/lib/index.d.ts.map +1 -0
  87. package/lib/dist/lib/index.js +6 -0
  88. package/lib/dist/lib/jest.config.d.ts +15 -0
  89. package/lib/dist/lib/jest.config.d.ts.map +1 -0
  90. package/lib/dist/lib/jest.config.js +21 -0
  91. package/lib/dist/lib/src/cache/index.d.ts +4 -0
  92. package/lib/dist/lib/src/cache/index.d.ts.map +1 -0
  93. package/lib/dist/lib/src/cache/index.js +3 -0
  94. package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.d.ts +2 -0
  95. package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.d.ts.map +1 -0
  96. package/lib/dist/lib/src/cache/redisTtlCache.d.ts +353 -0
  97. package/lib/dist/lib/src/cache/redisTtlCache.d.ts.map +1 -0
  98. package/lib/dist/lib/src/cache/redisTtlCache.js +98 -0
  99. package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.d.ts +2 -0
  100. package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.d.ts.map +1 -0
  101. package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.js +1 -0
  102. package/lib/dist/lib/src/controllers/index.d.ts +2 -0
  103. package/lib/dist/lib/src/controllers/index.d.ts.map +1 -0
  104. package/lib/dist/lib/src/controllers/index.js +1 -0
  105. package/lib/dist/lib/src/controllers/interfaces/controller.interface.d.ts +2 -0
  106. package/lib/dist/lib/src/controllers/interfaces/controller.interface.d.ts.map +1 -0
  107. package/lib/dist/lib/src/controllers/interfaces/controller.interface.js +1 -0
  108. package/lib/dist/lib/src/database/index.d.ts +2 -0
  109. package/lib/dist/lib/src/database/index.d.ts.map +1 -0
  110. package/lib/dist/lib/src/database/index.js +1 -0
  111. package/lib/dist/lib/src/database/mikro/models/entities/base.entity.d.ts +26 -0
  112. package/lib/dist/lib/src/database/mikro/models/entities/base.entity.d.ts.map +1 -0
  113. package/lib/dist/lib/src/database/mikro/models/entities/base.entity.js +46 -0
  114. package/lib/dist/lib/src/domainMapper/index.d.ts +3 -0
  115. package/lib/dist/lib/src/domainMapper/index.d.ts.map +1 -0
  116. package/lib/dist/lib/src/domainMapper/index.js +2 -0
  117. package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts +2 -0
  118. package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts.map +1 -0
  119. package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.js +1 -0
  120. package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.d.ts +63 -0
  121. package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.d.ts.map +1 -0
  122. package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.js +75 -0
  123. package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.d.ts +58 -0
  124. package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.d.ts.map +1 -0
  125. package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.js +70 -0
  126. package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.d.ts +56 -0
  127. package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.d.ts.map +1 -0
  128. package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.js +65 -0
  129. package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.d.ts +2 -0
  130. package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.d.ts.map +1 -0
  131. package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.js +1 -0
  132. package/lib/dist/lib/src/dtoMapper/index.d.ts +3 -0
  133. package/lib/dist/lib/src/dtoMapper/index.d.ts.map +1 -0
  134. package/lib/dist/lib/src/dtoMapper/index.js +2 -0
  135. package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts +2 -0
  136. package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts.map +1 -0
  137. package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.js +1 -0
  138. package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts +63 -0
  139. package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts.map +1 -0
  140. package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.js +75 -0
  141. package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts +58 -0
  142. package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts.map +1 -0
  143. package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.js +70 -0
  144. package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts +56 -0
  145. package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts.map +1 -0
  146. package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.js +65 -0
  147. package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.d.ts +2 -0
  148. package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.d.ts.map +1 -0
  149. package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.js +1 -0
  150. package/lib/dist/lib/src/http/application/expressLikeApplication.d.ts +18 -0
  151. package/lib/dist/lib/src/http/application/expressLikeApplication.d.ts.map +1 -0
  152. package/lib/dist/lib/src/http/application/expressLikeApplication.js +20 -0
  153. package/lib/dist/lib/src/http/guards/isHttpContractDetails.d.ts +5 -0
  154. package/lib/dist/lib/src/http/guards/isHttpContractDetails.d.ts.map +1 -0
  155. package/lib/dist/lib/src/http/guards/isHttpContractDetails.js +6 -0
  156. package/lib/dist/lib/src/http/guards/isResponseShape.d.ts +2 -0
  157. package/lib/dist/lib/src/http/guards/isResponseShape.d.ts.map +1 -0
  158. package/lib/dist/lib/src/http/guards/isResponseShape.js +7 -0
  159. package/lib/dist/lib/src/http/handler/typedHandler.d.ts +21 -0
  160. package/lib/dist/lib/src/http/handler/typedHandler.d.ts.map +1 -0
  161. package/lib/dist/lib/src/http/handler/typedHandler.js +25 -0
  162. package/lib/dist/lib/src/http/index.d.ts +11 -0
  163. package/lib/dist/lib/src/http/index.d.ts.map +1 -0
  164. package/lib/dist/lib/src/http/index.js +10 -0
  165. package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.d.ts +12 -0
  166. package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.d.ts.map +1 -0
  167. package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.js +14 -0
  168. package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.d.ts +2 -0
  169. package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.d.ts.map +1 -0
  170. package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.js +1 -0
  171. package/lib/dist/lib/src/http/interfaces/index.d.ts +3 -0
  172. package/lib/dist/lib/src/http/interfaces/index.d.ts.map +1 -0
  173. package/lib/dist/lib/src/http/interfaces/index.js +2 -0
  174. package/lib/dist/lib/src/http/middleware/index.d.ts +3 -0
  175. package/lib/dist/lib/src/http/middleware/index.d.ts.map +1 -0
  176. package/lib/dist/lib/src/http/middleware/index.js +2 -0
  177. package/lib/dist/lib/src/http/middleware/request/auth.middleware.d.ts +27 -0
  178. package/lib/dist/lib/src/http/middleware/request/auth.middleware.d.ts.map +1 -0
  179. package/lib/dist/lib/src/http/middleware/request/auth.middleware.js +107 -0
  180. package/lib/dist/lib/src/http/middleware/request/cors.middleware.d.ts +9 -0
  181. package/lib/dist/lib/src/http/middleware/request/cors.middleware.d.ts.map +1 -0
  182. package/lib/dist/lib/src/http/middleware/request/cors.middleware.js +15 -0
  183. package/lib/dist/lib/src/http/middleware/request/createContext.middleware.d.ts +12 -0
  184. package/lib/dist/lib/src/http/middleware/request/createContext.middleware.d.ts.map +1 -0
  185. package/lib/dist/lib/src/http/middleware/request/createContext.middleware.js +26 -0
  186. package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.d.ts +12 -0
  187. package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.d.ts.map +1 -0
  188. package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.js +19 -0
  189. package/lib/dist/lib/src/http/middleware/request/parse.middleware.d.ts +13 -0
  190. package/lib/dist/lib/src/http/middleware/request/parse.middleware.d.ts.map +1 -0
  191. package/lib/dist/lib/src/http/middleware/request/parse.middleware.js +43 -0
  192. package/lib/dist/lib/src/http/middleware/request.middleware.d.ts +69 -0
  193. package/lib/dist/lib/src/http/middleware/request.middleware.d.ts.map +1 -0
  194. package/lib/dist/lib/src/http/middleware/request.middleware.js +210 -0
  195. package/lib/dist/lib/src/http/middleware/response/parse.middleware.d.ts +27 -0
  196. package/lib/dist/lib/src/http/middleware/response/parse.middleware.d.ts.map +1 -0
  197. package/lib/dist/lib/src/http/middleware/response/parse.middleware.js +52 -0
  198. package/lib/dist/lib/src/http/middleware/response.middleware.d.ts +27 -0
  199. package/lib/dist/lib/src/http/middleware/response.middleware.d.ts.map +1 -0
  200. package/lib/dist/lib/src/http/middleware/response.middleware.js +52 -0
  201. package/lib/dist/lib/src/http/openApiV3Generator/index.d.ts +2 -0
  202. package/lib/dist/lib/src/http/openApiV3Generator/index.d.ts.map +1 -0
  203. package/lib/dist/lib/src/http/openApiV3Generator/index.js +1 -0
  204. package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts +11 -0
  205. package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts.map +1 -0
  206. package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.js +167 -0
  207. package/lib/dist/lib/src/http/router/expressLikeRouter.d.ts +89 -0
  208. package/lib/dist/lib/src/http/router/expressLikeRouter.d.ts.map +1 -0
  209. package/{dist/http/interfaces/forklaunchExpress.router.interface.js → lib/dist/lib/src/http/router/expressLikeRouter.js} +85 -91
  210. package/lib/dist/lib/src/http/types/apiDefinition.types.d.ts +2 -0
  211. package/lib/dist/lib/src/http/types/apiDefinition.types.d.ts.map +1 -0
  212. package/lib/dist/lib/src/http/types/apiDefinition.types.js +1 -0
  213. package/lib/dist/lib/src/http/types/contractDetails.types.d.ts +2 -0
  214. package/lib/dist/lib/src/http/types/contractDetails.types.d.ts.map +1 -0
  215. package/lib/dist/lib/src/http/types/contractDetails.types.js +1 -0
  216. package/lib/dist/lib/src/http/types/index.d.ts +4 -0
  217. package/lib/dist/lib/src/http/types/index.d.ts.map +1 -0
  218. package/lib/dist/lib/src/http/types/index.js +3 -0
  219. package/lib/dist/lib/src/http/types/router.types.d.ts +2 -0
  220. package/lib/dist/lib/src/http/types/router.types.d.ts.map +1 -0
  221. package/lib/dist/lib/src/http/types/router.types.js +1 -0
  222. package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.d.ts +28 -0
  223. package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.d.ts.map +1 -0
  224. package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.js +50 -0
  225. package/lib/dist/lib/src/http/utils/httpStatusCodes.d.ts +986 -0
  226. package/lib/dist/lib/src/http/utils/httpStatusCodes.d.ts.map +1 -0
  227. package/lib/dist/lib/src/http/utils/httpStatusCodes.js +1039 -0
  228. package/lib/dist/lib/src/http/utils/index.d.ts +3 -0
  229. package/lib/dist/lib/src/http/utils/index.d.ts.map +1 -0
  230. package/lib/dist/lib/src/http/utils/index.js +2 -0
  231. package/lib/dist/lib/src/services/index.d.ts +2 -0
  232. package/lib/dist/lib/src/services/index.d.ts.map +1 -0
  233. package/lib/dist/lib/src/services/interfaces/baseService.d.ts +2 -0
  234. package/lib/dist/lib/src/services/interfaces/baseService.d.ts.map +1 -0
  235. package/lib/dist/lib/src/services/interfaces/baseService.js +1 -0
  236. package/lib/dist/lib/tests/dtoMapper.test.d.ts +2 -0
  237. package/lib/dist/lib/tests/dtoMapper.test.d.ts.map +1 -0
  238. package/lib/dist/lib/tests/dtoMapper.test.js +172 -0
  239. package/lib/dist/lib/tests/entityMapper.test.d.ts.map +1 -0
  240. package/lib/dist/lib/tests/entityMapper.test.js +172 -0
  241. package/lib/dist/lib/tests/expressLikeRouter.test.d.ts +2 -0
  242. package/lib/dist/lib/tests/expressLikeRouter.test.d.ts.map +1 -0
  243. package/lib/dist/lib/tests/expressLikeRouter.test.js +3 -0
  244. package/lib/dist/lib/tests/http.middleware.test.d.ts.map +1 -0
  245. package/lib/dist/lib/tests/http.middleware.test.js +95 -0
  246. package/lib/dist/lib/tests/openApiV3Generator.test.d.ts.map +1 -0
  247. package/lib/dist/lib/tests/openApiV3Generator.test.js +66 -0
  248. package/lib/dist/lib/tests/redisTtlCache.test.d.ts.map +1 -0
  249. package/lib/dist/lib/tests/redisTtlCache.test.js +49 -0
  250. package/lib/dist/lib/tests/typedHandler.test.d.ts +2 -0
  251. package/lib/dist/lib/tests/typedHandler.test.d.ts.map +1 -0
  252. package/lib/dist/lib/tests/typedHandler.test.js +3 -0
  253. package/lib/dist/lib/vitest.config.d.ts +3 -0
  254. package/lib/dist/lib/vitest.config.d.ts.map +1 -0
  255. package/lib/dist/lib/vitest.config.js +7 -0
  256. package/lib/dist/services/index.d.ts +2 -0
  257. package/lib/dist/services/index.d.ts.map +1 -0
  258. package/lib/dist/services/index.js +1 -0
  259. package/lib/dist/services/interfaces/baseService.d.ts +2 -0
  260. package/lib/dist/services/interfaces/baseService.d.ts.map +1 -0
  261. package/lib/dist/services/interfaces/baseService.js +1 -0
  262. package/lib/dist/tests/entityMapper.test.d.ts +2 -0
  263. package/lib/dist/tests/entityMapper.test.d.ts.map +1 -0
  264. package/{dist → lib/dist}/tests/entityMapper.test.js +6 -2
  265. package/lib/dist/tests/http.middleware.test.d.ts +2 -0
  266. package/lib/dist/tests/http.middleware.test.d.ts.map +1 -0
  267. package/{dist → lib/dist}/tests/http.middleware.test.js +39 -21
  268. package/lib/dist/tests/openApiV3Generator.test.d.ts +2 -0
  269. package/lib/dist/tests/openApiV3Generator.test.d.ts.map +1 -0
  270. package/{dist → lib/dist}/tests/openApiV3Generator.test.js +1 -1
  271. package/lib/dist/tests/redisTtlCache.test.d.ts +2 -0
  272. package/lib/dist/tests/redisTtlCache.test.d.ts.map +1 -0
  273. package/lib/eslint.config.mjs +10 -0
  274. package/lib/index.d.ts +7 -0
  275. package/lib/index.d.ts.map +1 -0
  276. package/lib/index.js +7 -0
  277. package/lib/jest.config.d.ts +4 -0
  278. package/lib/jest.config.d.ts.map +1 -0
  279. package/lib/jest.config.js +21 -0
  280. package/lib/src/cache/index.d.ts.map +1 -0
  281. package/lib/src/cache/index.js +3 -0
  282. package/lib/src/cache/interfaces/ttlCache.interface.d.ts.map +1 -0
  283. package/lib/src/cache/interfaces/ttlCache.interface.js +1 -0
  284. package/lib/src/cache/redisTtlCache.d.ts.map +1 -0
  285. package/lib/src/cache/redisTtlCache.js +98 -0
  286. package/lib/src/cache/types/ttlCacheRecord.types.d.ts.map +1 -0
  287. package/lib/src/cache/types/ttlCacheRecord.types.js +1 -0
  288. package/lib/src/controllers/index.d.ts.map +1 -0
  289. package/lib/src/controllers/index.js +1 -0
  290. package/lib/src/controllers/interfaces/controller.interface.d.ts.map +1 -0
  291. package/lib/src/controllers/interfaces/controller.interface.js +1 -0
  292. package/lib/src/database/index.d.ts.map +1 -0
  293. package/lib/src/database/index.js +1 -0
  294. package/lib/src/database/mikro/models/entities/base.entity.d.ts.map +1 -0
  295. package/lib/src/domainMapper/index.d.ts +3 -0
  296. package/lib/src/domainMapper/index.d.ts.map +1 -0
  297. package/lib/src/domainMapper/index.js +2 -0
  298. package/{dist/entityMapper/interfaces/entityMapper.interface.d.ts → lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts} +3 -3
  299. package/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts.map +1 -0
  300. package/lib/src/domainMapper/interfaces/dtoMapper.interface.js +1 -0
  301. package/{dist/entityMapper/models/baseEntityMapper.model.d.ts → lib/src/domainMapper/models/baseDtoMapper.model.d.ts} +13 -13
  302. package/lib/src/domainMapper/models/baseDtoMapper.model.d.ts.map +1 -0
  303. package/lib/src/domainMapper/models/baseDtoMapper.model.js +75 -0
  304. package/{dist/entityMapper/models/requestEntityMapper.model.d.ts → lib/src/domainMapper/models/requestDtoMapper.model.d.ts} +13 -13
  305. package/lib/src/domainMapper/models/requestDtoMapper.model.d.ts.map +1 -0
  306. package/lib/src/domainMapper/models/requestDtoMapper.model.js +70 -0
  307. package/{dist/entityMapper/models/responseEntityMapper.model.d.ts → lib/src/domainMapper/models/responseDtoMapper.model.d.ts} +12 -12
  308. package/lib/src/domainMapper/models/responseDtoMapper.model.d.ts.map +1 -0
  309. package/lib/src/domainMapper/models/responseDtoMapper.model.js +65 -0
  310. package/lib/src/domainMapper/types/dtoMapper.types.d.ts +9 -0
  311. package/lib/src/domainMapper/types/dtoMapper.types.d.ts.map +1 -0
  312. package/lib/src/domainMapper/types/dtoMapper.types.js +1 -0
  313. package/lib/src/dtoMapper/index.d.ts +3 -0
  314. package/lib/src/dtoMapper/index.d.ts.map +1 -0
  315. package/lib/src/dtoMapper/index.js +2 -0
  316. package/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts +18 -0
  317. package/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts.map +1 -0
  318. package/lib/src/dtoMapper/interfaces/dtoMapper.interface.js +1 -0
  319. package/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts +72 -0
  320. package/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts.map +1 -0
  321. package/lib/src/dtoMapper/models/baseDtoMapper.model.js +75 -0
  322. package/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts +68 -0
  323. package/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts.map +1 -0
  324. package/lib/src/dtoMapper/models/requestDtoMapper.model.js +70 -0
  325. package/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts +67 -0
  326. package/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts.map +1 -0
  327. package/lib/src/dtoMapper/models/responseDtoMapper.model.js +65 -0
  328. package/lib/src/dtoMapper/types/dtoMapper.types.d.ts +9 -0
  329. package/lib/src/dtoMapper/types/dtoMapper.types.d.ts.map +1 -0
  330. package/lib/src/dtoMapper/types/dtoMapper.types.js +1 -0
  331. package/lib/src/http/application/expressLikeApplication.d.ts +22 -0
  332. package/lib/src/http/application/expressLikeApplication.d.ts.map +1 -0
  333. package/lib/src/http/application/expressLikeApplication.js +20 -0
  334. package/lib/src/http/guards/isExpressLikeSchemaHandler.d.ts +5 -0
  335. package/lib/src/http/guards/isExpressLikeSchemaHandler.d.ts.map +1 -0
  336. package/lib/src/http/guards/isExpressLikeSchemaHandler.js +9 -0
  337. package/lib/src/http/guards/isHttpContractDetails.d.ts +7 -0
  338. package/lib/src/http/guards/isHttpContractDetails.d.ts.map +1 -0
  339. package/lib/src/http/guards/isHttpContractDetails.js +9 -0
  340. package/lib/src/http/guards/isPathParamContractDetails.d.ts +4 -0
  341. package/lib/src/http/guards/isPathParamContractDetails.d.ts.map +1 -0
  342. package/lib/src/http/guards/isPathParamContractDetails.js +10 -0
  343. package/lib/src/http/guards/isResponseShape.d.ts +3 -0
  344. package/lib/src/http/guards/isResponseShape.d.ts.map +1 -0
  345. package/lib/src/http/guards/isResponseShape.js +7 -0
  346. package/lib/src/http/guards/isTypedHandler.d.ts +5 -0
  347. package/lib/src/http/guards/isTypedHandler.d.ts.map +1 -0
  348. package/lib/src/http/guards/isTypedHandler.js +6 -0
  349. package/lib/src/http/handler/typedHandler.d.ts +24 -0
  350. package/lib/src/http/handler/typedHandler.d.ts.map +1 -0
  351. package/lib/src/http/handler/typedHandler.js +25 -0
  352. package/lib/src/http/handlers/typedHandler.d.ts +27 -0
  353. package/lib/src/http/handlers/typedHandler.d.ts.map +1 -0
  354. package/lib/src/http/handlers/typedHandler.js +30 -0
  355. package/lib/src/http/index.d.ts +12 -0
  356. package/lib/src/http/index.d.ts.map +1 -0
  357. package/lib/src/http/index.js +11 -0
  358. package/{dist/http/interfaces/forklaunchExpress.application.interface.d.ts → lib/src/http/interfaces/expressLikeApplication.interface.d.ts} +1 -1
  359. package/lib/src/http/interfaces/expressLikeApplication.interface.d.ts.map +1 -0
  360. package/lib/src/http/interfaces/expressLikeApplication.interface.js +14 -0
  361. package/lib/src/http/interfaces/expressLikeRouter.interface.d.ts +24 -0
  362. package/lib/src/http/interfaces/expressLikeRouter.interface.d.ts.map +1 -0
  363. package/lib/src/http/interfaces/expressLikeRouter.interface.js +1 -0
  364. package/lib/src/http/interfaces/index.d.ts +3 -0
  365. package/lib/src/http/interfaces/index.d.ts.map +1 -0
  366. package/lib/src/http/interfaces/index.js +2 -0
  367. package/lib/src/http/middleware/index.d.ts.map +1 -0
  368. package/lib/src/http/middleware/index.js +2 -0
  369. package/lib/src/http/middleware/request/auth.middleware.d.ts +31 -0
  370. package/lib/src/http/middleware/request/auth.middleware.d.ts.map +1 -0
  371. package/lib/src/http/middleware/request/auth.middleware.js +107 -0
  372. package/lib/src/http/middleware/request/cors.middleware.d.ts +13 -0
  373. package/lib/src/http/middleware/request/cors.middleware.d.ts.map +1 -0
  374. package/lib/src/http/middleware/request/cors.middleware.js +15 -0
  375. package/lib/src/http/middleware/request/createContext.middleware.d.ts +15 -0
  376. package/lib/src/http/middleware/request/createContext.middleware.d.ts.map +1 -0
  377. package/lib/src/http/middleware/request/createContext.middleware.js +26 -0
  378. package/lib/src/http/middleware/request/enrichDetails.middleware.d.ts +15 -0
  379. package/lib/src/http/middleware/request/enrichDetails.middleware.d.ts.map +1 -0
  380. package/lib/src/http/middleware/request/enrichDetails.middleware.js +19 -0
  381. package/lib/src/http/middleware/request/parse.middleware.d.ts +17 -0
  382. package/lib/src/http/middleware/request/parse.middleware.d.ts.map +1 -0
  383. package/lib/src/http/middleware/request/parse.middleware.js +43 -0
  384. package/lib/src/http/middleware/request.middleware.d.ts +73 -0
  385. package/lib/src/http/middleware/request.middleware.d.ts.map +1 -0
  386. package/lib/src/http/middleware/request.middleware.js +210 -0
  387. package/lib/src/http/middleware/response/parse.middleware.d.ts +31 -0
  388. package/lib/src/http/middleware/response/parse.middleware.d.ts.map +1 -0
  389. package/lib/src/http/middleware/response/parse.middleware.js +52 -0
  390. package/lib/src/http/middleware/response.middleware.d.ts +31 -0
  391. package/lib/src/http/middleware/response.middleware.d.ts.map +1 -0
  392. package/lib/src/http/middleware/response.middleware.js +52 -0
  393. package/lib/src/http/openApiV3Generator/index.d.ts +2 -0
  394. package/lib/src/http/openApiV3Generator/index.d.ts.map +1 -0
  395. package/lib/src/http/openApiV3Generator/index.js +1 -0
  396. package/{dist/http → lib/src/http/openApiV3Generator}/openApiV3Generator.d.ts +1 -1
  397. package/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts.map +1 -0
  398. package/lib/src/http/openApiV3Generator/openApiV3Generator.js +169 -0
  399. package/lib/src/http/router/expressLikeRouter.d.ts +135 -0
  400. package/lib/src/http/router/expressLikeRouter.d.ts.map +1 -0
  401. package/lib/src/http/router/expressLikeRouter.js +438 -0
  402. package/{dist/http/types/api.types.d.ts → lib/src/http/types/apiDefinition.types.d.ts} +49 -24
  403. package/lib/src/http/types/apiDefinition.types.d.ts.map +1 -0
  404. package/lib/src/http/types/apiDefinition.types.js +1 -0
  405. package/lib/src/http/types/contractDetails.types.d.ts +169 -0
  406. package/lib/src/http/types/contractDetails.types.d.ts.map +1 -0
  407. package/lib/src/http/types/contractDetails.types.js +1 -0
  408. package/lib/src/http/types/expressLikeRouter.types.d.ts +35 -0
  409. package/lib/src/http/types/expressLikeRouter.types.d.ts.map +1 -0
  410. package/lib/src/http/types/expressLikeRouter.types.js +1 -0
  411. package/lib/src/http/types/index.d.ts +4 -0
  412. package/lib/src/http/types/index.d.ts.map +1 -0
  413. package/lib/src/http/types/index.js +3 -0
  414. package/{dist/http/types/forklaunch.types.d.ts → lib/src/http/types/router.types.d.ts} +3 -3
  415. package/lib/src/http/types/router.types.d.ts.map +1 -0
  416. package/lib/src/http/types/router.types.js +1 -0
  417. package/lib/src/http/utils/enrichExpressLikeSend.d.ts +32 -0
  418. package/lib/src/http/utils/enrichExpressLikeSend.d.ts.map +1 -0
  419. package/lib/src/http/utils/enrichExpressLikeSend.js +50 -0
  420. package/lib/src/http/utils/httpStatusCodes.d.ts.map +1 -0
  421. package/lib/src/http/utils/httpStatusCodes.js +1039 -0
  422. package/lib/src/http/utils/index.d.ts +3 -0
  423. package/lib/src/http/utils/index.d.ts.map +1 -0
  424. package/lib/src/http/utils/index.js +2 -0
  425. package/lib/src/services/index.d.ts.map +1 -0
  426. package/lib/src/services/index.js +1 -0
  427. package/lib/src/services/interfaces/baseService.d.ts.map +1 -0
  428. package/lib/src/services/interfaces/baseService.js +1 -0
  429. package/lib/tests/dtoMapper.test.d.ts +2 -0
  430. package/lib/tests/dtoMapper.test.d.ts.map +1 -0
  431. package/lib/tests/dtoMapper.test.js +168 -0
  432. package/lib/tests/entityMapper.test.d.ts +2 -0
  433. package/lib/tests/entityMapper.test.js +168 -0
  434. package/lib/tests/expressLikeRouter.test.d.ts +2 -0
  435. package/lib/tests/expressLikeRouter.test.d.ts.map +1 -0
  436. package/lib/tests/expressLikeRouter.test.js +3 -0
  437. package/lib/tests/expressLikeRouterInstantiation.test.d.ts +2 -0
  438. package/lib/tests/expressLikeRouterInstantiation.test.d.ts.map +1 -0
  439. package/lib/tests/expressLikeRouterInstantiation.test.js +60 -0
  440. package/lib/tests/http.middleware.test.d.ts +2 -0
  441. package/lib/tests/http.middleware.test.js +102 -0
  442. package/lib/tests/openApiV3Generator.test.d.ts +2 -0
  443. package/lib/tests/openApiV3Generator.test.js +66 -0
  444. package/lib/tests/redisTtlCache.test.d.ts +2 -0
  445. package/lib/tests/redisTtlCache.test.js +49 -0
  446. package/lib/tests/typedHandler.test.d.ts +2 -0
  447. package/lib/tests/typedHandler.test.d.ts.map +1 -0
  448. package/lib/tests/typedHandler.test.js +3 -0
  449. package/lib/tsconfig.tsbuildinfo +1 -0
  450. package/lib/vitest.config.d.ts +3 -0
  451. package/lib/vitest.config.d.ts.map +1 -0
  452. package/lib/vitest.config.js +7 -0
  453. package/package.json +52 -30
  454. package/dist/cache/index.d.ts.map +0 -1
  455. package/dist/cache/interfaces/ttlCache.interface.d.ts.map +0 -1
  456. package/dist/cache/redisTtlCache.d.ts.map +0 -1
  457. package/dist/cache/types/ttlCacheRecord.types.d.ts.map +0 -1
  458. package/dist/controllers/index.d.ts.map +0 -1
  459. package/dist/controllers/interfaces/controller.interface.d.ts.map +0 -1
  460. package/dist/database/index.d.ts.map +0 -1
  461. package/dist/database/mikro/models/entities/base.entity.d.ts.map +0 -1
  462. package/dist/entityMapper/index.d.ts +0 -3
  463. package/dist/entityMapper/index.d.ts.map +0 -1
  464. package/dist/entityMapper/interfaces/entityMapper.interface.d.ts.map +0 -1
  465. package/dist/entityMapper/models/baseEntityMapper.model.d.ts.map +0 -1
  466. package/dist/entityMapper/models/requestEntityMapper.model.d.ts.map +0 -1
  467. package/dist/entityMapper/models/responseEntityMapper.model.d.ts.map +0 -1
  468. package/dist/entityMapper/types/entityMapper.types.d.ts +0 -10
  469. package/dist/entityMapper/types/entityMapper.types.d.ts.map +0 -1
  470. package/dist/eslint.config.mjs +0 -10
  471. package/dist/http/httpStatusCodes.d.ts.map +0 -1
  472. package/dist/http/index.d.ts +0 -7
  473. package/dist/http/index.d.ts.map +0 -1
  474. package/dist/http/interfaces/forklaunchExpress.application.interface.d.ts.map +0 -1
  475. package/dist/http/interfaces/forklaunchExpress.router.interface.d.ts +0 -118
  476. package/dist/http/interfaces/forklaunchExpress.router.interface.d.ts.map +0 -1
  477. package/dist/http/interfaces/index.d.ts +0 -3
  478. package/dist/http/interfaces/index.d.ts.map +0 -1
  479. package/dist/http/interfaces/index.js +0 -2
  480. package/dist/http/middleware/index.d.ts.map +0 -1
  481. package/dist/http/middleware/request.middleware.d.ts +0 -111
  482. package/dist/http/middleware/request.middleware.d.ts.map +0 -1
  483. package/dist/http/middleware/response.middleware.d.ts +0 -17
  484. package/dist/http/middleware/response.middleware.d.ts.map +0 -1
  485. package/dist/http/middleware/response.middleware.js +0 -49
  486. package/dist/http/openApiV3Generator.d.ts.map +0 -1
  487. package/dist/http/regex.d.ts +0 -9
  488. package/dist/http/regex.d.ts.map +0 -1
  489. package/dist/http/regex.js +0 -111
  490. package/dist/http/types/api.types.d.ts.map +0 -1
  491. package/dist/http/types/forklaunch.types.d.ts.map +0 -1
  492. package/dist/http/types/index.d.ts +0 -4
  493. package/dist/http/types/index.d.ts.map +0 -1
  494. package/dist/http/types/index.js +0 -3
  495. package/dist/http/types/primitive.types.d.ts +0 -110
  496. package/dist/http/types/primitive.types.d.ts.map +0 -1
  497. package/dist/index.d.ts +0 -7
  498. package/dist/index.d.ts.map +0 -1
  499. package/dist/jest.config.d.ts +0 -4
  500. package/dist/jest.config.d.ts.map +0 -1
  501. package/dist/jest.config.js +0 -7
  502. package/dist/services/index.d.ts.map +0 -1
  503. package/dist/services/interfaces/baseService.d.ts.map +0 -1
  504. package/dist/tsconfig.tsbuildinfo +0 -1
  505. /package/{dist → lib/dist}/cache/index.js +0 -0
  506. /package/{dist → lib/dist}/cache/interfaces/ttlCache.interface.js +0 -0
  507. /package/{dist → lib/dist}/cache/types/ttlCacheRecord.types.js +0 -0
  508. /package/{dist → lib/dist}/controllers/index.js +0 -0
  509. /package/{dist → lib/dist}/controllers/interfaces/controller.interface.js +0 -0
  510. /package/{dist → lib/dist}/database/index.js +0 -0
  511. /package/{dist → lib/dist}/entityMapper/index.js +0 -0
  512. /package/{dist → lib/dist}/entityMapper/interfaces/entityMapper.interface.js +0 -0
  513. /package/{dist → lib/dist}/entityMapper/models/baseEntityMapper.model.js +0 -0
  514. /package/{dist → lib/dist}/entityMapper/models/requestEntityMapper.model.js +0 -0
  515. /package/{dist → lib/dist}/entityMapper/models/responseEntityMapper.model.js +0 -0
  516. /package/{dist → lib/dist}/entityMapper/types/entityMapper.types.js +0 -0
  517. /package/{dist/http/interfaces/forklaunchExpress.application.interface.js → lib/dist/http/interfaces/expressLikeApplication.interface.js} +0 -0
  518. /package/{dist → lib/dist}/http/middleware/index.js +0 -0
  519. /package/{dist/http/types/api.types.js → lib/dist/http/types/apiDefinition.types.js} +0 -0
  520. /package/{dist/http/types/forklaunch.types.js → lib/dist/http/types/contractDetails.types.js} +0 -0
  521. /package/{dist/http/types/primitive.types.js → lib/dist/http/types/router.types.js} +0 -0
  522. /package/{dist/http → lib/dist/http/utils}/httpStatusCodes.js +0 -0
  523. /package/{dist → lib/dist}/index.js +0 -0
  524. /package/{dist/services/interfaces/baseService.js → lib/dist/lib/src/cache/interfaces/ttlCache.interface.js} +0 -0
  525. /package/{dist → lib/dist/lib/src}/services/index.js +0 -0
  526. /package/{dist → lib/dist/lib}/tests/entityMapper.test.d.ts +0 -0
  527. /package/{dist → lib/dist/lib}/tests/http.middleware.test.d.ts +0 -0
  528. /package/{dist → lib/dist/lib}/tests/openApiV3Generator.test.d.ts +0 -0
  529. /package/{dist → lib/dist/lib}/tests/redisTtlCache.test.d.ts +0 -0
  530. /package/{dist → lib/dist}/tests/redisTtlCache.test.js +0 -0
  531. /package/{dist → lib}/eslint.config.d.mts +0 -0
  532. /package/{dist → lib}/eslint.config.d.mts.map +0 -0
  533. /package/{dist → lib/src}/cache/index.d.ts +0 -0
  534. /package/{dist → lib/src}/cache/interfaces/ttlCache.interface.d.ts +0 -0
  535. /package/{dist → lib/src}/cache/redisTtlCache.d.ts +0 -0
  536. /package/{dist → lib/src}/cache/types/ttlCacheRecord.types.d.ts +0 -0
  537. /package/{dist → lib/src}/controllers/index.d.ts +0 -0
  538. /package/{dist → lib/src}/controllers/interfaces/controller.interface.d.ts +0 -0
  539. /package/{dist → lib/src}/database/index.d.ts +0 -0
  540. /package/{dist → lib/src}/database/mikro/models/entities/base.entity.d.ts +0 -0
  541. /package/{dist → lib/src}/database/mikro/models/entities/base.entity.js +0 -0
  542. /package/{dist → lib/src}/http/middleware/index.d.ts +0 -0
  543. /package/{dist/http → lib/src/http/utils}/httpStatusCodes.d.ts +0 -0
  544. /package/{dist → lib/src}/services/index.d.ts +0 -0
  545. /package/{dist → lib/src}/services/interfaces/baseService.d.ts +0 -0
  546. /package/{dist → lib}/tests/entityMapper.test.d.ts.map +0 -0
  547. /package/{dist → lib}/tests/http.middleware.test.d.ts.map +0 -0
  548. /package/{dist → lib}/tests/openApiV3Generator.test.d.ts.map +0 -0
  549. /package/{dist → lib}/tests/redisTtlCache.test.d.ts.map +0 -0
@@ -0,0 +1,169 @@
1
+ import { AnySchemaValidator, IdiomaticSchema, Schema, UnboxedObjectSchema } from '@forklaunch/validator';
2
+ /**
3
+ * Dictionary type for URL parameters.
4
+ */
5
+ export type ParamsDictionary = {
6
+ [key: string]: string;
7
+ };
8
+ /**
9
+ * Type representing an object with only string keys.
10
+ *
11
+ * @template SV - A type that extends AnySchemaValidator.
12
+ */
13
+ export type StringOnlyObject<SV extends AnySchemaValidator> = Omit<UnboxedObjectSchema<SV>, number | symbol>;
14
+ /**
15
+ * Type representing an object with only number keys.
16
+ *
17
+ * @template SV - A type that extends AnySchemaValidator.
18
+ */
19
+ export type NumberOnlyObject<SV extends AnySchemaValidator> = Omit<UnboxedObjectSchema<SV>, string | symbol>;
20
+ /**
21
+ * Type representing the body object in a request.
22
+ *
23
+ * @template SV - A type that extends AnySchemaValidator.
24
+ */
25
+ export type BodyObject<SV extends AnySchemaValidator> = StringOnlyObject<SV> & unknown;
26
+ /**
27
+ * Type representing the parameters object in a request.
28
+ *
29
+ * @template SV - A type that extends AnySchemaValidator.
30
+ */
31
+ export type ParamsObject<SV extends AnySchemaValidator> = StringOnlyObject<SV> & unknown;
32
+ /**
33
+ * Type representing the query object in a request.
34
+ *
35
+ * @template SV - A type that extends AnySchemaValidator.
36
+ */
37
+ export type QueryObject<SV extends AnySchemaValidator> = StringOnlyObject<SV> & unknown;
38
+ /**
39
+ * Type representing the headers object in a request.
40
+ *
41
+ * @template SV - A type that extends AnySchemaValidator.
42
+ */
43
+ export type HeadersObject<SV extends AnySchemaValidator> = StringOnlyObject<SV> & unknown;
44
+ /**
45
+ * Type representing the responses object in a request.
46
+ *
47
+ * @template SV - A type that extends AnySchemaValidator.
48
+ */
49
+ export type ResponsesObject<SV extends AnySchemaValidator> = {
50
+ [key: number]: SV['_ValidSchemaObject'] | UnboxedObjectSchema<SV> | string | SV['string'];
51
+ } & unknown;
52
+ /**
53
+ * Type representing the body in a request.
54
+ *
55
+ * @template SV - A type that extends AnySchemaValidator.
56
+ */
57
+ export type Body<SV extends AnySchemaValidator> = BodyObject<SV> | SV['_ValidSchemaObject'] | SV['_SchemaCatchall'];
58
+ /**
59
+ * Type representing the authentication method.
60
+ */
61
+ export type AuthMethod = 'jwt' | 'session';
62
+ /**
63
+ * Type representing a mapped schema.
64
+ *
65
+ * @template SV - A type that extends AnySchemaValidator.
66
+ * @template T - A type that extends IdiomaticSchema or a valid schema object.
67
+ */
68
+ export type MapSchema<SV extends AnySchemaValidator, T extends IdiomaticSchema<SV> | SV['_ValidSchemaObject']> = Schema<T, SV> extends infer U ? (T extends U ? unknown : U) : never;
69
+ /**
70
+ * Type representing the parameters in a request.
71
+ */
72
+ type ExtractParams<Path extends `/${string}`> = Path extends `${string}/:${infer Param}/${infer Rest}` ? Param | ExtractParams<`/${Rest}`> : Path extends `${string}/:${infer Param}` ? Param : never;
73
+ /**
74
+ * Type representing the parameters in a request.
75
+ */
76
+ export type ExtractedParamsObject<Path extends `/${string}`> = Record<ExtractParams<Path>, unknown>;
77
+ /**
78
+ * Represents the path parameter methods.
79
+ */
80
+ export type PathParamMethod = 'get' | 'delete' | 'options' | 'head' | 'trace';
81
+ /**
82
+ * Represents the body parameter methods.
83
+ */
84
+ export type HttpMethod = 'post' | 'patch' | 'put';
85
+ /**
86
+ * Represents all supported typed methods.
87
+ */
88
+ export type Method = PathParamMethod | HttpMethod | 'middleware';
89
+ /**
90
+ * Interface representing a compiled schema for a response.
91
+ */
92
+ export type ResponseCompiledSchema = {
93
+ headers?: unknown;
94
+ responses: Record<number, unknown>;
95
+ };
96
+ /**
97
+ * Interface representing HTTP contract details for path parameters.
98
+ *
99
+ * @template SV - A type that extends AnySchemaValidator.
100
+ * @template ParamsSchema - A type for parameter schemas, defaulting to ParamsObject.
101
+ * @template ResponseSchemas - A type for response schemas, defaulting to ResponsesObject.
102
+ * @template QuerySchema - A type for query schemas, defaulting to QueryObject.
103
+ */
104
+ export type PathParamHttpContractDetails<SV extends AnySchemaValidator, Path extends `/${string}` = `/${string}`, ParamsSchema extends ParamsObject<SV> = ParamsObject<SV>, ResponseSchemas extends ResponsesObject<SV> = ResponsesObject<SV>, QuerySchema extends QueryObject<SV> = QueryObject<SV>, ReqHeaders extends HeadersObject<SV> = HeadersObject<SV>, ResHeaders extends HeadersObject<SV> = HeadersObject<SV>> = {
105
+ /** Name of the contract */
106
+ readonly name: string;
107
+ /** Summary of the contract */
108
+ readonly summary: string;
109
+ /** Response schemas for the contract */
110
+ readonly responses: ResponseSchemas;
111
+ /** Optional request headers for the contract */
112
+ readonly requestHeaders?: ReqHeaders;
113
+ /** Optional response headers for the contract */
114
+ readonly responseHeaders?: ResHeaders;
115
+ /** Optional query schemas for the contract */
116
+ readonly query?: QuerySchema;
117
+ /** Optional authentication details for the contract */
118
+ readonly auth?: {
119
+ readonly method: AuthMethod;
120
+ readonly allowedSlugs?: Set<string>;
121
+ readonly forbiddenSlugs?: Set<string>;
122
+ readonly allowedRoles?: Set<string>;
123
+ readonly forbiddenRoles?: Set<string>;
124
+ };
125
+ readonly options?: {
126
+ readonly requestValidation: 'error' | 'warning' | 'none';
127
+ readonly responseValidation: 'error' | 'warning' | 'none';
128
+ };
129
+ } & (string | number | symbol extends ExtractedParamsObject<Path> ? {
130
+ /** Optional parameters for the contract */
131
+ readonly params?: ParamsSchema;
132
+ } : {
133
+ /** Required parameters for the contract */
134
+ readonly params: {
135
+ [K in keyof ExtractedParamsObject<Path>]: ParamsSchema[K];
136
+ };
137
+ });
138
+ /**
139
+ * Interface representing HTTP contract details.
140
+ *
141
+ * @template SV - A type that extends AnySchemaValidator.
142
+ * @template ParamsSchema - A type for parameter schemas, defaulting to ParamsObject.
143
+ * @template ResponseSchemas - A type for response schemas, defaulting to ResponsesObject.
144
+ * @template BodySchema - A type for the body schema, defaulting to Body.
145
+ * @template QuerySchema - A type for query schemas, defaulting to QueryObject.
146
+ */
147
+ export type HttpContractDetails<SV extends AnySchemaValidator, Path extends `/${string}` = `/${string}`, ParamsSchema extends ParamsObject<SV> = ParamsObject<SV>, ResponseSchemas extends ResponsesObject<SV> = ResponsesObject<SV>, BodySchema extends Body<SV> = Body<SV>, QuerySchema extends QueryObject<SV> = QueryObject<SV>, ReqHeaders extends HeadersObject<SV> = HeadersObject<SV>, ResHeaders extends HeadersObject<SV> = HeadersObject<SV>> = PathParamHttpContractDetails<SV, Path, ParamsSchema, ResponseSchemas, QuerySchema, ReqHeaders, ResHeaders> & {
148
+ /** Required body schema for the contract */
149
+ readonly body: BodySchema;
150
+ /** Optional content type for the contract */
151
+ readonly contentType?: 'application/json' | 'multipart/form-data' | 'application/x-www-form-urlencoded';
152
+ };
153
+ /**
154
+ * Interface representing HTTP contract details for middleware.
155
+ *
156
+ * @template SV - A type that extends AnySchemaValidator.
157
+ * @template ParamsSchema - A type for parameter schemas, defaulting to ParamsObject.
158
+ * @template ResponseSchemas - A type for response schemas, defaulting to ResponsesObject.
159
+ * @template QuerySchema - A type for query schemas, defaulting to QueryObject.
160
+ * @template ReqHeaders - A type for request headers, defaulting to HeadersObject.
161
+ * @template ResHeaders - A type for response headers, defaulting to HeadersObject.
162
+ */
163
+ export type MiddlewareContractDetails<SV extends AnySchemaValidator, Path extends `/${string}` = `/${string}`, ParamsSchema extends ParamsObject<SV> = ParamsObject<SV>, ResponseSchemas extends ResponsesObject<SV> = ResponsesObject<SV>, BodySchema extends Body<SV> = Body<SV>, QuerySchema extends QueryObject<SV> = QueryObject<SV>, ReqHeaders extends HeadersObject<SV> = HeadersObject<SV>, ResHeaders extends HeadersObject<SV> = HeadersObject<SV>> = Omit<Partial<HttpContractDetails<SV, Path, ParamsSchema, ResponseSchemas, BodySchema, QuerySchema, ReqHeaders, ResHeaders>>, 'name' | 'summary' | 'responses'>;
164
+ /**
165
+ * Utility for different Contract Detail types
166
+ */
167
+ export type ContractDetails<SV extends AnySchemaValidator, ContractMethod extends Method, Path extends `/${string}`, ParamsSchema extends ParamsObject<SV>, ResponseSchemas extends ResponsesObject<SV>, BodySchema extends Body<SV>, QuerySchema extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>> = ContractMethod extends PathParamMethod ? PathParamHttpContractDetails<SV, Path, ParamsSchema, ResponseSchemas, QuerySchema, ReqHeaders, ResHeaders> : ContractMethod extends HttpMethod ? HttpContractDetails<SV, Path, ParamsSchema, ResponseSchemas, BodySchema, QuerySchema, ReqHeaders, ResHeaders> : ContractMethod extends 'middleware' ? MiddlewareContractDetails<SV, Path, ParamsSchema, ResponseSchemas, QuerySchema, ReqHeaders, ResHeaders> : never;
168
+ export {};
169
+ //# sourceMappingURL=contractDetails.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractDetails.types.d.ts","sourceRoot":"","sources":["../../../../src/http/types/contractDetails.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,35 @@
1
+ import { AnySchemaValidator } from '@forklaunch/validator';
2
+ import { TypedHandler } from '../handlers/typedHandler';
3
+ import { ExpressLikeSchemaHandler, LiveTypeFunction } from './apiDefinition.types';
4
+ import { Body, ContractDetails, HeadersObject, Method, ParamsObject, QueryObject, ResponsesObject } from './contractDetails.types';
5
+ export interface LiveTypeRouteDefinition<SV extends AnySchemaValidator, BasePath extends `/${string}`, ContractMethod extends Method> {
6
+ <Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(path: Path, typedHandler: TypedHandler<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>): {
7
+ [key in ContractMethod]: LiveTypeFunction<SV, `${BasePath}${Path}`, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>;
8
+ };
9
+ <Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(path: Path, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>, ...middlewareAndTypedHandler: [
10
+ ...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>[],
11
+ TypedHandler<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>
12
+ ]): {
13
+ [key in ContractMethod]: LiveTypeFunction<SV, `${BasePath}${Path}`, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>;
14
+ };
15
+ <Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(path: Path, contractDetails: ContractDetails<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>, ...middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>[]): {
16
+ [key in ContractMethod]: LiveTypeFunction<SV, `${BasePath}${Path}`, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>;
17
+ };
18
+ }
19
+ export interface TypedMiddlewareDefinition<ChainableRouter, SV extends AnySchemaValidator> {
20
+ <Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(path: Path, typedHandler: TypedHandler<SV, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>): ChainableRouter;
21
+ <Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(typedHandler: TypedHandler<SV, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>): ChainableRouter;
22
+ <Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(path: Path, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>, ...middlewareAndTypedHandler: [
23
+ ...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>[],
24
+ TypedHandler<SV, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>
25
+ ]): ChainableRouter;
26
+ <Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>, ...middlewareAndTypedHandler: [
27
+ ...ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>[],
28
+ TypedHandler<SV, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>
29
+ ]): ChainableRouter;
30
+ <Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(path: Path, contractDetails: ContractDetails<SV, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>, ...middlewares: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>[]): ChainableRouter;
31
+ <Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>>(contractDetails: ContractDetails<SV, 'middleware', Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>, middleware: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>, ...middlewares: ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>[]): ChainableRouter;
32
+ }
33
+ export type ContractDetailsOrMiddlewareOrTypedHandler<SV extends AnySchemaValidator, ContractMethod extends Method, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>> = ContractDetails<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders> | ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj> | TypedHandler<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>;
34
+ export type MiddlewareOrMiddlewareWithTypedHandler<SV extends AnySchemaValidator, ContractMethod extends Method, Path extends `/${string}`, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>, LocalsObj extends Record<string, unknown>> = ExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj> | TypedHandler<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>;
35
+ //# sourceMappingURL=expressLikeRouter.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressLikeRouter.types.d.ts","sourceRoot":"","sources":["../../../../src/http/types/expressLikeRouter.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './apiDefinition.types';
2
+ export * from './contractDetails.types';
3
+ export * from './router.types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/http/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './apiDefinition.types';
2
+ export * from './contractDetails.types';
3
+ export * from './router.types';
@@ -1,5 +1,5 @@
1
1
  import { AnySchemaValidator } from '@forklaunch/validator';
2
- import { HttpContractDetails, PathParamHttpContractDetails } from './primitive.types';
2
+ import { HttpContractDetails, Method, PathParamHttpContractDetails } from './contractDetails.types';
3
3
  /**
4
4
  * Interface representing a Forklaunch router.
5
5
  *
@@ -22,8 +22,8 @@ export interface ForklaunchRoute<SV extends AnySchemaValidator> {
22
22
  /** The path for the route, which can be a string, RegExp, or an array of strings or RegExps */
23
23
  path: string | RegExp | (string | RegExp)[];
24
24
  /** The HTTP method for the route */
25
- method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
25
+ method: Method;
26
26
  /** The contract details for the route */
27
27
  contractDetails: PathParamHttpContractDetails<SV> | HttpContractDetails<SV>;
28
28
  }
29
- //# sourceMappingURL=forklaunch.types.d.ts.map
29
+ //# sourceMappingURL=router.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.types.d.ts","sourceRoot":"","sources":["../../../../src/http/types/router.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,MAAM,EACN,4BAA4B,EAC7B,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,EAAE,SAAS,kBAAkB;IAC7D,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,EAAE,SAAS,kBAAkB;IAC5D,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5C,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,eAAe,EAAE,4BAA4B,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;CAC7E"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ import { AnySchemaValidator } from '@forklaunch/validator';
2
+ import { ParsedQs } from 'qs';
3
+ import { ForklaunchRequest, ForklaunchResHeaders, ForklaunchResponse, ForklaunchSendableData, ForklaunchStatusResponse } from '../types/apiDefinition.types';
4
+ import { ParamsDictionary } from '../types/contractDetails.types';
5
+ /**
6
+ * Enhances the Express-like `send` method with additional logic for response handling and validation.
7
+ *
8
+ * This function intercepts the `send` method to provide custom behavior, including response validation
9
+ * through the `parseResponse` middleware. If the response status is 404, it sends a "Not Found" message.
10
+ * If the response validation fails, it sends a parsing error message. Otherwise, it calls the original `send`
11
+ * method with the provided data.
12
+ *
13
+ * @template SV - The type of the schema validator used in the request.
14
+ * @template P - The type of the parameters dictionary used in the request.
15
+ * @template ResBodyMap - A record type mapping status codes to response body types.
16
+ * @template ReqBody - The type of the request body.
17
+ * @template ReqQuery - The type of the parsed query string.
18
+ * @template ReqHeaders - The type of the request headers.
19
+ * @template ResHeaders - The type of the response headers, extended from `ForklaunchResHeaders`.
20
+ * @template LocalsObj - The type of the locals object in the response.
21
+ *
22
+ * @param {unknown} instance - The context (typically `this`) in which the original `send` method is called.
23
+ * @param {ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>} req - The request object, containing the schema validator and other request data.
24
+ * @param {ForklaunchResponse<ResBodyMap, ForklaunchResHeaders & ResHeaders, LocalsObj>} res - The response object, including headers and body data.
25
+ * @param {Function} originalSend - The original `send` method from the response object, to be called after custom logic.
26
+ * @param {string | ArrayBuffer | ArrayBufferView | NodeJS.ReadableStream | null | undefined} data - The data to be sent as the response body.
27
+ * @param {boolean} shouldEnrich - A flag indicating whether the response should be sent immediately.
28
+ *
29
+ * @returns {unknown} The return value of the original `send` method, typically the response itself.
30
+ */
31
+ export declare function enrichExpressLikeSend<SV extends AnySchemaValidator, P extends ParamsDictionary, ResBodyMap extends Record<number, unknown>, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>, ResHeaders extends Record<string, string>, LocalsObj extends Record<string, unknown>>(instance: unknown, req: ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>, res: ForklaunchResponse<ResBodyMap, ForklaunchResHeaders & ResHeaders, LocalsObj>, originalSend: ForklaunchStatusResponse<ForklaunchSendableData>['send'], data: ForklaunchSendableData, shouldEnrich: boolean): void;
32
+ //# sourceMappingURL=enrichExpressLikeSend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrichExpressLikeSend.d.ts","sourceRoot":"","sources":["../../../../src/http/utils/enrichExpressLikeSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,SAAS,kBAAkB,EAC7B,CAAC,SAAS,gBAAgB,EAC1B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,SAAS,QAAQ,EACzB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEzC,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC5D,GAAG,EAAE,kBAAkB,CACrB,UAAU,EACV,oBAAoB,GAAG,UAAU,EACjC,SAAS,CACV,EACD,YAAY,EAAE,wBAAwB,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,EACtE,IAAI,EAAE,sBAAsB,EAC5B,YAAY,EAAE,OAAO,QAyBtB"}
@@ -0,0 +1,50 @@
1
+ import { parse } from '../middleware/response/parse.middleware';
2
+ /**
3
+ * Enhances the Express-like `send` method with additional logic for response handling and validation.
4
+ *
5
+ * This function intercepts the `send` method to provide custom behavior, including response validation
6
+ * through the `parseResponse` middleware. If the response status is 404, it sends a "Not Found" message.
7
+ * If the response validation fails, it sends a parsing error message. Otherwise, it calls the original `send`
8
+ * method with the provided data.
9
+ *
10
+ * @template SV - The type of the schema validator used in the request.
11
+ * @template P - The type of the parameters dictionary used in the request.
12
+ * @template ResBodyMap - A record type mapping status codes to response body types.
13
+ * @template ReqBody - The type of the request body.
14
+ * @template ReqQuery - The type of the parsed query string.
15
+ * @template ReqHeaders - The type of the request headers.
16
+ * @template ResHeaders - The type of the response headers, extended from `ForklaunchResHeaders`.
17
+ * @template LocalsObj - The type of the locals object in the response.
18
+ *
19
+ * @param {unknown} instance - The context (typically `this`) in which the original `send` method is called.
20
+ * @param {ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>} req - The request object, containing the schema validator and other request data.
21
+ * @param {ForklaunchResponse<ResBodyMap, ForklaunchResHeaders & ResHeaders, LocalsObj>} res - The response object, including headers and body data.
22
+ * @param {Function} originalSend - The original `send` method from the response object, to be called after custom logic.
23
+ * @param {string | ArrayBuffer | ArrayBufferView | NodeJS.ReadableStream | null | undefined} data - The data to be sent as the response body.
24
+ * @param {boolean} shouldEnrich - A flag indicating whether the response should be sent immediately.
25
+ *
26
+ * @returns {unknown} The return value of the original `send` method, typically the response itself.
27
+ */
28
+ export function enrichExpressLikeSend(instance, req, res, originalSend, data, shouldEnrich) {
29
+ let parseErrorSent;
30
+ if (shouldEnrich) {
31
+ if (res.statusCode === 404) {
32
+ res.status(404);
33
+ originalSend.call(instance, 'Not Found');
34
+ }
35
+ parse(req, res, (err) => {
36
+ if (err) {
37
+ let errorString = err.message;
38
+ if (res.locals.errorMessage) {
39
+ errorString += `\n------------------\n${res.locals.errorMessage}`;
40
+ }
41
+ res.status(500);
42
+ originalSend.call(instance, errorString);
43
+ parseErrorSent = true;
44
+ }
45
+ });
46
+ }
47
+ if (!parseErrorSent) {
48
+ originalSend.call(instance, data);
49
+ }
50
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpStatusCodes.d.ts","sourceRoot":"","sources":["../../../../src/http/utils/httpStatusCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAmgCnD,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,YAAY,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,SAAU,MAAM,KAAG,OAC3B,CAAC;AAEvB;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SAAU,UAAU,KAAG,OACxB,CAAC;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,YAAY,SAAU,UAAU,KAAG,OACrB,CAAC;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAAU,UAAU,KAAG,OACtB,CAAC;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAAU,UAAU,KAAG,OACtB,CAAC;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAAU,UAAU,KAAG,OAAsB,CAAC;AAExE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,WAAY,MAAM,KAAG,IAAI,GAAG,UAOxD,CAAC;AAEF,eAAe,YAAY,CAAC"}