@dooboostore/simple-boot-http-server 1.0.18 → 1.0.20

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 (431) hide show
  1. package/dist/cjs/SimpleBootHttpServer.js +51 -673
  2. package/dist/cjs/SimpleBootHttpServer.js.map +4 -4
  3. package/dist/cjs/bundle-entry.js +44 -0
  4. package/dist/cjs/bundle-entry.js.map +7 -0
  5. package/dist/cjs/codes/HttpHeaders.js +42 -44
  6. package/dist/cjs/codes/HttpHeaders.js.map +3 -3
  7. package/dist/cjs/codes/HttpMethod.js +0 -2
  8. package/dist/cjs/codes/HttpMethod.js.map +1 -1
  9. package/dist/cjs/codes/HttpStatus.js +0 -2
  10. package/dist/cjs/codes/HttpStatus.js.map +1 -1
  11. package/dist/cjs/codes/Mimes.js +0 -2
  12. package/dist/cjs/codes/Mimes.js.map +1 -1
  13. package/dist/cjs/codes/index.js +9 -126
  14. package/dist/cjs/codes/index.js.map +4 -4
  15. package/dist/cjs/decorators/MethodMapping.js +51 -53
  16. package/dist/cjs/decorators/MethodMapping.js.map +2 -2
  17. package/dist/cjs/decorators/index.js +3 -248
  18. package/dist/cjs/decorators/index.js.map +4 -4
  19. package/dist/cjs/endpoints/CrossDomainHeaderEndPoint.js +7 -8
  20. package/dist/cjs/endpoints/CrossDomainHeaderEndPoint.js.map +1 -1
  21. package/dist/cjs/endpoints/EndPoint.js +0 -2
  22. package/dist/cjs/endpoints/EndPoint.js.map +1 -1
  23. package/dist/cjs/endpoints/HeaderEndPoint.js +2 -4
  24. package/dist/cjs/endpoints/HeaderEndPoint.js.map +1 -1
  25. package/dist/cjs/endpoints/index.js +7 -54
  26. package/dist/cjs/endpoints/index.js.map +3 -3
  27. package/dist/cjs/errors/BadRequestError.js +5 -16
  28. package/dist/cjs/errors/BadRequestError.js.map +3 -3
  29. package/dist/cjs/errors/ForbiddenError.js +5 -16
  30. package/dist/cjs/errors/ForbiddenError.js.map +3 -3
  31. package/dist/cjs/errors/HttpError.js +2 -4
  32. package/dist/cjs/errors/HttpError.js.map +1 -1
  33. package/dist/cjs/errors/InternalServerError.js +5 -16
  34. package/dist/cjs/errors/InternalServerError.js.map +3 -3
  35. package/dist/cjs/errors/NotFoundError.js +5 -16
  36. package/dist/cjs/errors/NotFoundError.js.map +3 -3
  37. package/dist/cjs/errors/UnauthorizedError.js +5 -16
  38. package/dist/cjs/errors/UnauthorizedError.js.map +3 -3
  39. package/dist/cjs/errors/index.js +13 -64
  40. package/dist/cjs/errors/index.js.map +3 -3
  41. package/dist/cjs/filters/CacheFilter.js +11 -13
  42. package/dist/cjs/filters/CacheFilter.js.map +2 -2
  43. package/dist/cjs/filters/Filter.js +0 -2
  44. package/dist/cjs/filters/Filter.js.map +1 -1
  45. package/dist/cjs/filters/HttpStatusFilter.js +2 -4
  46. package/dist/cjs/filters/HttpStatusFilter.js.map +1 -1
  47. package/dist/cjs/filters/OpenApi3Filter.js +7 -20
  48. package/dist/cjs/filters/OpenApi3Filter.js.map +3 -3
  49. package/dist/cjs/filters/ResourceFilter.js +7 -7
  50. package/dist/cjs/filters/ResourceFilter.js.map +1 -1
  51. package/dist/cjs/filters/ThrowFilter.js +2 -4
  52. package/dist/cjs/filters/ThrowFilter.js.map +1 -1
  53. package/dist/cjs/filters/index.js +13 -299
  54. package/dist/cjs/filters/index.js.map +4 -4
  55. package/dist/cjs/index.js +2 -1734
  56. package/dist/cjs/index.js.map +4 -4
  57. package/dist/cjs/inject/InjectSituationType.js +0 -2
  58. package/dist/cjs/inject/InjectSituationType.js.map +1 -1
  59. package/dist/cjs/inject/index.js +3 -16
  60. package/dist/cjs/inject/index.js.map +4 -4
  61. package/dist/cjs/lifecycle/OnInit.js +0 -2
  62. package/dist/cjs/lifecycle/OnInit.js.map +1 -1
  63. package/dist/cjs/lifecycle/index.js +6 -2
  64. package/dist/cjs/lifecycle/index.js.map +1 -1
  65. package/dist/cjs/models/RequestResponse.js +21 -33
  66. package/dist/cjs/models/RequestResponse.js.map +3 -3
  67. package/dist/cjs/models/datas/HeaderData.js +2 -4
  68. package/dist/cjs/models/datas/HeaderData.js.map +1 -1
  69. package/dist/cjs/models/datas/MultipartData.js +0 -2
  70. package/dist/cjs/models/datas/MultipartData.js.map +1 -1
  71. package/dist/cjs/models/datas/ReqHeader.js +2 -4
  72. package/dist/cjs/models/datas/ReqHeader.js.map +1 -1
  73. package/dist/cjs/models/datas/Resource.js +8 -480
  74. package/dist/cjs/models/datas/Resource.js.map +4 -4
  75. package/dist/cjs/models/datas/body/ReqFormUrlBody.js +2 -4
  76. package/dist/cjs/models/datas/body/ReqFormUrlBody.js.map +1 -1
  77. package/dist/cjs/models/datas/body/ReqJsonBody.js +2 -4
  78. package/dist/cjs/models/datas/body/ReqJsonBody.js.map +1 -1
  79. package/dist/cjs/models/datas/body/ReqMultipartFormBody.js +2 -4
  80. package/dist/cjs/models/datas/body/ReqMultipartFormBody.js.map +1 -1
  81. package/dist/cjs/models/index.js +19 -574
  82. package/dist/cjs/models/index.js.map +4 -4
  83. package/dist/cjs/models/method/patch/PatchJson.js +2 -4
  84. package/dist/cjs/models/method/patch/PatchJson.js.map +1 -1
  85. package/dist/cjs/option/HttpServerOption.js +3 -5
  86. package/dist/cjs/option/HttpServerOption.js.map +1 -1
  87. package/dist/cjs/option/index.js +3 -50
  88. package/dist/cjs/option/index.js.map +3 -3
  89. package/dist/cjs/resolvers/Resolver.js +0 -2
  90. package/dist/cjs/resolvers/Resolver.js.map +1 -1
  91. package/dist/cjs/resolvers/ResourceResolver.js +10 -538
  92. package/dist/cjs/resolvers/ResourceResolver.js.map +4 -4
  93. package/dist/cjs/resolvers/index.js +5 -552
  94. package/dist/cjs/resolvers/index.js.map +4 -4
  95. package/dist/cjs/session/SessionManager.js +4 -478
  96. package/dist/cjs/session/SessionManager.js.map +4 -4
  97. package/dist/cjs/session/index.js +3 -560
  98. package/dist/cjs/session/index.js.map +4 -4
  99. package/dist/esm/SimpleBootHttpServer.js +35 -656
  100. package/dist/esm/SimpleBootHttpServer.js.map +4 -4
  101. package/dist/esm/bundle-entry.js +13 -0
  102. package/dist/esm/bundle-entry.js.map +7 -0
  103. package/dist/esm/codes/HttpHeaders.js +42 -43
  104. package/dist/esm/codes/HttpHeaders.js.map +3 -3
  105. package/dist/esm/codes/HttpMethod.js +0 -1
  106. package/dist/esm/codes/HttpMethod.js.map +1 -1
  107. package/dist/esm/codes/HttpStatus.js +0 -1
  108. package/dist/esm/codes/HttpStatus.js.map +1 -1
  109. package/dist/esm/codes/Mimes.js +0 -1
  110. package/dist/esm/codes/Mimes.js.map +1 -1
  111. package/dist/esm/codes/index.js +4 -115
  112. package/dist/esm/codes/index.js.map +4 -4
  113. package/dist/esm/decorators/MethodMapping.js +51 -52
  114. package/dist/esm/decorators/MethodMapping.js.map +2 -2
  115. package/dist/esm/decorators/index.js +1 -210
  116. package/dist/esm/decorators/index.js.map +4 -4
  117. package/dist/esm/endpoints/CrossDomainHeaderEndPoint.js +7 -7
  118. package/dist/esm/endpoints/CrossDomainHeaderEndPoint.js.map +1 -1
  119. package/dist/esm/endpoints/HeaderEndPoint.js +2 -3
  120. package/dist/esm/endpoints/HeaderEndPoint.js.map +1 -1
  121. package/dist/esm/endpoints/index.js +3 -45
  122. package/dist/esm/endpoints/index.js.map +3 -3
  123. package/dist/esm/errors/BadRequestError.js +5 -13
  124. package/dist/esm/errors/BadRequestError.js.map +3 -3
  125. package/dist/esm/errors/ForbiddenError.js +5 -13
  126. package/dist/esm/errors/ForbiddenError.js.map +3 -3
  127. package/dist/esm/errors/HttpError.js +2 -3
  128. package/dist/esm/errors/HttpError.js.map +1 -1
  129. package/dist/esm/errors/InternalServerError.js +5 -13
  130. package/dist/esm/errors/InternalServerError.js.map +3 -3
  131. package/dist/esm/errors/NotFoundError.js +5 -13
  132. package/dist/esm/errors/NotFoundError.js.map +3 -3
  133. package/dist/esm/errors/UnauthorizedError.js +5 -13
  134. package/dist/esm/errors/UnauthorizedError.js.map +3 -3
  135. package/dist/esm/errors/index.js +6 -51
  136. package/dist/esm/errors/index.js.map +3 -3
  137. package/dist/esm/filters/CacheFilter.js +11 -12
  138. package/dist/esm/filters/CacheFilter.js.map +2 -2
  139. package/dist/esm/filters/HttpStatusFilter.js +2 -3
  140. package/dist/esm/filters/HttpStatusFilter.js.map +1 -1
  141. package/dist/esm/filters/OpenApi3Filter.js +6 -16
  142. package/dist/esm/filters/OpenApi3Filter.js.map +3 -3
  143. package/dist/esm/filters/ResourceFilter.js +7 -6
  144. package/dist/esm/filters/ResourceFilter.js.map +1 -1
  145. package/dist/esm/filters/ThrowFilter.js +2 -3
  146. package/dist/esm/filters/ThrowFilter.js.map +1 -1
  147. package/dist/esm/filters/index.js +6 -277
  148. package/dist/esm/filters/index.js.map +4 -4
  149. package/dist/esm/index.js +2 -1659
  150. package/dist/esm/index.js.map +4 -4
  151. package/dist/esm/inject/InjectSituationType.js +0 -1
  152. package/dist/esm/inject/InjectSituationType.js.map +1 -1
  153. package/dist/esm/inject/index.js +1 -8
  154. package/dist/esm/inject/index.js.map +4 -4
  155. package/dist/esm/lifecycle/index.js +1 -0
  156. package/dist/esm/lifecycle/index.js.map +3 -3
  157. package/dist/esm/models/RequestResponse.js +18 -29
  158. package/dist/esm/models/RequestResponse.js.map +3 -3
  159. package/dist/esm/models/datas/HeaderData.js +2 -3
  160. package/dist/esm/models/datas/HeaderData.js.map +1 -1
  161. package/dist/esm/models/datas/ReqHeader.js +2 -3
  162. package/dist/esm/models/datas/ReqHeader.js.map +1 -1
  163. package/dist/esm/models/datas/Resource.js +7 -478
  164. package/dist/esm/models/datas/Resource.js.map +4 -4
  165. package/dist/esm/models/datas/body/ReqFormUrlBody.js +2 -3
  166. package/dist/esm/models/datas/body/ReqFormUrlBody.js.map +1 -1
  167. package/dist/esm/models/datas/body/ReqJsonBody.js +2 -3
  168. package/dist/esm/models/datas/body/ReqJsonBody.js.map +1 -1
  169. package/dist/esm/models/datas/body/ReqMultipartFormBody.js +2 -3
  170. package/dist/esm/models/datas/body/ReqMultipartFormBody.js.map +1 -1
  171. package/dist/esm/models/index.js +9 -548
  172. package/dist/esm/models/index.js.map +4 -4
  173. package/dist/esm/models/method/patch/PatchJson.js +2 -3
  174. package/dist/esm/models/method/patch/PatchJson.js.map +1 -1
  175. package/dist/esm/option/HttpServerOption.js +3 -4
  176. package/dist/esm/option/HttpServerOption.js.map +1 -1
  177. package/dist/esm/option/index.js +1 -42
  178. package/dist/esm/option/index.js.map +3 -3
  179. package/dist/esm/resolvers/ResourceResolver.js +8 -526
  180. package/dist/esm/resolvers/ResourceResolver.js.map +4 -4
  181. package/dist/esm/resolvers/index.js +2 -537
  182. package/dist/esm/resolvers/index.js.map +4 -4
  183. package/dist/esm/session/SessionManager.js +3 -476
  184. package/dist/esm/session/SessionManager.js.map +3 -3
  185. package/dist/esm/session/index.js +1 -552
  186. package/dist/esm/session/index.js.map +3 -3
  187. package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js +14976 -1243
  188. package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js.map +4 -4
  189. package/dist/{cjs → types}/SimpleBootHttpServer.d.ts +2 -1
  190. package/dist/types/SimpleBootHttpServer.d.ts.map +1 -0
  191. package/dist/{cjs/index.d.ts → types/bundle-entry.d.ts} +2 -2
  192. package/dist/types/bundle-entry.d.ts.map +1 -0
  193. package/dist/types/codes/HttpHeaders.d.ts +43 -0
  194. package/dist/types/codes/HttpHeaders.d.ts.map +1 -0
  195. package/dist/{cjs → types}/decorators/MethodMapping.d.ts +0 -1
  196. package/dist/types/decorators/MethodMapping.d.ts.map +1 -0
  197. package/dist/types/index.d.ts +41 -0
  198. package/dist/types/index.d.ts.map +1 -0
  199. package/dist/{esm → types}/models/RequestResponse.d.ts +7 -7
  200. package/dist/types/models/RequestResponse.d.ts.map +1 -0
  201. package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js +15140 -1433
  202. package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js.map +4 -4
  203. package/package.json +36 -22
  204. package/src/SimpleBootHttpServer.ts +330 -0
  205. package/{dist/esm/index.d.ts → src/bundle-entry.ts} +1 -2
  206. package/src/codes/HttpHeaders.ts +43 -0
  207. package/src/codes/HttpMethod.ts +11 -0
  208. package/{dist/esm/codes/HttpStatus.d.ts → src/codes/HttpStatus.ts} +2 -2
  209. package/src/codes/Mimes.ts +27 -0
  210. package/{dist/esm/codes/index.d.ts → src/codes/index.ts} +0 -1
  211. package/src/decorators/MethodMapping.ts +233 -0
  212. package/src/decorators/index.ts +1 -0
  213. package/src/endpoints/CrossDomainHeaderEndPoint.ts +38 -0
  214. package/src/endpoints/EndPoint.ts +7 -0
  215. package/src/endpoints/HeaderEndPoint.ts +17 -0
  216. package/{dist/esm/endpoints/index.d.ts → src/endpoints/index.ts} +0 -1
  217. package/src/errors/BadRequestError.ts +8 -0
  218. package/src/errors/ForbiddenError.ts +8 -0
  219. package/src/errors/HttpError.ts +14 -0
  220. package/src/errors/InternalServerError.ts +8 -0
  221. package/src/errors/NotFoundError.ts +8 -0
  222. package/src/errors/UnauthorizedError.ts +8 -0
  223. package/{dist/esm/errors/index.d.ts → src/errors/index.ts} +0 -1
  224. package/src/filters/CacheFilter.ts +169 -0
  225. package/src/filters/Filter.ts +10 -0
  226. package/src/filters/HttpStatusFilter.ts +24 -0
  227. package/src/filters/OpenApi3Filter.ts +158 -0
  228. package/src/filters/ResourceFilter.ts +72 -0
  229. package/src/filters/ThrowFilter.ts +23 -0
  230. package/{dist/esm/filters/index.d.ts → src/filters/index.ts} +0 -1
  231. package/src/index.ts +13 -0
  232. package/src/inject/InjectSituationType.ts +3 -0
  233. package/{dist/esm/inject/index.d.ts → src/inject/index.ts} +0 -1
  234. package/src/lifecycle/OnInit.ts +5 -0
  235. package/src/lifecycle/index.ts +1 -0
  236. package/src/models/RequestResponse.ts +658 -0
  237. package/src/models/datas/HeaderData.ts +4 -0
  238. package/src/models/datas/MultipartData.ts +27 -0
  239. package/{dist/esm/models/datas/ReqHeader.d.ts → src/models/datas/ReqHeader.ts} +5 -4
  240. package/src/models/datas/Resource.ts +44 -0
  241. package/src/models/datas/body/ReqFormUrlBody.ts +3 -0
  242. package/src/models/datas/body/ReqJsonBody.ts +3 -0
  243. package/src/models/datas/body/ReqMultipartFormBody.ts +6 -0
  244. package/{dist/esm/models/index.d.ts → src/models/index.ts} +0 -1
  245. package/src/models/method/patch/PatchJson.ts +46 -0
  246. package/src/option/HttpServerOption.ts +81 -0
  247. package/{dist/esm/option/index.d.ts → src/option/index.ts} +0 -1
  248. package/src/resolvers/Resolver.ts +5 -0
  249. package/src/resolvers/ResourceResolver.ts +11 -0
  250. package/{dist/esm/resolvers/index.d.ts → src/resolvers/index.ts} +0 -1
  251. package/src/session/SessionManager.ts +89 -0
  252. package/src/session/index.ts +1 -0
  253. package/tsconfig.json +23 -0
  254. package/dist/cjs/SimpleBootHttpServer.d.ts.map +0 -1
  255. package/dist/cjs/codes/HttpHeaders.d.ts +0 -42
  256. package/dist/cjs/codes/HttpHeaders.d.ts.map +0 -1
  257. package/dist/cjs/decorators/MethodMapping.d.ts.map +0 -1
  258. package/dist/cjs/index.d.ts.map +0 -1
  259. package/dist/cjs/models/RequestResponse.d.ts +0 -100
  260. package/dist/cjs/models/RequestResponse.d.ts.map +0 -1
  261. package/dist/cjs/package.json +0 -3
  262. package/dist/esm/SimpleBootHttpServer.d.ts +0 -14
  263. package/dist/esm/SimpleBootHttpServer.d.ts.map +0 -1
  264. package/dist/esm/codes/HttpHeaders.d.ts +0 -42
  265. package/dist/esm/codes/HttpHeaders.d.ts.map +0 -1
  266. package/dist/esm/codes/HttpMethod.d.ts +0 -12
  267. package/dist/esm/codes/HttpMethod.d.ts.map +0 -1
  268. package/dist/esm/codes/HttpStatus.d.ts.map +0 -1
  269. package/dist/esm/codes/Mimes.d.ts +0 -28
  270. package/dist/esm/codes/Mimes.d.ts.map +0 -1
  271. package/dist/esm/codes/index.d.ts.map +0 -1
  272. package/dist/esm/decorators/MethodMapping.d.ts +0 -74
  273. package/dist/esm/decorators/MethodMapping.d.ts.map +0 -1
  274. package/dist/esm/decorators/index.d.ts +0 -2
  275. package/dist/esm/decorators/index.d.ts.map +0 -1
  276. package/dist/esm/endpoints/CrossDomainHeaderEndPoint.d.ts +0 -16
  277. package/dist/esm/endpoints/CrossDomainHeaderEndPoint.d.ts.map +0 -1
  278. package/dist/esm/endpoints/EndPoint.d.ts +0 -7
  279. package/dist/esm/endpoints/EndPoint.d.ts.map +0 -1
  280. package/dist/esm/endpoints/HeaderEndPoint.d.ts +0 -12
  281. package/dist/esm/endpoints/HeaderEndPoint.d.ts.map +0 -1
  282. package/dist/esm/endpoints/index.d.ts.map +0 -1
  283. package/dist/esm/errors/BadRequestError.d.ts +0 -8
  284. package/dist/esm/errors/BadRequestError.d.ts.map +0 -1
  285. package/dist/esm/errors/ForbiddenError.d.ts +0 -8
  286. package/dist/esm/errors/ForbiddenError.d.ts.map +0 -1
  287. package/dist/esm/errors/HttpError.d.ts +0 -12
  288. package/dist/esm/errors/HttpError.d.ts.map +0 -1
  289. package/dist/esm/errors/InternalServerError.d.ts +0 -8
  290. package/dist/esm/errors/InternalServerError.d.ts.map +0 -1
  291. package/dist/esm/errors/NotFoundError.d.ts +0 -8
  292. package/dist/esm/errors/NotFoundError.d.ts.map +0 -1
  293. package/dist/esm/errors/UnauthorizedError.d.ts +0 -8
  294. package/dist/esm/errors/UnauthorizedError.d.ts.map +0 -1
  295. package/dist/esm/errors/index.d.ts.map +0 -1
  296. package/dist/esm/filters/CacheFilter.d.ts +0 -45
  297. package/dist/esm/filters/CacheFilter.d.ts.map +0 -1
  298. package/dist/esm/filters/Filter.d.ts +0 -17
  299. package/dist/esm/filters/Filter.d.ts.map +0 -1
  300. package/dist/esm/filters/HttpStatusFilter.d.ts +0 -20
  301. package/dist/esm/filters/HttpStatusFilter.d.ts.map +0 -1
  302. package/dist/esm/filters/OpenApi3Filter.d.ts +0 -142
  303. package/dist/esm/filters/OpenApi3Filter.d.ts.map +0 -1
  304. package/dist/esm/filters/ResourceFilter.d.ts +0 -24
  305. package/dist/esm/filters/ResourceFilter.d.ts.map +0 -1
  306. package/dist/esm/filters/ThrowFilter.d.ts +0 -19
  307. package/dist/esm/filters/ThrowFilter.d.ts.map +0 -1
  308. package/dist/esm/filters/index.d.ts.map +0 -1
  309. package/dist/esm/index.d.ts.map +0 -1
  310. package/dist/esm/inject/InjectSituationType.d.ts +0 -4
  311. package/dist/esm/inject/InjectSituationType.d.ts.map +0 -1
  312. package/dist/esm/inject/index.d.ts.map +0 -1
  313. package/dist/esm/lifecycle/OnInit.d.ts +0 -5
  314. package/dist/esm/lifecycle/OnInit.d.ts.map +0 -1
  315. package/dist/esm/lifecycle/index.d.ts +0 -2
  316. package/dist/esm/lifecycle/index.d.ts.map +0 -1
  317. package/dist/esm/models/RequestResponse.d.ts.map +0 -1
  318. package/dist/esm/models/datas/HeaderData.d.ts +0 -10
  319. package/dist/esm/models/datas/HeaderData.d.ts.map +0 -1
  320. package/dist/esm/models/datas/MultipartData.d.ts +0 -12
  321. package/dist/esm/models/datas/MultipartData.d.ts.map +0 -1
  322. package/dist/esm/models/datas/ReqHeader.d.ts.map +0 -1
  323. package/dist/esm/models/datas/Resource.d.ts +0 -11
  324. package/dist/esm/models/datas/Resource.d.ts.map +0 -1
  325. package/dist/esm/models/datas/body/ReqFormUrlBody.d.ts +0 -4
  326. package/dist/esm/models/datas/body/ReqFormUrlBody.d.ts.map +0 -1
  327. package/dist/esm/models/datas/body/ReqJsonBody.d.ts +0 -4
  328. package/dist/esm/models/datas/body/ReqJsonBody.d.ts.map +0 -1
  329. package/dist/esm/models/datas/body/ReqMultipartFormBody.d.ts +0 -6
  330. package/dist/esm/models/datas/body/ReqMultipartFormBody.d.ts.map +0 -1
  331. package/dist/esm/models/index.d.ts.map +0 -1
  332. package/dist/esm/models/method/patch/PatchJson.d.ts +0 -8
  333. package/dist/esm/models/method/patch/PatchJson.d.ts.map +0 -1
  334. package/dist/esm/option/HttpServerOption.d.ts +0 -83
  335. package/dist/esm/option/HttpServerOption.d.ts.map +0 -1
  336. package/dist/esm/option/index.d.ts.map +0 -1
  337. package/dist/esm/resolvers/Resolver.d.ts +0 -5
  338. package/dist/esm/resolvers/Resolver.d.ts.map +0 -1
  339. package/dist/esm/resolvers/ResourceResolver.d.ts +0 -6
  340. package/dist/esm/resolvers/ResourceResolver.d.ts.map +0 -1
  341. package/dist/esm/resolvers/index.d.ts.map +0 -1
  342. package/dist/esm/session/SessionManager.d.ts +0 -57
  343. package/dist/esm/session/SessionManager.d.ts.map +0 -1
  344. package/dist/esm/session/index.d.ts +0 -2
  345. package/dist/esm/session/index.d.ts.map +0 -1
  346. /package/dist/{cjs → types}/codes/HttpMethod.d.ts +0 -0
  347. /package/dist/{cjs → types}/codes/HttpMethod.d.ts.map +0 -0
  348. /package/dist/{cjs → types}/codes/HttpStatus.d.ts +0 -0
  349. /package/dist/{cjs → types}/codes/HttpStatus.d.ts.map +0 -0
  350. /package/dist/{cjs → types}/codes/Mimes.d.ts +0 -0
  351. /package/dist/{cjs → types}/codes/Mimes.d.ts.map +0 -0
  352. /package/dist/{cjs → types}/codes/index.d.ts +0 -0
  353. /package/dist/{cjs → types}/codes/index.d.ts.map +0 -0
  354. /package/dist/{cjs → types}/decorators/index.d.ts +0 -0
  355. /package/dist/{cjs → types}/decorators/index.d.ts.map +0 -0
  356. /package/dist/{cjs → types}/endpoints/CrossDomainHeaderEndPoint.d.ts +0 -0
  357. /package/dist/{cjs → types}/endpoints/CrossDomainHeaderEndPoint.d.ts.map +0 -0
  358. /package/dist/{cjs → types}/endpoints/EndPoint.d.ts +0 -0
  359. /package/dist/{cjs → types}/endpoints/EndPoint.d.ts.map +0 -0
  360. /package/dist/{cjs → types}/endpoints/HeaderEndPoint.d.ts +0 -0
  361. /package/dist/{cjs → types}/endpoints/HeaderEndPoint.d.ts.map +0 -0
  362. /package/dist/{cjs → types}/endpoints/index.d.ts +0 -0
  363. /package/dist/{cjs → types}/endpoints/index.d.ts.map +0 -0
  364. /package/dist/{cjs → types}/errors/BadRequestError.d.ts +0 -0
  365. /package/dist/{cjs → types}/errors/BadRequestError.d.ts.map +0 -0
  366. /package/dist/{cjs → types}/errors/ForbiddenError.d.ts +0 -0
  367. /package/dist/{cjs → types}/errors/ForbiddenError.d.ts.map +0 -0
  368. /package/dist/{cjs → types}/errors/HttpError.d.ts +0 -0
  369. /package/dist/{cjs → types}/errors/HttpError.d.ts.map +0 -0
  370. /package/dist/{cjs → types}/errors/InternalServerError.d.ts +0 -0
  371. /package/dist/{cjs → types}/errors/InternalServerError.d.ts.map +0 -0
  372. /package/dist/{cjs → types}/errors/NotFoundError.d.ts +0 -0
  373. /package/dist/{cjs → types}/errors/NotFoundError.d.ts.map +0 -0
  374. /package/dist/{cjs → types}/errors/UnauthorizedError.d.ts +0 -0
  375. /package/dist/{cjs → types}/errors/UnauthorizedError.d.ts.map +0 -0
  376. /package/dist/{cjs → types}/errors/index.d.ts +0 -0
  377. /package/dist/{cjs → types}/errors/index.d.ts.map +0 -0
  378. /package/dist/{cjs → types}/filters/CacheFilter.d.ts +0 -0
  379. /package/dist/{cjs → types}/filters/CacheFilter.d.ts.map +0 -0
  380. /package/dist/{cjs → types}/filters/Filter.d.ts +0 -0
  381. /package/dist/{cjs → types}/filters/Filter.d.ts.map +0 -0
  382. /package/dist/{cjs → types}/filters/HttpStatusFilter.d.ts +0 -0
  383. /package/dist/{cjs → types}/filters/HttpStatusFilter.d.ts.map +0 -0
  384. /package/dist/{cjs → types}/filters/OpenApi3Filter.d.ts +0 -0
  385. /package/dist/{cjs → types}/filters/OpenApi3Filter.d.ts.map +0 -0
  386. /package/dist/{cjs → types}/filters/ResourceFilter.d.ts +0 -0
  387. /package/dist/{cjs → types}/filters/ResourceFilter.d.ts.map +0 -0
  388. /package/dist/{cjs → types}/filters/ThrowFilter.d.ts +0 -0
  389. /package/dist/{cjs → types}/filters/ThrowFilter.d.ts.map +0 -0
  390. /package/dist/{cjs → types}/filters/index.d.ts +0 -0
  391. /package/dist/{cjs → types}/filters/index.d.ts.map +0 -0
  392. /package/dist/{cjs → types}/inject/InjectSituationType.d.ts +0 -0
  393. /package/dist/{cjs → types}/inject/InjectSituationType.d.ts.map +0 -0
  394. /package/dist/{cjs → types}/inject/index.d.ts +0 -0
  395. /package/dist/{cjs → types}/inject/index.d.ts.map +0 -0
  396. /package/dist/{cjs → types}/lifecycle/OnInit.d.ts +0 -0
  397. /package/dist/{cjs → types}/lifecycle/OnInit.d.ts.map +0 -0
  398. /package/dist/{cjs → types}/lifecycle/index.d.ts +0 -0
  399. /package/dist/{cjs → types}/lifecycle/index.d.ts.map +0 -0
  400. /package/dist/{cjs → types}/models/datas/HeaderData.d.ts +0 -0
  401. /package/dist/{cjs → types}/models/datas/HeaderData.d.ts.map +0 -0
  402. /package/dist/{cjs → types}/models/datas/MultipartData.d.ts +0 -0
  403. /package/dist/{cjs → types}/models/datas/MultipartData.d.ts.map +0 -0
  404. /package/dist/{cjs → types}/models/datas/ReqHeader.d.ts +0 -0
  405. /package/dist/{cjs → types}/models/datas/ReqHeader.d.ts.map +0 -0
  406. /package/dist/{cjs → types}/models/datas/Resource.d.ts +0 -0
  407. /package/dist/{cjs → types}/models/datas/Resource.d.ts.map +0 -0
  408. /package/dist/{cjs → types}/models/datas/body/ReqFormUrlBody.d.ts +0 -0
  409. /package/dist/{cjs → types}/models/datas/body/ReqFormUrlBody.d.ts.map +0 -0
  410. /package/dist/{cjs → types}/models/datas/body/ReqJsonBody.d.ts +0 -0
  411. /package/dist/{cjs → types}/models/datas/body/ReqJsonBody.d.ts.map +0 -0
  412. /package/dist/{cjs → types}/models/datas/body/ReqMultipartFormBody.d.ts +0 -0
  413. /package/dist/{cjs → types}/models/datas/body/ReqMultipartFormBody.d.ts.map +0 -0
  414. /package/dist/{cjs → types}/models/index.d.ts +0 -0
  415. /package/dist/{cjs → types}/models/index.d.ts.map +0 -0
  416. /package/dist/{cjs → types}/models/method/patch/PatchJson.d.ts +0 -0
  417. /package/dist/{cjs → types}/models/method/patch/PatchJson.d.ts.map +0 -0
  418. /package/dist/{cjs → types}/option/HttpServerOption.d.ts +0 -0
  419. /package/dist/{cjs → types}/option/HttpServerOption.d.ts.map +0 -0
  420. /package/dist/{cjs → types}/option/index.d.ts +0 -0
  421. /package/dist/{cjs → types}/option/index.d.ts.map +0 -0
  422. /package/dist/{cjs → types}/resolvers/Resolver.d.ts +0 -0
  423. /package/dist/{cjs → types}/resolvers/Resolver.d.ts.map +0 -0
  424. /package/dist/{cjs → types}/resolvers/ResourceResolver.d.ts +0 -0
  425. /package/dist/{cjs → types}/resolvers/ResourceResolver.d.ts.map +0 -0
  426. /package/dist/{cjs → types}/resolvers/index.d.ts +0 -0
  427. /package/dist/{cjs → types}/resolvers/index.d.ts.map +0 -0
  428. /package/dist/{cjs → types}/session/SessionManager.d.ts +0 -0
  429. /package/dist/{cjs → types}/session/SessionManager.d.ts.map +0 -0
  430. /package/dist/{cjs → types}/session/index.d.ts +0 -0
  431. /package/dist/{cjs → types}/session/index.d.ts.map +0 -0
@@ -1,481 +1,10 @@
1
- // src/models/datas/Resource.ts
2
1
  import fs from "fs";
3
2
  import path from "path";
4
3
  import mime from "mime-types";
5
-
6
- // src/models/RequestResponse.ts
7
- import { Intent } from "@dooboostore/simple-boot/intent/Intent";
8
- import { URL as URL2, URLSearchParams } from "url";
9
- import { Buffer } from "buffer";
10
-
11
- // src/models/datas/body/ReqFormUrlBody.ts
12
- var ReqFormUrlBody = class {
13
- };
14
-
15
- // src/models/datas/body/ReqJsonBody.ts
16
- var ReqJsonBody = class {
17
- };
18
-
19
- // src/models/datas/ReqHeader.ts
20
- var ReqHeader = class {
21
- };
22
-
23
- // src/models/RequestResponse.ts
24
- import { gzip } from "node-gzip";
25
- import { FileUtils } from "@dooboostore/core-node/file/FileUtils";
26
- import { ConvertUtils as CoreConvertUtils } from "@dooboostore/core/convert/ConvertUtils";
27
- import { ConvertUtils } from "@dooboostore/core-node/convert/ConvertUtils";
28
- var RequestResponse = class _RequestResponse {
29
- // protected sessionManager?: SessionManager;
30
- // constructor(req: IncomingMessage, res: ServerResponse);
31
- // constructor(req: RequestResponse);
32
- // constructor(req: IncomingMessage, res: ServerResponse, sessionManager?: SessionManager);
33
- // constructor(req: IncomingMessage | RequestResponse, res?: ServerResponse, sessionManager?: SessionManager) {
34
- // // this.req = req;
35
- // // this.res = res;
36
- // if (req instanceof RequestResponse) {
37
- // this.req = req.req;
38
- // this.res = req.res;
39
- // this.sessionManager = req.sessionManager;
40
- // } else {
41
- // this.req = req;
42
- // this.res = res!;
43
- // this.sessionManager = sessionManager;
44
- // }
45
- // }
46
- constructor(req, res, config) {
47
- if (req instanceof _RequestResponse) {
48
- this.req = req.req;
49
- this.res = req.res;
50
- this.config = config;
51
- } else {
52
- this.req = req;
53
- this.res = res;
54
- this.config = config;
55
- }
56
- }
57
- get reqSocket() {
58
- return this.req.socket;
59
- }
60
- get reqCookieMap() {
61
- let cookies = this.reqHeader("Cookie" /* Cookie */) ?? "";
62
- if (Array.isArray(cookies)) {
63
- cookies = cookies.join(";");
64
- }
65
- const map = /* @__PURE__ */ new Map();
66
- cookies.split(";").map((it) => it.trim().split("=")).forEach((it) => {
67
- map.set(it[0], it[1]);
68
- });
69
- return map;
70
- }
71
- reqCookieGet(key) {
72
- return this.reqCookieMap.get(key);
73
- }
74
- get reqRemoteAddress() {
75
- const ipHeader = this.req.headers["x-forwarded-for"];
76
- let ip = this.req.socket.remoteAddress;
77
- if (Array.isArray(ipHeader)) {
78
- ip = ipHeader.join(",").split(",").shift();
79
- } else if (typeof ipHeader === "string") {
80
- ip = ipHeader.split(",").shift();
81
- }
82
- return ip;
83
- }
84
- get reqUrlObject() {
85
- return new URL2(this.reqUrl, `${this.reqSocket ? "https://" : "http"}${this.reqHost ?? "localhost"}`);
86
- }
87
- get reqUrlPathName() {
88
- return this.reqUrlObj().pathname ?? "";
89
- }
90
- get reqUrl() {
91
- return this.req.url ?? "";
92
- }
93
- reqUrlObj(config) {
94
- return new URL2(`${config?.scheme ?? "http"}://${config?.host ? config?.host : this.reqHeaderFirst("Host" /* Host */) ?? "localhost"}${this.req.url ?? ""}`);
95
- }
96
- get reqUrlSearchParamTuples() {
97
- return Array.from(this.reqUrlObj().searchParams);
98
- }
99
- get reqUrlSearchParams() {
100
- return this.reqUrlObj().searchParams;
101
- }
102
- get reqUrlSearchParamsObj() {
103
- const entries = this.reqUrlObj().searchParams;
104
- return CoreConvertUtils.toObject(entries);
105
- }
106
- get reqPathSearchParamUrl() {
107
- const reqUrlObj = this.reqUrlObj();
108
- return reqUrlObj.pathname + (reqUrlObj.searchParams.toString() ? "?" + reqUrlObj.searchParams.toString() : "");
109
- }
110
- get reqReadable() {
111
- return this.req.readable;
112
- }
113
- get reqIntent() {
114
- return new Intent(this.reqPathSearchParamUrl);
115
- }
116
- reqHasContentTypeHeader(mime2) {
117
- return (this.reqHeaderFirst("Content-Type" /* ContentType */) ?? "").toLowerCase().indexOf(mime2.toLocaleLowerCase()) > -1;
118
- }
119
- reqHasAcceptHeader(mime2) {
120
- return (this.reqHeaderFirst("Accept" /* Accept */) ?? "").toLowerCase().indexOf(mime2.toLocaleLowerCase()) > -1;
121
- }
122
- reqBodyData() {
123
- return new Promise((resolve, reject) => {
124
- if (this.reqReadable) {
125
- const data = [];
126
- this.req.on("data", (chunk) => data.push(chunk));
127
- this.req.on("error", (err) => reject(err));
128
- this.req.on("end", () => {
129
- this.reqBodyChunk = Buffer.concat(data);
130
- resolve(this.reqBodyChunk);
131
- });
132
- } else {
133
- resolve(this.reqBodyChunk ?? Buffer.alloc(0));
134
- }
135
- });
136
- }
137
- resBodyData() {
138
- return this.resWriteChunk;
139
- }
140
- async reqBodyMultipartFormDataObject() {
141
- const m = await this.reqBodyMultipartFormData();
142
- const formData = {};
143
- for (const it of m) {
144
- if (it.isFile) {
145
- formData[it.name] = await FileUtils.writeFile(it.value, { originalName: it.filename });
146
- } else {
147
- const target = formData[it.name];
148
- if (Array.isArray(target)) {
149
- target.push(it.value);
150
- } else if (typeof target === "string") {
151
- formData[it.name] = [target, it.value];
152
- } else {
153
- formData[it.name] = it.value;
154
- }
155
- }
156
- }
157
- ;
158
- return formData;
159
- }
160
- reqBodyMultipartFormData() {
161
- return new Promise((resolve, reject) => {
162
- const contentTypeHeader = this.req.headers["content-type"];
163
- if (!contentTypeHeader || !contentTypeHeader.startsWith("multipart/form-data")) {
164
- return reject(new Error("Invalid Content-Type. Expected multipart/form-data."));
165
- }
166
- const boundaryMatch = contentTypeHeader.match(/boundary=(?:"([^"]+)"|([^;]+))/i);
167
- if (!boundaryMatch) {
168
- return reject(new Error("Boundary not found in Content-Type header."));
169
- }
170
- const boundary = boundaryMatch[1] || boundaryMatch[2];
171
- if (!boundary) {
172
- return reject(new Error("Failed to extract boundary."));
173
- }
174
- const boundaryBuffer = Buffer.from(`--${boundary}`);
175
- const crlfBuffer = Buffer.from("\r\n");
176
- const doubleCrlfBuffer = Buffer.from("\r\n\r\n");
177
- const chunks = [];
178
- let totalLength = 0;
179
- this.req.on("data", (chunk) => {
180
- chunks.push(chunk);
181
- totalLength += chunk.length;
182
- });
183
- this.req.on("error", (err) => {
184
- reject(err);
185
- });
186
- this.req.on("end", () => {
187
- if (totalLength === 0) {
188
- return resolve([]);
189
- }
190
- const fullBuffer = Buffer.concat(chunks, totalLength);
191
- const parsedParts = [];
192
- let currentPosition = 0;
193
- let boundaryStartIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);
194
- if (boundaryStartIndex === -1) {
195
- return reject(new Error("Initial boundary not found."));
196
- }
197
- currentPosition = boundaryStartIndex + boundaryBuffer.length;
198
- if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {
199
- currentPosition += crlfBuffer.length;
200
- }
201
- while (currentPosition < fullBuffer.length) {
202
- const nextBoundaryIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);
203
- if (nextBoundaryIndex === -1) {
204
- break;
205
- }
206
- let partEndIndex = nextBoundaryIndex;
207
- if (partEndIndex > crlfBuffer.length && fullBuffer.slice(partEndIndex - crlfBuffer.length, partEndIndex).equals(crlfBuffer)) {
208
- partEndIndex -= crlfBuffer.length;
209
- }
210
- const partBuffer = fullBuffer.slice(currentPosition, partEndIndex);
211
- const headerBodySeparatorIndex = partBuffer.indexOf(doubleCrlfBuffer);
212
- if (headerBodySeparatorIndex === -1) {
213
- console.warn("Skipping malformed part: no header/body separator found.");
214
- currentPosition = nextBoundaryIndex + boundaryBuffer.length;
215
- if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {
216
- currentPosition += crlfBuffer.length;
217
- }
218
- if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === "--") break;
219
- continue;
220
- }
221
- const headerBuffer = partBuffer.slice(0, headerBodySeparatorIndex);
222
- const bodyBuffer = partBuffer.slice(headerBodySeparatorIndex + doubleCrlfBuffer.length);
223
- const headersStr = headerBuffer.toString("utf-8");
224
- const headers = {};
225
- headersStr.split("\r\n").forEach((line) => {
226
- const colonIndex = line.indexOf(":");
227
- if (colonIndex > 0) {
228
- const key = line.substring(0, colonIndex).trim().toLowerCase();
229
- const value = line.substring(colonIndex + 1).trim();
230
- headers[key] = value;
231
- }
232
- });
233
- const contentDisposition = headers["content-disposition"];
234
- if (!contentDisposition) {
235
- console.warn("Skipping part: no Content-Disposition header.");
236
- currentPosition = nextBoundaryIndex + boundaryBuffer.length;
237
- if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {
238
- currentPosition += crlfBuffer.length;
239
- }
240
- if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === "--") break;
241
- continue;
242
- }
243
- const nameMatch = contentDisposition.match(/name="([^"]+)"/i);
244
- const filenameMatch = contentDisposition.match(/filename="([^"]+)"/i);
245
- const name = nameMatch ? nameMatch[1] : null;
246
- const filename = filenameMatch ? filenameMatch[1] : null;
247
- const contentType = headers["content-type"] || null;
248
- if (name) {
249
- const isFile = !!filename;
250
- const multipartData = {
251
- name,
252
- isFile,
253
- // filename이 있으면 파일로 간주
254
- filename,
255
- contentType,
256
- value: isFile ? bodyBuffer : bodyBuffer.toString("utf-8")
257
- };
258
- parsedParts.push(multipartData);
259
- } else {
260
- console.warn("Skipping part: 'name' not found in Content-Disposition.");
261
- }
262
- currentPosition = nextBoundaryIndex + boundaryBuffer.length;
263
- if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {
264
- currentPosition += crlfBuffer.length;
265
- }
266
- if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === "--") {
267
- break;
268
- }
269
- }
270
- resolve(parsedParts);
271
- });
272
- });
273
- }
274
- async reqBodyStringData() {
275
- const data = (await this.reqBodyData()).toString();
276
- return data;
277
- }
278
- async reqBodyJsonData() {
279
- return JSON.parse(await this.reqBodyStringData());
280
- }
281
- async reqBodyFormUrlData() {
282
- const data = await this.reqBodyStringData();
283
- const formData = {};
284
- Array.from(new URLSearchParams(data).entries()).forEach(([k, v]) => {
285
- const target = formData[k];
286
- if (Array.isArray(target)) {
287
- target.push(v);
288
- } else if (typeof target === "string") {
289
- formData[k] = [target, v];
290
- } else {
291
- formData[k] = v;
292
- }
293
- });
294
- return formData;
295
- }
296
- async reqBodyReqFormUrlBody() {
297
- const data = await this.reqBodyFormUrlData();
298
- return Object.assign(new ReqFormUrlBody(), data);
299
- }
300
- async reqBodyReqJsonBody() {
301
- const data = await this.reqBodyStringData();
302
- return Object.assign(new ReqJsonBody(), data ? JSON.parse(data) : {});
303
- }
304
- // reqBodyReqMultipartFormBody(): Promise<ReqMultipartFormBody> {
305
- // return this.reqBodyMultipartFormData().then(it => new ReqMultipartFormBody(it))
306
- // }
307
- resBodyJsonData() {
308
- const data = ConvertUtils.toString(this.resBodyData());
309
- return data ? JSON.parse(data) : null;
310
- }
311
- resBodyStringData() {
312
- return ConvertUtils.toString(this.resBodyData());
313
- }
314
- reqMethod() {
315
- return this.req.method?.toUpperCase();
316
- }
317
- reqHeader(key) {
318
- return this.req.headers[key.toLowerCase()];
319
- }
320
- get reqHost() {
321
- return this.reqHeaderFirst("Host" /* Host */);
322
- }
323
- get reqHeaderObj() {
324
- const h = new ReqHeader();
325
- Object.entries(this.req.headers).forEach(([k, v]) => {
326
- h[k] = v;
327
- });
328
- return h;
329
- }
330
- reqHeaderFirst(key, defaultValue) {
331
- const header = this.req.headers[key.toLowerCase()];
332
- if (header && Array.isArray(header)) {
333
- return header[0] ?? defaultValue;
334
- } else {
335
- return header ?? defaultValue;
336
- }
337
- }
338
- reqAuthorizationHeader() {
339
- return this.reqHeaderFirst("Authorization" /* Authorization */);
340
- }
341
- reqRefreshTokenHeader() {
342
- return this.reqHeaderFirst("Authorization" /* Authorization */);
343
- }
344
- // eslint-disable-next-line no-dupe-class-members
345
- resStatusCode(code) {
346
- if (code) {
347
- this.res.statusCode = code;
348
- return new RequestResponseChain(this.req, this.res, this.config, this.res.statusCode);
349
- } else {
350
- return this.res.statusCode;
351
- }
352
- }
353
- resHeader(key) {
354
- return this.res.getHeader(key.toLowerCase());
355
- }
356
- resHeaderFirst(key, defaultValue) {
357
- const header = this.res.getHeader(key.toLowerCase());
358
- if (header && Array.isArray(header)) {
359
- return header[0] ?? defaultValue;
360
- } else {
361
- return header ?? defaultValue;
362
- }
363
- }
364
- async reqSession() {
365
- if (this.config.sessionManager) {
366
- return (await this.config.sessionManager.session(this)).dataSet.data;
367
- } else {
368
- return Promise.reject(new Error("Not SessionManager"));
369
- }
370
- }
371
- reqSessionSet(key, value) {
372
- this.reqSession[key] = value;
373
- }
374
- reqSessionGet(key) {
375
- const session = this.reqSession;
376
- if (session) {
377
- return session[key];
378
- }
379
- }
380
- resSetStatusCode(statusCode) {
381
- this.res.statusCode = statusCode;
382
- return this.createRequestResponseChain(this.res.statusCode);
383
- }
384
- // resEnd() {
385
- // this.res.end();
386
- // }
387
- // eslint-disable-next-line no-undef
388
- resWrite(chunk, encoding = "utf8") {
389
- this.resWriteChunk = chunk;
390
- return this.createRequestResponseChain(this.resWriteChunk);
391
- }
392
- // eslint-disable-next-line no-undef
393
- resWriteJson(chunk, encoding = "utf8") {
394
- return this.resWrite(JSON.stringify(chunk), encoding);
395
- }
396
- resSetHeader(key, value) {
397
- return this.createRequestResponseChain(this.res.setHeader(key.toLowerCase(), value));
398
- }
399
- resAddHeader(key, value) {
400
- const existingValue = this.res.getHeader(key.toLowerCase());
401
- const newValue = Array.isArray(existingValue) ? existingValue.concat(value) : existingValue ? [existingValue.toString(), ...[].concat(value)] : value;
402
- return this.createRequestResponseChain(this.res.setHeader(key.toLowerCase(), newValue));
403
- }
404
- resSetHeaders(headers) {
405
- Object.entries(headers).forEach(([key, value]) => this.resSetHeader(key, value));
406
- return this.createRequestResponseChain();
407
- }
408
- resAddHeaders(headers) {
409
- Object.entries(headers).forEach(([key, value]) => this.resAddHeader(key, value));
410
- return this.createRequestResponseChain();
411
- }
412
- // 마지막 종료될때 타는거.
413
- async resEndChunk() {
414
- const encoding = this.reqHeaderFirst("Accept-Encoding" /* AcceptEncoding */);
415
- let data = this.resWriteChunk;
416
- if (encoding?.includes("gzip")) {
417
- data = await gzip(data);
418
- this.resSetHeader("Content-Encoding" /* ContentEncoding */, "gzip");
419
- }
420
- this.res.end(data);
421
- }
422
- async resEnd(chunk) {
423
- this.resWriteChunk = chunk ?? this.resWriteChunk;
424
- if (this.req.readable) {
425
- await this.reqBodyData();
426
- await this.resEndChunk();
427
- } else {
428
- await this.resEndChunk();
429
- }
430
- }
431
- // writeContinue(callback?: () => void) {
432
- // this.res.writeContinue(callback);
433
- // return new RequestResponseChain(this.req, this.res);
434
- // }
435
- // reqWrite(chunk?: any) {
436
- // this.resWriteChunk = chunk;
437
- // // this.res.write(chunk);
438
- // return this.createRequestResponseChain();
439
- // }
440
- resWriteHead(statusCode, headers) {
441
- return this.createRequestResponseChain(this.res.writeHead(statusCode, headers));
442
- }
443
- resWriteHeadEnd(statusCode, headers) {
444
- this.createRequestResponseChain(this.res.writeHead(statusCode, headers));
445
- this.res.end();
446
- }
447
- resIsDone() {
448
- return this.res.finished || this.res.writableEnded || this.res.headersSent;
449
- }
450
- createRequestResponseChain(data) {
451
- const requestResponseChain = new RequestResponseChain(this.req, this.res, this.config, data);
452
- requestResponseChain.resWriteChunk = this.resWriteChunk;
453
- requestResponseChain.reqBodyChunk = this.reqBodyChunk;
454
- return requestResponseChain;
455
- }
456
- // res.on("readable", () => {
457
- // console.log('readable???')
458
- // });
459
- // res.on('complete', function (details) {
460
- // var size = details.req.bytes;
461
- // console.log('complete-->', size)
462
- // });
463
- // res.on('finish', function() {
464
- // console.log('finish??');
465
- // });
466
- // res.on('end', () => {
467
- // console.log('end--?')
468
- // });
469
- };
470
- var RequestResponseChain = class extends RequestResponse {
471
- constructor(req, res, config, result) {
472
- super(req, res, config);
473
- this.result = result;
474
- }
475
- };
476
-
477
- // src/models/datas/Resource.ts
478
- var Resource = class {
4
+ import { RequestResponse } from "../RequestResponse.js";
5
+ import { HttpStatus } from "../../codes/HttpStatus.js";
6
+ import { HttpHeaders } from "../../codes/HttpHeaders.js";
7
+ class Resource {
479
8
  constructor(path2, rootPath = process.cwd()) {
480
9
  this.path = path2;
481
10
  this.rootPath = rootPath;
@@ -505,11 +34,11 @@ var Resource = class {
505
34
  return promise;
506
35
  }
507
36
  async write(rr) {
508
- rr.resStatusCode(200 /* Ok */);
509
- rr.resSetHeader("Content-Type" /* ContentType */, this.conTentType);
37
+ rr.resStatusCode(HttpStatus.Ok);
38
+ rr.resSetHeader(HttpHeaders.ContentType, this.conTentType);
510
39
  await rr.resEnd(fs.readFileSync(this.absolutePath));
511
40
  }
512
- };
41
+ }
513
42
  export {
514
43
  Resource
515
44
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/models/datas/Resource.ts", "../../../../src/models/RequestResponse.ts", "../../../../src/models/datas/body/ReqFormUrlBody.ts", "../../../../src/models/datas/body/ReqJsonBody.ts", "../../../../src/models/datas/ReqHeader.ts"],
4
- "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport mime from 'mime-types';\nimport { RequestResponse } from '../RequestResponse';\nimport { HttpStatus } from '../../codes/HttpStatus';\nimport { HttpHeaders } from '../../codes/HttpHeaders';\n\nexport class Resource {\n constructor(public path: string | RequestResponse | URL, public rootPath = process.cwd()) {\n }\n\n get absolutePath(): string {\n if (this.path instanceof RequestResponse) {\n return path.join(this.rootPath, this.path.reqUrlObj().pathname);\n } else if (this.path instanceof URL) {\n return path.join(this.rootPath, this.path.pathname);\n } else {\n return path.join(this.rootPath, this.path);\n }\n }\n\n get conTentType(): string {\n return mime.lookup(this.absolutePath).toString();\n }\n\n get data(): Promise<string> {\n const promise = new Promise<string>((resolve, reject) => {\n fs.readFile('', (error, fileBuffer) => {\n if (error) {\n reject(error);\n }\n const fileContent = fileBuffer.toString();\n resolve(fileContent);\n });\n });\n return promise;\n }\n\n async write(rr: RequestResponse) {\n rr.resStatusCode(HttpStatus.Ok);\n rr.resSetHeader(HttpHeaders.ContentType, this.conTentType);\n await rr.resEnd(fs.readFileSync(this.absolutePath));\n }\n}", "import { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, ServerResponse } from 'http';\nimport { HttpHeaders } from '../codes/HttpHeaders';\nimport { Mimes } from '../codes/Mimes';\nimport { Intent } from '@dooboostore/simple-boot/intent/Intent';\nimport { URL, URLSearchParams } from 'url';\nimport { Buffer } from 'buffer';\nimport { MultipartData } from './datas/MultipartData';\nimport { ReqFormUrlBody } from './datas/body/ReqFormUrlBody';\nimport { ReqJsonBody } from './datas/body/ReqJsonBody';\nimport { ReqHeader } from './datas/ReqHeader';\nimport { ReqMultipartFormBody } from './datas/body/ReqMultipartFormBody';\nimport { HttpStatus } from '../codes/HttpStatus';\nimport { gzip } from 'node-gzip';\nimport { SessionManager } from '../session/SessionManager';\nimport { HttpServerOption } from '../option/HttpServerOption';\nimport * as fs from 'fs';\nimport * as os from 'os';\nimport { RandomUtils } from '@dooboostore/core/random/RandomUtils';\nimport { FileUtils } from '@dooboostore/core-node/file/FileUtils';\nimport { ConvertUtils as CoreConvertUtils} from '@dooboostore/core/convert/ConvertUtils';\nimport { ConvertUtils } from '@dooboostore/core-node/convert/ConvertUtils';\n// https://masteringjs.io/tutorials/node/http-request\ntype Config = { sessionManager?: SessionManager, option: HttpServerOption };\n\n// https://nodejs.org/ko/docs/guides/anatomy-of-an-http-transaction/\nexport class RequestResponse {\n protected resWriteChunk: string | Buffer | undefined;\n protected reqBodyChunk?: Buffer;\n protected req: IncomingMessage;\n protected res: ServerResponse;\n protected config: Config;\n // protected sessionManager?: SessionManager;\n\n // constructor(req: IncomingMessage, res: ServerResponse);\n // constructor(req: RequestResponse);\n // constructor(req: IncomingMessage, res: ServerResponse, sessionManager?: SessionManager);\n // constructor(req: IncomingMessage | RequestResponse, res?: ServerResponse, sessionManager?: SessionManager) {\n // // this.req = req;\n // // this.res = res;\n // if (req instanceof RequestResponse) {\n // this.req = req.req;\n // this.res = req.res;\n // this.sessionManager = req.sessionManager;\n // } else {\n // this.req = req;\n // this.res = res!;\n // this.sessionManager = sessionManager;\n // }\n // }\n constructor(req: IncomingMessage | RequestResponse, res: ServerResponse, config: Config) {\n // this.req = req;\n // this.res = res;\n if (req instanceof RequestResponse) {\n this.req = req.req;\n this.res = req.res;\n this.config = config;\n } else {\n this.req = req;\n this.res = res!;\n this.config = config;\n }\n }\n\n get reqSocket() {\n return this.req.socket;\n }\n\n get reqCookieMap() {\n let cookies = this.reqHeader(HttpHeaders.Cookie) ?? '';\n if (Array.isArray(cookies)) {\n cookies = cookies.join(';')\n }\n\n const map = new Map<string, string>();\n cookies.split(';').map(it => it.trim().split('=')).forEach(it => {\n map.set(it[0], it[1]);\n });\n return map;\n }\n\n reqCookieGet(key: string) {\n return this.reqCookieMap.get(key);\n }\n\n get reqRemoteAddress(): string | undefined {\n const ipHeader = this.req.headers['x-forwarded-for'];\n let ip = this.req.socket.remoteAddress;\n if (Array.isArray(ipHeader)) {\n ip = ipHeader.join(',').split(',').shift();\n } else if (typeof ipHeader === 'string') {\n ip = ipHeader.split(',').shift();\n }\n return ip;\n }\n\n get reqUrlObject(): URL {\n return new URL(this.reqUrl, `${this.reqSocket ? 'https://' : 'http'}${this.reqHost ?? 'localhost'}`);\n }\n\n get reqUrlPathName(): string {\n // parse(rr.reqUrl ?? '', true)\n return this.reqUrlObj().pathname ?? '';\n }\n\n get reqUrl(): string {\n return this.req.url ?? '';\n }\n\n reqUrlObj(config?:{scheme?: string, host?: string}): URL {\n return new URL(`${config?.scheme??'http' }://${config?.host ? config?.host : (this.reqHeaderFirst(HttpHeaders.Host) ?? 'localhost')}${this.req.url ?? ''}`);\n }\n\n get reqUrlSearchParamTuples(): [string, string][] {\n return Array.from(this.reqUrlObj().searchParams as any);\n }\n\n get reqUrlSearchParams(): URLSearchParams {\n return this.reqUrlObj().searchParams;\n }\n\n get reqUrlSearchParamsObj(): {[p: string]: string | string[]} {\n const entries = this.reqUrlObj().searchParams;\n return CoreConvertUtils.toObject(entries);\n // return obj;\n // return Object.fromEntries(entries as any)\n }\n\n get reqPathSearchParamUrl(): string {\n const reqUrlObj = this.reqUrlObj();\n return reqUrlObj.pathname + (reqUrlObj.searchParams.toString() ? '?' + reqUrlObj.searchParams.toString() : '')\n }\n\n get reqReadable() {\n return this.req.readable;\n }\n\n get reqIntent() {\n return new Intent(this.reqPathSearchParamUrl);\n }\n\n reqHasContentTypeHeader(mime: Mimes | string): boolean {\n return (this.reqHeaderFirst(HttpHeaders.ContentType) ?? '').toLowerCase().indexOf(mime.toLocaleLowerCase()) > -1;\n }\n\n reqHasAcceptHeader(mime: Mimes | string): boolean {\n return (this.reqHeaderFirst(HttpHeaders.Accept) ?? '').toLowerCase().indexOf(mime.toLocaleLowerCase()) > -1;\n }\n\n reqBodyData(): Promise<Buffer> {\n return new Promise<Buffer>((resolve, reject) => {\n if (this.reqReadable) {\n const data: Uint8Array[] = [];\n this.req.on('data', (chunk) => data.push(chunk));\n this.req.on('error', err => reject(err));\n this.req.on('end', () => {\n this.reqBodyChunk = Buffer.concat(data);\n resolve(this.reqBodyChunk);\n });\n } else {\n resolve(this.reqBodyChunk ?? Buffer.alloc(0));\n }\n });\n }\n \n resBodyData(): string | Buffer | undefined{\n return this.resWriteChunk;\n }\n\n\n\n async reqBodyMultipartFormDataObject<T>(): Promise<T> {\n const m = await this.reqBodyMultipartFormData();\n const formData = {} as any;\n\n for (const it of m) {\n if (it.isFile) {\n formData[it.name] = await FileUtils.writeFile(it.value, {originalName: it.filename });\n } else {\n const target = formData[it.name];\n if (Array.isArray(target)) {\n target.push(it.value);\n } else if (typeof target === 'string') {\n formData[it.name] = [target, it.value]\n } else {\n formData[it.name] = it.value;\n }\n }\n };\n return formData;\n }\n\n reqBodyMultipartFormData(): Promise<MultipartData[]> {\n return new Promise((resolve, reject) => {\n const contentTypeHeader = this.req.headers['content-type'];\n if (!contentTypeHeader || !contentTypeHeader.startsWith('multipart/form-data')) {\n return reject(new Error('Invalid Content-Type. Expected multipart/form-data.'));\n }\n\n const boundaryMatch = contentTypeHeader.match(/boundary=(?:\"([^\"]+)\"|([^;]+))/i);\n if (!boundaryMatch) {\n return reject(new Error('Boundary not found in Content-Type header.'));\n }\n const boundary = boundaryMatch[1] || boundaryMatch[2]; // \uB530\uC634\uD45C \uC720\uBB34 \uCC98\uB9AC\n if (!boundary) {\n return reject(new Error('Failed to extract boundary.'));\n }\n\n const boundaryBuffer = Buffer.from(`--${boundary}`);\n const crlfBuffer = Buffer.from('\\r\\n');\n const doubleCrlfBuffer = Buffer.from('\\r\\n\\r\\n'); // \uD5E4\uB354\uC640 \uBC14\uB514 \uAD6C\uBD84\uC790\n\n const chunks: Buffer[] = [];\n let totalLength = 0;\n\n this.req.on('data', (chunk: Buffer) => {\n chunks.push(chunk);\n totalLength += chunk.length;\n });\n\n this.req.on('error', (err) => {\n reject(err);\n });\n\n this.req.on('end', () => {\n if (totalLength === 0) {\n return resolve([]); // \uBE48 \uC694\uCCAD \uCC98\uB9AC\n }\n\n const fullBuffer = Buffer.concat(chunks, totalLength);\n const parsedParts: MultipartData[] = [];\n let currentPosition = 0;\n\n // \uCCAB \uBC88\uC9F8 boundary \uCC3E\uAE30 (\uBCF4\uD1B5 \uC2DC\uC791 \uBD80\uBD84\uC5D0 \uC788\uC74C)\n let boundaryStartIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);\n if (boundaryStartIndex === -1) {\n return reject(new Error('Initial boundary not found.'));\n }\n // boundary \uBC14\uB85C \uB2E4\uC74C \\r\\n \uAC74\uB108\uB6F0\uAE30\n currentPosition = boundaryStartIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n\n\n while (currentPosition < fullBuffer.length) {\n // \uB2E4\uC74C boundary \uCC3E\uAE30 (\uD30C\uD2B8\uC758 \uB05D)\n const nextBoundaryIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);\n if (nextBoundaryIndex === -1) {\n // \uB9C8\uC9C0\uB9C9 boundary (--)\uC778\uC9C0 \uD655\uC778 \uD544\uC694\uD558\uB098, \uC5EC\uAE30\uC11C\uB294 \uB2E8\uC21C\uD558\uAC8C \uCC98\uB9AC\n // console.warn('Next boundary not found, assuming end of data or malformed.');\n break;\n }\n\n // \uD604\uC7AC \uD30C\uD2B8 \uB370\uC774\uD130 \uCD94\uCD9C (boundary \uC774\uC804\uAE4C\uC9C0)\n // \uC2E4\uC81C \uD30C\uD2B8 \uB370\uC774\uD130\uB294 \uB2E4\uC74C boundary \uBC14\uB85C \uC55E\uC758 \\r\\n\uC744 \uC81C\uC678\uD574\uC57C \uD568\n let partEndIndex = nextBoundaryIndex;\n if (partEndIndex > crlfBuffer.length && fullBuffer.slice(partEndIndex - crlfBuffer.length, partEndIndex).equals(crlfBuffer)) {\n partEndIndex -= crlfBuffer.length;\n }\n const partBuffer = fullBuffer.slice(currentPosition, partEndIndex);\n\n // \uD5E4\uB354\uC640 \uBC14\uB514 \uBD84\uB9AC\n const headerBodySeparatorIndex = partBuffer.indexOf(doubleCrlfBuffer);\n if (headerBodySeparatorIndex === -1) {\n console.warn('Skipping malformed part: no header/body separator found.');\n currentPosition = nextBoundaryIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === '--') break; // \uB9C8\uC9C0\uB9C9 boundary\n continue;\n }\n\n const headerBuffer = partBuffer.slice(0, headerBodySeparatorIndex);\n const bodyBuffer = partBuffer.slice(headerBodySeparatorIndex + doubleCrlfBuffer.length);\n const headersStr = headerBuffer.toString('utf-8'); // \uD5E4\uB354\uB294 \uBCF4\uD1B5 ASCII/UTF-8\n\n // \uD5E4\uB354 \uD30C\uC2F1\n const headers: { [key: string]: string } = {};\n headersStr.split('\\r\\n').forEach(line => {\n const colonIndex = line.indexOf(':');\n if (colonIndex > 0) {\n const key = line.substring(0, colonIndex).trim().toLowerCase();\n const value = line.substring(colonIndex + 1).trim();\n headers[key] = value;\n }\n });\n\n const contentDisposition = headers['content-disposition'];\n if (!contentDisposition) {\n console.warn('Skipping part: no Content-Disposition header.');\n currentPosition = nextBoundaryIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === '--') break;\n continue;\n }\n\n const nameMatch = contentDisposition.match(/name=\"([^\"]+)\"/i);\n const filenameMatch = contentDisposition.match(/filename=\"([^\"]+)\"/i);\n\n const name = nameMatch ? nameMatch[1] : null;\n const filename = filenameMatch ? filenameMatch[1] : null;\n const contentType = headers['content-type'] || null;\n\n if (name) {\n\n const isFile = !!filename;\n // @ts-ignore\n const multipartData:MultipartData = {\n name:name,\n isFile: isFile, // filename\uC774 \uC788\uC73C\uBA74 \uD30C\uC77C\uB85C \uAC04\uC8FC\n filename: filename,\n contentType: contentType,\n value: isFile ? bodyBuffer: bodyBuffer.toString('utf-8'),\n }\n parsedParts.push(multipartData);\n } else {\n console.warn(\"Skipping part: 'name' not found in Content-Disposition.\");\n }\n\n // \uB2E4\uC74C \uD30C\uD2B8 \uC2DC\uC791 \uC704\uCE58\uB85C \uC774\uB3D9\n currentPosition = nextBoundaryIndex + boundaryBuffer.length;\n // boundary \uBC14\uB85C \uB2E4\uC74C \\r\\n \uAC74\uB108\uB6F0\uAE30\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n\n // \uB9C8\uC9C0\uB9C9 boundary (--)\uC778\uC9C0 \uD655\uC778\uD558\uACE0 \uB8E8\uD504 \uC885\uB8CC\n if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === '--') {\n break;\n }\n }\n resolve(parsedParts);\n });\n })\n // const form = formidable({});\n // return new Promise((resolve, reject) => {\n // form.parse(this.req, (err, fields, files) => {\n // if (err) {\n // reject(err);\n // return;\n // }\n //\n // console.log('----', files)\n // // this.res.set('Content-Type', 'application/json');\n // // ctx.status = 200;\n // // ctx.state = { fields, files };\n // // ctx.body = JSON.stringify(ctx.state, null, 2);\n // resolve(' ' as any);\n // });\n // });\n\n // return new Promise<MultipartData<any>[]>((resolve, reject) => {\n //\n //\n // const contentType = this.req.headers['content-type'];\n // const boundary = contentType.split('boundary=')[1];\n //\n // let body: Uint8Array[] = [];\n // this.req.on('data', chunk => body.push(chunk));\n // this.req.on('end', async () => {\n // const buffer = Buffer.concat(body);\n // // Boundary\uB85C \uD30C\uD2B8 \uBD84\uB9AC\n // const parts = buffer.toString().split(`--${boundary}`).slice(1, -1);\n // let jsonData = {};\n // let fileData = null;\n //\n // for (let part of parts) {\n // const [headerPart, ...bodyParts] = part.split('\\r\\n\\r\\n');\n // const headers = headerPart.split('\\r\\n').reduce((acc, line) => {\n // const [key, value] = line.split(': ').map(s => s.trim().toLowerCase());\n // if (key) acc[key] = value;\n // return acc;\n // }, {});\n //\n // const content = bodyParts.join('\\r\\n\\r\\n').trim();\n // const disposition = headers['content-disposition'];\n // const name = disposition?.match(/name=\"([^\"]+)\"/)?.[1];\n // const filename = disposition?.match(/filename=\"([^\"]+)\"/)?.[1];\n //\n // if (filename) {\n // // \uD30C\uC77C \uB370\uC774\uD130 (Blob)\n // fileData = { filename, contentType: headers['content-type'], data: Buffer.from(content, 'binary') };\n // } else if (name) {\n // // \uD14D\uC2A4\uD2B8 \uB370\uC774\uD130\n // if (name === 'metadata') jsonData = JSON.parse(content);\n // }\n // }\n //\n // // \uD30C\uC77C \uC800\uC7A5\n // if (fileData) {\n //\n //\n //\n //\n // const uploadPath = this.config.option.fileUploadTempPath || os.tmpdir();\n // fs.mkdirSync(uploadPath, { recursive: true }); // \uD3F4\uB354\uAC00 \uC5C6\uC73C\uBA74 \uC0DD\uC131\n // const saveTempPath = `${uploadPath}/${RandomUtils.uuid4()}${fileData.filename}`;\n // console.log('saveTempPathsaveTempPath', saveTempPath)\n // await fs.promises.writeFile(saveTempPath, fileData.data);\n // this.res.writeHead(200, { 'Content-Type': 'application/json' });\n // this.res.end(JSON.stringify({ message: '\uC5C5\uB85C\uB4DC \uC131\uACF5', jsonData, filename: fileData?.filename }));\n // // const uploadPath = this.config.option.fileUploadTempPath ;\n // // fs.mkdirSync(uploadPath, { recursive: true }); // \uD3F4\uB354\uAC00 \uC5C6\uC73C\uBA74 \uC0DD\uC131\n // // await fs.writeFile(`${uploadPath}/${fileData.filename}`, fileData.data);\n // }\n // });\n // });\n }\n\n async reqBodyStringData(): Promise<string> {\n const data = (await this.reqBodyData()).toString()\n return data;\n }\n\n async reqBodyJsonData<T>(): Promise<T> {\n return JSON.parse(await this.reqBodyStringData());\n }\n\n async reqBodyFormUrlData<T>(): Promise<T> {\n const data = (await this.reqBodyStringData())\n const formData = {} as any;\n Array.from(new URLSearchParams(data).entries()).forEach(([k, v]) => {\n const target = formData[k];\n if (Array.isArray(target)) {\n target.push(v);\n } else if (typeof target === 'string') {\n formData[k] = [target, v]\n } else {\n formData[k] = v;\n }\n });\n return formData;\n }\n\n async reqBodyReqFormUrlBody() {\n const data = await this.reqBodyFormUrlData()\n return Object.assign(new ReqFormUrlBody(), data);\n }\n\n async reqBodyReqJsonBody(): Promise<ReqJsonBody> {\n const data = (await this.reqBodyStringData());\n return Object.assign(new ReqJsonBody(), data ? JSON.parse(data) : {})\n }\n\n // reqBodyReqMultipartFormBody(): Promise<ReqMultipartFormBody> {\n // return this.reqBodyMultipartFormData().then(it => new ReqMultipartFormBody(it))\n // }\n\n resBodyJsonData<T>(): (T | null) {\n const data = ConvertUtils.toString(this.resBodyData());\n return data ? JSON.parse(data) : null;\n }\n\n resBodyStringData() {\n return ConvertUtils.toString(this.resBodyData());\n }\n\n reqMethod() {\n return this.req.method?.toUpperCase();\n }\n\n reqHeader(key: HttpHeaders | string) {\n return this.req.headers[key.toLowerCase()];\n }\n\n get reqHost() {\n return this.reqHeaderFirst(HttpHeaders.Host)\n }\n\n get reqHeaderObj(): ReqHeader {\n const h = new ReqHeader();\n Object.entries(this.req.headers).forEach(([k, v]) => {\n h[k] = v;\n });\n return h;\n }\n\n reqHeaderFirst(key: HttpHeaders | string, defaultValue?: string) {\n const header = this.req.headers[key.toLowerCase()];\n if (header && Array.isArray(header)) {\n return header[0] ?? defaultValue;\n } else {\n return (header as string) ?? defaultValue;\n }\n }\n\n public reqAuthorizationHeader() {\n return this.reqHeaderFirst(HttpHeaders.Authorization);\n }\n\n reqRefreshTokenHeader() {\n return this.reqHeaderFirst(HttpHeaders.Authorization);\n }\n\n resStatusCode(code?: undefined): number;\n // eslint-disable-next-line no-dupe-class-members\n resStatusCode(code: number | HttpStatus): RequestResponseChain<number>;\n // eslint-disable-next-line no-dupe-class-members\n resStatusCode(code: number | undefined | HttpStatus): number | RequestResponseChain<number> {\n if (code) {\n this.res.statusCode = code;\n return new RequestResponseChain<number>(this.req, this.res, this.config, this.res.statusCode);\n } else {\n return this.res.statusCode;\n }\n }\n\n resHeader(key: HttpHeaders | string) {\n return this.res.getHeader(key.toLowerCase());\n }\n\n resHeaderFirst(key: HttpHeaders | string, defaultValue?: string) {\n const header = this.res.getHeader(key.toLowerCase());\n if (header && Array.isArray(header)) {\n return header[0] ?? defaultValue;\n } else {\n return header ?? defaultValue;\n }\n }\n\n async reqSession(): Promise<{ [key: string]: any }> {\n if (this.config.sessionManager) {\n return (await this.config.sessionManager.session(this)).dataSet.data;\n } else {\n return Promise.reject(new Error('Not SessionManager'));\n }\n }\n\n reqSessionSet(key: string, value: any): void {\n (this.reqSession as any)[key] = value;\n }\n\n reqSessionGet<T = any>(key: string): T | undefined {\n const session = this.reqSession as any;\n if (session) {\n return session[key] as T;\n }\n }\n\n resSetStatusCode(statusCode: number) {\n this.res.statusCode = statusCode;\n return this.createRequestResponseChain(this.res.statusCode);\n }\n\n // resEnd() {\n // this.res.end();\n // }\n\n // eslint-disable-next-line no-undef\n resWrite(chunk: string | Buffer | any, encoding: BufferEncoding = 'utf8') {\n this.resWriteChunk = chunk;\n return this.createRequestResponseChain(this.resWriteChunk);\n }\n\n // eslint-disable-next-line no-undef\n resWriteJson(chunk: any, encoding: BufferEncoding = 'utf8') {\n return this.resWrite(JSON.stringify(chunk), encoding);\n }\n\n resSetHeader(key: HttpHeaders | string, value: string | string[]) {\n return this.createRequestResponseChain(this.res.setHeader(key.toLowerCase(), value));\n }\n\n resAddHeader(key: HttpHeaders | string, value: string | string[]) {\n const existingValue = this.res.getHeader(key.toLowerCase());\n const newValue = Array.isArray(existingValue)\n ? existingValue.concat(value)\n : existingValue\n ? [existingValue.toString(), ...[].concat(value)]\n : value;\n return this.createRequestResponseChain(this.res.setHeader(key.toLowerCase(), newValue));\n }\n\n resSetHeaders(headers: { [key: string]: string | string[] }) {\n Object.entries(headers).forEach(([key, value]) => this.resSetHeader(key, value));\n return this.createRequestResponseChain();\n }\n\n resAddHeaders(headers: { [key: string]: string | string[] }) {\n Object.entries(headers).forEach(([key, value]) => this.resAddHeader(key, value));\n return this.createRequestResponseChain();\n }\n\n // \uB9C8\uC9C0\uB9C9 \uC885\uB8CC\uB420\uB54C \uD0C0\uB294\uAC70.\n private async resEndChunk() {\n const encoding = this.reqHeaderFirst(HttpHeaders.AcceptEncoding);\n let data = this.resWriteChunk;\n if (encoding?.includes('gzip')) {\n data = await gzip(data);\n this.resSetHeader(HttpHeaders.ContentEncoding, 'gzip');\n }\n this.res.end(data);\n }\n\n async resEnd(chunk?: string | Buffer) {\n this.resWriteChunk = chunk ?? this.resWriteChunk;\n if (this.req.readable) {\n await this.reqBodyData();\n await this.resEndChunk();\n } else {\n await this.resEndChunk();\n }\n }\n\n // writeContinue(callback?: () => void) {\n // this.res.writeContinue(callback);\n // return new RequestResponseChain(this.req, this.res);\n // }\n\n // reqWrite(chunk?: any) {\n // this.resWriteChunk = chunk;\n // // this.res.write(chunk);\n // return this.createRequestResponseChain();\n // }\n\n resWriteHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | { [key: string]: string | string[] }) {\n return this.createRequestResponseChain(this.res.writeHead(statusCode, headers));\n }\n resWriteHeadEnd(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | { [key: string]: string | string[] }) {\n this.createRequestResponseChain(this.res.writeHead(statusCode, headers));\n this.res.end();\n }\n\n resIsDone() {\n return this.res.finished || this.res.writableEnded || this.res.headersSent;\n // return new RequestResponseChain(this.req, this.res, this.res.finished || this.res.writableEnded);\n }\n\n createRequestResponseChain<T = any>(data?: T) {\n const requestResponseChain = new RequestResponseChain(this.req, this.res, this.config, data);\n requestResponseChain.resWriteChunk = this.resWriteChunk;\n requestResponseChain.reqBodyChunk = this.reqBodyChunk;\n return requestResponseChain;\n }\n\n // res.on(\"readable\", () => {\n // console.log('readable???')\n // });\n // res.on('complete', function (details) {\n // var size = details.req.bytes;\n // console.log('complete-->', size)\n // });\n // res.on('finish', function() {\n // console.log('finish??');\n // });\n // res.on('end', () => {\n // console.log('end--?')\n // });\n}\n\nexport class RequestResponseChain<T> extends RequestResponse {\n constructor(req: IncomingMessage, res: ServerResponse, config: Config, public result?: T) {\n super(req, res, config);\n }\n}", "export class ReqFormUrlBody {\n [key: string]: string | string[]\n}", "export class ReqJsonBody {\n [key: string]: any\n}", "import {IncomingHttpHeaders} from 'http';\n\nexport class ReqHeader implements IncomingHttpHeaders {\n [key: string]: string | string[] | undefined;\n\n 'accept-language': string | undefined;\n 'accept-patch': string | undefined;\n 'accept-ranges': string | undefined;\n 'access-control-allow-credentials': string | undefined;\n 'access-control-allow-headers': string | undefined;\n 'access-control-allow-methods': string | undefined;\n 'access-control-allow-origin': string | undefined;\n 'access-control-expose-headers': string | undefined;\n 'access-control-max-age': string | undefined;\n 'access-control-request-headers': string | undefined;\n 'access-control-request-method': string | undefined;\n 'alt-svc': string | undefined;\n 'cache-control': string | undefined;\n 'content-disposition': string | undefined;\n 'content-encoding': string | undefined;\n 'content-language': string | undefined;\n 'content-length': string | undefined;\n 'content-location': string | undefined;\n 'content-range': string | undefined;\n 'content-type': string | undefined;\n 'if-match': string | undefined;\n 'if-modified-since': string | undefined;\n 'if-none-match': string | undefined;\n 'if-unmodified-since': string | undefined;\n 'last-modified': string | undefined;\n 'proxy-authenticate': string | undefined;\n 'proxy-authorization': string | undefined;\n 'public-key-pins': string | undefined;\n 'retry-after': string | undefined;\n 'sec-websocket-accept': string | undefined;\n 'sec-websocket-extensions': string | undefined;\n 'sec-websocket-key': string | undefined;\n 'sec-websocket-protocol': string | undefined;\n 'sec-websocket-version': string | undefined;\n 'set-cookie': string[] | undefined;\n 'strict-transport-security': string | undefined;\n 'transfer-encoding': string | undefined;\n 'user-agent': string | undefined;\n 'www-authenticate': string | undefined;\n accept: string | undefined;\n age: string | undefined;\n allow: string | undefined;\n authorization: string | undefined;\n connection: string | undefined;\n cookie: string | undefined;\n date: string | undefined;\n etag: string | undefined;\n expect: string | undefined;\n expires: string | undefined;\n forwarded: string | undefined;\n from: string | undefined;\n host: string | undefined;\n location: string | undefined;\n origin: string | undefined;\n pragma: string | undefined;\n range: string | undefined;\n referer: string | undefined;\n tk: string | undefined;\n trailer: string | undefined;\n upgrade: string | undefined;\n vary: string | undefined;\n via: string | undefined;\n warning: string | undefined;\n}"],
5
- "mappings": ";AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,UAAU;;;ACCjB,SAAS,cAAc;AACvB,SAAS,OAAAA,MAAK,uBAAuB;AACrC,SAAS,cAAc;;;ACLhB,IAAM,iBAAN,MAAqB;AAE5B;;;ACFO,IAAM,cAAN,MAAkB;AAEzB;;;ACAO,IAAM,YAAN,MAA+C;AAkEtD;;;AHxDA,SAAS,YAAY;AAMrB,SAAS,iBAAiB;AAC1B,SAAS,gBAAgB,wBAAuB;AAChD,SAAS,oBAAoB;AAKtB,IAAM,kBAAN,MAAM,iBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwB3B,YAAY,KAAwC,KAAqB,QAAgB;AAGvF,QAAI,eAAe,kBAAiB;AAClC,WAAK,MAAM,IAAI;AACf,WAAK,MAAM,IAAI;AACf,WAAK,SAAS;AAAA,IAChB,OAAO;AACL,WAAK,MAAM;AACX,WAAK,MAAM;AACX,WAAK,SAAS;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA,EAEA,IAAI,eAAe;AACjB,QAAI,UAAU,KAAK,+BAA4B,KAAK;AACpD,QAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,gBAAU,QAAQ,KAAK,GAAG;AAAA,IAC5B;AAEA,UAAM,MAAM,oBAAI,IAAoB;AACpC,YAAQ,MAAM,GAAG,EAAE,IAAI,QAAM,GAAG,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,QAAQ,QAAM;AAC/D,UAAI,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAAA,IACtB,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,KAAa;AACxB,WAAO,KAAK,aAAa,IAAI,GAAG;AAAA,EAClC;AAAA,EAEA,IAAI,mBAAuC;AACzC,UAAM,WAAW,KAAK,IAAI,QAAQ,iBAAiB;AACnD,QAAI,KAAK,KAAK,IAAI,OAAO;AACzB,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,WAAK,SAAS,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM;AAAA,IAC3C,WAAW,OAAO,aAAa,UAAU;AACvC,WAAK,SAAS,MAAM,GAAG,EAAE,MAAM;AAAA,IACjC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,eAAoB;AACtB,WAAO,IAAIC,KAAI,KAAK,QAAQ,GAAG,KAAK,YAAY,aAAa,MAAM,GAAG,KAAK,WAAW,WAAW,EAAE;AAAA,EACrG;AAAA,EAEA,IAAI,iBAAyB;AAE3B,WAAO,KAAK,UAAU,EAAE,YAAY;AAAA,EACtC;AAAA,EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,IAAI,OAAO;AAAA,EACzB;AAAA,EAEA,UAAU,QAA+C;AACvD,WAAO,IAAIA,KAAI,GAAG,QAAQ,UAAQ,MAAO,MAAM,QAAQ,OAAO,QAAQ,OAAQ,KAAK,gCAA+B,KAAK,WAAY,GAAG,KAAK,IAAI,OAAO,EAAE,EAAE;AAAA,EAC5J;AAAA,EAEA,IAAI,0BAA8C;AAChD,WAAO,MAAM,KAAK,KAAK,UAAU,EAAE,YAAmB;AAAA,EACxD;AAAA,EAEA,IAAI,qBAAsC;AACxC,WAAO,KAAK,UAAU,EAAE;AAAA,EAC1B;AAAA,EAEA,IAAI,wBAA0D;AAC5D,UAAM,UAAU,KAAK,UAAU,EAAE;AACjC,WAAO,iBAAiB,SAAS,OAAO;AAAA,EAG1C;AAAA,EAEA,IAAI,wBAAgC;AAClC,UAAM,YAAY,KAAK,UAAU;AACjC,WAAO,UAAU,YAAY,UAAU,aAAa,SAAS,IAAI,MAAM,UAAU,aAAa,SAAS,IAAI;AAAA,EAC7G;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,IAAI,OAAO,KAAK,qBAAqB;AAAA,EAC9C;AAAA,EAEA,wBAAwBC,OAA+B;AACrD,YAAQ,KAAK,+CAAsC,KAAK,IAAI,YAAY,EAAE,QAAQA,MAAK,kBAAkB,CAAC,IAAI;AAAA,EAChH;AAAA,EAEA,mBAAmBA,OAA+B;AAChD,YAAQ,KAAK,oCAAiC,KAAK,IAAI,YAAY,EAAE,QAAQA,MAAK,kBAAkB,CAAC,IAAI;AAAA,EAC3G;AAAA,EAEA,cAA+B;AAC7B,WAAO,IAAI,QAAgB,CAAC,SAAS,WAAW;AAC9C,UAAI,KAAK,aAAa;AACpB,cAAM,OAAqB,CAAC;AAC5B,aAAK,IAAI,GAAG,QAAQ,CAAC,UAAU,KAAK,KAAK,KAAK,CAAC;AAC/C,aAAK,IAAI,GAAG,SAAS,SAAO,OAAO,GAAG,CAAC;AACvC,aAAK,IAAI,GAAG,OAAO,MAAM;AACvB,eAAK,eAAe,OAAO,OAAO,IAAI;AACtC,kBAAQ,KAAK,YAAY;AAAA,QAC3B,CAAC;AAAA,MACH,OAAO;AACL,gBAAQ,KAAK,gBAAgB,OAAO,MAAM,CAAC,CAAC;AAAA,MAC9C;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,cAA0C;AACxC,WAAO,KAAK;AAAA,EACd;AAAA,EAIA,MAAM,iCAAgD;AACpD,UAAM,IAAI,MAAM,KAAK,yBAAyB;AAC9C,UAAM,WAAW,CAAC;AAElB,eAAW,MAAM,GAAG;AAClB,UAAI,GAAG,QAAQ;AACb,iBAAS,GAAG,IAAI,IAAI,MAAM,UAAU,UAAU,GAAG,OAAO,EAAC,cAAc,GAAG,SAAS,CAAC;AAAA,MACtF,OAAO;AACL,cAAM,SAAS,SAAS,GAAG,IAAI;AAC/B,YAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,iBAAO,KAAK,GAAG,KAAK;AAAA,QACtB,WAAW,OAAO,WAAW,UAAU;AACrC,mBAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK;AAAA,QACvC,OAAO;AACL,mBAAS,GAAG,IAAI,IAAI,GAAG;AAAA,QACzB;AAAA,MACF;AAAA,IACF;AAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,2BAAqD;AACnD,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAM,oBAAoB,KAAK,IAAI,QAAQ,cAAc;AACzD,UAAI,CAAC,qBAAqB,CAAC,kBAAkB,WAAW,qBAAqB,GAAG;AAC9E,eAAO,OAAO,IAAI,MAAM,qDAAqD,CAAC;AAAA,MAChF;AAEA,YAAM,gBAAgB,kBAAkB,MAAM,iCAAiC;AAC/E,UAAI,CAAC,eAAe;AAClB,eAAO,OAAO,IAAI,MAAM,4CAA4C,CAAC;AAAA,MACvE;AACA,YAAM,WAAW,cAAc,CAAC,KAAK,cAAc,CAAC;AACpD,UAAI,CAAC,UAAU;AACb,eAAO,OAAO,IAAI,MAAM,6BAA6B,CAAC;AAAA,MACxD;AAEA,YAAM,iBAAiB,OAAO,KAAK,KAAK,QAAQ,EAAE;AAClD,YAAM,aAAa,OAAO,KAAK,MAAM;AACrC,YAAM,mBAAmB,OAAO,KAAK,UAAU;AAE/C,YAAM,SAAmB,CAAC;AAC1B,UAAI,cAAc;AAElB,WAAK,IAAI,GAAG,QAAQ,CAAC,UAAkB;AACrC,eAAO,KAAK,KAAK;AACjB,uBAAe,MAAM;AAAA,MACvB,CAAC;AAED,WAAK,IAAI,GAAG,SAAS,CAAC,QAAQ;AAC5B,eAAO,GAAG;AAAA,MACZ,CAAC;AAED,WAAK,IAAI,GAAG,OAAO,MAAM;AACvB,YAAI,gBAAgB,GAAG;AACrB,iBAAO,QAAQ,CAAC,CAAC;AAAA,QACnB;AAEA,cAAM,aAAa,OAAO,OAAO,QAAQ,WAAW;AACpD,cAAM,cAA+B,CAAC;AACtC,YAAI,kBAAkB;AAGtB,YAAI,qBAAqB,WAAW,QAAQ,gBAAgB,eAAe;AAC3E,YAAI,uBAAuB,IAAI;AAC7B,iBAAO,OAAO,IAAI,MAAM,6BAA6B,CAAC;AAAA,QACxD;AAEA,0BAAkB,qBAAqB,eAAe;AACtD,YAAI,WAAW,MAAM,iBAAiB,kBAAkB,WAAW,MAAM,EAAE,OAAO,UAAU,GAAG;AAC7F,6BAAmB,WAAW;AAAA,QAChC;AAGA,eAAO,kBAAkB,WAAW,QAAQ;AAE1C,gBAAM,oBAAoB,WAAW,QAAQ,gBAAgB,eAAe;AAC5E,cAAI,sBAAsB,IAAI;AAG5B;AAAA,UACF;AAIA,cAAI,eAAe;AACnB,cAAI,eAAe,WAAW,UAAU,WAAW,MAAM,eAAe,WAAW,QAAQ,YAAY,EAAE,OAAO,UAAU,GAAG;AAC3H,4BAAgB,WAAW;AAAA,UAC7B;AACA,gBAAM,aAAa,WAAW,MAAM,iBAAiB,YAAY;AAGjE,gBAAM,2BAA2B,WAAW,QAAQ,gBAAgB;AACpE,cAAI,6BAA6B,IAAI;AACnC,oBAAQ,KAAK,0DAA0D;AACvE,8BAAkB,oBAAoB,eAAe;AACrD,gBAAI,WAAW,MAAM,iBAAiB,kBAAkB,WAAW,MAAM,EAAE,OAAO,UAAU,GAAG;AAC7F,iCAAmB,WAAW;AAAA,YAChC;AACA,gBAAI,WAAW,MAAM,iBAAiB,kBAAkB,CAAC,EAAE,SAAS,MAAM,KAAM;AAChF;AAAA,UACF;AAEA,gBAAM,eAAe,WAAW,MAAM,GAAG,wBAAwB;AACjE,gBAAM,aAAa,WAAW,MAAM,2BAA2B,iBAAiB,MAAM;AACtF,gBAAM,aAAa,aAAa,SAAS,OAAO;AAGhD,gBAAM,UAAqC,CAAC;AAC5C,qBAAW,MAAM,MAAM,EAAE,QAAQ,UAAQ;AACvC,kBAAM,aAAa,KAAK,QAAQ,GAAG;AACnC,gBAAI,aAAa,GAAG;AAClB,oBAAM,MAAM,KAAK,UAAU,GAAG,UAAU,EAAE,KAAK,EAAE,YAAY;AAC7D,oBAAM,QAAQ,KAAK,UAAU,aAAa,CAAC,EAAE,KAAK;AAClD,sBAAQ,GAAG,IAAI;AAAA,YACjB;AAAA,UACF,CAAC;AAED,gBAAM,qBAAqB,QAAQ,qBAAqB;AACxD,cAAI,CAAC,oBAAoB;AACvB,oBAAQ,KAAK,+CAA+C;AAC5D,8BAAkB,oBAAoB,eAAe;AACrD,gBAAI,WAAW,MAAM,iBAAiB,kBAAkB,WAAW,MAAM,EAAE,OAAO,UAAU,GAAG;AAC7F,iCAAmB,WAAW;AAAA,YAChC;AACA,gBAAI,WAAW,MAAM,iBAAiB,kBAAkB,CAAC,EAAE,SAAS,MAAM,KAAM;AAChF;AAAA,UACF;AAEA,gBAAM,YAAY,mBAAmB,MAAM,iBAAiB;AAC5D,gBAAM,gBAAgB,mBAAmB,MAAM,qBAAqB;AAEpE,gBAAM,OAAO,YAAY,UAAU,CAAC,IAAI;AACxC,gBAAM,WAAW,gBAAgB,cAAc,CAAC,IAAI;AACpD,gBAAM,cAAc,QAAQ,cAAc,KAAK;AAE/C,cAAI,MAAM;AAER,kBAAM,SAAS,CAAC,CAAC;AAEjB,kBAAM,gBAA8B;AAAA,cAClC;AAAA,cACA;AAAA;AAAA,cACA;AAAA,cACA;AAAA,cACA,OAAO,SAAS,aAAY,WAAW,SAAS,OAAO;AAAA,YACzD;AACA,wBAAY,KAAK,aAAa;AAAA,UAChC,OAAO;AACL,oBAAQ,KAAK,yDAAyD;AAAA,UACxE;AAGA,4BAAkB,oBAAoB,eAAe;AAErD,cAAI,WAAW,MAAM,iBAAiB,kBAAkB,WAAW,MAAM,EAAE,OAAO,UAAU,GAAG;AAC7F,+BAAmB,WAAW;AAAA,UAChC;AAGA,cAAI,WAAW,MAAM,iBAAiB,kBAAkB,CAAC,EAAE,SAAS,MAAM,MAAM;AAC9E;AAAA,UACF;AAAA,QACF;AACA,gBAAQ,WAAW;AAAA,MACrB,CAAC;AAAA,IACH,CAAC;AAAA,EA0EH;AAAA,EAEA,MAAM,oBAAqC;AACzC,UAAM,QAAQ,MAAM,KAAK,YAAY,GAAG,SAAS;AACjD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,kBAAiC;AACrC,WAAO,KAAK,MAAM,MAAM,KAAK,kBAAkB,CAAC;AAAA,EAClD;AAAA,EAEA,MAAM,qBAAoC;AACxC,UAAM,OAAQ,MAAM,KAAK,kBAAkB;AAC3C,UAAM,WAAW,CAAC;AAClB,UAAM,KAAK,IAAI,gBAAgB,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM;AAClE,YAAM,SAAS,SAAS,CAAC;AACzB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,eAAO,KAAK,CAAC;AAAA,MACf,WAAW,OAAO,WAAW,UAAU;AACrC,iBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAAA,MAC1B,OAAO;AACL,iBAAS,CAAC,IAAI;AAAA,MAChB;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,wBAAwB;AAC5B,UAAM,OAAO,MAAM,KAAK,mBAAmB;AAC3C,WAAO,OAAO,OAAO,IAAI,eAAe,GAAG,IAAI;AAAA,EACjD;AAAA,EAEA,MAAM,qBAA2C;AAC/C,UAAM,OAAQ,MAAM,KAAK,kBAAkB;AAC3C,WAAO,OAAO,OAAO,IAAI,YAAY,GAAG,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA,EAMA,kBAAiC;AAC/B,UAAM,OAAO,aAAa,SAAS,KAAK,YAAY,CAAC;AACrD,WAAO,OAAO,KAAK,MAAM,IAAI,IAAI;AAAA,EACnC;AAAA,EAEA,oBAAoB;AAClB,WAAO,aAAa,SAAS,KAAK,YAAY,CAAC;AAAA,EACjD;AAAA,EAEA,YAAY;AACV,WAAO,KAAK,IAAI,QAAQ,YAAY;AAAA,EACtC;AAAA,EAEA,UAAU,KAA2B;AACnC,WAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,CAAC;AAAA,EAC3C;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,gCAA+B;AAAA,EAC7C;AAAA,EAEA,IAAI,eAA0B;AAC5B,UAAM,IAAI,IAAI,UAAU;AACxB,WAAO,QAAQ,KAAK,IAAI,OAAO,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM;AACnD,QAAE,CAAC,IAAI;AAAA,IACT,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,KAA2B,cAAuB;AAC/D,UAAM,SAAS,KAAK,IAAI,QAAQ,IAAI,YAAY,CAAC;AACjD,QAAI,UAAU,MAAM,QAAQ,MAAM,GAAG;AACnC,aAAO,OAAO,CAAC,KAAK;AAAA,IACtB,OAAO;AACL,aAAQ,UAAqB;AAAA,IAC/B;AAAA,EACF;AAAA,EAEO,yBAAyB;AAC9B,WAAO,KAAK,kDAAwC;AAAA,EACtD;AAAA,EAEA,wBAAwB;AACtB,WAAO,KAAK,kDAAwC;AAAA,EACtD;AAAA;AAAA,EAMA,cAAc,MAA8E;AAC1F,QAAI,MAAM;AACR,WAAK,IAAI,aAAa;AACtB,aAAO,IAAI,qBAA6B,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,KAAK,IAAI,UAAU;AAAA,IAC9F,OAAO;AACL,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,UAAU,KAA2B;AACnC,WAAO,KAAK,IAAI,UAAU,IAAI,YAAY,CAAC;AAAA,EAC7C;AAAA,EAEA,eAAe,KAA2B,cAAuB;AAC/D,UAAM,SAAS,KAAK,IAAI,UAAU,IAAI,YAAY,CAAC;AACnD,QAAI,UAAU,MAAM,QAAQ,MAAM,GAAG;AACnC,aAAO,OAAO,CAAC,KAAK;AAAA,IACtB,OAAO;AACL,aAAO,UAAU;AAAA,IACnB;AAAA,EACF;AAAA,EAEA,MAAM,aAA8C;AAClD,QAAI,KAAK,OAAO,gBAAgB;AAC9B,cAAQ,MAAM,KAAK,OAAO,eAAe,QAAQ,IAAI,GAAG,QAAQ;AAAA,IAClE,OAAO;AACL,aAAO,QAAQ,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAAA,IACvD;AAAA,EACF;AAAA,EAEA,cAAc,KAAa,OAAkB;AAC3C,IAAC,KAAK,WAAmB,GAAG,IAAI;AAAA,EAClC;AAAA,EAEA,cAAuB,KAA4B;AACjD,UAAM,UAAU,KAAK;AACrB,QAAI,SAAS;AACX,aAAO,QAAQ,GAAG;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,iBAAiB,YAAoB;AACnC,SAAK,IAAI,aAAa;AACtB,WAAO,KAAK,2BAA2B,KAAK,IAAI,UAAU;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,OAA8B,WAA2B,QAAQ;AACxE,SAAK,gBAAgB;AACrB,WAAO,KAAK,2BAA2B,KAAK,aAAa;AAAA,EAC3D;AAAA;AAAA,EAGA,aAAa,OAAY,WAA2B,QAAQ;AAC1D,WAAO,KAAK,SAAS,KAAK,UAAU,KAAK,GAAG,QAAQ;AAAA,EACtD;AAAA,EAEA,aAAa,KAA2B,OAA0B;AAChE,WAAO,KAAK,2BAA2B,KAAK,IAAI,UAAU,IAAI,YAAY,GAAG,KAAK,CAAC;AAAA,EACrF;AAAA,EAEA,aAAa,KAA2B,OAA0B;AAChE,UAAM,gBAAgB,KAAK,IAAI,UAAU,IAAI,YAAY,CAAC;AAC1D,UAAM,WAAW,MAAM,QAAQ,aAAa,IACxC,cAAc,OAAO,KAAK,IAC1B,gBACE,CAAC,cAAc,SAAS,GAAG,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC,IAC9C;AACN,WAAO,KAAK,2BAA2B,KAAK,IAAI,UAAU,IAAI,YAAY,GAAG,QAAQ,CAAC;AAAA,EACxF;AAAA,EAEA,cAAc,SAA+C;AAC3D,WAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,aAAa,KAAK,KAAK,CAAC;AAC/E,WAAO,KAAK,2BAA2B;AAAA,EACzC;AAAA,EAEA,cAAc,SAA+C;AACzD,WAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,aAAa,KAAK,KAAK,CAAC;AAC/E,WAAO,KAAK,2BAA2B;AAAA,EAC3C;AAAA;AAAA,EAGA,MAAc,cAAc;AAC1B,UAAM,WAAW,KAAK,qDAAyC;AAC/D,QAAI,OAAO,KAAK;AAChB,QAAI,UAAU,SAAS,MAAM,GAAG;AAC9B,aAAO,MAAM,KAAK,IAAI;AACtB,WAAK,uDAA0C,MAAM;AAAA,IACvD;AACA,SAAK,IAAI,IAAI,IAAI;AAAA,EACnB;AAAA,EAEA,MAAM,OAAO,OAAyB;AACpC,SAAK,gBAAgB,SAAS,KAAK;AACnC,QAAI,KAAK,IAAI,UAAU;AACrB,YAAM,KAAK,YAAY;AACvB,YAAM,KAAK,YAAY;AAAA,IACzB,OAAO;AACL,YAAM,KAAK,YAAY;AAAA,IACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,aAAa,YAAoB,SAA6F;AAC5H,WAAO,KAAK,2BAA2B,KAAK,IAAI,UAAU,YAAY,OAAO,CAAC;AAAA,EAChF;AAAA,EACA,gBAAgB,YAAoB,SAA6F;AAC/H,SAAK,2BAA2B,KAAK,IAAI,UAAU,YAAY,OAAO,CAAC;AACvE,SAAK,IAAI,IAAI;AAAA,EACf;AAAA,EAEA,YAAY;AACV,WAAO,KAAK,IAAI,YAAY,KAAK,IAAI,iBAAiB,KAAK,IAAI;AAAA,EAEjE;AAAA,EAEA,2BAAoC,MAAU;AAC5C,UAAM,uBAAuB,IAAI,qBAAqB,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,IAAI;AAC3F,yBAAqB,gBAAgB,KAAK;AAC1C,yBAAqB,eAAe,KAAK;AACzC,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeF;AAEO,IAAM,uBAAN,cAAsC,gBAAgB;AAAA,EAC3D,YAAY,KAAsB,KAAqB,QAAuB,QAAY;AACxF,UAAM,KAAK,KAAK,MAAM;AADsD;AAAA,EAE9E;AACF;;;AD1oBO,IAAM,WAAN,MAAe;AAAA,EAClB,YAAmBC,OAA6C,WAAW,QAAQ,IAAI,GAAG;AAAvE,gBAAAA;AAA6C;AAAA,EAChE;AAAA,EAEA,IAAI,eAAuB;AACvB,QAAI,KAAK,gBAAgB,iBAAiB;AACtC,aAAO,KAAK,KAAK,KAAK,UAAU,KAAK,KAAK,UAAU,EAAE,QAAQ;AAAA,IAClE,WAAW,KAAK,gBAAgB,KAAK;AACjC,aAAO,KAAK,KAAK,KAAK,UAAU,KAAK,KAAK,QAAQ;AAAA,IACtD,OAAO;AACH,aAAO,KAAK,KAAK,KAAK,UAAU,KAAK,IAAI;AAAA,IAC7C;AAAA,EACJ;AAAA,EAEA,IAAI,cAAsB;AACtB,WAAO,KAAK,OAAO,KAAK,YAAY,EAAE,SAAS;AAAA,EACnD;AAAA,EAEA,IAAI,OAAwB;AACxB,UAAM,UAAU,IAAI,QAAgB,CAAC,SAAS,WAAW;AACrD,SAAG,SAAS,IAAI,CAAC,OAAO,eAAe;AACnC,YAAI,OAAO;AACP,iBAAO,KAAK;AAAA,QAChB;AACA,cAAM,cAAc,WAAW,SAAS;AACxC,gBAAQ,WAAW;AAAA,MACvB,CAAC;AAAA,IACL,CAAC;AACD,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,MAAM,IAAqB;AAC7B,OAAG,0BAA2B;AAC9B,OAAG,+CAAsC,KAAK,WAAW;AACzD,UAAM,GAAG,OAAO,GAAG,aAAa,KAAK,YAAY,CAAC;AAAA,EACtD;AACJ;",
6
- "names": ["URL", "URL", "mime", "path"]
3
+ "sources": ["../../../../src/models/datas/Resource.ts"],
4
+ "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport mime from 'mime-types';\nimport { RequestResponse } from '../RequestResponse';\nimport { HttpStatus } from '../../codes/HttpStatus';\nimport { HttpHeaders } from '../../codes/HttpHeaders';\n\nexport class Resource {\n constructor(public path: string | RequestResponse | URL, public rootPath = process.cwd()) {\n }\n\n get absolutePath(): string {\n if (this.path instanceof RequestResponse) {\n return path.join(this.rootPath, this.path.reqUrlObj().pathname);\n } else if (this.path instanceof URL) {\n return path.join(this.rootPath, this.path.pathname);\n } else {\n return path.join(this.rootPath, this.path);\n }\n }\n\n get conTentType(): string {\n return mime.lookup(this.absolutePath).toString();\n }\n\n get data(): Promise<string> {\n const promise = new Promise<string>((resolve, reject) => {\n fs.readFile('', (error, fileBuffer) => {\n if (error) {\n reject(error);\n }\n const fileContent = fileBuffer.toString();\n resolve(fileContent);\n });\n });\n return promise;\n }\n\n async write(rr: RequestResponse) {\n rr.resStatusCode(HttpStatus.Ok);\n rr.resSetHeader(HttpHeaders.ContentType, this.conTentType);\n await rr.resEnd(fs.readFileSync(this.absolutePath));\n }\n}"],
5
+ "mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAErB,MAAM,SAAS;AAAA,EAClB,YAAmBA,OAA6C,WAAW,QAAQ,IAAI,GAAG;AAAvE,gBAAAA;AAA6C;AAAA,EAChE;AAAA,EAEA,IAAI,eAAuB;AACvB,QAAI,KAAK,gBAAgB,iBAAiB;AACtC,aAAO,KAAK,KAAK,KAAK,UAAU,KAAK,KAAK,UAAU,EAAE,QAAQ;AAAA,IAClE,WAAW,KAAK,gBAAgB,KAAK;AACjC,aAAO,KAAK,KAAK,KAAK,UAAU,KAAK,KAAK,QAAQ;AAAA,IACtD,OAAO;AACH,aAAO,KAAK,KAAK,KAAK,UAAU,KAAK,IAAI;AAAA,IAC7C;AAAA,EACJ;AAAA,EAEA,IAAI,cAAsB;AACtB,WAAO,KAAK,OAAO,KAAK,YAAY,EAAE,SAAS;AAAA,EACnD;AAAA,EAEA,IAAI,OAAwB;AACxB,UAAM,UAAU,IAAI,QAAgB,CAAC,SAAS,WAAW;AACrD,SAAG,SAAS,IAAI,CAAC,OAAO,eAAe;AACnC,YAAI,OAAO;AACP,iBAAO,KAAK;AAAA,QAChB;AACA,cAAM,cAAc,WAAW,SAAS;AACxC,gBAAQ,WAAW;AAAA,MACvB,CAAC;AAAA,IACL,CAAC;AACD,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,MAAM,IAAqB;AAC7B,OAAG,cAAc,WAAW,EAAE;AAC9B,OAAG,aAAa,YAAY,aAAa,KAAK,WAAW;AACzD,UAAM,GAAG,OAAO,GAAG,aAAa,KAAK,YAAY,CAAC;AAAA,EACtD;AACJ;",
6
+ "names": ["path"]
7
7
  }
@@ -1,6 +1,5 @@
1
- // src/models/datas/body/ReqFormUrlBody.ts
2
- var ReqFormUrlBody = class {
3
- };
1
+ class ReqFormUrlBody {
2
+ }
4
3
  export {
5
4
  ReqFormUrlBody
6
5
  };
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/models/datas/body/ReqFormUrlBody.ts"],
4
4
  "sourcesContent": ["export class ReqFormUrlBody {\n [key: string]: string | string[]\n}"],
5
- "mappings": ";AAAO,IAAM,iBAAN,MAAqB;AAE5B;",
5
+ "mappings": "AAAO,MAAM,eAAe;AAE5B;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,5 @@
1
- // src/models/datas/body/ReqJsonBody.ts
2
- var ReqJsonBody = class {
3
- };
1
+ class ReqJsonBody {
2
+ }
4
3
  export {
5
4
  ReqJsonBody
6
5
  };
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/models/datas/body/ReqJsonBody.ts"],
4
4
  "sourcesContent": ["export class ReqJsonBody {\n [key: string]: any\n}"],
5
- "mappings": ";AAAO,IAAM,cAAN,MAAkB;AAEzB;",
5
+ "mappings": "AAAO,MAAM,YAAY;AAEzB;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,8 @@
1
- // src/models/datas/body/ReqMultipartFormBody.ts
2
- var ReqMultipartFormBody = class {
1
+ class ReqMultipartFormBody {
3
2
  constructor(field = []) {
4
3
  this.field = field;
5
4
  }
6
- };
5
+ }
7
6
  export {
8
7
  ReqMultipartFormBody
9
8
  };