jimpex 7.0.2 → 8.0.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 (388) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/LICENSE +1 -1
  3. package/README.md +446 -434
  4. package/dist/app/index.d.ts +13 -0
  5. package/dist/app/index.js +19 -0
  6. package/dist/app/index.js.map +1 -0
  7. package/dist/app/jimpex.d.ts +13 -0
  8. package/dist/app/jimpex.js +440 -0
  9. package/dist/app/jimpex.js.map +1 -0
  10. package/dist/controllers/common/config.d.ts +78 -0
  11. package/dist/controllers/common/config.js +89 -0
  12. package/dist/controllers/common/config.js.map +1 -0
  13. package/dist/controllers/common/health.d.ts +82 -0
  14. package/dist/controllers/common/health.js +97 -0
  15. package/dist/controllers/common/health.js.map +1 -0
  16. package/dist/controllers/common/index.d.ts +21 -0
  17. package/dist/controllers/common/index.js +21 -0
  18. package/dist/controllers/common/index.js.map +1 -0
  19. package/dist/controllers/common/statics.d.ts +215 -0
  20. package/dist/controllers/common/statics.js +202 -0
  21. package/dist/controllers/common/statics.js.map +1 -0
  22. package/dist/controllers/index.d.ts +24 -0
  23. package/dist/controllers/index.js +20 -0
  24. package/dist/controllers/index.js.map +1 -0
  25. package/dist/controllers/utils/gateway.d.ts +724 -0
  26. package/dist/controllers/utils/gateway.js +425 -0
  27. package/dist/controllers/utils/gateway.js.map +1 -0
  28. package/dist/controllers/utils/index.d.ts +16 -0
  29. package/dist/controllers/utils/index.js +19 -0
  30. package/dist/controllers/utils/index.js.map +1 -0
  31. package/dist/esm/app/index.js +2 -0
  32. package/dist/esm/app/index.js.map +1 -0
  33. package/dist/esm/app/jimpex.js +415 -0
  34. package/dist/esm/app/jimpex.js.map +1 -0
  35. package/dist/esm/chunk-T2T6Q22Z.js +11 -0
  36. package/dist/esm/chunk-T2T6Q22Z.js.map +1 -0
  37. package/dist/esm/controllers/common/config.js +62 -0
  38. package/dist/esm/controllers/common/config.js.map +1 -0
  39. package/dist/esm/controllers/common/health.js +70 -0
  40. package/dist/esm/controllers/common/health.js.map +1 -0
  41. package/dist/esm/controllers/common/index.js +4 -0
  42. package/dist/esm/controllers/common/index.js.map +1 -0
  43. package/dist/esm/controllers/common/statics.js +173 -0
  44. package/dist/esm/controllers/common/statics.js.map +1 -0
  45. package/dist/esm/controllers/index.js +3 -0
  46. package/dist/esm/controllers/index.js.map +1 -0
  47. package/dist/esm/controllers/utils/gateway.js +404 -0
  48. package/dist/esm/controllers/utils/gateway.js.map +1 -0
  49. package/dist/esm/controllers/utils/index.js +2 -0
  50. package/dist/esm/controllers/utils/index.js.map +1 -0
  51. package/dist/esm/index.js +7 -0
  52. package/dist/esm/index.js.map +1 -0
  53. package/dist/esm/middlewares/common/errorHandler.js +92 -0
  54. package/dist/esm/middlewares/common/errorHandler.js.map +1 -0
  55. package/dist/esm/middlewares/common/forceHTTPS.js +41 -0
  56. package/dist/esm/middlewares/common/forceHTTPS.js.map +1 -0
  57. package/dist/esm/middlewares/common/hsts.js +53 -0
  58. package/dist/esm/middlewares/common/hsts.js.map +1 -0
  59. package/dist/esm/middlewares/common/index.js +4 -0
  60. package/dist/esm/middlewares/common/index.js.map +1 -0
  61. package/dist/esm/middlewares/html/fastHTML.js +104 -0
  62. package/dist/esm/middlewares/html/fastHTML.js.map +1 -0
  63. package/dist/esm/middlewares/html/index.js +3 -0
  64. package/dist/esm/middlewares/html/index.js.map +1 -0
  65. package/dist/esm/middlewares/html/showHTML.js +68 -0
  66. package/dist/esm/middlewares/html/showHTML.js.map +1 -0
  67. package/dist/esm/middlewares/index.js +4 -0
  68. package/dist/esm/middlewares/index.js.map +1 -0
  69. package/dist/esm/middlewares/utils/index.js +2 -0
  70. package/dist/esm/middlewares/utils/index.js.map +1 -0
  71. package/dist/esm/middlewares/utils/versionValidator.js +101 -0
  72. package/dist/esm/middlewares/utils/versionValidator.js.map +1 -0
  73. package/dist/esm/services/common/appError.js +52 -0
  74. package/dist/esm/services/common/appError.js.map +1 -0
  75. package/dist/esm/services/common/httpError.js +19 -0
  76. package/dist/esm/services/common/httpError.js.map +1 -0
  77. package/dist/esm/services/common/index.js +17 -0
  78. package/dist/esm/services/common/index.js.map +1 -0
  79. package/dist/esm/services/common/sendFile.js +27 -0
  80. package/dist/esm/services/common/sendFile.js.map +1 -0
  81. package/dist/esm/services/frontend/frontendFs.js +38 -0
  82. package/dist/esm/services/frontend/frontendFs.js.map +1 -0
  83. package/dist/esm/services/frontend/index.js +11 -0
  84. package/dist/esm/services/frontend/index.js.map +1 -0
  85. package/dist/esm/services/html/htmlGenerator.js +144 -0
  86. package/dist/esm/services/html/htmlGenerator.js.map +1 -0
  87. package/dist/esm/services/html/index.js +11 -0
  88. package/dist/esm/services/html/index.js.map +1 -0
  89. package/dist/esm/services/http/apiClient.js +71 -0
  90. package/dist/esm/services/http/apiClient.js.map +1 -0
  91. package/dist/esm/services/http/http.js +125 -0
  92. package/dist/esm/services/http/http.js.map +1 -0
  93. package/dist/esm/services/http/index.js +17 -0
  94. package/dist/esm/services/http/index.js.map +1 -0
  95. package/dist/esm/services/http/responsesBuilder.js +105 -0
  96. package/dist/esm/services/http/responsesBuilder.js.map +1 -0
  97. package/dist/esm/services/index.js +6 -0
  98. package/dist/esm/services/index.js.map +1 -0
  99. package/dist/esm/services/utils/ensureBearerToken.js +78 -0
  100. package/dist/esm/services/utils/ensureBearerToken.js.map +1 -0
  101. package/dist/esm/services/utils/index.js +11 -0
  102. package/dist/esm/services/utils/index.js.map +1 -0
  103. package/dist/esm/types/events.js +1 -0
  104. package/dist/esm/types/events.js.map +1 -0
  105. package/dist/esm/types/express.js +1 -0
  106. package/dist/esm/types/express.js.map +1 -0
  107. package/dist/esm/types/http.js +1 -0
  108. package/dist/esm/types/http.js.map +1 -0
  109. package/dist/esm/types/index.js +7 -0
  110. package/dist/esm/types/index.js.map +1 -0
  111. package/dist/esm/types/options.js +1 -0
  112. package/dist/esm/types/options.js.map +1 -0
  113. package/dist/esm/types/utils.js +1 -0
  114. package/dist/esm/types/utils.js.map +1 -0
  115. package/dist/esm/types/wootils.js +1 -0
  116. package/dist/esm/types/wootils.js.map +1 -0
  117. package/dist/esm/utils/fns/index.js +5 -0
  118. package/dist/esm/utils/fns/index.js.map +1 -0
  119. package/dist/esm/utils/fns/others.js +6 -0
  120. package/dist/esm/utils/fns/others.js.map +1 -0
  121. package/dist/esm/utils/fns/routes.js +25 -0
  122. package/dist/esm/utils/fns/routes.js.map +1 -0
  123. package/dist/esm/utils/fns/statuses.js +6 -0
  124. package/dist/esm/utils/fns/statuses.js.map +1 -0
  125. package/dist/esm/utils/fns/text.js +6 -0
  126. package/dist/esm/utils/fns/text.js.map +1 -0
  127. package/dist/esm/utils/index.js +3 -0
  128. package/dist/esm/utils/index.js.map +1 -0
  129. package/dist/esm/utils/wrappers.js +41 -0
  130. package/dist/esm/utils/wrappers.js.map +1 -0
  131. package/dist/index.d.ts +46 -0
  132. package/dist/index.js +24 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/jimpex-7eaee271.d.ts +1278 -0
  135. package/dist/middlewares/common/errorHandler.d.ts +131 -0
  136. package/dist/middlewares/common/errorHandler.js +119 -0
  137. package/dist/middlewares/common/errorHandler.js.map +1 -0
  138. package/dist/middlewares/common/forceHTTPS.d.ts +68 -0
  139. package/dist/middlewares/common/forceHTTPS.js +68 -0
  140. package/dist/middlewares/common/forceHTTPS.js.map +1 -0
  141. package/dist/middlewares/common/hsts.d.ts +109 -0
  142. package/dist/middlewares/common/hsts.js +80 -0
  143. package/dist/middlewares/common/hsts.js.map +1 -0
  144. package/dist/middlewares/common/index.d.ts +21 -0
  145. package/dist/middlewares/common/index.js +21 -0
  146. package/dist/middlewares/common/index.js.map +1 -0
  147. package/dist/middlewares/html/fastHTML.d.ts +180 -0
  148. package/dist/middlewares/html/fastHTML.js +131 -0
  149. package/dist/middlewares/html/fastHTML.js.map +1 -0
  150. package/dist/middlewares/html/index.d.ts +21 -0
  151. package/dist/middlewares/html/index.js +20 -0
  152. package/dist/middlewares/html/index.js.map +1 -0
  153. package/dist/middlewares/html/showHTML.d.ts +127 -0
  154. package/dist/middlewares/html/showHTML.js +95 -0
  155. package/dist/middlewares/html/showHTML.js.map +1 -0
  156. package/dist/middlewares/index.d.ts +30 -0
  157. package/dist/middlewares/index.js +21 -0
  158. package/dist/middlewares/index.js.map +1 -0
  159. package/dist/middlewares/utils/index.d.ts +19 -0
  160. package/dist/middlewares/utils/index.js +19 -0
  161. package/dist/middlewares/utils/index.js.map +1 -0
  162. package/dist/middlewares/utils/versionValidator.d.ts +214 -0
  163. package/dist/middlewares/utils/versionValidator.js +128 -0
  164. package/dist/middlewares/utils/versionValidator.js.map +1 -0
  165. package/dist/services/common/appError.d.ts +138 -0
  166. package/dist/services/common/appError.js +80 -0
  167. package/dist/services/common/appError.js.map +1 -0
  168. package/dist/services/common/httpError.d.ts +79 -0
  169. package/dist/services/common/httpError.js +44 -0
  170. package/dist/services/common/httpError.js.map +1 -0
  171. package/dist/services/common/index.d.ts +47 -0
  172. package/dist/services/common/index.js +41 -0
  173. package/dist/services/common/index.js.map +1 -0
  174. package/dist/services/common/sendFile.d.ts +102 -0
  175. package/dist/services/common/sendFile.js +51 -0
  176. package/dist/services/common/sendFile.js.map +1 -0
  177. package/dist/services/frontend/frontendFs.d.ts +96 -0
  178. package/dist/services/frontend/frontendFs.js +71 -0
  179. package/dist/services/frontend/frontendFs.js.map +1 -0
  180. package/dist/services/frontend/index.d.ts +40 -0
  181. package/dist/services/frontend/index.js +35 -0
  182. package/dist/services/frontend/index.js.map +1 -0
  183. package/dist/services/html/htmlGenerator.d.ts +237 -0
  184. package/dist/services/html/htmlGenerator.js +171 -0
  185. package/dist/services/html/htmlGenerator.js.map +1 -0
  186. package/dist/services/html/index.d.ts +43 -0
  187. package/dist/services/html/index.js +35 -0
  188. package/dist/services/html/index.js.map +1 -0
  189. package/dist/services/http/apiClient.d.ts +169 -0
  190. package/dist/services/http/apiClient.js +96 -0
  191. package/dist/services/http/apiClient.js.map +1 -0
  192. package/dist/services/http/http.d.ts +175 -0
  193. package/dist/services/http/http.js +158 -0
  194. package/dist/services/http/http.js.map +1 -0
  195. package/dist/services/http/index.d.ts +50 -0
  196. package/dist/services/http/index.js +41 -0
  197. package/dist/services/http/index.js.map +1 -0
  198. package/dist/services/http/responsesBuilder.d.ts +178 -0
  199. package/dist/services/http/responsesBuilder.js +132 -0
  200. package/dist/services/http/responsesBuilder.js.map +1 -0
  201. package/dist/services/index.d.ts +33 -0
  202. package/dist/services/index.js +23 -0
  203. package/dist/services/index.js.map +1 -0
  204. package/dist/services/utils/ensureBearerToken.d.ts +157 -0
  205. package/dist/services/utils/ensureBearerToken.js +105 -0
  206. package/dist/services/utils/ensureBearerToken.js.map +1 -0
  207. package/dist/services/utils/index.d.ts +43 -0
  208. package/dist/services/utils/index.js +35 -0
  209. package/dist/services/utils/index.js.map +1 -0
  210. package/dist/types/events.d.ts +13 -0
  211. package/dist/types/events.js +17 -0
  212. package/dist/types/events.js.map +1 -0
  213. package/dist/types/express.d.ts +10 -0
  214. package/dist/types/express.js +17 -0
  215. package/dist/types/express.js.map +1 -0
  216. package/dist/types/http.d.ts +79 -0
  217. package/dist/types/http.js +17 -0
  218. package/dist/types/http.js.map +1 -0
  219. package/dist/types/index.d.ts +14 -0
  220. package/dist/types/index.js +24 -0
  221. package/dist/types/index.js.map +1 -0
  222. package/dist/types/options.d.ts +13 -0
  223. package/dist/types/options.js +17 -0
  224. package/dist/types/options.js.map +1 -0
  225. package/dist/types/utils.d.ts +48 -0
  226. package/dist/types/utils.js +17 -0
  227. package/dist/types/utils.js.map +1 -0
  228. package/dist/types/wootils.d.ts +4 -0
  229. package/dist/types/wootils.js +17 -0
  230. package/dist/types/wootils.js.map +1 -0
  231. package/dist/utils/fns/index.d.ts +5 -0
  232. package/dist/utils/fns/index.js +22 -0
  233. package/dist/utils/fns/index.js.map +1 -0
  234. package/dist/utils/fns/others.d.ts +17 -0
  235. package/dist/utils/fns/others.js +29 -0
  236. package/dist/utils/fns/others.js.map +1 -0
  237. package/dist/utils/fns/routes.d.ts +39 -0
  238. package/dist/utils/fns/routes.js +51 -0
  239. package/dist/utils/fns/routes.js.map +1 -0
  240. package/dist/utils/fns/statuses.d.ts +45 -0
  241. package/dist/utils/fns/statuses.js +35 -0
  242. package/dist/utils/fns/statuses.js.map +1 -0
  243. package/dist/utils/fns/text.d.ts +9 -0
  244. package/dist/utils/fns/text.js +29 -0
  245. package/dist/utils/fns/text.js.map +1 -0
  246. package/dist/utils/index.d.ts +18 -0
  247. package/dist/utils/index.js +20 -0
  248. package/dist/utils/index.js.map +1 -0
  249. package/dist/utils/wrappers.d.ts +13 -0
  250. package/dist/utils/wrappers.js +68 -0
  251. package/dist/utils/wrappers.js.map +1 -0
  252. package/examples/basic/404.html +12 -0
  253. package/examples/basic/README.md +30 -0
  254. package/examples/basic/app.ts +18 -0
  255. package/examples/basic/controller.ts +45 -0
  256. package/examples/basic/index.ts +19 -0
  257. package/examples/basic/middleware.ts +13 -0
  258. package/examples/basic/service.ts +11 -0
  259. package/package.json +59 -38
  260. package/src/app/index.ts +1 -0
  261. package/src/app/jimpex.ts +743 -0
  262. package/src/controllers/common/config.ts +115 -0
  263. package/src/controllers/common/health.ts +128 -0
  264. package/src/controllers/common/index.ts +3 -0
  265. package/src/controllers/common/statics.ts +380 -0
  266. package/src/controllers/index.ts +2 -0
  267. package/src/controllers/utils/gateway.ts +1186 -0
  268. package/src/controllers/utils/index.ts +1 -0
  269. package/src/index.ts +6 -0
  270. package/src/middlewares/common/errorHandler.ts +203 -0
  271. package/src/middlewares/common/forceHTTPS.ts +83 -0
  272. package/src/middlewares/common/hsts.ts +135 -0
  273. package/src/middlewares/common/index.ts +3 -0
  274. package/src/middlewares/html/fastHTML.ts +255 -0
  275. package/src/middlewares/html/index.ts +2 -0
  276. package/src/middlewares/html/showHTML.ts +165 -0
  277. package/src/middlewares/index.ts +3 -0
  278. package/src/middlewares/utils/index.ts +1 -0
  279. package/src/middlewares/utils/versionValidator.ts +289 -0
  280. package/src/services/common/appError.ts +158 -0
  281. package/src/services/common/httpError.ts +74 -0
  282. package/src/services/common/index.ts +29 -0
  283. package/src/services/common/sendFile.ts +106 -0
  284. package/src/services/frontend/frontendFs.ts +101 -0
  285. package/src/services/frontend/index.ts +21 -0
  286. package/src/services/html/htmlGenerator.ts +356 -0
  287. package/src/services/html/index.ts +21 -0
  288. package/src/services/http/apiClient.ts +221 -0
  289. package/src/services/http/http.ts +286 -0
  290. package/src/services/http/index.ts +29 -0
  291. package/src/services/http/responsesBuilder.ts +265 -0
  292. package/src/services/index.ts +5 -0
  293. package/src/services/utils/ensureBearerToken.ts +202 -0
  294. package/src/services/utils/index.ts +21 -0
  295. package/src/types/events.ts +303 -0
  296. package/src/types/express.ts +21 -0
  297. package/src/types/http.ts +77 -0
  298. package/src/types/index.ts +6 -0
  299. package/src/types/options.ts +248 -0
  300. package/src/types/utils.ts +52 -0
  301. package/src/types/wootils.ts +4 -0
  302. package/src/utils/fns/index.ts +4 -0
  303. package/src/utils/fns/others.ts +15 -0
  304. package/src/utils/fns/routes.ts +64 -0
  305. package/src/utils/fns/statuses.ts +44 -0
  306. package/src/utils/fns/text.ts +8 -0
  307. package/src/utils/index.ts +2 -0
  308. package/src/utils/wrappers.ts +537 -0
  309. package/tsconfig.json +5 -8
  310. package/tsup.config.ts +10 -0
  311. package/src/app/index.js +0 -692
  312. package/src/constants/eventNames.js +0 -48
  313. package/src/constants/index.js +0 -7
  314. package/src/controllers/common/configuration.js +0 -116
  315. package/src/controllers/common/health.js +0 -79
  316. package/src/controllers/common/index.js +0 -7
  317. package/src/controllers/common/statics.js +0 -336
  318. package/src/controllers/index.js +0 -9
  319. package/src/controllers/utils/gateway.js +0 -1039
  320. package/src/controllers/utils/index.js +0 -3
  321. package/src/index.js +0 -30
  322. package/src/middlewares/common/errorHandler.js +0 -185
  323. package/src/middlewares/common/forceHTTPS.js +0 -80
  324. package/src/middlewares/common/hsts.js +0 -122
  325. package/src/middlewares/common/index.js +0 -7
  326. package/src/middlewares/html/fastHTML.js +0 -298
  327. package/src/middlewares/html/index.js +0 -5
  328. package/src/middlewares/html/showHTML.js +0 -167
  329. package/src/middlewares/index.js +0 -11
  330. package/src/middlewares/utils/index.js +0 -3
  331. package/src/middlewares/utils/versionValidator.js +0 -261
  332. package/src/services/common/appError.js +0 -136
  333. package/src/services/common/httpError.js +0 -60
  334. package/src/services/common/index.js +0 -25
  335. package/src/services/common/sendFile.js +0 -68
  336. package/src/services/frontend/frontendFs.js +0 -85
  337. package/src/services/frontend/index.js +0 -17
  338. package/src/services/html/htmlGenerator.js +0 -391
  339. package/src/services/html/index.js +0 -17
  340. package/src/services/http/apiClient.js +0 -148
  341. package/src/services/http/http.js +0 -256
  342. package/src/services/http/index.js +0 -25
  343. package/src/services/http/responsesBuilder.js +0 -193
  344. package/src/services/index.js +0 -15
  345. package/src/services/utils/ensureBearerToken.js +0 -147
  346. package/src/services/utils/index.js +0 -19
  347. package/src/types.js +0 -377
  348. package/src/utils/functions.js +0 -78
  349. package/src/utils/wrappers.js +0 -131
  350. package/types/app/index.d.ts +0 -417
  351. package/types/constants/eventNames.d.ts +0 -93
  352. package/types/constants/index.d.ts +0 -2
  353. package/types/controllers/common/configuration.d.ts +0 -71
  354. package/types/controllers/common/health.d.ts +0 -55
  355. package/types/controllers/common/index.d.ts +0 -4
  356. package/types/controllers/common/statics.d.ts +0 -271
  357. package/types/controllers/index.d.ts +0 -3
  358. package/types/controllers/utils/gateway.d.ts +0 -947
  359. package/types/controllers/utils/index.d.ts +0 -2
  360. package/types/index.d.ts +0 -15
  361. package/types/middlewares/common/errorHandler.d.ts +0 -143
  362. package/types/middlewares/common/forceHTTPS.d.ts +0 -64
  363. package/types/middlewares/common/hsts.d.ts +0 -111
  364. package/types/middlewares/common/index.d.ts +0 -4
  365. package/types/middlewares/html/fastHTML.d.ts +0 -238
  366. package/types/middlewares/html/index.d.ts +0 -3
  367. package/types/middlewares/html/showHTML.d.ts +0 -128
  368. package/types/middlewares/index.d.ts +0 -4
  369. package/types/middlewares/utils/index.d.ts +0 -2
  370. package/types/middlewares/utils/versionValidator.d.ts +0 -247
  371. package/types/services/common/appError.d.ts +0 -89
  372. package/types/services/common/httpError.d.ts +0 -37
  373. package/types/services/common/index.d.ts +0 -18
  374. package/types/services/common/sendFile.d.ts +0 -56
  375. package/types/services/frontend/frontendFs.d.ts +0 -72
  376. package/types/services/frontend/index.d.ts +0 -3
  377. package/types/services/html/htmlGenerator.d.ts +0 -298
  378. package/types/services/html/index.d.ts +0 -3
  379. package/types/services/http/apiClient.d.ts +0 -141
  380. package/types/services/http/http.d.ts +0 -159
  381. package/types/services/http/index.d.ts +0 -18
  382. package/types/services/http/responsesBuilder.d.ts +0 -140
  383. package/types/services/index.d.ts +0 -6
  384. package/types/services/utils/ensureBearerToken.d.ts +0 -137
  385. package/types/services/utils/index.d.ts +0 -16
  386. package/types/types.d.ts +0 -280
  387. package/types/utils/functions.d.ts +0 -55
  388. package/types/utils/wrappers.d.ts +0 -127
@@ -1,3 +0,0 @@
1
- const { gatewayController } = require('./gateway');
2
-
3
- module.exports.gatewayController = gatewayController;
package/src/index.js DELETED
@@ -1,30 +0,0 @@
1
- const { Jimpex, jimpex } = require('./app');
2
- const controllers = require('./controllers');
3
- const middlewares = require('./middlewares');
4
- const services = require('./services');
5
- const { eventNames } = require('./constants');
6
- const {
7
- provider,
8
- providerCreator,
9
- providers,
10
- controller,
11
- controllerCreator,
12
- middleware,
13
- middlewareCreator,
14
- } = require('./utils/wrappers');
15
- const utils = require('./utils/functions');
16
-
17
- module.exports.controller = controller;
18
- module.exports.controllerCreator = controllerCreator;
19
- module.exports.controllers = controllers;
20
- module.exports.middleware = middleware;
21
- module.exports.middlewareCreator = middlewareCreator;
22
- module.exports.middlewares = middlewares;
23
- module.exports.provider = provider;
24
- module.exports.providerCreator = providerCreator;
25
- module.exports.providers = providers;
26
- module.exports.services = services;
27
- module.exports.eventNames = eventNames;
28
- module.exports.utils = utils;
29
- module.exports.Jimpex = Jimpex;
30
- module.exports.jimpex = jimpex;
@@ -1,185 +0,0 @@
1
- const ObjectUtils = require('wootils/shared/objectUtils');
2
- const { code: statuses } = require('statuses');
3
- const { middlewareCreator } = require('../../utils/wrappers');
4
-
5
- /**
6
- * @typedef {import('../../types').ExpressMiddleware} ExpressMiddleware
7
- * @typedef {import('../../types').Logger} Logger
8
- * @typedef {import('../../services/http/responsesBuilder').ResponsesBuilder} ResponsesBuilder
9
- * @prettierignore
10
- */
11
-
12
- /**
13
- * @typedef {import('../../types').MiddlewareCreator<O>} MiddlewareCreator<O>
14
- * @template O
15
- */
16
-
17
- /**
18
- * Before reading the recevied information, these will be the settings for the response.
19
- *
20
- * @typedef {Object} ErrorHandlerDefaultOptions
21
- * @property {string} message The error message the response will show. Default `'Oops!
22
- * Something went wrong, please try again'`.
23
- * @property {number} status The HTTP status code for the response. Default `500`.
24
- * @parent module:middlewares
25
- */
26
-
27
- /**
28
- * The options for how to build the middleware responses.
29
- *
30
- * @typedef {Object} ErrorHandlerOptions
31
- * @property {ErrorHandlerDefaultOptions} default The options to build the default
32
- * response,
33
- * before the middleware analyzes the
34
- * recevied error.
35
- * @parent module:middlewares
36
- */
37
-
38
- /**
39
- * Provides the middleware to handle error responses for the app.
40
- *
41
- * @parent module:middlewares
42
- */
43
- class ErrorHandler {
44
- /**
45
- * @param {Logger} appLogger To log the received errors.
46
- * @param {ResponsesBuilder} responsesBuilder To generate the JSON response.
47
- * @param {boolean} showErrors If `false`, unknown errors will show a
48
- * generic message instead of real
49
- * message. And if `true`,
50
- * it will not only show all kind of
51
- * errors but it will also show the error
52
- * stack.
53
- * @param {ClassAppError} AppError To validate if the received errors are
54
- * known or not.
55
- * @param {ErrorHandlerOptions} [options={}] Custom options to modify the
56
- * middleware behavior.
57
- */
58
- constructor(appLogger, responsesBuilder, showErrors, AppError, options = {}) {
59
- /**
60
- * A local reference for the `appLogger` service.
61
- *
62
- * @type {Logger}
63
- * @access protected
64
- * @ignore
65
- */
66
- this._appLogger = appLogger;
67
- /**
68
- * A local reference for the `responsesBuilder` service.
69
- *
70
- * @type {ResponsesBuilder}
71
- * @access protected
72
- * @ignore
73
- */
74
- this._responsesBuilder = responsesBuilder;
75
- /**
76
- * Whether or not to show unknown errors real messages.
77
- *
78
- * @type {boolean}
79
- * @access protected
80
- * @ignore
81
- */
82
- this._showErrors = showErrors;
83
- /**
84
- * A local reference for the class the app uses to generate errors.
85
- *
86
- * @type {ClassAppError}
87
- * @access protected
88
- * @ignore
89
- */
90
- this._AppError = AppError;
91
- /**
92
- * These are the "settings" the middleware will use in order to display the errors.
93
- *
94
- * @type {ErrorHandlerOptions}
95
- * @access protected
96
- * @ignore
97
- */
98
- this._options = ObjectUtils.merge(
99
- {
100
- default: {
101
- message: 'Oops! Something went wrong, please try again',
102
- status: statuses['internal server error'],
103
- },
104
- },
105
- options,
106
- );
107
- }
108
- /**
109
- * Returns the Express middleware that shows the errors.
110
- *
111
- * @returns {ExpressMiddleware}
112
- */
113
- middleware() {
114
- return (err, req, res, next) => {
115
- // If the middleware received an error...
116
- if (err) {
117
- // Define the error response basic template.
118
- let data = {
119
- error: true,
120
- message: this._options.default.message,
121
- };
122
- // Define the error response default status.
123
- let { status } = this._options.default;
124
- // Validate if the error is known or not.
125
- const knownError = err instanceof this._AppError;
126
- // If the `showErrors` flag is enabled or the error is a known error...
127
- if (this._showErrors || knownError) {
128
- // ...set the error real message on the response.
129
- data.message = err.message;
130
- // If the error type is known...
131
- if (knownError) {
132
- // Try to get any extra information that should be included on the response.
133
- data = Object.assign(data, err.response);
134
- // Try to obtain the response status from the error
135
- status = err.status || statuses['bad request'];
136
- }
137
- // If the `showErrors` flag is enabled...
138
- if (this._showErrors) {
139
- // Get the error stack and format it into an `Array`.
140
- const stack = err.stack.split('\n').map((line) => line.trim());
141
- // Add the stack to the response.
142
- data.stack = stack;
143
- // Remove the first item of the stack, since it's the same as the message.
144
- stack.splice(0, 1);
145
- // Log the error.
146
- this._appLogger.error(`ERROR: ${err.message}`);
147
- this._appLogger.info(stack);
148
- }
149
- }
150
- // Send the response.
151
- this._responsesBuilder.json(res, data, status);
152
- } else {
153
- // ...otherwise, move to the next middleware.
154
- next();
155
- }
156
- };
157
- }
158
- /**
159
- * The options used to customize the middleware behavior.
160
- *
161
- * @returns {ErrorHandlerOptions}
162
- */
163
- get options() {
164
- return this._options;
165
- }
166
- }
167
- /**
168
- * Generates a middleware that show responses for unhandled errors thrown by the app.
169
- *
170
- * @type {MiddlewareCreator<ErrorHandlerOptions>}
171
- * @parent module:middlewares
172
- */
173
- const errorHandler = middlewareCreator((options) => (app) => {
174
- const showErrors = app.get('appConfiguration').get('debug.showErrors') === true;
175
- return new ErrorHandler(
176
- app.get('appLogger'),
177
- app.get('responsesBuilder'),
178
- showErrors,
179
- app.get('AppError'),
180
- options,
181
- ).middleware();
182
- });
183
-
184
- module.exports.ErrorHandler = ErrorHandler;
185
- module.exports.errorHandler = errorHandler;
@@ -1,80 +0,0 @@
1
- const { middlewareCreator } = require('../../utils/wrappers');
2
-
3
- /**
4
- * @typedef {import('../../types').ExpressMiddleware} ExpressMiddleware
5
- */
6
-
7
- /**
8
- * @typedef {import('../../types').MiddlewareCreator<O>} MiddlewareCreator<O>
9
- * @template O
10
- */
11
-
12
- /**
13
- * @typedef {Object} ForceHTTPSMiddlewareOptions
14
- * @property {RegExp[]} ignoredRoutes A list of regular expressions to match routes that
15
- * should be ignored.
16
- * @parent module:middlewares
17
- */
18
-
19
- /**
20
- * Force all the app traffice to be through HTTPS.
21
- *
22
- * @parent module:middlewares
23
- */
24
- class ForceHTTPS {
25
- /**
26
- * @param {RegExp[]} [ignoredRoutes=[/^\/service\//]]
27
- * A list of regular expressions to match routes that should be ignored.
28
- */
29
- constructor(ignoredRoutes = [/^\/service\//]) {
30
- /**
31
- * A list of regular expressions to match routes that should be ignored.
32
- *
33
- * @type {RegExp[]}
34
- * @access protected
35
- * @ignore
36
- */
37
- this._ignoredRoutes = ignoredRoutes;
38
- }
39
- /**
40
- * Returns the Express middleware that forces the redirection to HTTPS.
41
- *
42
- * @returns {ExpressMiddleware}
43
- */
44
- middleware() {
45
- return (req, res, next) => {
46
- if (
47
- !req.secure &&
48
- req.get('X-Forwarded-Proto') !== 'https' &&
49
- !this._ignoredRoutes.some((expression) => expression.test(req.originalUrl))
50
- ) {
51
- const host = req.get('Host');
52
- res.redirect(`https://${host}${req.url}`);
53
- } else {
54
- next();
55
- }
56
- };
57
- }
58
- /**
59
- * A list of regular expressions to match routes that should be ignored.
60
- *
61
- * @type {RegExp[]}
62
- */
63
- get ignoredRoutes() {
64
- return this._ignoredRoutes.slice();
65
- }
66
- }
67
- /**
68
- * A middleware to force HTTPS redirections to all the routes.
69
- *
70
- * @type {MiddlewareCreator<ForceHTTPSMiddlewareOptions>}
71
- * @parent module:middlewares
72
- */
73
- const forceHTTPS = middlewareCreator((options = {}) => (app) =>
74
- app.get('appConfiguration').get('forceHTTPS')
75
- ? new ForceHTTPS(options.ignoredRoutes).middleware()
76
- : null,
77
- );
78
-
79
- module.exports.ForceHTTPS = ForceHTTPS;
80
- module.exports.forceHTTPS = forceHTTPS;
@@ -1,122 +0,0 @@
1
- const { middlewareCreator } = require('../../utils/wrappers');
2
-
3
- /**
4
- * @typedef {import('../../types').ExpressMiddleware} ExpressMiddleware
5
- */
6
-
7
- /**
8
- * @typedef {import('../../types').MiddlewareCreator<O>} MiddlewareCreator<O>
9
- * @template O
10
- */
11
-
12
- /**
13
- * The options to customize the HSTS header value.
14
- *
15
- * @typedef {Object} HSTSOptions
16
- * @property {number} [maxAge=31536000] The time, in seconds, that the browser
17
- * should remember that a site is only to be
18
- * accessed using HTTPS.
19
- * @property {boolean} [includeSubDomains=true] Whether or not the rule should apply to
20
- * all sub domains.
21
- * @property {boolean} [preload=false] Whether or not to include on the major
22
- * browsers'
23
- * preload list. This directive is not part
24
- * of the specification, for more
25
- * information about it, you should check
26
- * the MDN documentation for the header.
27
- * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security
28
- * @parent module:middlewares
29
- */
30
-
31
- /**
32
- * It configures a `Strict-Transport-Security` header and includes it on every response.
33
- *
34
- * @see https://tools.ietf.org/html/rfc6797
35
- * @parent module:middlewares
36
- */
37
- class HSTS {
38
- /**
39
- * @param {Partial<HSTSOptions>} [options={}] The options to customize the header
40
- * value.
41
- */
42
- constructor(options = {}) {
43
- /**
44
- * The value of the header that will be included on every response.
45
- *
46
- * @type {string}
47
- * @access protected
48
- * @ignore
49
- */
50
- this._header = this._buildHeader({
51
- maxAge: 31536000,
52
- includeSubDomains: true,
53
- preload: false,
54
- ...options,
55
- });
56
- }
57
- /**
58
- * Returns the Express middleware that includes the header on the response.
59
- *
60
- * @returns {ExpressMiddleware}
61
- */
62
- middleware() {
63
- return (req, res, next) => {
64
- res.setHeader('Strict-Transport-Security', this._header);
65
- next();
66
- };
67
- }
68
- /**
69
- * The value of the header that will be included on every response.
70
- *
71
- * @type {string}
72
- */
73
- get header() {
74
- return this._header;
75
- }
76
- /**
77
- * Creates the value for the header.
78
- *
79
- * @param {HSTSOptions} options The options to customize the header value.
80
- * @returns {string}
81
- * @access protected
82
- * @ignore
83
- */
84
- _buildHeader(options) {
85
- const directives = [`max-age=${options.maxAge}`];
86
- if (options.includeSubDomains) {
87
- directives.push('includeSubDomains');
88
- }
89
-
90
- if (options.preload) {
91
- directives.push('preload');
92
- }
93
-
94
- return directives.join('; ');
95
- }
96
- }
97
- /**
98
- * A middleware that creates and includes a `Strict-Transport-Security` header on every
99
- * response.
100
- * If the `options` parameter doesn't include the value for `maxAge`, the middleware will
101
- * ask the {@link AppConfiguration} service for the `hsts` settings as a fallback. You can
102
- * take advantage of that fallback to use the middleware and manage its settings from your
103
- * project configuration.
104
- * Both the `options` parameter and the `hsts` can include a `enabled` (boolean) flag to
105
- * either disable or enable the middleware.
106
- *
107
- * @type {MiddlewareCreator<HSTSOptions>}
108
- * @parent module:middlewares
109
- */
110
- const hsts = middlewareCreator((options = {}) => (app) => {
111
- const useOptions =
112
- typeof options.maxAge !== 'undefined'
113
- ? options
114
- : app.get('appConfiguration').get('hsts') || {};
115
-
116
- return typeof useOptions.enabled === 'undefined' || useOptions.enabled
117
- ? new HSTS(useOptions).middleware()
118
- : null;
119
- });
120
-
121
- module.exports.HSTS = HSTS;
122
- module.exports.hsts = hsts;
@@ -1,7 +0,0 @@
1
- const { errorHandler } = require('./errorHandler');
2
- const { forceHTTPS } = require('./forceHTTPS');
3
- const { hsts } = require('./hsts');
4
-
5
- module.exports.errorHandler = errorHandler;
6
- module.exports.forceHTTPS = forceHTTPS;
7
- module.exports.hsts = hsts;