@forklaunch/core 0.2.6 → 0.2.7

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 (384) hide show
  1. package/lib/jest.config.d.ts.map +1 -1
  2. package/lib/jest.config.js +0 -2
  3. package/lib/src/http/guards/isForklaunchRouter.d.ts +4 -0
  4. package/lib/src/http/guards/isForklaunchRouter.d.ts.map +1 -0
  5. package/lib/src/http/guards/isForklaunchRouter.js +7 -0
  6. package/lib/src/http/guards/isTypedHandler.d.ts +1 -1
  7. package/lib/src/http/guards/isTypedHandler.d.ts.map +1 -1
  8. package/lib/src/http/handlers/typedAuthHandler.d.ts +5 -0
  9. package/lib/src/http/handlers/typedAuthHandler.d.ts.map +1 -0
  10. package/lib/src/http/handlers/typedAuthHandler.js +3 -0
  11. package/lib/src/http/handlers/typedHandler.d.ts +0 -6
  12. package/lib/src/http/handlers/typedHandler.d.ts.map +1 -1
  13. package/lib/src/http/index.d.ts +2 -0
  14. package/lib/src/http/index.d.ts.map +1 -1
  15. package/lib/src/http/index.js +2 -0
  16. package/lib/src/http/middleware/request/auth.middleware.d.ts +3 -18
  17. package/lib/src/http/middleware/request/auth.middleware.d.ts.map +1 -1
  18. package/lib/src/http/middleware/request/auth.middleware.js +104 -69
  19. package/lib/src/http/openApiV3Generator/openApiV3Generator.js +1 -1
  20. package/lib/src/http/router/expressLikeRouter.d.ts.map +1 -1
  21. package/lib/src/http/router/expressLikeRouter.js +4 -23
  22. package/lib/src/http/types/apiDefinition.types.d.ts +36 -13
  23. package/lib/src/http/types/apiDefinition.types.d.ts.map +1 -1
  24. package/lib/src/http/types/contractDetails.types.d.ts +53 -11
  25. package/lib/src/http/types/contractDetails.types.d.ts.map +1 -1
  26. package/lib/src/http/types/expressLikeRouter.types.d.ts +1 -1
  27. package/lib/src/http/types/expressLikeRouter.types.d.ts.map +1 -1
  28. package/lib/src/http/types/typedHandler.types.d.ts +10 -0
  29. package/lib/src/http/types/typedHandler.types.d.ts.map +1 -0
  30. package/lib/tests/expressLikeRouterInstantiation.test.js +47 -2
  31. package/lib/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +15 -15
  33. package/LICENSE +0 -21
  34. package/lib/dist/cache/index.d.ts +0 -4
  35. package/lib/dist/cache/index.d.ts.map +0 -1
  36. package/lib/dist/cache/index.js +0 -3
  37. package/lib/dist/cache/interfaces/ttlCache.interface.d.ts +0 -2
  38. package/lib/dist/cache/interfaces/ttlCache.interface.d.ts.map +0 -1
  39. package/lib/dist/cache/redisTtlCache.d.ts +0 -353
  40. package/lib/dist/cache/redisTtlCache.d.ts.map +0 -1
  41. package/lib/dist/cache/redisTtlCache.js +0 -98
  42. package/lib/dist/cache/types/ttlCacheRecord.types.d.ts +0 -2
  43. package/lib/dist/cache/types/ttlCacheRecord.types.d.ts.map +0 -1
  44. package/lib/dist/cache/types/ttlCacheRecord.types.js +0 -1
  45. package/lib/dist/controllers/index.d.ts +0 -2
  46. package/lib/dist/controllers/index.d.ts.map +0 -1
  47. package/lib/dist/controllers/index.js +0 -1
  48. package/lib/dist/controllers/interfaces/controller.interface.d.ts +0 -2
  49. package/lib/dist/controllers/interfaces/controller.interface.d.ts.map +0 -1
  50. package/lib/dist/controllers/interfaces/controller.interface.js +0 -1
  51. package/lib/dist/database/index.d.ts +0 -2
  52. package/lib/dist/database/index.d.ts.map +0 -1
  53. package/lib/dist/database/index.js +0 -1
  54. package/lib/dist/database/mikro/models/entities/base.entity.d.ts +0 -26
  55. package/lib/dist/database/mikro/models/entities/base.entity.d.ts.map +0 -1
  56. package/lib/dist/database/mikro/models/entities/base.entity.js +0 -46
  57. package/lib/dist/entityMapper/index.d.ts +0 -3
  58. package/lib/dist/entityMapper/index.d.ts.map +0 -1
  59. package/lib/dist/entityMapper/index.js +0 -2
  60. package/lib/dist/entityMapper/interfaces/entityMapper.interface.d.ts +0 -2
  61. package/lib/dist/entityMapper/interfaces/entityMapper.interface.d.ts.map +0 -1
  62. package/lib/dist/entityMapper/interfaces/entityMapper.interface.js +0 -1
  63. package/lib/dist/entityMapper/models/baseEntityMapper.model.d.ts +0 -63
  64. package/lib/dist/entityMapper/models/baseEntityMapper.model.d.ts.map +0 -1
  65. package/lib/dist/entityMapper/models/baseEntityMapper.model.js +0 -75
  66. package/lib/dist/entityMapper/models/requestEntityMapper.model.d.ts +0 -58
  67. package/lib/dist/entityMapper/models/requestEntityMapper.model.d.ts.map +0 -1
  68. package/lib/dist/entityMapper/models/requestEntityMapper.model.js +0 -70
  69. package/lib/dist/entityMapper/models/responseEntityMapper.model.d.ts +0 -56
  70. package/lib/dist/entityMapper/models/responseEntityMapper.model.d.ts.map +0 -1
  71. package/lib/dist/entityMapper/models/responseEntityMapper.model.js +0 -65
  72. package/lib/dist/entityMapper/types/entityMapper.types.d.ts +0 -2
  73. package/lib/dist/entityMapper/types/entityMapper.types.d.ts.map +0 -1
  74. package/lib/dist/entityMapper/types/entityMapper.types.js +0 -1
  75. package/lib/dist/http/guards/isHttpContractDetails.d.ts +0 -5
  76. package/lib/dist/http/guards/isHttpContractDetails.d.ts.map +0 -1
  77. package/lib/dist/http/guards/isHttpContractDetails.js +0 -6
  78. package/lib/dist/http/guards/isResponseShape.d.ts +0 -2
  79. package/lib/dist/http/guards/isResponseShape.d.ts.map +0 -1
  80. package/lib/dist/http/guards/isResponseShape.js +0 -7
  81. package/lib/dist/http/index.d.ts +0 -6
  82. package/lib/dist/http/index.d.ts.map +0 -1
  83. package/lib/dist/http/index.js +0 -5
  84. package/lib/dist/http/interfaces/expressLikeApplication.interface.d.ts +0 -12
  85. package/lib/dist/http/interfaces/expressLikeApplication.interface.d.ts.map +0 -1
  86. package/lib/dist/http/interfaces/expressLikeApplication.interface.js +0 -14
  87. package/lib/dist/http/interfaces/expressLikeRouter.interface.d.ts +0 -103
  88. package/lib/dist/http/interfaces/expressLikeRouter.interface.d.ts.map +0 -1
  89. package/lib/dist/http/interfaces/expressLikeRouter.interface.js +0 -336
  90. package/lib/dist/http/interfaces/index.d.ts +0 -3
  91. package/lib/dist/http/interfaces/index.d.ts.map +0 -1
  92. package/lib/dist/http/interfaces/index.js +0 -2
  93. package/lib/dist/http/middleware/index.d.ts +0 -3
  94. package/lib/dist/http/middleware/index.d.ts.map +0 -1
  95. package/lib/dist/http/middleware/index.js +0 -2
  96. package/lib/dist/http/middleware/request.middleware.d.ts +0 -69
  97. package/lib/dist/http/middleware/request.middleware.d.ts.map +0 -1
  98. package/lib/dist/http/middleware/request.middleware.js +0 -210
  99. package/lib/dist/http/middleware/response.middleware.d.ts +0 -27
  100. package/lib/dist/http/middleware/response.middleware.d.ts.map +0 -1
  101. package/lib/dist/http/middleware/response.middleware.js +0 -52
  102. package/lib/dist/http/openApiV3Generator/index.d.ts +0 -2
  103. package/lib/dist/http/openApiV3Generator/index.d.ts.map +0 -1
  104. package/lib/dist/http/openApiV3Generator/index.js +0 -1
  105. package/lib/dist/http/openApiV3Generator/openApiV3Generator.d.ts +0 -11
  106. package/lib/dist/http/openApiV3Generator/openApiV3Generator.d.ts.map +0 -1
  107. package/lib/dist/http/openApiV3Generator/openApiV3Generator.js +0 -167
  108. package/lib/dist/http/types/apiDefinition.types.d.ts +0 -2
  109. package/lib/dist/http/types/apiDefinition.types.d.ts.map +0 -1
  110. package/lib/dist/http/types/apiDefinition.types.js +0 -1
  111. package/lib/dist/http/types/contractDetails.types.d.ts +0 -2
  112. package/lib/dist/http/types/contractDetails.types.d.ts.map +0 -1
  113. package/lib/dist/http/types/contractDetails.types.js +0 -1
  114. package/lib/dist/http/types/index.d.ts +0 -4
  115. package/lib/dist/http/types/index.d.ts.map +0 -1
  116. package/lib/dist/http/types/index.js +0 -3
  117. package/lib/dist/http/types/router.types.d.ts +0 -2
  118. package/lib/dist/http/types/router.types.d.ts.map +0 -1
  119. package/lib/dist/http/types/router.types.js +0 -1
  120. package/lib/dist/http/utils/enrichExpressLikeSend.d.ts +0 -28
  121. package/lib/dist/http/utils/enrichExpressLikeSend.d.ts.map +0 -1
  122. package/lib/dist/http/utils/enrichExpressLikeSend.js +0 -50
  123. package/lib/dist/http/utils/httpStatusCodes.d.ts +0 -986
  124. package/lib/dist/http/utils/httpStatusCodes.d.ts.map +0 -1
  125. package/lib/dist/http/utils/httpStatusCodes.js +0 -1039
  126. package/lib/dist/http/utils/index.d.ts +0 -3
  127. package/lib/dist/http/utils/index.d.ts.map +0 -1
  128. package/lib/dist/http/utils/index.js +0 -2
  129. package/lib/dist/index.d.ts +0 -7
  130. package/lib/dist/index.d.ts.map +0 -1
  131. package/lib/dist/index.js +0 -6
  132. package/lib/dist/jest.config.d.ts +0 -15
  133. package/lib/dist/jest.config.d.ts.map +0 -1
  134. package/lib/dist/jest.config.js +0 -21
  135. package/lib/dist/lib/index.d.ts +0 -7
  136. package/lib/dist/lib/index.d.ts.map +0 -1
  137. package/lib/dist/lib/index.js +0 -6
  138. package/lib/dist/lib/jest.config.d.ts +0 -15
  139. package/lib/dist/lib/jest.config.d.ts.map +0 -1
  140. package/lib/dist/lib/jest.config.js +0 -21
  141. package/lib/dist/lib/src/cache/index.d.ts +0 -4
  142. package/lib/dist/lib/src/cache/index.d.ts.map +0 -1
  143. package/lib/dist/lib/src/cache/index.js +0 -3
  144. package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.d.ts +0 -2
  145. package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.d.ts.map +0 -1
  146. package/lib/dist/lib/src/cache/interfaces/ttlCache.interface.js +0 -1
  147. package/lib/dist/lib/src/cache/redisTtlCache.d.ts +0 -353
  148. package/lib/dist/lib/src/cache/redisTtlCache.d.ts.map +0 -1
  149. package/lib/dist/lib/src/cache/redisTtlCache.js +0 -98
  150. package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.d.ts +0 -2
  151. package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.d.ts.map +0 -1
  152. package/lib/dist/lib/src/cache/types/ttlCacheRecord.types.js +0 -1
  153. package/lib/dist/lib/src/controllers/index.d.ts +0 -2
  154. package/lib/dist/lib/src/controllers/index.d.ts.map +0 -1
  155. package/lib/dist/lib/src/controllers/index.js +0 -1
  156. package/lib/dist/lib/src/controllers/interfaces/controller.interface.d.ts +0 -2
  157. package/lib/dist/lib/src/controllers/interfaces/controller.interface.d.ts.map +0 -1
  158. package/lib/dist/lib/src/controllers/interfaces/controller.interface.js +0 -1
  159. package/lib/dist/lib/src/database/index.d.ts +0 -2
  160. package/lib/dist/lib/src/database/index.d.ts.map +0 -1
  161. package/lib/dist/lib/src/database/index.js +0 -1
  162. package/lib/dist/lib/src/database/mikro/models/entities/base.entity.d.ts +0 -26
  163. package/lib/dist/lib/src/database/mikro/models/entities/base.entity.d.ts.map +0 -1
  164. package/lib/dist/lib/src/database/mikro/models/entities/base.entity.js +0 -46
  165. package/lib/dist/lib/src/domainMapper/index.d.ts +0 -3
  166. package/lib/dist/lib/src/domainMapper/index.d.ts.map +0 -1
  167. package/lib/dist/lib/src/domainMapper/index.js +0 -2
  168. package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts +0 -2
  169. package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts.map +0 -1
  170. package/lib/dist/lib/src/domainMapper/interfaces/dtoMapper.interface.js +0 -1
  171. package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.d.ts +0 -63
  172. package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.d.ts.map +0 -1
  173. package/lib/dist/lib/src/domainMapper/models/baseDtoMapper.model.js +0 -75
  174. package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.d.ts +0 -58
  175. package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.d.ts.map +0 -1
  176. package/lib/dist/lib/src/domainMapper/models/requestDtoMapper.model.js +0 -70
  177. package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.d.ts +0 -56
  178. package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.d.ts.map +0 -1
  179. package/lib/dist/lib/src/domainMapper/models/responseDtoMapper.model.js +0 -65
  180. package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.d.ts +0 -2
  181. package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.d.ts.map +0 -1
  182. package/lib/dist/lib/src/domainMapper/types/dtoMapper.types.js +0 -1
  183. package/lib/dist/lib/src/dtoMapper/index.d.ts +0 -3
  184. package/lib/dist/lib/src/dtoMapper/index.d.ts.map +0 -1
  185. package/lib/dist/lib/src/dtoMapper/index.js +0 -2
  186. package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts +0 -2
  187. package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts.map +0 -1
  188. package/lib/dist/lib/src/dtoMapper/interfaces/dtoMapper.interface.js +0 -1
  189. package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts +0 -63
  190. package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts.map +0 -1
  191. package/lib/dist/lib/src/dtoMapper/models/baseDtoMapper.model.js +0 -75
  192. package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts +0 -58
  193. package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts.map +0 -1
  194. package/lib/dist/lib/src/dtoMapper/models/requestDtoMapper.model.js +0 -70
  195. package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts +0 -56
  196. package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts.map +0 -1
  197. package/lib/dist/lib/src/dtoMapper/models/responseDtoMapper.model.js +0 -65
  198. package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.d.ts +0 -2
  199. package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.d.ts.map +0 -1
  200. package/lib/dist/lib/src/dtoMapper/types/dtoMapper.types.js +0 -1
  201. package/lib/dist/lib/src/http/application/expressLikeApplication.d.ts +0 -18
  202. package/lib/dist/lib/src/http/application/expressLikeApplication.d.ts.map +0 -1
  203. package/lib/dist/lib/src/http/application/expressLikeApplication.js +0 -20
  204. package/lib/dist/lib/src/http/guards/isHttpContractDetails.d.ts +0 -5
  205. package/lib/dist/lib/src/http/guards/isHttpContractDetails.d.ts.map +0 -1
  206. package/lib/dist/lib/src/http/guards/isHttpContractDetails.js +0 -6
  207. package/lib/dist/lib/src/http/guards/isResponseShape.d.ts +0 -2
  208. package/lib/dist/lib/src/http/guards/isResponseShape.d.ts.map +0 -1
  209. package/lib/dist/lib/src/http/guards/isResponseShape.js +0 -7
  210. package/lib/dist/lib/src/http/handler/typedHandler.d.ts +0 -21
  211. package/lib/dist/lib/src/http/handler/typedHandler.d.ts.map +0 -1
  212. package/lib/dist/lib/src/http/handler/typedHandler.js +0 -25
  213. package/lib/dist/lib/src/http/index.d.ts +0 -11
  214. package/lib/dist/lib/src/http/index.d.ts.map +0 -1
  215. package/lib/dist/lib/src/http/index.js +0 -10
  216. package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.d.ts +0 -12
  217. package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.d.ts.map +0 -1
  218. package/lib/dist/lib/src/http/interfaces/expressLikeApplication.interface.js +0 -14
  219. package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.d.ts +0 -2
  220. package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.d.ts.map +0 -1
  221. package/lib/dist/lib/src/http/interfaces/expressLikeRouter.interface.js +0 -1
  222. package/lib/dist/lib/src/http/interfaces/index.d.ts +0 -3
  223. package/lib/dist/lib/src/http/interfaces/index.d.ts.map +0 -1
  224. package/lib/dist/lib/src/http/interfaces/index.js +0 -2
  225. package/lib/dist/lib/src/http/middleware/index.d.ts +0 -3
  226. package/lib/dist/lib/src/http/middleware/index.d.ts.map +0 -1
  227. package/lib/dist/lib/src/http/middleware/index.js +0 -2
  228. package/lib/dist/lib/src/http/middleware/request/auth.middleware.d.ts +0 -27
  229. package/lib/dist/lib/src/http/middleware/request/auth.middleware.d.ts.map +0 -1
  230. package/lib/dist/lib/src/http/middleware/request/auth.middleware.js +0 -107
  231. package/lib/dist/lib/src/http/middleware/request/cors.middleware.d.ts +0 -9
  232. package/lib/dist/lib/src/http/middleware/request/cors.middleware.d.ts.map +0 -1
  233. package/lib/dist/lib/src/http/middleware/request/cors.middleware.js +0 -15
  234. package/lib/dist/lib/src/http/middleware/request/createContext.middleware.d.ts +0 -12
  235. package/lib/dist/lib/src/http/middleware/request/createContext.middleware.d.ts.map +0 -1
  236. package/lib/dist/lib/src/http/middleware/request/createContext.middleware.js +0 -26
  237. package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.d.ts +0 -12
  238. package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.d.ts.map +0 -1
  239. package/lib/dist/lib/src/http/middleware/request/enrichDetails.middleware.js +0 -19
  240. package/lib/dist/lib/src/http/middleware/request/parse.middleware.d.ts +0 -13
  241. package/lib/dist/lib/src/http/middleware/request/parse.middleware.d.ts.map +0 -1
  242. package/lib/dist/lib/src/http/middleware/request/parse.middleware.js +0 -43
  243. package/lib/dist/lib/src/http/middleware/request.middleware.d.ts +0 -69
  244. package/lib/dist/lib/src/http/middleware/request.middleware.d.ts.map +0 -1
  245. package/lib/dist/lib/src/http/middleware/request.middleware.js +0 -210
  246. package/lib/dist/lib/src/http/middleware/response/parse.middleware.d.ts +0 -27
  247. package/lib/dist/lib/src/http/middleware/response/parse.middleware.d.ts.map +0 -1
  248. package/lib/dist/lib/src/http/middleware/response/parse.middleware.js +0 -52
  249. package/lib/dist/lib/src/http/middleware/response.middleware.d.ts +0 -27
  250. package/lib/dist/lib/src/http/middleware/response.middleware.d.ts.map +0 -1
  251. package/lib/dist/lib/src/http/middleware/response.middleware.js +0 -52
  252. package/lib/dist/lib/src/http/openApiV3Generator/index.d.ts +0 -2
  253. package/lib/dist/lib/src/http/openApiV3Generator/index.d.ts.map +0 -1
  254. package/lib/dist/lib/src/http/openApiV3Generator/index.js +0 -1
  255. package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts +0 -11
  256. package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts.map +0 -1
  257. package/lib/dist/lib/src/http/openApiV3Generator/openApiV3Generator.js +0 -167
  258. package/lib/dist/lib/src/http/router/expressLikeRouter.d.ts +0 -89
  259. package/lib/dist/lib/src/http/router/expressLikeRouter.d.ts.map +0 -1
  260. package/lib/dist/lib/src/http/router/expressLikeRouter.js +0 -322
  261. package/lib/dist/lib/src/http/types/apiDefinition.types.d.ts +0 -2
  262. package/lib/dist/lib/src/http/types/apiDefinition.types.d.ts.map +0 -1
  263. package/lib/dist/lib/src/http/types/apiDefinition.types.js +0 -1
  264. package/lib/dist/lib/src/http/types/contractDetails.types.d.ts +0 -2
  265. package/lib/dist/lib/src/http/types/contractDetails.types.d.ts.map +0 -1
  266. package/lib/dist/lib/src/http/types/contractDetails.types.js +0 -1
  267. package/lib/dist/lib/src/http/types/index.d.ts +0 -4
  268. package/lib/dist/lib/src/http/types/index.d.ts.map +0 -1
  269. package/lib/dist/lib/src/http/types/index.js +0 -3
  270. package/lib/dist/lib/src/http/types/router.types.d.ts +0 -2
  271. package/lib/dist/lib/src/http/types/router.types.d.ts.map +0 -1
  272. package/lib/dist/lib/src/http/types/router.types.js +0 -1
  273. package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.d.ts +0 -28
  274. package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.d.ts.map +0 -1
  275. package/lib/dist/lib/src/http/utils/enrichExpressLikeSend.js +0 -50
  276. package/lib/dist/lib/src/http/utils/httpStatusCodes.d.ts +0 -986
  277. package/lib/dist/lib/src/http/utils/httpStatusCodes.d.ts.map +0 -1
  278. package/lib/dist/lib/src/http/utils/httpStatusCodes.js +0 -1039
  279. package/lib/dist/lib/src/http/utils/index.d.ts +0 -3
  280. package/lib/dist/lib/src/http/utils/index.d.ts.map +0 -1
  281. package/lib/dist/lib/src/http/utils/index.js +0 -2
  282. package/lib/dist/lib/src/services/index.d.ts +0 -2
  283. package/lib/dist/lib/src/services/index.d.ts.map +0 -1
  284. package/lib/dist/lib/src/services/index.js +0 -1
  285. package/lib/dist/lib/src/services/interfaces/baseService.d.ts +0 -2
  286. package/lib/dist/lib/src/services/interfaces/baseService.d.ts.map +0 -1
  287. package/lib/dist/lib/src/services/interfaces/baseService.js +0 -1
  288. package/lib/dist/lib/tests/dtoMapper.test.d.ts +0 -2
  289. package/lib/dist/lib/tests/dtoMapper.test.d.ts.map +0 -1
  290. package/lib/dist/lib/tests/dtoMapper.test.js +0 -172
  291. package/lib/dist/lib/tests/entityMapper.test.d.ts +0 -2
  292. package/lib/dist/lib/tests/entityMapper.test.d.ts.map +0 -1
  293. package/lib/dist/lib/tests/entityMapper.test.js +0 -172
  294. package/lib/dist/lib/tests/expressLikeRouter.test.d.ts +0 -2
  295. package/lib/dist/lib/tests/expressLikeRouter.test.d.ts.map +0 -1
  296. package/lib/dist/lib/tests/expressLikeRouter.test.js +0 -3
  297. package/lib/dist/lib/tests/http.middleware.test.d.ts +0 -2
  298. package/lib/dist/lib/tests/http.middleware.test.d.ts.map +0 -1
  299. package/lib/dist/lib/tests/http.middleware.test.js +0 -95
  300. package/lib/dist/lib/tests/openApiV3Generator.test.d.ts +0 -2
  301. package/lib/dist/lib/tests/openApiV3Generator.test.d.ts.map +0 -1
  302. package/lib/dist/lib/tests/openApiV3Generator.test.js +0 -66
  303. package/lib/dist/lib/tests/redisTtlCache.test.d.ts +0 -2
  304. package/lib/dist/lib/tests/redisTtlCache.test.d.ts.map +0 -1
  305. package/lib/dist/lib/tests/redisTtlCache.test.js +0 -49
  306. package/lib/dist/lib/tests/typedHandler.test.d.ts +0 -2
  307. package/lib/dist/lib/tests/typedHandler.test.d.ts.map +0 -1
  308. package/lib/dist/lib/tests/typedHandler.test.js +0 -3
  309. package/lib/dist/lib/vitest.config.d.ts +0 -3
  310. package/lib/dist/lib/vitest.config.d.ts.map +0 -1
  311. package/lib/dist/lib/vitest.config.js +0 -7
  312. package/lib/dist/services/index.d.ts +0 -2
  313. package/lib/dist/services/index.d.ts.map +0 -1
  314. package/lib/dist/services/index.js +0 -1
  315. package/lib/dist/services/interfaces/baseService.d.ts +0 -2
  316. package/lib/dist/services/interfaces/baseService.d.ts.map +0 -1
  317. package/lib/dist/services/interfaces/baseService.js +0 -1
  318. package/lib/dist/tests/entityMapper.test.d.ts +0 -2
  319. package/lib/dist/tests/entityMapper.test.d.ts.map +0 -1
  320. package/lib/dist/tests/entityMapper.test.js +0 -171
  321. package/lib/dist/tests/http.middleware.test.d.ts +0 -2
  322. package/lib/dist/tests/http.middleware.test.d.ts.map +0 -1
  323. package/lib/dist/tests/http.middleware.test.js +0 -93
  324. package/lib/dist/tests/openApiV3Generator.test.d.ts +0 -2
  325. package/lib/dist/tests/openApiV3Generator.test.d.ts.map +0 -1
  326. package/lib/dist/tests/openApiV3Generator.test.js +0 -66
  327. package/lib/dist/tests/redisTtlCache.test.d.ts +0 -2
  328. package/lib/dist/tests/redisTtlCache.test.d.ts.map +0 -1
  329. package/lib/dist/tests/redisTtlCache.test.js +0 -49
  330. package/lib/index.d.ts +0 -7
  331. package/lib/index.d.ts.map +0 -1
  332. package/lib/index.js +0 -7
  333. package/lib/src/domainMapper/index.d.ts +0 -3
  334. package/lib/src/domainMapper/index.d.ts.map +0 -1
  335. package/lib/src/domainMapper/index.js +0 -2
  336. package/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts +0 -18
  337. package/lib/src/domainMapper/interfaces/dtoMapper.interface.d.ts.map +0 -1
  338. package/lib/src/domainMapper/interfaces/dtoMapper.interface.js +0 -1
  339. package/lib/src/domainMapper/models/baseDtoMapper.model.d.ts +0 -72
  340. package/lib/src/domainMapper/models/baseDtoMapper.model.d.ts.map +0 -1
  341. package/lib/src/domainMapper/models/baseDtoMapper.model.js +0 -75
  342. package/lib/src/domainMapper/models/requestDtoMapper.model.d.ts +0 -68
  343. package/lib/src/domainMapper/models/requestDtoMapper.model.d.ts.map +0 -1
  344. package/lib/src/domainMapper/models/requestDtoMapper.model.js +0 -70
  345. package/lib/src/domainMapper/models/responseDtoMapper.model.d.ts +0 -67
  346. package/lib/src/domainMapper/models/responseDtoMapper.model.d.ts.map +0 -1
  347. package/lib/src/domainMapper/models/responseDtoMapper.model.js +0 -65
  348. package/lib/src/domainMapper/types/dtoMapper.types.d.ts +0 -9
  349. package/lib/src/domainMapper/types/dtoMapper.types.d.ts.map +0 -1
  350. package/lib/src/domainMapper/types/dtoMapper.types.js +0 -1
  351. package/lib/src/http/handler/typedHandler.d.ts +0 -24
  352. package/lib/src/http/handler/typedHandler.d.ts.map +0 -1
  353. package/lib/src/http/handler/typedHandler.js +0 -25
  354. package/lib/src/http/interfaces/expressLikeApplication.interface.d.ts +0 -16
  355. package/lib/src/http/interfaces/expressLikeApplication.interface.d.ts.map +0 -1
  356. package/lib/src/http/interfaces/expressLikeApplication.interface.js +0 -14
  357. package/lib/src/http/interfaces/index.d.ts +0 -3
  358. package/lib/src/http/interfaces/index.d.ts.map +0 -1
  359. package/lib/src/http/interfaces/index.js +0 -2
  360. package/lib/src/http/middleware/index.d.ts +0 -3
  361. package/lib/src/http/middleware/index.d.ts.map +0 -1
  362. package/lib/src/http/middleware/index.js +0 -2
  363. package/lib/src/http/middleware/request.middleware.d.ts +0 -73
  364. package/lib/src/http/middleware/request.middleware.d.ts.map +0 -1
  365. package/lib/src/http/middleware/request.middleware.js +0 -210
  366. package/lib/src/http/middleware/response.middleware.d.ts +0 -31
  367. package/lib/src/http/middleware/response.middleware.d.ts.map +0 -1
  368. package/lib/src/http/middleware/response.middleware.js +0 -52
  369. package/lib/src/http/openApiV3Generator/index.d.ts +0 -2
  370. package/lib/src/http/openApiV3Generator/index.d.ts.map +0 -1
  371. package/lib/src/http/openApiV3Generator/index.js +0 -1
  372. package/lib/src/http/types/index.d.ts +0 -4
  373. package/lib/src/http/types/index.d.ts.map +0 -1
  374. package/lib/src/http/types/index.js +0 -3
  375. package/lib/src/http/utils/index.d.ts +0 -3
  376. package/lib/src/http/utils/index.d.ts.map +0 -1
  377. package/lib/src/http/utils/index.js +0 -2
  378. package/lib/tests/entityMapper.test.d.ts +0 -2
  379. package/lib/tests/entityMapper.test.d.ts.map +0 -1
  380. package/lib/tests/entityMapper.test.js +0 -168
  381. package/lib/tests/expressLikeRouter.test.d.ts +0 -2
  382. package/lib/tests/expressLikeRouter.test.d.ts.map +0 -1
  383. package/lib/tests/expressLikeRouter.test.js +0 -3
  384. /package/lib/{dist/cache/interfaces/ttlCache.interface.js → src/http/types/typedHandler.types.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,oBAkBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,oBAiBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,6 +1,4 @@
1
- // import type { Config } from 'jest';
2
1
  const jestConfig = {
3
- // [...]
4
2
  preset: 'ts-jest/presets/default-esm', // or other ESM presets
5
3
  moduleNameMapper: {
6
4
  '^(\\.{1,2}/.*)\\.js$': '$1'
@@ -0,0 +1,4 @@
1
+ import { AnySchemaValidator } from '@forklaunch/validator';
2
+ import { ForklaunchRouter } from '../types/router.types';
3
+ export declare function isForklaunchRouter<SV extends AnySchemaValidator>(maybeForklaunchRouter: unknown): maybeForklaunchRouter is ForklaunchRouter<SV>;
4
+ //# sourceMappingURL=isForklaunchRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isForklaunchRouter.d.ts","sourceRoot":"","sources":["../../../../src/http/guards/isForklaunchRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,kBAAkB,EAC9D,qBAAqB,EAAE,OAAO,GAC7B,qBAAqB,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAQ/C"}
@@ -0,0 +1,7 @@
1
+ export function isForklaunchRouter(maybeForklaunchRouter) {
2
+ return (maybeForklaunchRouter != null &&
3
+ typeof maybeForklaunchRouter === 'object' &&
4
+ 'basePath' in maybeForklaunchRouter &&
5
+ 'routes' in maybeForklaunchRouter &&
6
+ Array.isArray(maybeForklaunchRouter.routes));
7
+ }
@@ -1,5 +1,5 @@
1
1
  import { AnySchemaValidator } from '@forklaunch/validator';
2
- import { TypedHandler } from '../handlers/typedHandler';
3
2
  import { Body, HeadersObject, Method, ParamsObject, QueryObject, ResponsesObject } from '../types/contractDetails.types';
3
+ import { TypedHandler } from '../types/typedHandler.types';
4
4
  export declare function isTypedHandler<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>>(maybeTypedHandler: unknown): maybeTypedHandler is TypedHandler<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>;
5
5
  //# sourceMappingURL=isTypedHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isTypedHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/guards/isTypedHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACL,IAAI,EACJ,aAAa,EACb,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAExC,wBAAgB,cAAc,CAC5B,EAAE,SAAS,kBAAkB,EAC7B,cAAc,SAAS,MAAM,EAC7B,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEzC,iBAAiB,EAAE,OAAO,GACzB,iBAAiB,IAAI,YAAY,CAClC,EAAE,EACF,cAAc,EACd,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,CACV,CAOA"}
1
+ {"version":3,"file":"isTypedHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/guards/isTypedHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EACL,IAAI,EACJ,aAAa,EACb,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,wBAAgB,cAAc,CAC5B,EAAE,SAAS,kBAAkB,EAC7B,cAAc,SAAS,MAAM,EAC7B,IAAI,SAAS,IAAI,MAAM,EAAE,EACzB,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEzC,iBAAiB,EAAE,OAAO,GACzB,iBAAiB,IAAI,YAAY,CAClC,EAAE,EACF,cAAc,EACd,IAAI,EACJ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,CACV,CAOA"}
@@ -0,0 +1,5 @@
1
+ import { AnySchemaValidator } from '@forklaunch/validator';
2
+ import { ExpressLikeSchemaAuthMapper } from '../types/apiDefinition.types';
3
+ import { Body, ContractDetails, HeadersObject, Method, ParamsObject, QueryObject, ResponsesObject } from '../types/contractDetails.types';
4
+ export declare function typedAuthHandler<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ResBodyMap extends ResponsesObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>, ResHeaders extends HeadersObject<SV>>(_schemaValidator: SV, _contractDetails: ContractDetails<SV, Method, `/${string}`, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>, authHandler: ExpressLikeSchemaAuthMapper<SV, P, ReqBody, ReqQuery, ReqHeaders>): ExpressLikeSchemaAuthMapper<SV, P, ReqBody, ReqQuery, ReqHeaders>;
5
+ //# sourceMappingURL=typedAuthHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedAuthHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/typedAuthHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,IAAI,EACJ,eAAe,EACf,aAAa,EACb,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAExC,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,kBAAkB,EAC7B,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EAEpC,gBAAgB,EAAE,EAAE,EACpB,gBAAgB,EAAE,eAAe,CAC/B,EAAE,EACF,MAAM,EACN,IAAI,MAAM,EAAE,EACZ,CAAC,EACD,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,CACX,EACD,WAAW,EAAE,2BAA2B,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,qEAG/E"}
@@ -0,0 +1,3 @@
1
+ export function typedAuthHandler(_schemaValidator, _contractDetails, authHandler) {
2
+ return authHandler;
3
+ }
@@ -1,12 +1,6 @@
1
1
  import { AnySchemaValidator } from '@forklaunch/validator';
2
2
  import { ExpressLikeSchemaHandler } from '../types/apiDefinition.types';
3
3
  import { Body, ContractDetails, HeadersObject, Method, ParamsObject, QueryObject, ResponsesObject } from '../types/contractDetails.types';
4
- export type ContractDetailsExpressLikeSchemaHandler<SV extends AnySchemaValidator, 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>;
5
- export type TypedHandler<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>> = {
6
- _typedHandler: true;
7
- contractDetails: ContractDetails<SV, ContractMethod, Path, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders>;
8
- handlers: ContractDetailsExpressLikeSchemaHandler<SV, P, ResBodyMap, ReqBody, ReqQuery, ReqHeaders, ResHeaders, LocalsObj>[];
9
- };
10
4
  /**
11
5
  * Router class that sets up routes and middleware for an Express router, for use with controller/routes pattern.
12
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"typedHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/typedHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typedHandler.d.ts","sourceRoot":"","sources":["../../../../src/http/handlers/typedHandler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './application/expressLikeApplication';
2
+ export * from './guards/isForklaunchRouter';
2
3
  export * from './handlers/typedHandler';
3
4
  export * from './interfaces/expressLikeRouter.interface';
4
5
  export * from './openApiV3Generator/openApiV3Generator';
@@ -7,6 +8,7 @@ export * from './types/apiDefinition.types';
7
8
  export * from './types/contractDetails.types';
8
9
  export * from './types/expressLikeRouter.types';
9
10
  export * from './types/router.types';
11
+ export * from './types/typedHandler.types';
10
12
  export * from './utils/enrichExpressLikeSend';
11
13
  export * from './utils/httpStatusCodes';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './application/expressLikeApplication';
2
+ export * from './guards/isForklaunchRouter';
2
3
  export * from './handlers/typedHandler';
3
4
  export * from './interfaces/expressLikeRouter.interface';
4
5
  export * from './openApiV3Generator/openApiV3Generator';
@@ -7,5 +8,6 @@ export * from './types/apiDefinition.types';
7
8
  export * from './types/contractDetails.types';
8
9
  export * from './types/expressLikeRouter.types';
9
10
  export * from './types/router.types';
11
+ export * from './types/typedHandler.types';
10
12
  export * from './utils/enrichExpressLikeSend';
11
13
  export * from './utils/httpStatusCodes';
@@ -1,21 +1,6 @@
1
1
  import { AnySchemaValidator } from '@forklaunch/validator';
2
- import { ParsedQs } from 'qs';
3
- import { ForklaunchNextFunction, ForklaunchRequest, ForklaunchResponse } from '../../types/apiDefinition.types';
4
- import { ParamsDictionary } from '../../types/contractDetails.types';
5
- /**
6
- * Maps roles from authorization.
7
- *
8
- * @param {AuthMethod} [authorizationType] - The method of authorization.
9
- * @param {string} [authorizationToken] - The authorization token.
10
- * @returns {string[]} - The mapped roles.
11
- */
12
- /**
13
- * Maps permissions from authorization.
14
- *
15
- * @param {AuthMethod} [authorizationType] - The method of authorization.
16
- * @param {string} [authorizationToken] - The authorization token.
17
- * @returns {string[]} - The mapped permissions.
18
- */
2
+ import { ForklaunchNextFunction, ForklaunchRequest, ForklaunchResponse, MapParamsSchema, MapReqBodySchema, MapReqHeadersSchema, MapReqQuerySchema, MapResBodyMapSchema, MapResHeadersSchema } from '../../types/apiDefinition.types';
3
+ import { Body, HeadersObject, ParamsObject, QueryObject, ResponsesObject } from '../../types/contractDetails.types';
19
4
  /**
20
5
  * Middleware to parse request authorization.
21
6
  *
@@ -27,5 +12,5 @@ import { ParamsDictionary } from '../../types/contractDetails.types';
27
12
  * @param {Response} res - The response object.
28
13
  * @param {NextFunction} [next] - The next middleware function.
29
14
  */
30
- export declare function parseRequestAuth<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>>(req: ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>, res: ForklaunchResponse<ResBodyMap, ResHeaders, LocalsObj>, next?: ForklaunchNextFunction): Promise<void>;
15
+ export declare function parseRequestAuth<SV extends AnySchemaValidator, 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>>(req: ForklaunchRequest<SV, MapParamsSchema<SV, P>, MapReqBodySchema<SV, ReqBody>, MapReqQuerySchema<SV, ReqQuery>, MapReqHeadersSchema<SV, ReqHeaders>>, res: ForklaunchResponse<MapResBodyMapSchema<SV, ResBodyMap>, MapResHeadersSchema<SV, ResHeaders>, LocalsObj>, next?: ForklaunchNextFunction): Promise<void>;
31
16
  //# sourceMappingURL=auth.middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.middleware.d.ts","sourceRoot":"","sources":["../../../../../src/http/middleware/request/auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAuC3C;;;;;;GAMG;AAQH;;;;;;GAMG;AAQH;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,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,GAAG,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC5D,GAAG,EAAE,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAC1D,IAAI,CAAC,EAAE,sBAAsB,iBA+C9B"}
1
+ {"version":3,"file":"auth.middleware.d.ts","sourceRoot":"","sources":["../../../../../src/http/middleware/request/auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,IAAI,EACJ,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,mCAAmC,CAAC;AA4K3C;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,SAAS,kBAAkB,EAC7B,CAAC,SAAS,YAAY,CAAC,EAAE,CAAC,EAC1B,UAAU,SAAS,eAAe,CAAC,EAAE,CAAC,EACtC,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,SAAS,WAAW,CAAC,EAAE,CAAC,EAChC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,UAAU,SAAS,aAAa,CAAC,EAAE,CAAC,EACpC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEzC,GAAG,EAAE,iBAAiB,CACpB,EAAE,EACF,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,EACtB,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,EAC7B,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAC/B,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC,CACpC,EACD,GAAG,EAAE,kBAAkB,CACrB,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC,EACnC,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC,EACnC,SAAS,CACV,EACD,IAAI,CAAC,EAAE,sBAAsB,iBA0B9B"}
@@ -1,59 +1,122 @@
1
- import * as jose from 'jose';
1
+ import jose from 'jose';
2
+ const invalidAuthorizationTokenFormat = [
3
+ 401,
4
+ 'Invalid Authorization token format.'
5
+ ];
6
+ const invalidAuthorizationSubject = [
7
+ 403,
8
+ 'Invalid Authorization subject.'
9
+ ];
10
+ const invalidAuthorizationTokenPermissions = [
11
+ 403,
12
+ 'Invalid Authorization permissions.'
13
+ ];
14
+ const invalidAuthorizationTokenRoles = [
15
+ 403,
16
+ 'Invalid Authorization roles.'
17
+ ];
18
+ const invalidAuthorizationToken = [
19
+ 403,
20
+ 'Invalid Authorization token.'
21
+ ];
22
+ const invalidAuthorizationLogin = [
23
+ 403,
24
+ 'Invalid Authorization login.'
25
+ ];
2
26
  /**
3
27
  * Checks the authorization token for validity.
4
28
  *
5
29
  * @param {AuthMethod} [authorizationMethod] - The method of authorization.
6
- * @param {string} [authorizationString] - The authorization string.
30
+ * @param {string} [authorizationToken] - The authorization string.
7
31
  * @returns {Promise<[401 | 403, string] | string | undefined>} - The result of the authorization check.
8
32
  */
9
- async function checkAuthorizationToken(authorizationMethod, authorizationString) {
10
- if (!authorizationString) {
33
+ async function checkAuthorizationToken(authorizationMethod, authorizationToken, req) {
34
+ if (authorizationToken == null) {
11
35
  return [401, 'No Authorization token provided.'];
12
36
  }
13
- switch (authorizationMethod) {
37
+ const [tokenPrefix, token] = authorizationToken.split(' ');
38
+ let resourceId;
39
+ switch (authorizationMethod.method) {
14
40
  case 'jwt': {
15
- if (!authorizationString.startsWith('Bearer ')) {
16
- return [401, 'Invalid Authorization token format.'];
41
+ if (tokenPrefix !== 'Bearer') {
42
+ return invalidAuthorizationTokenFormat;
17
43
  }
18
44
  try {
19
- const decodedJwt = await jose.jwtVerify(authorizationString.split(' ')[1], new TextEncoder().encode(process.env.JWT_SECRET || 'your-256-bit-secret'));
20
- return decodedJwt.payload.iss;
45
+ const decodedJwt = await jose.jwtVerify(token, new TextEncoder().encode(
46
+ // TODO: Check this at application startup if there is any route with jwt checking
47
+ process.env.JWT_SECRET));
48
+ if (!decodedJwt.payload.sub) {
49
+ return invalidAuthorizationSubject;
50
+ }
51
+ resourceId = decodedJwt.payload.sub;
21
52
  }
22
53
  catch (error) {
54
+ // TODO: Log error
23
55
  console.error(error);
24
- return [403, 'Invalid Authorization token.'];
56
+ return invalidAuthorizationToken;
57
+ }
58
+ break;
59
+ }
60
+ case 'basic': {
61
+ if (authorizationToken !== 'Basic') {
62
+ return invalidAuthorizationTokenFormat;
63
+ }
64
+ const [username, password] = Buffer.from(token, 'base64')
65
+ .toString('utf-8')
66
+ .split(':');
67
+ if (!username || !password) {
68
+ return invalidAuthorizationTokenFormat;
69
+ }
70
+ if (!authorizationMethod.login(username, password)) {
71
+ return invalidAuthorizationLogin;
72
+ }
73
+ resourceId = username;
74
+ break;
75
+ }
76
+ case 'other':
77
+ if (tokenPrefix !== authorizationMethod.tokenPrefix) {
78
+ return invalidAuthorizationTokenFormat;
79
+ }
80
+ resourceId = authorizationMethod.decodeResource(token);
81
+ break;
82
+ }
83
+ if (authorizationMethod.allowedPermissions ||
84
+ authorizationMethod.forbiddenPermissions) {
85
+ if (!authorizationMethod.mapPermissions) {
86
+ return [500, 'No permission mapping function provided.'];
87
+ }
88
+ const resourcePermissions = await authorizationMethod.mapPermissions(resourceId, req);
89
+ if (authorizationMethod.allowedPermissions) {
90
+ if (resourcePermissions.intersection(authorizationMethod.allowedPermissions)
91
+ .size === 0) {
92
+ return invalidAuthorizationTokenPermissions;
93
+ }
94
+ }
95
+ if (authorizationMethod.forbiddenPermissions) {
96
+ if (resourcePermissions.intersection(authorizationMethod.forbiddenPermissions).size !== 0) {
97
+ return invalidAuthorizationTokenPermissions;
25
98
  }
26
99
  }
27
- default:
28
- return [401, 'Invalid Authorization method.'];
29
100
  }
101
+ if (authorizationMethod.allowedRoles || authorizationMethod.forbiddenRoles) {
102
+ if (!authorizationMethod.mapRoles) {
103
+ return [500, 'No role mapping function provided.'];
104
+ }
105
+ const resourceRoles = await authorizationMethod.mapRoles(resourceId, req);
106
+ if (authorizationMethod.allowedRoles) {
107
+ if (resourceRoles.intersection(authorizationMethod.allowedRoles).size === 0) {
108
+ return invalidAuthorizationTokenRoles;
109
+ }
110
+ }
111
+ if (authorizationMethod.forbiddenRoles) {
112
+ if (resourceRoles.intersection(authorizationMethod.forbiddenRoles).size !==
113
+ 0) {
114
+ return invalidAuthorizationTokenRoles;
115
+ }
116
+ }
117
+ }
118
+ return [401, 'Invalid Authorization method.'];
30
119
  }
31
- /**
32
- * Maps roles from authorization.
33
- *
34
- * @param {AuthMethod} [authorizationType] - The method of authorization.
35
- * @param {string} [authorizationToken] - The authorization token.
36
- * @returns {string[]} - The mapped roles.
37
- */
38
- // function mapRoles(
39
- // authorizationType?: AuthMethod,
40
- // authorizationToken?: string
41
- // ): string[] {
42
- // return [];
43
- // }
44
- /**
45
- * Maps permissions from authorization.
46
- *
47
- * @param {AuthMethod} [authorizationType] - The method of authorization.
48
- * @param {string} [authorizationToken] - The authorization token.
49
- * @returns {string[]} - The mapped permissions.
50
- */
51
- // function mapPermissions(
52
- // authorizationType?: AuthMethod,
53
- // authorizationToken?: string
54
- // ): string[] {
55
- // return [];
56
- // }
57
120
  /**
58
121
  * Middleware to parse request authorization.
59
122
  *
@@ -68,40 +131,12 @@ async function checkAuthorizationToken(authorizationMethod, authorizationString)
68
131
  export async function parseRequestAuth(req, res, next) {
69
132
  const auth = req.contractDetails.auth;
70
133
  if (auth) {
71
- const errorAndMessage = await checkAuthorizationToken(auth.method, req.headers.authorization);
134
+ const errorAndMessage = await checkAuthorizationToken(auth, req.headers[(auth.method === 'other' ? auth.headerName : undefined) ??
135
+ 'Authorization'], req);
72
136
  if (Array.isArray(errorAndMessage)) {
73
137
  res.status(errorAndMessage[0]).send(errorAndMessage[1]);
74
138
  next?.(new Error(errorAndMessage[1]));
75
139
  }
76
- // TODO: Implement role and permission checking
77
- // const permissionSlugs = mapPermissions(
78
- // auth.method,
79
- // req.headers.authorization
80
- // );
81
- // const roles = mapRoles(auth.method, req.headers.authorization);
82
- // const permissionErrorMessage =
83
- // 'User does not have sufficient permissions to perform action.';
84
- // const roleErrorMessage =
85
- // 'User does not have correct role to perform action.';
86
- // permissionSlugs.forEach((permissionSlug) => {
87
- // if (
88
- // !req.contractDetails.auth?.allowedSlugs?.has(permissionSlug) ||
89
- // req.contractDetails.auth?.forbiddenSlugs?.has(permissionSlug)
90
- // ) {
91
- // res.status(403).send(permissionErrorMessage);
92
- // next?.(new Error(permissionErrorMessage));
93
- // }
94
- // }
95
- // });
96
- // roles.forEach((role) => {
97
- // if (
98
- // !req.contractDetails.auth?.allowedRoles?.has(role) ||
99
- // req.contractDetails.auth?.forbiddenRoles?.has(role)
100
- // ) {
101
- // res.status(403).send(roleErrorMessage);
102
- // next?.(new Error(roleErrorMessage));
103
- // }
104
- // });
140
+ next?.();
105
141
  }
106
- // next?.();
107
142
  }
@@ -155,7 +155,7 @@ export function generateSwaggerDocument(schemaValidator, port, routers) {
155
155
  if (route.contractDetails.auth.method === 'jwt') {
156
156
  pathItemObject.security = [
157
157
  {
158
- bearer: Array.from(route.contractDetails.auth.allowedSlugs?.values() || [])
158
+ bearer: Array.from(route.contractDetails.auth.allowedPermissions?.values() || [])
159
159
  }
160
160
  ];
161
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"expressLikeRouter.d.ts","sourceRoot":"","sources":["../../../../src/http/router/expressLikeRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressLikeRouter.d.ts","sourceRoot":"","sources":["../../../../src/http/router/expressLikeRouter.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { isExpressLikeSchemaHandler } from '../guards/isExpressLikeSchemaHandler
2
2
  import { isHttpContractDetails } from '../guards/isHttpContractDetails';
3
3
  import { isPathParamHttpContractDetails } from '../guards/isPathParamContractDetails';
4
4
  import { isTypedHandler } from '../guards/isTypedHandler';
5
+ import { parseRequestAuth } from '../middleware/request/auth.middleware';
5
6
  import { cors } from '../middleware/request/cors.middleware';
6
7
  import { createContext } from '../middleware/request/createContext.middleware';
7
8
  import { enrichDetails } from '../middleware/request/enrichDetails.middleware';
@@ -30,7 +31,8 @@ export class ForklaunchExpressLikeRouter {
30
31
  #resolveMiddlewares(contractDetails, requestSchema, responseSchemas) {
31
32
  return [
32
33
  enrichDetails(contractDetails, requestSchema, responseSchemas),
33
- parse
34
+ parse,
35
+ (parseRequestAuth)
34
36
  ];
35
37
  }
36
38
  /**
@@ -81,27 +83,6 @@ export class ForklaunchExpressLikeRouter {
81
83
  }
82
84
  return controllerHandler;
83
85
  }
84
- // TODO: Move to UniversalSDK
85
- // /**
86
- // * Extracts the SDK path from the given path.
87
- // *
88
- // * @param {string | RegExp | (string | RegExp)[]} path - The provided path.
89
- // * @returns {string} - The extracted SDK path.
90
- // * @throws {Error} - Throws an error if the path is not defined.
91
- // */
92
- // extractSdkPath(path: string | RegExp | (string | RegExp)[]): string {
93
- // let sdkPath = path;
94
- // if (Array.isArray(path)) {
95
- // sdkPath = path.pop() || path[0];
96
- // }
97
- // if (!sdkPath) {
98
- // throw new Error('Path is not defined');
99
- // }
100
- // if (sdkPath instanceof RegExp) {
101
- // sdkPath = generateStringFromRegex(sdkPath);
102
- // }
103
- // return sdkPath as string;
104
- // }
105
86
  #compile(contractDetails) {
106
87
  const schemaValidator = this.schemaValidator;
107
88
  const requestSchema = schemaValidator.compile(schemaValidator.schemify({
@@ -227,7 +208,7 @@ export class ForklaunchExpressLikeRouter {
227
208
  }
228
209
  const contractDetails = contractDetailsOrMiddlewareOrTypedHandler;
229
210
  const handlers = middlewareOrMiddlewareAndTypedHandler.filter((handler) => isExpressLikeSchemaHandler(handler));
230
- if (!isHttpContractDetails(contractDetails) ||
211
+ if (!isHttpContractDetails(contractDetails) &&
231
212
  !isPathParamHttpContractDetails(contractDetails)) {
232
213
  throw new Error('Contract details are malformed for route definition');
233
214
  }
@@ -11,6 +11,18 @@ export interface RequestContext {
11
11
  /** Optional idempotency key for ensuring idempotent requests */
12
12
  idempotencyKey?: string;
13
13
  }
14
+ export interface ForklaunchBaseRequest<P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>> {
15
+ /** Context of the request */
16
+ context: Prettify<RequestContext>;
17
+ /** Request parameters */
18
+ params: P;
19
+ /** Request headers */
20
+ headers: ReqHeaders;
21
+ /** Request body */
22
+ body: ReqBody;
23
+ /** Request query */
24
+ query: ReqQuery;
25
+ }
14
26
  /**
15
27
  * Interface representing a Forklaunch request.
16
28
  *
@@ -20,21 +32,11 @@ export interface RequestContext {
20
32
  * @template ReqQuery - A type for the request query, defaulting to ParsedQs.
21
33
  * @template Headers - A type for the request headers, defaulting to IncomingHttpHeaders.
22
34
  */
23
- export interface ForklaunchRequest<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>> {
24
- /** Context of the request */
25
- context: Prettify<RequestContext>;
35
+ export interface ForklaunchRequest<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>> extends ForklaunchBaseRequest<P, ReqBody, ReqQuery, ReqHeaders> {
26
36
  /** Contract details for the request */
27
- contractDetails: HttpContractDetails<SV> | PathParamHttpContractDetails<SV>;
37
+ contractDetails: PathParamHttpContractDetails<SV> | HttpContractDetails<SV>;
28
38
  /** Schema validator */
29
39
  schemaValidator: SchemaValidator;
30
- /** Request parameters */
31
- params: P;
32
- /** Request headers */
33
- headers: ReqHeaders;
34
- /** Request body */
35
- body: ReqBody;
36
- /** Request query */
37
- query: ReqQuery;
38
40
  /** Method */
39
41
  method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'CONNECT' | 'TRACE';
40
42
  /** Request schema, compiled */
@@ -143,6 +145,12 @@ export type ForklaunchNextFunction = (err?: unknown) => void;
143
145
  export interface ExpressLikeHandler<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>> {
144
146
  (req: ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>, res: ForklaunchResponse<ResBodyMap, ResHeaders, LocalsObj>, next?: ForklaunchNextFunction): void | Promise<void>;
145
147
  }
148
+ export type MapParamsSchema<SV extends AnySchemaValidator, P extends ParamsObject<SV>> = MapSchema<SV, P> extends infer Params ? unknown extends Params ? ParamsDictionary : Params : ParamsDictionary;
149
+ export type MapResBodyMapSchema<SV extends AnySchemaValidator, ResBodyMap extends ResponsesObject<SV>> = MapSchema<SV, ResBodyMap> extends infer ResponseBodyMap ? unknown extends ResponseBodyMap ? ForklaunchResErrors : ResponseBodyMap : ForklaunchResErrors;
150
+ export type MapReqBodySchema<SV extends AnySchemaValidator, ReqBody extends Body<SV>> = MapSchema<SV, ReqBody> extends infer Body ? unknown extends Body ? Record<string, unknown> : Body : Record<string, unknown>;
151
+ export type MapReqQuerySchema<SV extends AnySchemaValidator, ReqQuery extends QueryObject<SV>> = MapSchema<SV, ReqQuery> extends infer Query ? unknown extends Query ? ParsedQs : Query : ParsedQs;
152
+ export type MapReqHeadersSchema<SV extends AnySchemaValidator, ReqHeaders extends HeadersObject<SV>> = MapSchema<SV, ReqHeaders> extends infer RequestHeaders ? unknown extends RequestHeaders ? Record<string, string> : RequestHeaders : Record<string, string>;
153
+ export type MapResHeadersSchema<SV extends AnySchemaValidator, ResHeaders extends HeadersObject<SV>> = MapSchema<SV, ResHeaders> extends infer ResponseHeaders ? unknown extends ResponseHeaders ? ForklaunchResHeaders : ResponseHeaders : ForklaunchResHeaders;
146
154
  /**
147
155
  * Represents a schema middleware handler with typed parameters, responses, body, and query.
148
156
  *
@@ -153,7 +161,22 @@ export interface ExpressLikeHandler<SV extends AnySchemaValidator, P extends Par
153
161
  * @template ReqQuery - A type for the request query, defaulting to QueryObject.
154
162
  * @template LocalsObj - A type for local variables, defaulting to an empty object.
155
163
  */
156
- export type ExpressLikeSchemaHandler<SV extends AnySchemaValidator, 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>> = ExpressLikeHandler<SV, MapSchema<SV, P> extends infer Params ? unknown extends Params ? ParamsDictionary : Params : ParamsDictionary, MapSchema<SV, ResBodyMap> extends infer ResponseBodyMap ? unknown extends ResponseBodyMap ? ForklaunchResErrors : ResponseBodyMap : ForklaunchResErrors, MapSchema<SV, ReqBody> extends infer Body ? unknown extends Body ? Record<string, unknown> : Body : Record<string, unknown>, MapSchema<SV, ReqQuery> extends infer Query ? unknown extends Query ? ParsedQs : Query : ParsedQs, MapSchema<SV, ReqHeaders> extends infer RequestHeaders ? unknown extends RequestHeaders ? Record<string, string> : RequestHeaders : Record<string, string>, MapSchema<SV, ResHeaders> extends infer ResponseHeaders ? unknown extends ResponseHeaders ? ForklaunchResHeaders : ResponseHeaders : ForklaunchResHeaders, LocalsObj>;
164
+ export type ExpressLikeSchemaHandler<SV extends AnySchemaValidator, 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>> = ExpressLikeHandler<SV, MapParamsSchema<SV, P>, MapResBodyMapSchema<SV, ResBodyMap>, MapReqBodySchema<SV, ReqBody>, MapReqQuerySchema<SV, ReqQuery>, MapReqHeadersSchema<SV, ReqHeaders>, MapResHeadersSchema<SV, ResHeaders>, LocalsObj>;
165
+ /**
166
+ * Represents a function that maps an authenticated request with schema validation
167
+ * to a set of authorization strings, with request properties automatically inferred from the schema.
168
+ *
169
+ * @template SV - The type representing the schema validator.
170
+ * @template P - The type representing request parameters inferred from the schema.
171
+ * @template ReqBody - The type representing the request body inferred from the schema.
172
+ * @template ReqQuery - The type representing the request query parameters inferred from the schema.
173
+ * @template ReqHeaders - The type representing the request headers inferred from the schema.
174
+ *
175
+ * @param {ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>} req - The request object with schema validation.
176
+ * @returns {Set<string> | Promise<Set<string>>} - A set of authorization strings or a promise that resolves to it.
177
+ */
178
+ export type ExpressLikeSchemaAuthMapper<SV extends AnySchemaValidator, P extends ParamsObject<SV>, ReqBody extends Body<SV>, ReqQuery extends QueryObject<SV>, ReqHeaders extends HeadersObject<SV>> = ExpressLikeAuthMapper<SV, MapParamsSchema<SV, P>, MapReqBodySchema<SV, ReqBody>, MapReqQuerySchema<SV, ReqQuery>, MapReqHeadersSchema<SV, ReqHeaders>>;
179
+ export type ExpressLikeAuthMapper<SV extends AnySchemaValidator, P extends ParamsDictionary, ReqBody extends Record<string, unknown>, ReqQuery extends ParsedQs, ReqHeaders extends Record<string, string>> = (sub: string, req?: ForklaunchRequest<SV, P, ReqBody, ReqQuery, ReqHeaders>) => Set<string> | Promise<Set<string>>;
157
180
  /**
158
181
  * Represents a live type function for the SDK.
159
182
  *
@@ -1 +1 @@
1
- {"version":3,"file":"apiDefinition.types.d.ts","sourceRoot":"","sources":["../../../../src/http/types/apiDefinition.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiDefinition.types.d.ts","sourceRoot":"","sources":["../../../../src/http/types/apiDefinition.types.ts"],"names":[],"mappings":"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"}