@tsed/common 6.88.1 → 6.92.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/lib/{PlatformModule.d.ts → cjs/PlatformModule.d.ts} +0 -0
  2. package/lib/cjs/PlatformModule.js +11 -0
  3. package/lib/cjs/PlatformModule.js.map +1 -0
  4. package/lib/{builder → cjs/builder}/PlatformBuilder.d.ts +15 -27
  5. package/lib/cjs/builder/PlatformBuilder.js +275 -0
  6. package/lib/cjs/builder/PlatformBuilder.js.map +1 -0
  7. package/lib/{builder → cjs/builder}/PlatformControllerBuilder.d.ts +0 -0
  8. package/lib/cjs/builder/PlatformControllerBuilder.js +85 -0
  9. package/lib/cjs/builder/PlatformControllerBuilder.js.map +1 -0
  10. package/lib/{config → cjs/config}/index.d.ts +0 -0
  11. package/lib/cjs/config/index.js +7 -0
  12. package/lib/cjs/config/index.js.map +1 -0
  13. package/lib/{config → cjs/config}/interfaces/ConverterSettings.d.ts +0 -0
  14. package/lib/cjs/config/interfaces/ConverterSettings.js +3 -0
  15. package/lib/cjs/config/interfaces/ConverterSettings.js.map +1 -0
  16. package/lib/{config → cjs/config}/interfaces/EndpointDirectoriesSettings.d.ts +0 -0
  17. package/lib/cjs/config/interfaces/EndpointDirectoriesSettings.js +3 -0
  18. package/lib/cjs/config/interfaces/EndpointDirectoriesSettings.js.map +1 -0
  19. package/lib/{config → cjs/config}/interfaces/PlatformLoggerSettings.d.ts +0 -0
  20. package/lib/cjs/config/interfaces/PlatformLoggerSettings.js +3 -0
  21. package/lib/cjs/config/interfaces/PlatformLoggerSettings.js.map +1 -0
  22. package/lib/{config → cjs/config}/interfaces/PlatformMulterSettings.d.ts +0 -0
  23. package/lib/cjs/config/interfaces/PlatformMulterSettings.js +3 -0
  24. package/lib/cjs/config/interfaces/PlatformMulterSettings.js.map +1 -0
  25. package/lib/{config → cjs/config}/interfaces/PlatformStaticsSettings.d.ts +0 -0
  26. package/lib/cjs/config/interfaces/PlatformStaticsSettings.js +3 -0
  27. package/lib/cjs/config/interfaces/PlatformStaticsSettings.js.map +1 -0
  28. package/lib/{config → cjs/config}/interfaces/index.d.ts +10 -1
  29. package/lib/cjs/config/interfaces/index.js +8 -0
  30. package/lib/cjs/config/interfaces/index.js.map +1 -0
  31. package/lib/{config → cjs/config}/services/PlatformConfiguration.d.ts +9 -13
  32. package/lib/cjs/config/services/PlatformConfiguration.js +178 -0
  33. package/lib/cjs/config/services/PlatformConfiguration.js.map +1 -0
  34. package/lib/{constants → cjs/constants}/routerOptions.d.ts +0 -0
  35. package/lib/cjs/constants/routerOptions.js +5 -0
  36. package/lib/cjs/constants/routerOptions.js.map +1 -0
  37. package/lib/{decorators → cjs/decorators}/httpServer.d.ts +1 -0
  38. package/lib/cjs/decorators/httpServer.js +32 -0
  39. package/lib/cjs/decorators/httpServer.js.map +1 -0
  40. package/lib/{decorators → cjs/decorators}/httpsServer.d.ts +1 -0
  41. package/lib/cjs/decorators/httpsServer.js +32 -0
  42. package/lib/cjs/decorators/httpsServer.js.map +1 -0
  43. package/lib/{decorators → cjs/decorators}/index.d.ts +0 -0
  44. package/lib/cjs/decorators/index.js +23 -0
  45. package/lib/cjs/decorators/index.js.map +1 -0
  46. package/lib/{decorators → cjs/decorators}/method/acceptMime.d.ts +0 -0
  47. package/lib/cjs/decorators/method/acceptMime.js +28 -0
  48. package/lib/cjs/decorators/method/acceptMime.js.map +1 -0
  49. package/lib/{decorators → cjs/decorators}/method/endpointFn.d.ts +0 -0
  50. package/lib/cjs/decorators/method/endpointFn.js +15 -0
  51. package/lib/cjs/decorators/method/endpointFn.js.map +1 -0
  52. package/lib/{decorators → cjs/decorators}/method/location.d.ts +0 -0
  53. package/lib/cjs/decorators/method/location.js +6 -0
  54. package/lib/cjs/decorators/method/location.js.map +1 -0
  55. package/lib/{decorators → cjs/decorators}/method/redirect.d.ts +0 -0
  56. package/lib/cjs/decorators/method/redirect.js +6 -0
  57. package/lib/cjs/decorators/method/redirect.js.map +1 -0
  58. package/lib/{decorators → cjs/decorators}/method/route.d.ts +0 -0
  59. package/lib/cjs/decorators/method/route.js +13 -0
  60. package/lib/cjs/decorators/method/route.js.map +1 -0
  61. package/lib/{decorators → cjs/decorators}/method/view.d.ts +0 -0
  62. package/lib/cjs/decorators/method/view.js +34 -0
  63. package/lib/cjs/decorators/method/view.js.map +1 -0
  64. package/lib/{decorators → cjs/decorators}/multer/index.d.ts +0 -0
  65. package/lib/cjs/decorators/multer/index.js +7 -0
  66. package/lib/cjs/decorators/multer/index.js.map +1 -0
  67. package/lib/{decorators → cjs/decorators}/multer/multerFileSize.d.ts +0 -0
  68. package/lib/cjs/decorators/multer/multerFileSize.js +35 -0
  69. package/lib/cjs/decorators/multer/multerFileSize.js.map +1 -0
  70. package/lib/{decorators → cjs/decorators}/multer/multerOptions.d.ts +0 -0
  71. package/lib/cjs/decorators/multer/multerOptions.js +52 -0
  72. package/lib/cjs/decorators/multer/multerOptions.js.map +1 -0
  73. package/lib/{decorators → cjs/decorators}/multer/multipartFile.d.ts +0 -0
  74. package/lib/cjs/decorators/multer/multipartFile.js +78 -0
  75. package/lib/cjs/decorators/multer/multipartFile.js.map +1 -0
  76. package/lib/{decorators → cjs/decorators}/params/endpointInfo.d.ts +0 -0
  77. package/lib/cjs/decorators/params/endpointInfo.js +21 -0
  78. package/lib/cjs/decorators/params/endpointInfo.js.map +1 -0
  79. package/lib/{decorators → cjs/decorators}/params/error.d.ts +0 -0
  80. package/lib/cjs/decorators/params/error.js +20 -0
  81. package/lib/cjs/decorators/params/error.js.map +1 -0
  82. package/lib/{decorators → cjs/decorators}/params/next.d.ts +0 -0
  83. package/lib/cjs/decorators/params/next.js +21 -0
  84. package/lib/cjs/decorators/params/next.js.map +1 -0
  85. package/lib/{decorators → cjs/decorators}/params/request.d.ts +0 -0
  86. package/lib/cjs/decorators/params/request.js +39 -0
  87. package/lib/cjs/decorators/params/request.js.map +1 -0
  88. package/lib/{decorators → cjs/decorators}/params/response.d.ts +0 -0
  89. package/lib/cjs/decorators/params/response.js +33 -0
  90. package/lib/cjs/decorators/params/response.js.map +1 -0
  91. package/lib/{decorators → cjs/decorators}/params/responseData.d.ts +0 -0
  92. package/lib/cjs/decorators/params/responseData.js +21 -0
  93. package/lib/cjs/decorators/params/responseData.js.map +1 -0
  94. package/lib/{domain → cjs/domain}/AnyToPromiseWithCtx.d.ts +0 -0
  95. package/lib/cjs/domain/AnyToPromiseWithCtx.js +35 -0
  96. package/lib/cjs/domain/AnyToPromiseWithCtx.js.map +1 -0
  97. package/lib/{domain → cjs/domain}/ControllerProvider.d.ts +0 -0
  98. package/lib/cjs/domain/ControllerProvider.js +51 -0
  99. package/lib/cjs/domain/ControllerProvider.js.map +1 -0
  100. package/lib/{domain → cjs/domain}/EndpointMetadata.d.ts +0 -0
  101. package/lib/cjs/domain/EndpointMetadata.js +111 -0
  102. package/lib/cjs/domain/EndpointMetadata.js.map +1 -0
  103. package/lib/{domain → cjs/domain}/HandlerMetadata.d.ts +0 -0
  104. package/lib/cjs/domain/HandlerMetadata.js +57 -0
  105. package/lib/cjs/domain/HandlerMetadata.js.map +1 -0
  106. package/lib/{domain → cjs/domain}/PlatformContext.d.ts +0 -0
  107. package/lib/cjs/domain/PlatformContext.js +85 -0
  108. package/lib/cjs/domain/PlatformContext.js.map +1 -0
  109. package/lib/{domain → cjs/domain}/PlatformRouteDetails.d.ts +0 -0
  110. package/lib/cjs/domain/PlatformRouteDetails.js +24 -0
  111. package/lib/cjs/domain/PlatformRouteDetails.js.map +1 -0
  112. package/lib/{domain → cjs/domain}/PropertyMetadata.d.ts +0 -0
  113. package/lib/cjs/domain/PropertyMetadata.js +28 -0
  114. package/lib/cjs/domain/PropertyMetadata.js.map +1 -0
  115. package/lib/{domain → cjs/domain}/index.d.ts +0 -0
  116. package/lib/cjs/domain/index.js +11 -0
  117. package/lib/cjs/domain/index.js.map +1 -0
  118. package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
  119. package/lib/cjs/index.js +37 -0
  120. package/lib/cjs/index.js.map +1 -0
  121. package/lib/{interfaces → cjs/interfaces}/AfterInit.d.ts +0 -0
  122. package/lib/cjs/interfaces/AfterInit.js +3 -0
  123. package/lib/cjs/interfaces/AfterInit.js.map +1 -0
  124. package/lib/{interfaces → cjs/interfaces}/AfterListen.d.ts +0 -0
  125. package/lib/cjs/interfaces/AfterListen.js +3 -0
  126. package/lib/cjs/interfaces/AfterListen.js.map +1 -0
  127. package/lib/{interfaces → cjs/interfaces}/AfterRoutesInit.d.ts +0 -0
  128. package/lib/cjs/interfaces/AfterRoutesInit.js +3 -0
  129. package/lib/cjs/interfaces/AfterRoutesInit.js.map +1 -0
  130. package/lib/{interfaces → cjs/interfaces}/BeforeInit.d.ts +0 -0
  131. package/lib/cjs/interfaces/BeforeInit.js +3 -0
  132. package/lib/cjs/interfaces/BeforeInit.js.map +1 -0
  133. package/lib/{interfaces → cjs/interfaces}/BeforeListen.d.ts +0 -0
  134. package/lib/cjs/interfaces/BeforeListen.js +3 -0
  135. package/lib/cjs/interfaces/BeforeListen.js.map +1 -0
  136. package/lib/{interfaces → cjs/interfaces}/BeforeRoutesInit.d.ts +0 -0
  137. package/lib/cjs/interfaces/BeforeRoutesInit.js +3 -0
  138. package/lib/cjs/interfaces/BeforeRoutesInit.js.map +1 -0
  139. package/lib/{interfaces → cjs/interfaces}/HandlerType.d.ts +0 -0
  140. package/lib/cjs/interfaces/HandlerType.js +17 -0
  141. package/lib/cjs/interfaces/HandlerType.js.map +1 -0
  142. package/lib/{interfaces → cjs/interfaces}/IncomingEvent.d.ts +0 -0
  143. package/lib/cjs/interfaces/IncomingEvent.js +3 -0
  144. package/lib/cjs/interfaces/IncomingEvent.js.map +1 -0
  145. package/lib/{interfaces → cjs/interfaces}/OnReady.d.ts +0 -0
  146. package/lib/cjs/interfaces/OnReady.js +3 -0
  147. package/lib/cjs/interfaces/OnReady.js.map +1 -0
  148. package/lib/{interfaces → cjs/interfaces}/OnRequest.d.ts +0 -0
  149. package/lib/cjs/interfaces/OnRequest.js +3 -0
  150. package/lib/cjs/interfaces/OnRequest.js.map +1 -0
  151. package/lib/{interfaces → cjs/interfaces}/OnResponse.d.ts +0 -0
  152. package/lib/cjs/interfaces/OnResponse.js +3 -0
  153. package/lib/cjs/interfaces/OnResponse.js.map +1 -0
  154. package/lib/{interfaces → cjs/interfaces}/OnRoutesInit.d.ts +0 -0
  155. package/lib/cjs/interfaces/OnRoutesInit.js +3 -0
  156. package/lib/cjs/interfaces/OnRoutesInit.js.map +1 -0
  157. package/lib/{interfaces → cjs/interfaces}/PathType.d.ts +0 -0
  158. package/lib/cjs/interfaces/PathType.js +3 -0
  159. package/lib/cjs/interfaces/PathType.js.map +1 -0
  160. package/lib/cjs/interfaces/PlatformAdapter.d.ts +19 -0
  161. package/lib/cjs/interfaces/PlatformAdapter.js +3 -0
  162. package/lib/cjs/interfaces/PlatformAdapter.js.map +1 -0
  163. package/lib/{interfaces → cjs/interfaces}/PlatformRouteOptions.d.ts +0 -0
  164. package/lib/cjs/interfaces/PlatformRouteOptions.js +3 -0
  165. package/lib/cjs/interfaces/PlatformRouteOptions.js.map +1 -0
  166. package/lib/{interfaces → cjs/interfaces}/ResponseErrorObject.d.ts +0 -0
  167. package/lib/cjs/interfaces/ResponseErrorObject.js +3 -0
  168. package/lib/cjs/interfaces/ResponseErrorObject.js.map +1 -0
  169. package/lib/{interfaces → cjs/interfaces}/Route.d.ts +0 -0
  170. package/lib/cjs/interfaces/Route.js +3 -0
  171. package/lib/cjs/interfaces/Route.js.map +1 -0
  172. package/lib/{interfaces → cjs/interfaces}/index.d.ts +1 -0
  173. package/lib/cjs/interfaces/index.js +21 -0
  174. package/lib/cjs/interfaces/index.js.map +1 -0
  175. package/lib/{middlewares → cjs/middlewares}/AcceptMimesMiddleware.d.ts +0 -0
  176. package/lib/cjs/middlewares/AcceptMimesMiddleware.js +27 -0
  177. package/lib/cjs/middlewares/AcceptMimesMiddleware.js.map +1 -0
  178. package/lib/{middlewares → cjs/middlewares}/GlobalAcceptMimesMiddleware.d.ts +0 -0
  179. package/lib/cjs/middlewares/GlobalAcceptMimesMiddleware.js +26 -0
  180. package/lib/cjs/middlewares/GlobalAcceptMimesMiddleware.js.map +1 -0
  181. package/lib/{middlewares → cjs/middlewares}/PlatformAcceptMimesMiddleware.d.ts +0 -0
  182. package/lib/cjs/middlewares/PlatformAcceptMimesMiddleware.js +37 -0
  183. package/lib/cjs/middlewares/PlatformAcceptMimesMiddleware.js.map +1 -0
  184. package/lib/{middlewares → cjs/middlewares}/PlatformMulterMiddleware.d.ts +0 -0
  185. package/lib/cjs/middlewares/PlatformMulterMiddleware.js +55 -0
  186. package/lib/cjs/middlewares/PlatformMulterMiddleware.js.map +1 -0
  187. package/lib/{middlewares/data → cjs/middlewares/__mock__}/FakeCtrl.d.ts +0 -0
  188. package/lib/cjs/middlewares/__mock__/FakeCtrl.js +12 -0
  189. package/lib/cjs/middlewares/__mock__/FakeCtrl.js.map +1 -0
  190. package/lib/{middlewares → cjs/middlewares}/bindEndpointMiddleware.d.ts +0 -0
  191. package/lib/cjs/middlewares/bindEndpointMiddleware.js +13 -0
  192. package/lib/cjs/middlewares/bindEndpointMiddleware.js.map +1 -0
  193. package/lib/{middlewares → cjs/middlewares}/index.d.ts +0 -0
  194. package/lib/cjs/middlewares/index.js +9 -0
  195. package/lib/cjs/middlewares/index.js.map +1 -0
  196. package/lib/{services → cjs/services}/FakeRawDriver.d.ts +0 -0
  197. package/lib/cjs/services/FakeRawDriver.js +26 -0
  198. package/lib/cjs/services/FakeRawDriver.js.map +1 -0
  199. package/lib/{services → cjs/services}/Platform.d.ts +0 -0
  200. package/lib/cjs/services/Platform.js +107 -0
  201. package/lib/cjs/services/Platform.js.map +1 -0
  202. package/lib/{services → cjs/services}/PlatformApplication.d.ts +0 -0
  203. package/lib/cjs/services/PlatformApplication.js +34 -0
  204. package/lib/cjs/services/PlatformApplication.js.map +1 -0
  205. package/lib/{services → cjs/services}/PlatformHandler.d.ts +0 -0
  206. package/lib/cjs/services/PlatformHandler.js +235 -0
  207. package/lib/cjs/services/PlatformHandler.js.map +1 -0
  208. package/lib/{services → cjs/services}/PlatformMiddlewaresChain.d.ts +0 -0
  209. package/lib/cjs/services/PlatformMiddlewaresChain.js +34 -0
  210. package/lib/cjs/services/PlatformMiddlewaresChain.js.map +1 -0
  211. package/lib/{services → cjs/services}/PlatformRequest.d.ts +0 -0
  212. package/lib/cjs/services/PlatformRequest.js +138 -0
  213. package/lib/cjs/services/PlatformRequest.js.map +1 -0
  214. package/lib/{services → cjs/services}/PlatformResponse.d.ts +0 -0
  215. package/lib/cjs/services/PlatformResponse.js +271 -0
  216. package/lib/cjs/services/PlatformResponse.js.map +1 -0
  217. package/lib/{services → cjs/services}/PlatformRouter.d.ts +0 -0
  218. package/lib/cjs/services/PlatformRouter.js +126 -0
  219. package/lib/cjs/services/PlatformRouter.js.map +1 -0
  220. package/lib/{services → cjs/services}/PlatformTest.d.ts +5 -4
  221. package/lib/cjs/services/PlatformTest.js +167 -0
  222. package/lib/cjs/services/PlatformTest.js.map +1 -0
  223. package/lib/{services → cjs/services}/index.d.ts +0 -0
  224. package/lib/cjs/services/index.js +12 -0
  225. package/lib/cjs/services/index.js.map +1 -0
  226. package/lib/{utils → cjs/utils}/createContext.d.ts +0 -0
  227. package/lib/cjs/utils/createContext.js +38 -0
  228. package/lib/cjs/utils/createContext.js.map +1 -0
  229. package/lib/{utils → cjs/utils}/createHandlerMetadata.d.ts +0 -0
  230. package/lib/cjs/utils/createHandlerMetadata.js +49 -0
  231. package/lib/cjs/utils/createHandlerMetadata.js.map +1 -0
  232. package/lib/cjs/utils/createHttpServer.d.ts +4 -0
  233. package/lib/cjs/utils/createHttpServer.js +34 -0
  234. package/lib/cjs/utils/createHttpServer.js.map +1 -0
  235. package/lib/cjs/utils/createHttpsServer.d.ts +4 -0
  236. package/lib/cjs/utils/createHttpsServer.js +34 -0
  237. package/lib/cjs/utils/createHttpsServer.js.map +1 -0
  238. package/lib/{utils → cjs/utils}/createInjector.d.ts +0 -0
  239. package/lib/cjs/utils/createInjector.js +38 -0
  240. package/lib/cjs/utils/createInjector.js.map +1 -0
  241. package/lib/{utils → cjs/utils}/getConfiguration.d.ts +0 -0
  242. package/lib/cjs/utils/getConfiguration.js +42 -0
  243. package/lib/cjs/utils/getConfiguration.js.map +1 -0
  244. package/lib/{utils → cjs/utils}/getStaticsOptions.d.ts +0 -0
  245. package/lib/cjs/utils/getStaticsOptions.js +21 -0
  246. package/lib/cjs/utils/getStaticsOptions.js.map +1 -0
  247. package/lib/{utils → cjs/utils}/index.d.ts +0 -0
  248. package/lib/cjs/utils/index.js +12 -0
  249. package/lib/cjs/utils/index.js.map +1 -0
  250. package/lib/cjs/utils/listenServer.d.ts +7 -0
  251. package/lib/cjs/utils/listenServer.js +21 -0
  252. package/lib/cjs/utils/listenServer.js.map +1 -0
  253. package/lib/{utils → cjs/utils}/loadInjector.d.ts +0 -0
  254. package/lib/cjs/utils/loadInjector.js +14 -0
  255. package/lib/cjs/utils/loadInjector.js.map +1 -0
  256. package/lib/{utils → cjs/utils}/mapReturnedResponse.d.ts +0 -0
  257. package/lib/cjs/utils/mapReturnedResponse.js +15 -0
  258. package/lib/cjs/utils/mapReturnedResponse.js.map +1 -0
  259. package/lib/{utils → cjs/utils}/printRoutes.d.ts +0 -0
  260. package/lib/cjs/utils/printRoutes.js +36 -0
  261. package/lib/cjs/utils/printRoutes.js.map +1 -0
  262. package/lib/{utils → cjs/utils}/setResponseHeaders.d.ts +0 -0
  263. package/lib/cjs/utils/setResponseHeaders.js +35 -0
  264. package/lib/cjs/utils/setResponseHeaders.js.map +1 -0
  265. package/lib/{utils → cjs/utils}/useCtxHandler.d.ts +0 -0
  266. package/lib/cjs/utils/useCtxHandler.js +15 -0
  267. package/lib/cjs/utils/useCtxHandler.js.map +1 -0
  268. package/lib/esm/PlatformModule.js +7 -0
  269. package/lib/esm/PlatformModule.js.map +1 -0
  270. package/lib/esm/builder/PlatformBuilder.js +271 -0
  271. package/lib/esm/builder/PlatformBuilder.js.map +1 -0
  272. package/lib/esm/builder/PlatformControllerBuilder.js +79 -0
  273. package/lib/esm/builder/PlatformControllerBuilder.js.map +1 -0
  274. package/lib/esm/config/index.js +4 -0
  275. package/lib/esm/config/index.js.map +1 -0
  276. package/lib/esm/config/interfaces/ConverterSettings.js +2 -0
  277. package/lib/esm/config/interfaces/ConverterSettings.js.map +1 -0
  278. package/lib/esm/config/interfaces/EndpointDirectoriesSettings.js +2 -0
  279. package/lib/esm/config/interfaces/EndpointDirectoriesSettings.js.map +1 -0
  280. package/lib/esm/config/interfaces/PlatformLoggerSettings.js +2 -0
  281. package/lib/esm/config/interfaces/PlatformLoggerSettings.js.map +1 -0
  282. package/lib/esm/config/interfaces/PlatformMulterSettings.js +2 -0
  283. package/lib/esm/config/interfaces/PlatformMulterSettings.js.map +1 -0
  284. package/lib/esm/config/interfaces/PlatformStaticsSettings.js +2 -0
  285. package/lib/esm/config/interfaces/PlatformStaticsSettings.js.map +1 -0
  286. package/lib/esm/config/interfaces/index.js +5 -0
  287. package/lib/esm/config/interfaces/index.js.map +1 -0
  288. package/lib/esm/config/services/PlatformConfiguration.js +175 -0
  289. package/lib/esm/config/services/PlatformConfiguration.js.map +1 -0
  290. package/lib/esm/constants/routerOptions.js +2 -0
  291. package/lib/esm/constants/routerOptions.js.map +1 -0
  292. package/lib/esm/decorators/httpServer.js +28 -0
  293. package/lib/esm/decorators/httpServer.js.map +1 -0
  294. package/lib/esm/decorators/httpsServer.js +28 -0
  295. package/lib/esm/decorators/httpsServer.js.map +1 -0
  296. package/lib/esm/decorators/index.js +20 -0
  297. package/lib/esm/decorators/index.js.map +1 -0
  298. package/lib/esm/decorators/method/acceptMime.js +24 -0
  299. package/lib/esm/decorators/method/acceptMime.js.map +1 -0
  300. package/lib/esm/decorators/method/endpointFn.js +11 -0
  301. package/lib/esm/decorators/method/endpointFn.js.map +1 -0
  302. package/lib/esm/decorators/method/location.js +2 -0
  303. package/lib/esm/decorators/method/location.js.map +1 -0
  304. package/lib/esm/decorators/method/redirect.js +2 -0
  305. package/lib/esm/decorators/method/redirect.js.map +1 -0
  306. package/lib/esm/decorators/method/route.js +2 -0
  307. package/lib/esm/decorators/method/route.js.map +1 -0
  308. package/lib/esm/decorators/method/view.js +30 -0
  309. package/lib/esm/decorators/method/view.js.map +1 -0
  310. package/lib/esm/decorators/multer/index.js +4 -0
  311. package/lib/esm/decorators/multer/index.js.map +1 -0
  312. package/lib/esm/decorators/multer/multerFileSize.js +31 -0
  313. package/lib/esm/decorators/multer/multerFileSize.js.map +1 -0
  314. package/lib/esm/decorators/multer/multerOptions.js +48 -0
  315. package/lib/esm/decorators/multer/multerOptions.js.map +1 -0
  316. package/lib/esm/decorators/multer/multipartFile.js +74 -0
  317. package/lib/esm/decorators/multer/multipartFile.js.map +1 -0
  318. package/lib/esm/decorators/params/endpointInfo.js +17 -0
  319. package/lib/esm/decorators/params/endpointInfo.js.map +1 -0
  320. package/lib/esm/decorators/params/error.js +16 -0
  321. package/lib/esm/decorators/params/error.js.map +1 -0
  322. package/lib/esm/decorators/params/next.js +17 -0
  323. package/lib/esm/decorators/params/next.js.map +1 -0
  324. package/lib/esm/decorators/params/request.js +34 -0
  325. package/lib/esm/decorators/params/request.js.map +1 -0
  326. package/lib/esm/decorators/params/response.js +28 -0
  327. package/lib/esm/decorators/params/response.js.map +1 -0
  328. package/lib/esm/decorators/params/responseData.js +17 -0
  329. package/lib/esm/decorators/params/responseData.js.map +1 -0
  330. package/lib/esm/domain/AnyToPromiseWithCtx.js +31 -0
  331. package/lib/esm/domain/AnyToPromiseWithCtx.js.map +1 -0
  332. package/lib/esm/domain/ControllerProvider.js +47 -0
  333. package/lib/esm/domain/ControllerProvider.js.map +1 -0
  334. package/lib/esm/domain/EndpointMetadata.js +108 -0
  335. package/lib/esm/domain/EndpointMetadata.js.map +1 -0
  336. package/lib/esm/domain/HandlerMetadata.js +53 -0
  337. package/lib/esm/domain/HandlerMetadata.js.map +1 -0
  338. package/lib/esm/domain/PlatformContext.js +81 -0
  339. package/lib/esm/domain/PlatformContext.js.map +1 -0
  340. package/lib/esm/domain/PlatformRouteDetails.js +20 -0
  341. package/lib/esm/domain/PlatformRouteDetails.js.map +1 -0
  342. package/lib/esm/domain/PropertyMetadata.js +25 -0
  343. package/lib/esm/domain/PropertyMetadata.js.map +1 -0
  344. package/lib/esm/domain/index.js +8 -0
  345. package/lib/esm/domain/index.js.map +1 -0
  346. package/lib/esm/index.js +31 -0
  347. package/lib/esm/index.js.map +1 -0
  348. package/lib/esm/interfaces/AfterInit.js +2 -0
  349. package/lib/esm/interfaces/AfterInit.js.map +1 -0
  350. package/lib/esm/interfaces/AfterListen.js +2 -0
  351. package/lib/esm/interfaces/AfterListen.js.map +1 -0
  352. package/lib/esm/interfaces/AfterRoutesInit.js +2 -0
  353. package/lib/esm/interfaces/AfterRoutesInit.js.map +1 -0
  354. package/lib/esm/interfaces/BeforeInit.js +2 -0
  355. package/lib/esm/interfaces/BeforeInit.js.map +1 -0
  356. package/lib/esm/interfaces/BeforeListen.js +2 -0
  357. package/lib/esm/interfaces/BeforeListen.js.map +1 -0
  358. package/lib/esm/interfaces/BeforeRoutesInit.js +2 -0
  359. package/lib/esm/interfaces/BeforeRoutesInit.js.map +1 -0
  360. package/lib/esm/interfaces/HandlerType.js +14 -0
  361. package/lib/esm/interfaces/HandlerType.js.map +1 -0
  362. package/lib/esm/interfaces/IncomingEvent.js +2 -0
  363. package/lib/esm/interfaces/IncomingEvent.js.map +1 -0
  364. package/lib/esm/interfaces/OnReady.js +2 -0
  365. package/lib/esm/interfaces/OnReady.js.map +1 -0
  366. package/lib/esm/interfaces/OnRequest.js +2 -0
  367. package/lib/esm/interfaces/OnRequest.js.map +1 -0
  368. package/lib/esm/interfaces/OnResponse.js +2 -0
  369. package/lib/esm/interfaces/OnResponse.js.map +1 -0
  370. package/lib/esm/interfaces/OnRoutesInit.js +2 -0
  371. package/lib/esm/interfaces/OnRoutesInit.js.map +1 -0
  372. package/lib/esm/interfaces/PathType.js +2 -0
  373. package/lib/esm/interfaces/PathType.js.map +1 -0
  374. package/lib/esm/interfaces/PlatformAdapter.js +2 -0
  375. package/lib/esm/interfaces/PlatformAdapter.js.map +1 -0
  376. package/lib/esm/interfaces/PlatformRouteOptions.js +2 -0
  377. package/lib/esm/interfaces/PlatformRouteOptions.js.map +1 -0
  378. package/lib/esm/interfaces/ResponseErrorObject.js +2 -0
  379. package/lib/esm/interfaces/ResponseErrorObject.js.map +1 -0
  380. package/lib/esm/interfaces/Route.js +2 -0
  381. package/lib/esm/interfaces/Route.js.map +1 -0
  382. package/lib/esm/interfaces/index.js +18 -0
  383. package/lib/esm/interfaces/index.js.map +1 -0
  384. package/lib/esm/middlewares/AcceptMimesMiddleware.js +24 -0
  385. package/lib/esm/middlewares/AcceptMimesMiddleware.js.map +1 -0
  386. package/lib/esm/middlewares/GlobalAcceptMimesMiddleware.js +23 -0
  387. package/lib/esm/middlewares/GlobalAcceptMimesMiddleware.js.map +1 -0
  388. package/lib/esm/middlewares/PlatformAcceptMimesMiddleware.js +34 -0
  389. package/lib/esm/middlewares/PlatformAcceptMimesMiddleware.js.map +1 -0
  390. package/lib/esm/middlewares/PlatformMulterMiddleware.js +52 -0
  391. package/lib/esm/middlewares/PlatformMulterMiddleware.js.map +1 -0
  392. package/lib/esm/middlewares/__mock__/FakeCtrl.js +9 -0
  393. package/lib/esm/middlewares/__mock__/FakeCtrl.js.map +1 -0
  394. package/lib/esm/middlewares/bindEndpointMiddleware.js +9 -0
  395. package/lib/esm/middlewares/bindEndpointMiddleware.js.map +1 -0
  396. package/lib/esm/middlewares/index.js +6 -0
  397. package/lib/esm/middlewares/index.js.map +1 -0
  398. package/lib/esm/services/FakeRawDriver.js +22 -0
  399. package/lib/esm/services/FakeRawDriver.js.map +1 -0
  400. package/lib/esm/services/Platform.js +104 -0
  401. package/lib/esm/services/Platform.js.map +1 -0
  402. package/lib/esm/services/PlatformApplication.js +31 -0
  403. package/lib/esm/services/PlatformApplication.js.map +1 -0
  404. package/lib/esm/services/PlatformHandler.js +232 -0
  405. package/lib/esm/services/PlatformHandler.js.map +1 -0
  406. package/lib/esm/services/PlatformMiddlewaresChain.js +31 -0
  407. package/lib/esm/services/PlatformMiddlewaresChain.js.map +1 -0
  408. package/lib/esm/services/PlatformRequest.js +135 -0
  409. package/lib/esm/services/PlatformRequest.js.map +1 -0
  410. package/lib/esm/services/PlatformResponse.js +268 -0
  411. package/lib/esm/services/PlatformResponse.js.map +1 -0
  412. package/lib/esm/services/PlatformRouter.js +123 -0
  413. package/lib/esm/services/PlatformRouter.js.map +1 -0
  414. package/lib/esm/services/PlatformTest.js +163 -0
  415. package/lib/esm/services/PlatformTest.js.map +1 -0
  416. package/lib/esm/services/index.js +9 -0
  417. package/lib/esm/services/index.js.map +1 -0
  418. package/lib/esm/utils/createContext.js +34 -0
  419. package/lib/esm/utils/createContext.js.map +1 -0
  420. package/lib/esm/utils/createHandlerMetadata.js +45 -0
  421. package/lib/esm/utils/createHandlerMetadata.js.map +1 -0
  422. package/lib/esm/utils/createHttpServer.js +29 -0
  423. package/lib/esm/utils/createHttpServer.js.map +1 -0
  424. package/lib/esm/utils/createHttpsServer.js +29 -0
  425. package/lib/esm/utils/createHttpsServer.js.map +1 -0
  426. package/lib/esm/utils/createInjector.js +34 -0
  427. package/lib/esm/utils/createInjector.js.map +1 -0
  428. package/lib/esm/utils/getConfiguration.js +38 -0
  429. package/lib/esm/utils/getConfiguration.js.map +1 -0
  430. package/lib/esm/utils/getStaticsOptions.js +17 -0
  431. package/lib/esm/utils/getStaticsOptions.js.map +1 -0
  432. package/lib/esm/utils/index.js +9 -0
  433. package/lib/esm/utils/index.js.map +1 -0
  434. package/lib/esm/utils/listenServer.js +17 -0
  435. package/lib/esm/utils/listenServer.js.map +1 -0
  436. package/lib/esm/utils/loadInjector.js +10 -0
  437. package/lib/esm/utils/loadInjector.js.map +1 -0
  438. package/lib/esm/utils/mapReturnedResponse.js +11 -0
  439. package/lib/esm/utils/mapReturnedResponse.js.map +1 -0
  440. package/lib/esm/utils/printRoutes.js +32 -0
  441. package/lib/esm/utils/printRoutes.js.map +1 -0
  442. package/lib/esm/utils/setResponseHeaders.js +31 -0
  443. package/lib/esm/utils/setResponseHeaders.js.map +1 -0
  444. package/lib/esm/utils/useCtxHandler.js +11 -0
  445. package/lib/esm/utils/useCtxHandler.js.map +1 -0
  446. package/lib/types/PlatformModule.d.ts +6 -0
  447. package/lib/types/builder/PlatformBuilder.d.ts +104 -0
  448. package/lib/types/builder/PlatformControllerBuilder.d.ts +17 -0
  449. package/lib/types/config/index.d.ts +3 -0
  450. package/lib/types/config/interfaces/ConverterSettings.d.ts +6 -0
  451. package/lib/types/config/interfaces/EndpointDirectoriesSettings.d.ts +3 -0
  452. package/lib/types/config/interfaces/PlatformLoggerSettings.d.ts +44 -0
  453. package/lib/types/config/interfaces/PlatformMulterSettings.d.ts +138 -0
  454. package/lib/types/config/interfaces/PlatformStaticsSettings.d.ts +17 -0
  455. package/lib/types/config/interfaces/index.d.ts +97 -0
  456. package/lib/types/config/services/PlatformConfiguration.d.ts +81 -0
  457. package/lib/types/constants/routerOptions.d.ts +1 -0
  458. package/lib/types/decorators/httpServer.d.ts +28 -0
  459. package/lib/types/decorators/httpsServer.d.ts +28 -0
  460. package/lib/types/decorators/index.d.ts +16 -0
  461. package/lib/types/decorators/method/acceptMime.d.ts +19 -0
  462. package/lib/types/decorators/method/endpointFn.d.ts +9 -0
  463. package/lib/types/decorators/method/location.d.ts +1 -0
  464. package/lib/types/decorators/method/redirect.d.ts +1 -0
  465. package/lib/types/decorators/method/route.d.ts +1 -0
  466. package/lib/types/decorators/method/view.d.ts +25 -0
  467. package/lib/types/decorators/multer/index.d.ts +3 -0
  468. package/lib/types/decorators/multer/multerFileSize.d.ts +27 -0
  469. package/lib/types/decorators/multer/multerOptions.d.ts +41 -0
  470. package/lib/types/decorators/multer/multipartFile.d.ts +47 -0
  471. package/lib/types/decorators/params/endpointInfo.d.ts +13 -0
  472. package/lib/types/decorators/params/error.d.ts +7 -0
  473. package/lib/types/decorators/params/next.d.ts +22 -0
  474. package/lib/types/decorators/params/request.d.ts +46 -0
  475. package/lib/types/decorators/params/response.d.ts +40 -0
  476. package/lib/types/decorators/params/responseData.d.ts +9 -0
  477. package/lib/types/domain/AnyToPromiseWithCtx.d.ts +18 -0
  478. package/lib/types/domain/ControllerProvider.d.ts +24 -0
  479. package/lib/types/domain/EndpointMetadata.d.ts +76 -0
  480. package/lib/types/domain/HandlerMetadata.d.ts +32 -0
  481. package/lib/types/domain/PlatformContext.d.ts +65 -0
  482. package/lib/types/domain/PlatformRouteDetails.d.ts +23 -0
  483. package/lib/types/domain/PropertyMetadata.d.ts +17 -0
  484. package/lib/types/domain/index.d.ts +7 -0
  485. package/lib/types/index.d.ts +22 -0
  486. package/lib/types/interfaces/AfterInit.d.ts +3 -0
  487. package/lib/types/interfaces/AfterListen.d.ts +3 -0
  488. package/lib/types/interfaces/AfterRoutesInit.d.ts +3 -0
  489. package/lib/types/interfaces/BeforeInit.d.ts +3 -0
  490. package/lib/types/interfaces/BeforeListen.d.ts +3 -0
  491. package/lib/types/interfaces/BeforeRoutesInit.d.ts +3 -0
  492. package/lib/types/interfaces/HandlerType.d.ts +12 -0
  493. package/lib/types/interfaces/IncomingEvent.d.ts +6 -0
  494. package/lib/types/interfaces/OnReady.d.ts +3 -0
  495. package/lib/types/interfaces/OnRequest.d.ts +4 -0
  496. package/lib/types/interfaces/OnResponse.d.ts +4 -0
  497. package/lib/types/interfaces/OnRoutesInit.d.ts +3 -0
  498. package/lib/types/interfaces/PathType.d.ts +1 -0
  499. package/lib/types/interfaces/PlatformAdapter.d.ts +19 -0
  500. package/lib/types/interfaces/PlatformRouteOptions.d.ts +16 -0
  501. package/lib/types/interfaces/ResponseErrorObject.d.ts +8 -0
  502. package/lib/types/interfaces/Route.d.ts +10 -0
  503. package/lib/types/interfaces/index.d.ts +17 -0
  504. package/lib/types/middlewares/AcceptMimesMiddleware.d.ts +10 -0
  505. package/lib/types/middlewares/GlobalAcceptMimesMiddleware.d.ts +9 -0
  506. package/lib/types/middlewares/PlatformAcceptMimesMiddleware.d.ts +10 -0
  507. package/lib/types/middlewares/PlatformMulterMiddleware.d.ts +19 -0
  508. package/lib/types/middlewares/__mock__/FakeCtrl.d.ts +2 -0
  509. package/lib/types/middlewares/bindEndpointMiddleware.d.ts +5 -0
  510. package/lib/types/middlewares/index.d.ts +5 -0
  511. package/lib/types/services/FakeRawDriver.d.ts +15 -0
  512. package/lib/types/services/Platform.d.ts +37 -0
  513. package/lib/types/services/PlatformApplication.d.ts +21 -0
  514. package/lib/types/services/PlatformHandler.d.ts +80 -0
  515. package/lib/types/services/PlatformMiddlewaresChain.d.ts +6 -0
  516. package/lib/types/services/PlatformRequest.d.ts +112 -0
  517. package/lib/types/services/PlatformResponse.d.ts +161 -0
  518. package/lib/types/services/PlatformRouter.d.ts +48 -0
  519. package/lib/types/services/PlatformTest.d.ts +58 -0
  520. package/lib/types/services/index.d.ts +8 -0
  521. package/lib/types/utils/createContext.d.ts +9 -0
  522. package/lib/types/utils/createHandlerMetadata.d.ts +8 -0
  523. package/lib/types/utils/createHttpServer.d.ts +4 -0
  524. package/lib/types/utils/createHttpsServer.d.ts +4 -0
  525. package/lib/types/utils/createInjector.d.ts +7 -0
  526. package/lib/types/utils/getConfiguration.d.ts +2 -0
  527. package/lib/types/utils/getStaticsOptions.d.ts +5 -0
  528. package/lib/types/utils/index.d.ts +8 -0
  529. package/lib/types/utils/listenServer.d.ts +7 -0
  530. package/lib/types/utils/loadInjector.d.ts +6 -0
  531. package/lib/types/utils/mapReturnedResponse.d.ts +4 -0
  532. package/lib/types/utils/printRoutes.d.ts +2 -0
  533. package/lib/types/utils/setResponseHeaders.d.ts +5 -0
  534. package/lib/types/utils/useCtxHandler.d.ts +13 -0
  535. package/package.json +26 -23
  536. package/tsconfig.compile.esm.json +23 -0
  537. package/lib/index.js +0 -3634
  538. package/lib/index.js.map +0 -1
  539. package/lib/index.modern.js +0 -3448
  540. package/lib/index.modern.js.map +0 -1
  541. package/lib/utils/createHttpServer.d.ts +0 -3
  542. package/lib/utils/createHttpsServer.d.ts +0 -3
  543. package/lib/utils/listenServer.d.ts +0 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcceptMimesMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/AcceptMimesMiddleware.ts"],"names":[],"mappings":";;;;AAAA,2DAA8C;AAC9C,qEAAyE;AAEzE;;;;GAIG;AAEH,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IACzB,GAAG,CAAY,GAAY;QAChC,OAAO;IACT,CAAC;CACF,CAAA;AAHC;IAAY,wBAAA,IAAA,yBAAO,GAAE,CAAA;;;;gDAEpB;AAHU,qBAAqB;IADjC,IAAA,iCAAU,GAAE;GACA,qBAAqB,CAIjC;AAJY,sDAAqB","sourcesContent":["import {Context} from \"@tsed/platform-params\";\nimport {Middleware, MiddlewareMethods} from \"@tsed/platform-middlewares\";\n\n/**\n * @middleware\n * @deprecated Since 2020-11-30. Use PlatformAcceptMimesMiddleware.\n * @ignore\n */\n@Middleware()\nexport class AcceptMimesMiddleware implements MiddlewareMethods {\n public use(@Context() ctx: Context): void {\n return;\n }\n}\n"]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GlobalAcceptMimesMiddleware = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const platform_middlewares_1 = require("@tsed/platform-middlewares");
6
+ const platform_params_1 = require("@tsed/platform-params");
7
+ /**
8
+ * @deprecated Since 2020-11-30. Use PlatformAcceptMimesMiddleware.
9
+ * @ignore
10
+ */
11
+ let GlobalAcceptMimesMiddleware = class GlobalAcceptMimesMiddleware {
12
+ use(ctx) {
13
+ return;
14
+ }
15
+ };
16
+ (0, tslib_1.__decorate)([
17
+ (0, tslib_1.__param)(0, (0, platform_params_1.Context)()),
18
+ (0, tslib_1.__metadata)("design:type", Function),
19
+ (0, tslib_1.__metadata)("design:paramtypes", [Object]),
20
+ (0, tslib_1.__metadata)("design:returntype", void 0)
21
+ ], GlobalAcceptMimesMiddleware.prototype, "use", null);
22
+ GlobalAcceptMimesMiddleware = (0, tslib_1.__decorate)([
23
+ (0, platform_middlewares_1.Middleware)()
24
+ ], GlobalAcceptMimesMiddleware);
25
+ exports.GlobalAcceptMimesMiddleware = GlobalAcceptMimesMiddleware;
26
+ //# sourceMappingURL=GlobalAcceptMimesMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalAcceptMimesMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/GlobalAcceptMimesMiddleware.ts"],"names":[],"mappings":";;;;AAAA,qEAAyE;AACzE,2DAA8C;AAE9C;;;GAGG;AAEH,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IACtC,GAAG,CAAY,GAAY;QACzB,OAAO;IACT,CAAC;CACF,CAAA;AAHC;IAAK,wBAAA,IAAA,yBAAO,GAAE,CAAA;;;;sDAEb;AAHU,2BAA2B;IADvC,IAAA,iCAAU,GAAE;GACA,2BAA2B,CAIvC;AAJY,kEAA2B","sourcesContent":["import {Middleware, MiddlewareMethods} from \"@tsed/platform-middlewares\";\nimport {Context} from \"@tsed/platform-params\";\n\n/**\n * @deprecated Since 2020-11-30. Use PlatformAcceptMimesMiddleware.\n * @ignore\n */\n@Middleware()\nexport class GlobalAcceptMimesMiddleware implements MiddlewareMethods {\n use(@Context() ctx: Context) {\n return;\n }\n}\n"]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlatformAcceptMimesMiddleware = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@tsed/core");
6
+ const di_1 = require("@tsed/di");
7
+ const exceptions_1 = require("@tsed/exceptions");
8
+ const platform_middlewares_1 = require("@tsed/platform-middlewares");
9
+ const platform_params_1 = require("@tsed/platform-params");
10
+ /**
11
+ * @middleware
12
+ * @platform
13
+ */
14
+ let PlatformAcceptMimesMiddleware = class PlatformAcceptMimesMiddleware {
15
+ use(ctx) {
16
+ const { endpoint, request } = ctx;
17
+ const mimes = (0, core_1.uniq)(((endpoint === null || endpoint === void 0 ? void 0 : endpoint.get("acceptMimes")) || []).concat(this.acceptMimes));
18
+ if (mimes.length && !request.accepts(mimes)) {
19
+ throw new exceptions_1.NotAcceptable(mimes.join(", "));
20
+ }
21
+ }
22
+ };
23
+ (0, tslib_1.__decorate)([
24
+ (0, di_1.Constant)("acceptMimes", []),
25
+ (0, tslib_1.__metadata)("design:type", Array)
26
+ ], PlatformAcceptMimesMiddleware.prototype, "acceptMimes", void 0);
27
+ (0, tslib_1.__decorate)([
28
+ (0, tslib_1.__param)(0, (0, platform_params_1.Context)()),
29
+ (0, tslib_1.__metadata)("design:type", Function),
30
+ (0, tslib_1.__metadata)("design:paramtypes", [Object]),
31
+ (0, tslib_1.__metadata)("design:returntype", void 0)
32
+ ], PlatformAcceptMimesMiddleware.prototype, "use", null);
33
+ PlatformAcceptMimesMiddleware = (0, tslib_1.__decorate)([
34
+ (0, platform_middlewares_1.Middleware)()
35
+ ], PlatformAcceptMimesMiddleware);
36
+ exports.PlatformAcceptMimesMiddleware = PlatformAcceptMimesMiddleware;
37
+ //# sourceMappingURL=PlatformAcceptMimesMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformAcceptMimesMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/PlatformAcceptMimesMiddleware.ts"],"names":[],"mappings":";;;;AAAA,qCAAgC;AAChC,iCAAkC;AAClC,iDAA+C;AAC/C,qEAAyE;AACzE,2DAA8C;AAE9C;;;GAGG;AAEH,IAAa,6BAA6B,GAA1C,MAAa,6BAA6B;IAIjC,GAAG,CAAY,GAAY;QAChC,MAAM,EAAC,QAAQ,EAAE,OAAO,EAAC,GAAG,GAAG,CAAC;QAChC,MAAM,KAAK,GAAG,IAAA,WAAI,EAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAAC,aAAa,CAAC,KAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAElF,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC3C,MAAM,IAAI,0BAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3C;IACH,CAAC;CACF,CAAA;AAVC;IADC,IAAA,aAAQ,EAAC,aAAa,EAAE,EAAE,CAAC;;kEACN;AAEtB;IAAY,wBAAA,IAAA,yBAAO,GAAE,CAAA;;;;wDAOpB;AAXU,6BAA6B;IADzC,IAAA,iCAAU,GAAE;GACA,6BAA6B,CAYzC;AAZY,sEAA6B","sourcesContent":["import {uniq} from \"@tsed/core\";\nimport {Constant} from \"@tsed/di\";\nimport {NotAcceptable} from \"@tsed/exceptions\";\nimport {Middleware, MiddlewareMethods} from \"@tsed/platform-middlewares\";\nimport {Context} from \"@tsed/platform-params\";\n\n/**\n * @middleware\n * @platform\n */\n@Middleware()\nexport class PlatformAcceptMimesMiddleware implements MiddlewareMethods {\n @Constant(\"acceptMimes\", [])\n acceptMimes: string[];\n\n public use(@Context() ctx: Context): void {\n const {endpoint, request} = ctx;\n const mimes = uniq((endpoint?.get(\"acceptMimes\") || []).concat(this.acceptMimes));\n\n if (mimes.length && !request.accepts(mimes)) {\n throw new NotAcceptable(mimes.join(\", \"));\n }\n }\n}\n"]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var PlatformMulterMiddleware_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PlatformMulterMiddleware = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const di_1 = require("@tsed/di");
7
+ const exceptions_1 = require("@tsed/exceptions");
8
+ const platform_middlewares_1 = require("@tsed/platform-middlewares");
9
+ const platform_params_1 = require("@tsed/platform-params");
10
+ const PlatformApplication_1 = require("../services/PlatformApplication");
11
+ /**
12
+ * @middleware
13
+ */
14
+ let PlatformMulterMiddleware = PlatformMulterMiddleware_1 = class PlatformMulterMiddleware {
15
+ async use(ctx) {
16
+ try {
17
+ const { fields, options = {} } = ctx.endpoint.get(PlatformMulterMiddleware_1);
18
+ const settings = {
19
+ ...this.settings,
20
+ ...options
21
+ };
22
+ /* istanbul ignore next */
23
+ if (settings.storage) {
24
+ delete settings.dest;
25
+ }
26
+ const middleware = this.app.multer(settings).fields(this.getFields({ fields }));
27
+ return await middleware(ctx.getRequest(), ctx.getResponse());
28
+ }
29
+ catch (er) {
30
+ throw er.code ? new exceptions_1.Exception(er.code, `${er.message} ${er.field || ""}`.trim()) : er;
31
+ }
32
+ }
33
+ getFields(conf) {
34
+ return conf.fields.map(({ name, maxCount }) => ({ name, maxCount }));
35
+ }
36
+ };
37
+ (0, tslib_1.__decorate)([
38
+ (0, di_1.Constant)("multer", {}),
39
+ (0, tslib_1.__metadata)("design:type", Object)
40
+ ], PlatformMulterMiddleware.prototype, "settings", void 0);
41
+ (0, tslib_1.__decorate)([
42
+ (0, di_1.Inject)(),
43
+ (0, tslib_1.__metadata)("design:type", PlatformApplication_1.PlatformApplication)
44
+ ], PlatformMulterMiddleware.prototype, "app", void 0);
45
+ (0, tslib_1.__decorate)([
46
+ (0, tslib_1.__param)(0, (0, platform_params_1.Context)()),
47
+ (0, tslib_1.__metadata)("design:type", Function),
48
+ (0, tslib_1.__metadata)("design:paramtypes", [Object]),
49
+ (0, tslib_1.__metadata)("design:returntype", Promise)
50
+ ], PlatformMulterMiddleware.prototype, "use", null);
51
+ PlatformMulterMiddleware = PlatformMulterMiddleware_1 = (0, tslib_1.__decorate)([
52
+ (0, platform_middlewares_1.Middleware)()
53
+ ], PlatformMulterMiddleware);
54
+ exports.PlatformMulterMiddleware = PlatformMulterMiddleware;
55
+ //# sourceMappingURL=PlatformMulterMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformMulterMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/PlatformMulterMiddleware.ts"],"names":[],"mappings":";;;;;AAAA,iCAA0C;AAC1C,iDAA2C;AAC3C,qEAAyE;AACzE,2DAA8C;AAE9C,yEAAoE;AAMpE;;GAEG;AAEH,IAAa,wBAAwB,gCAArC,MAAa,wBAAwB;IAOnC,KAAK,CAAC,GAAG,CAAY,GAAY;QAC/B,IAAI;YACF,MAAM,EAAC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAAwB,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAA2B;gBACvC,GAAG,IAAI,CAAC,QAAQ;gBAChB,GAAG,OAAO;aACX,CAAC;YAEF,0BAA0B;YAC1B,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACpB,OAAO,QAAQ,CAAC,IAAI,CAAC;aACtB;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC;YAE9E,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;SAC9D;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,sBAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACvF;IACH,CAAC;IAES,SAAS,CAAC,IAAwB;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;IACnE,CAAC;CACF,CAAA;AA7BC;IADC,IAAA,aAAQ,EAAC,QAAQ,EAAE,EAAE,CAAC;;0DACU;AAGjC;IADC,IAAA,WAAM,GAAE;2CACJ,yCAAmB;qDAAC;AAEzB;IAAW,wBAAA,IAAA,yBAAO,GAAE,CAAA;;;;mDAmBnB;AA1BU,wBAAwB;IADpC,IAAA,iCAAU,GAAE;GACA,wBAAwB,CA+BpC;AA/BY,4DAAwB","sourcesContent":["import {Constant, Inject} from \"@tsed/di\";\nimport {Exception} from \"@tsed/exceptions\";\nimport {Middleware, MiddlewareMethods} from \"@tsed/platform-middlewares\";\nimport {Context} from \"@tsed/platform-params\";\nimport {PlatformMulterField, PlatformMulterSettings} from \"../config\";\nimport {PlatformApplication} from \"../services/PlatformApplication\";\n\nexport interface MulterInputOptions {\n fields: PlatformMulterField[];\n}\n\n/**\n * @middleware\n */\n@Middleware()\nexport class PlatformMulterMiddleware implements MiddlewareMethods {\n @Constant(\"multer\", {})\n settings: PlatformMulterSettings;\n\n @Inject()\n app: PlatformApplication;\n\n async use(@Context() ctx: Context) {\n try {\n const {fields, options = {}} = ctx.endpoint.get(PlatformMulterMiddleware);\n const settings: PlatformMulterSettings = {\n ...this.settings,\n ...options\n };\n\n /* istanbul ignore next */\n if (settings.storage) {\n delete settings.dest;\n }\n\n const middleware = this.app.multer(settings).fields(this.getFields({fields}));\n\n return await middleware(ctx.getRequest(), ctx.getResponse());\n } catch (er) {\n throw er.code ? new Exception(er.code, `${er.message} ${er.field || \"\"}`.trim()) : er;\n }\n }\n\n protected getFields(conf: MulterInputOptions) {\n return conf.fields.map(({name, maxCount}) => ({name, maxCount}));\n }\n}\n"]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FakeCtrl = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@tsed/di");
6
+ let FakeCtrl = class FakeCtrl {
7
+ };
8
+ FakeCtrl = (0, tslib_1.__decorate)([
9
+ (0, di_1.Controller)("/")
10
+ ], FakeCtrl);
11
+ exports.FakeCtrl = FakeCtrl;
12
+ //# sourceMappingURL=FakeCtrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeCtrl.js","sourceRoot":"","sources":["../../../../src/middlewares/__mock__/FakeCtrl.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AAGpC,IAAa,QAAQ,GAArB,MAAa,QAAQ;CAAG,CAAA;AAAX,QAAQ;IADpB,IAAA,eAAU,EAAC,GAAG,CAAC;GACH,QAAQ,CAAG;AAAX,4BAAQ","sourcesContent":["import {Controller} from \"@tsed/di\";\n\n@Controller(\"/\")\nexport class FakeCtrl {}\n"]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bindEndpointMiddleware = void 0;
4
+ /**
5
+ * @ignore
6
+ */
7
+ function bindEndpointMiddleware(endpoint) {
8
+ return (ctx) => {
9
+ ctx.endpoint = endpoint;
10
+ };
11
+ }
12
+ exports.bindEndpointMiddleware = bindEndpointMiddleware;
13
+ //# sourceMappingURL=bindEndpointMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindEndpointMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/bindEndpointMiddleware.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,SAAgB,sBAAsB,CAAC,QAA0B;IAC/D,OAAO,CAAC,GAAoB,EAAE,EAAE;QAC9B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC;AAJD,wDAIC","sourcesContent":["import type {EndpointMetadata, PlatformContext} from \"../domain\";\n\n/**\n * @ignore\n */\nexport function bindEndpointMiddleware(endpoint: EndpointMetadata) {\n return (ctx: PlatformContext) => {\n ctx.endpoint = endpoint;\n };\n}\n"]}
File without changes
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./bindEndpointMiddleware"), exports);
5
+ (0, tslib_1.__exportStar)(require("./PlatformMulterMiddleware"), exports);
6
+ (0, tslib_1.__exportStar)(require("./GlobalAcceptMimesMiddleware"), exports);
7
+ (0, tslib_1.__exportStar)(require("./PlatformAcceptMimesMiddleware"), exports);
8
+ (0, tslib_1.__exportStar)(require("./AcceptMimesMiddleware"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middlewares/index.ts"],"names":[],"mappings":";;;AAAA,wEAAyC;AACzC,0EAA2C;AAC3C,6EAA8C;AAC9C,+EAAgD;AAChD,uEAAwC","sourcesContent":["export * from \"./bindEndpointMiddleware\";\nexport * from \"./PlatformMulterMiddleware\";\nexport * from \"./GlobalAcceptMimesMiddleware\";\nexport * from \"./PlatformAcceptMimesMiddleware\";\nexport * from \"./AcceptMimesMiddleware\";\n"]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFakeRawDriver = void 0;
4
+ /**
5
+ * @ignore
6
+ */
7
+ const createFakeRawDriver = () => {
8
+ // istanbul ignore next
9
+ function FakeRawDriver() { }
10
+ // istanbul ignore next
11
+ function use() {
12
+ return this;
13
+ }
14
+ FakeRawDriver.use = use;
15
+ FakeRawDriver.all = use;
16
+ FakeRawDriver.get = use;
17
+ FakeRawDriver.patch = use;
18
+ FakeRawDriver.post = use;
19
+ FakeRawDriver.put = use;
20
+ FakeRawDriver.head = use;
21
+ FakeRawDriver.delete = use;
22
+ FakeRawDriver.options = use;
23
+ return FakeRawDriver;
24
+ };
25
+ exports.createFakeRawDriver = createFakeRawDriver;
26
+ //# sourceMappingURL=FakeRawDriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeRawDriver.js","sourceRoot":"","sources":["../../../src/services/FakeRawDriver.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,uBAAuB;IACvB,SAAS,aAAa,KAAI,CAAC;IAE3B,uBAAuB;IACvB,SAAS,GAAG;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC;IAC1B,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;IACzB,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;IACzB,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC;IAC3B,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;IAE5B,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AApBW,QAAA,mBAAmB,uBAoB9B","sourcesContent":["/**\n * @ignore\n */\nexport const createFakeRawDriver = () => {\n // istanbul ignore next\n function FakeRawDriver() {}\n\n // istanbul ignore next\n function use() {\n return this;\n }\n\n FakeRawDriver.use = use;\n FakeRawDriver.all = use;\n FakeRawDriver.get = use;\n FakeRawDriver.patch = use;\n FakeRawDriver.post = use;\n FakeRawDriver.put = use;\n FakeRawDriver.head = use;\n FakeRawDriver.delete = use;\n FakeRawDriver.options = use;\n\n return FakeRawDriver;\n};\n"]}
File without changes
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Platform = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@tsed/di");
6
+ const schema_1 = require("@tsed/schema");
7
+ const PlatformControllerBuilder_1 = require("../builder/PlatformControllerBuilder");
8
+ const domain_1 = require("../domain");
9
+ const PlatformApplication_1 = require("./PlatformApplication");
10
+ const PlatformMiddlewaresChain_1 = require("./PlatformMiddlewaresChain");
11
+ /**
12
+ * `Platform` is used to provide all routes collected by annotation `@Controller`.
13
+ *
14
+ * @platform
15
+ */
16
+ let Platform = class Platform {
17
+ constructor(injector, platformApplication) {
18
+ this.injector = injector;
19
+ this.platformApplication = platformApplication;
20
+ this._routes = [];
21
+ this._controllers = [];
22
+ this.createRouters();
23
+ }
24
+ get app() {
25
+ return this.platformApplication;
26
+ }
27
+ get routes() {
28
+ return this._routes;
29
+ }
30
+ addRoutes(routes) {
31
+ routes.forEach((routeSettings) => {
32
+ this.addRoute(routeSettings.route, routeSettings.token);
33
+ });
34
+ }
35
+ addRoute(basePath, token) {
36
+ const { injector } = this;
37
+ const provider = injector.getProvider(token);
38
+ if (!provider || provider.hasParent()) {
39
+ return;
40
+ }
41
+ const ctrlPath = (0, schema_1.concatPath)(basePath, schema_1.JsonEntityStore.from(provider.token).path);
42
+ this._controllers.push({
43
+ route: ctrlPath,
44
+ provider
45
+ });
46
+ this.app.use(ctrlPath, ...[].concat((0, PlatformControllerBuilder_1.getRouter)(injector, provider).callback()));
47
+ this._routes = (0, schema_1.getOperationsRoutes)(provider.token, {
48
+ withChildren: true,
49
+ basePath
50
+ }).reduce((routes, operationRoute) => {
51
+ if (injector.hasProvider(token)) {
52
+ const provider = injector.getProvider(operationRoute.token);
53
+ const route = new domain_1.PlatformRouteDetails({
54
+ ...operationRoute,
55
+ provider
56
+ });
57
+ return routes.concat(route);
58
+ }
59
+ return routes;
60
+ }, this._routes);
61
+ return this;
62
+ }
63
+ /**
64
+ * Get all routes built by TsExpressDecorators and mounted on Express application.
65
+ * @returns {PlatformRouteDetails[]}
66
+ */
67
+ getRoutes() {
68
+ return this._routes;
69
+ }
70
+ getMountedControllers() {
71
+ return this._controllers;
72
+ }
73
+ $onInit() {
74
+ this.buildControllers();
75
+ }
76
+ /**
77
+ * Create routers from the collected controllers.
78
+ * @private
79
+ */
80
+ createRouters() {
81
+ const { injector } = this;
82
+ injector.getProviders(di_1.ProviderType.CONTROLLER).map((provider) => {
83
+ (0, PlatformControllerBuilder_1.createRouter)(injector, provider);
84
+ });
85
+ }
86
+ /**
87
+ * Create controllers from DI
88
+ * @private
89
+ */
90
+ buildControllers() {
91
+ const { injector } = this;
92
+ injector.getProviders(di_1.ProviderType.CONTROLLER).map((provider) => {
93
+ if (!provider.hasParent()) {
94
+ return (0, PlatformControllerBuilder_1.buildRouter)(injector, provider);
95
+ }
96
+ });
97
+ }
98
+ };
99
+ Platform = (0, tslib_1.__decorate)([
100
+ (0, di_1.Injectable)({
101
+ scope: di_1.ProviderScope.SINGLETON,
102
+ imports: [PlatformMiddlewaresChain_1.PlatformMiddlewaresChain]
103
+ }),
104
+ (0, tslib_1.__metadata)("design:paramtypes", [di_1.InjectorService, PlatformApplication_1.PlatformApplication])
105
+ ], Platform);
106
+ exports.Platform = Platform;
107
+ //# sourceMappingURL=Platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../../src/services/Platform.ts"],"names":[],"mappings":";;;;AAAA,iCAAiG;AACjG,yCAA8E;AAC9E,oFAA0F;AAC1F,sCAAqF;AAErF,+DAA0D;AAC1D,yEAAoE;AAEpE;;;;GAIG;AAKH,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAInB,YAAqB,QAAyB,EAAW,mBAAwC;QAA5E,aAAQ,GAAR,QAAQ,CAAiB;QAAW,wBAAmB,GAAnB,mBAAmB,CAAqB;QAHzF,YAAO,GAA2B,EAAE,CAAC;QACrC,iBAAY,GAAsB,EAAE,CAAC;QAG3C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,SAAS,CAAC,MAAe;QAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,QAAQ,CAAC,QAAgB,EAAE,KAAoB;QACpD,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAuB,CAAC;QAEnE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAE;YACrC,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,IAAA,mBAAU,EAAC,QAAQ,EAAE,wBAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAEjF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,KAAK,EAAE,QAAQ;YACf,QAAQ;SACT,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAA,qCAAS,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE/E,IAAI,CAAC,OAAO,GAAG,IAAA,4BAAmB,EAAmB,QAAQ,CAAC,KAAK,EAAE;YACnE,YAAY,EAAE,IAAI;YAClB,QAAQ;SACT,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE;YACnC,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;gBAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAuB,CAAC;gBAClF,MAAM,KAAK,GAAG,IAAI,6BAAoB,CAAC;oBACrC,GAAG,cAAc;oBACjB,QAAQ;iBACT,CAAC,CAAC;gBAEH,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC7B;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,SAAS;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,qBAAqB;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAES,OAAO;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACK,aAAa;QACnB,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;QAExB,QAAQ,CAAC,YAAY,CAAC,iBAAY,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,QAA4B,EAAE,EAAE;YAClF,IAAA,wCAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACtB,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;QAExB,QAAQ,CAAC,YAAY,CAAC,iBAAY,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,QAA4B,EAAE,EAAE;YAClF,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;gBACzB,OAAO,IAAA,uCAAW,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACxC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AApGY,QAAQ;IAJpB,IAAA,eAAU,EAAC;QACV,KAAK,EAAE,kBAAa,CAAC,SAAS;QAC9B,OAAO,EAAE,CAAC,mDAAwB,CAAC;KACpC,CAAC;kDAK+B,oBAAe,EAAgC,yCAAmB;GAJtF,QAAQ,CAoGpB;AApGY,4BAAQ","sourcesContent":["import {Injectable, InjectorService, ProviderScope, ProviderType, TokenProvider} from \"@tsed/di\";\nimport {concatPath, getOperationsRoutes, JsonEntityStore} from \"@tsed/schema\";\nimport {buildRouter, createRouter, getRouter} from \"../builder/PlatformControllerBuilder\";\nimport {ControllerProvider, EndpointMetadata, PlatformRouteDetails} from \"../domain\";\nimport {Route, RouteController} from \"../interfaces/Route\";\nimport {PlatformApplication} from \"./PlatformApplication\";\nimport {PlatformMiddlewaresChain} from \"./PlatformMiddlewaresChain\";\n\n/**\n * `Platform` is used to provide all routes collected by annotation `@Controller`.\n *\n * @platform\n */\n@Injectable({\n scope: ProviderScope.SINGLETON,\n imports: [PlatformMiddlewaresChain]\n})\nexport class Platform {\n private _routes: PlatformRouteDetails[] = [];\n private _controllers: RouteController[] = [];\n\n constructor(readonly injector: InjectorService, readonly platformApplication: PlatformApplication) {\n this.createRouters();\n }\n\n get app() {\n return this.platformApplication;\n }\n\n get routes(): PlatformRouteDetails[] {\n return this._routes;\n }\n\n public addRoutes(routes: Route[]) {\n routes.forEach((routeSettings) => {\n this.addRoute(routeSettings.route, routeSettings.token);\n });\n }\n\n public addRoute(basePath: string, token: TokenProvider) {\n const {injector} = this;\n const provider = injector.getProvider(token) as ControllerProvider;\n\n if (!provider || provider.hasParent()) {\n return;\n }\n\n const ctrlPath = concatPath(basePath, JsonEntityStore.from(provider.token).path);\n\n this._controllers.push({\n route: ctrlPath,\n provider\n });\n\n this.app.use(ctrlPath, ...[].concat(getRouter(injector, provider).callback()));\n\n this._routes = getOperationsRoutes<EndpointMetadata>(provider.token, {\n withChildren: true,\n basePath\n }).reduce((routes, operationRoute) => {\n if (injector.hasProvider(token)) {\n const provider = injector.getProvider(operationRoute.token) as ControllerProvider;\n const route = new PlatformRouteDetails({\n ...operationRoute,\n provider\n });\n\n return routes.concat(route);\n }\n\n return routes;\n }, this._routes);\n\n return this;\n }\n\n /**\n * Get all routes built by TsExpressDecorators and mounted on Express application.\n * @returns {PlatformRouteDetails[]}\n */\n public getRoutes(): PlatformRouteDetails[] {\n return this._routes;\n }\n\n public getMountedControllers(): RouteController[] {\n return this._controllers;\n }\n\n protected $onInit() {\n this.buildControllers();\n }\n\n /**\n * Create routers from the collected controllers.\n * @private\n */\n private createRouters() {\n const {injector} = this;\n\n injector.getProviders(ProviderType.CONTROLLER).map((provider: ControllerProvider) => {\n createRouter(injector, provider);\n });\n }\n\n /**\n * Create controllers from DI\n * @private\n */\n private buildControllers() {\n const {injector} = this;\n\n injector.getProviders(ProviderType.CONTROLLER).map((provider: ControllerProvider) => {\n if (!provider.hasParent()) {\n return buildRouter(injector, provider);\n }\n });\n }\n}\n"]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var PlatformApplication_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PlatformApplication = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const di_1 = require("@tsed/di");
7
+ const FakeRawDriver_1 = require("./FakeRawDriver");
8
+ const PlatformHandler_1 = require("./PlatformHandler");
9
+ const PlatformRouter_1 = require("./PlatformRouter");
10
+ /**
11
+ * `PlatformApplication` is used to provide all routes collected by annotation `@Controller`.
12
+ *
13
+ * @platform
14
+ */
15
+ let PlatformApplication = PlatformApplication_1 = class PlatformApplication extends PlatformRouter_1.PlatformRouter {
16
+ constructor(platformHandler) {
17
+ super(platformHandler);
18
+ this.rawApp = this.raw = PlatformApplication_1.createRawApp();
19
+ }
20
+ static createRawApp() {
21
+ return (0, FakeRawDriver_1.createFakeRawDriver)();
22
+ }
23
+ getApp() {
24
+ return this.raw;
25
+ }
26
+ };
27
+ PlatformApplication = PlatformApplication_1 = (0, tslib_1.__decorate)([
28
+ (0, di_1.Injectable)({
29
+ scope: di_1.ProviderScope.SINGLETON
30
+ }),
31
+ (0, tslib_1.__metadata)("design:paramtypes", [PlatformHandler_1.PlatformHandler])
32
+ ], PlatformApplication);
33
+ exports.PlatformApplication = PlatformApplication;
34
+ //# sourceMappingURL=PlatformApplication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformApplication.js","sourceRoot":"","sources":["../../../src/services/PlatformApplication.ts"],"names":[],"mappings":";;;;;AAAA,iCAAmD;AACnD,mDAAoD;AACpD,uDAAkD;AAClD,qDAAgD;AAShD;;;;GAIG;AAIH,IAAa,mBAAmB,2BAAhC,MAAa,mBAAkE,SAAQ,+BAAsB;IAK3G,YAAY,eAAgC;QAC1C,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,qBAAmB,CAAC,YAAY,EAAS,CAAC;IACrE,CAAC;IAES,MAAM,CAAC,YAAY;QAC3B,OAAO,IAAA,mCAAmB,GAAE,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF,CAAA;AAjBY,mBAAmB;IAH/B,IAAA,eAAU,EAAC;QACV,KAAK,EAAE,kBAAa,CAAC,SAAS;KAC/B,CAAC;kDAM6B,iCAAe;GALjC,mBAAmB,CAiB/B;AAjBY,kDAAmB","sourcesContent":["import {Injectable, ProviderScope} from \"@tsed/di\";\nimport {createFakeRawDriver} from \"./FakeRawDriver\";\nimport {PlatformHandler} from \"./PlatformHandler\";\nimport {PlatformRouter} from \"./PlatformRouter\";\n\ndeclare global {\n namespace TsED {\n // @ts-ignore\n export interface Application {}\n }\n}\n\n/**\n * `PlatformApplication` is used to provide all routes collected by annotation `@Controller`.\n *\n * @platform\n */\n@Injectable({\n scope: ProviderScope.SINGLETON\n})\nexport class PlatformApplication<App = TsED.Application, Router = TsED.Router> extends PlatformRouter<Router> {\n raw: App;\n rawApp: App;\n declare rawRouter: Router;\n\n constructor(platformHandler: PlatformHandler) {\n super(platformHandler);\n this.rawApp = this.raw = PlatformApplication.createRawApp() as any;\n }\n\n protected static createRawApp(): any {\n return createFakeRawDriver();\n }\n\n getApp(): App {\n return this.raw;\n }\n}\n"]}
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlatformHandler = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@tsed/core");
6
+ const di_1 = require("@tsed/di");
7
+ const logger_1 = require("@tsed/logger");
8
+ const platform_params_1 = require("@tsed/platform-params");
9
+ const platform_response_filter_1 = require("@tsed/platform-response-filter");
10
+ const AnyToPromiseWithCtx_1 = require("../domain/AnyToPromiseWithCtx");
11
+ const HandlerMetadata_1 = require("../domain/HandlerMetadata");
12
+ const HandlerType_1 = require("../interfaces/HandlerType");
13
+ const createHandlerMetadata_1 = require("../utils/createHandlerMetadata");
14
+ const setResponseHeaders_1 = require("../utils/setResponseHeaders");
15
+ /**
16
+ * Platform Handler abstraction layer. Wrap original class method to a pure platform handler (Express, Koa, etc...).
17
+ * @platform
18
+ */
19
+ let PlatformHandler = class PlatformHandler {
20
+ constructor(injector, params) {
21
+ this.injector = injector;
22
+ this.params = params;
23
+ }
24
+ /**
25
+ * Create a native middleware based on the given metadata and return an instance of AnyToPromiseWithCtx
26
+ * @param input
27
+ * @param options
28
+ */
29
+ createHandler(input, options = {}) {
30
+ return this.createRawHandler((0, createHandlerMetadata_1.createHandlerMetadata)(this.injector, input, options));
31
+ }
32
+ /**
33
+ * Create injectable handler from the given provider
34
+ * @param provider
35
+ * @param propertyKey
36
+ */
37
+ createCustomHandler(provider, propertyKey) {
38
+ const handler = this.compileHandler(new HandlerMetadata_1.HandlerMetadata({
39
+ token: provider.provide,
40
+ target: provider.useClass,
41
+ type: HandlerType_1.HandlerType.CUSTOM,
42
+ scope: provider.scope,
43
+ propertyKey
44
+ }));
45
+ return async ($ctx, next) => handler({
46
+ $ctx,
47
+ next
48
+ });
49
+ }
50
+ /**
51
+ * Send the response to the consumer.
52
+ * @param data
53
+ * @param ctx
54
+ * @protected
55
+ */
56
+ async flush(data, ctx) {
57
+ const { response } = ctx;
58
+ if (!response.isDone()) {
59
+ data = await this.responseFilter.serialize(data, ctx);
60
+ data = await this.responseFilter.transform(data, ctx);
61
+ response.body(data);
62
+ }
63
+ }
64
+ compileHandler(metadata) {
65
+ if (metadata.type === HandlerType_1.HandlerType.CTX_FN) {
66
+ return async (scope) => {
67
+ // @ts-ignore
68
+ return this.onCtxRequest({
69
+ ...scope,
70
+ handler: () => metadata.handler(scope.$ctx),
71
+ metadata
72
+ });
73
+ };
74
+ }
75
+ const promise = this.params.compileHandler({
76
+ token: metadata.token,
77
+ propertyKey: metadata.propertyKey,
78
+ getCustomArgs: metadata.injectable ? undefined : this.getDefaultArgs(metadata)
79
+ });
80
+ return async (scope) => {
81
+ const handler = await promise;
82
+ // @ts-ignore
83
+ return this.onRequest({
84
+ ...scope,
85
+ handler,
86
+ metadata
87
+ });
88
+ };
89
+ }
90
+ async onCtxRequest(requestOptions) {
91
+ await requestOptions.handler(requestOptions);
92
+ return this.next(requestOptions);
93
+ }
94
+ /**
95
+ * Call handler when a request his handle
96
+ * @param requestOptions
97
+ */
98
+ async onRequest(requestOptions) {
99
+ const { $ctx, metadata, err, handler } = requestOptions;
100
+ // istanbul ignore next
101
+ if (!$ctx) {
102
+ logger_1.$log.error({
103
+ name: "HEADERS_SENT",
104
+ message: `An endpoint is called but the response is already send to the client. The call comes from the handler: ${metadata.toString()}`
105
+ });
106
+ return;
107
+ }
108
+ const resolver = new AnyToPromiseWithCtx_1.AnyToPromiseWithCtx({ $ctx, err });
109
+ return this.injector.runInContext($ctx, async () => {
110
+ try {
111
+ const { state, data, status, headers } = await resolver.call(handler);
112
+ if (state === core_1.AnyToPromiseStatus.RESOLVED) {
113
+ if (status) {
114
+ $ctx.response.status(status);
115
+ }
116
+ if (headers) {
117
+ $ctx.response.setHeaders(headers);
118
+ }
119
+ if (data !== undefined) {
120
+ $ctx.data = data;
121
+ }
122
+ // Can be canceled by the handler itself
123
+ return await this.onSuccess($ctx.data, requestOptions);
124
+ }
125
+ }
126
+ catch (er) {
127
+ return this.onError(er, requestOptions);
128
+ }
129
+ });
130
+ }
131
+ async onError(er, requestOptions) {
132
+ var _a;
133
+ const { next, $ctx, metadata } = requestOptions;
134
+ $ctx.data = er;
135
+ if (!next) {
136
+ throw er;
137
+ }
138
+ // istanbul ignore next
139
+ if (!((_a = $ctx === null || $ctx === void 0 ? void 0 : $ctx.response) === null || _a === void 0 ? void 0 : _a.isHeadersSent) || $ctx.response.isHeadersSent()) {
140
+ logger_1.$log.warn({
141
+ name: "HEADERS_SENT",
142
+ message: `An error was caught after the headers were sent to the client. The error comes from the handler: ${metadata.toString()}`,
143
+ stack: er.stack,
144
+ origin: er,
145
+ request_id: $ctx.id
146
+ });
147
+ return;
148
+ }
149
+ return next && next(er);
150
+ }
151
+ /**
152
+ * Manage success scenario
153
+ * @param data
154
+ * @param requestOptions
155
+ * @protected
156
+ */
157
+ async onSuccess(data, requestOptions) {
158
+ const { metadata, $ctx, next } = requestOptions;
159
+ // TODO see this control is necessary
160
+ // istanbul ignore next
161
+ if ($ctx.request.isAborted() || $ctx.response.isDone()) {
162
+ return;
163
+ }
164
+ // set headers each times that an endpoint is called
165
+ if (metadata.type === HandlerType_1.HandlerType.ENDPOINT) {
166
+ this.setHeaders($ctx);
167
+ }
168
+ // call returned middleware
169
+ if ((0, core_1.isFunction)(data) && !(0, core_1.isStream)(data)) {
170
+ return this.callReturnedMiddleware(data, $ctx, next);
171
+ }
172
+ if (metadata.isFinal()) {
173
+ return this.flush(data, $ctx);
174
+ }
175
+ return this.next(requestOptions);
176
+ }
177
+ /**
178
+ * Call the returned middleware by the handler.
179
+ * @param middleware
180
+ * @param ctx
181
+ * @param next
182
+ * @protected
183
+ */
184
+ callReturnedMiddleware(middleware, ctx, next) {
185
+ return middleware(ctx.getRequest(), ctx.getResponse(), next);
186
+ }
187
+ /**
188
+ * create Raw handler
189
+ * @param metadata
190
+ */
191
+ createRawHandler(metadata) {
192
+ if ([HandlerType_1.HandlerType.RAW_ERR_FN, HandlerType_1.HandlerType.RAW_FN].includes(metadata.type)) {
193
+ return metadata.handler;
194
+ }
195
+ const handler = this.compileHandler(metadata);
196
+ return async (request, response, next) => {
197
+ return handler({
198
+ next,
199
+ $ctx: request.$ctx
200
+ });
201
+ };
202
+ }
203
+ /**
204
+ * Set response headers
205
+ * @param ctx
206
+ * @protected
207
+ */
208
+ setHeaders(ctx) {
209
+ return (0, setResponseHeaders_1.setResponseHeaders)(ctx);
210
+ }
211
+ next(requestOptions) {
212
+ const { $ctx, next } = requestOptions;
213
+ return !$ctx.response.isDone() && next && next();
214
+ }
215
+ getDefaultArgs(metadata) {
216
+ return async (scope) => [
217
+ metadata.hasErrorParam && scope.err,
218
+ scope.$ctx.request.request,
219
+ scope.$ctx.response.response,
220
+ metadata.hasNextFunction && scope.next
221
+ ].filter(Boolean);
222
+ }
223
+ };
224
+ (0, tslib_1.__decorate)([
225
+ (0, di_1.Inject)(),
226
+ (0, tslib_1.__metadata)("design:type", platform_response_filter_1.PlatformResponseFilter)
227
+ ], PlatformHandler.prototype, "responseFilter", void 0);
228
+ PlatformHandler = (0, tslib_1.__decorate)([
229
+ (0, di_1.Injectable)({
230
+ scope: di_1.ProviderScope.SINGLETON
231
+ }),
232
+ (0, tslib_1.__metadata)("design:paramtypes", [di_1.InjectorService, platform_params_1.PlatformParams])
233
+ ], PlatformHandler);
234
+ exports.PlatformHandler = PlatformHandler;
235
+ //# sourceMappingURL=PlatformHandler.js.map