exisjs 0.7.5 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +12 -0
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/clean.d.ts +5 -0
  5. package/dist/cli/commands/clean.d.ts.map +1 -0
  6. package/dist/cli/commands/clean.js +30 -0
  7. package/dist/cli/commands/clean.js.map +1 -0
  8. package/dist/cli/commands/dev.d.ts.map +1 -1
  9. package/dist/cli/commands/dev.js +171 -86
  10. package/dist/cli/commands/dev.js.map +1 -1
  11. package/dist/cli/commands/generate.d.ts +6 -1
  12. package/dist/cli/commands/generate.d.ts.map +1 -1
  13. package/dist/cli/commands/generate.js +57 -2
  14. package/dist/cli/commands/generate.js.map +1 -1
  15. package/dist/cli/commands/start.d.ts.map +1 -1
  16. package/dist/cli/commands/start.js +54 -16
  17. package/dist/cli/commands/start.js.map +1 -1
  18. package/dist/cli/index.js +26 -3
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/manifest.d.ts +1 -0
  21. package/dist/cli/manifest.d.ts.map +1 -1
  22. package/dist/cli/manifest.js +264 -33
  23. package/dist/cli/manifest.js.map +1 -1
  24. package/dist/cli/resolve-aliases.d.ts +1 -1
  25. package/dist/cli/resolve-aliases.d.ts.map +1 -1
  26. package/dist/cli/resolve-aliases.js +30 -13
  27. package/dist/cli/resolve-aliases.js.map +1 -1
  28. package/dist/config/config.d.ts +3 -1
  29. package/dist/config/config.d.ts.map +1 -1
  30. package/dist/config/config.js +9 -0
  31. package/dist/config/config.js.map +1 -1
  32. package/dist/config/types.d.ts +6 -0
  33. package/dist/config/types.d.ts.map +1 -1
  34. package/dist/cron/expressions.d.ts +45 -0
  35. package/dist/cron/expressions.d.ts.map +1 -0
  36. package/dist/cron/expressions.js +87 -0
  37. package/dist/cron/expressions.js.map +1 -0
  38. package/dist/cron/index.d.ts +6 -0
  39. package/dist/cron/index.d.ts.map +1 -0
  40. package/dist/cron/index.js +22 -0
  41. package/dist/cron/index.js.map +1 -0
  42. package/dist/cron/job.d.ts +50 -0
  43. package/dist/cron/job.d.ts.map +1 -0
  44. package/dist/cron/job.js +247 -0
  45. package/dist/cron/job.js.map +1 -0
  46. package/dist/cron/manager.d.ts +105 -0
  47. package/dist/cron/manager.d.ts.map +1 -0
  48. package/dist/cron/manager.js +245 -0
  49. package/dist/cron/manager.js.map +1 -0
  50. package/dist/cron/parser.d.ts +22 -0
  51. package/dist/cron/parser.d.ts.map +1 -0
  52. package/dist/cron/parser.js +269 -0
  53. package/dist/cron/parser.js.map +1 -0
  54. package/dist/cron/types.d.ts +76 -0
  55. package/dist/cron/types.d.ts.map +1 -0
  56. package/dist/cron/types.js +3 -0
  57. package/dist/cron/types.js.map +1 -0
  58. package/dist/decorators/constants.d.ts +2 -0
  59. package/dist/decorators/constants.d.ts.map +1 -1
  60. package/dist/decorators/constants.js +3 -1
  61. package/dist/decorators/constants.js.map +1 -1
  62. package/dist/decorators/core.d.ts +29 -11
  63. package/dist/decorators/core.d.ts.map +1 -1
  64. package/dist/decorators/core.js +49 -11
  65. package/dist/decorators/core.js.map +1 -1
  66. package/dist/decorators/cron.d.ts +57 -0
  67. package/dist/decorators/cron.d.ts.map +1 -0
  68. package/dist/decorators/cron.js +143 -0
  69. package/dist/decorators/cron.js.map +1 -0
  70. package/dist/decorators/index.d.ts +2 -0
  71. package/dist/decorators/index.d.ts.map +1 -1
  72. package/dist/decorators/index.js +2 -0
  73. package/dist/decorators/index.js.map +1 -1
  74. package/dist/decorators/middleware.d.ts +65 -2
  75. package/dist/decorators/middleware.d.ts.map +1 -1
  76. package/dist/decorators/middleware.js +148 -62
  77. package/dist/decorators/middleware.js.map +1 -1
  78. package/dist/decorators/params.d.ts +102 -2
  79. package/dist/decorators/params.d.ts.map +1 -1
  80. package/dist/decorators/params.js +105 -3
  81. package/dist/decorators/params.js.map +1 -1
  82. package/dist/decorators/response.d.ts.map +1 -1
  83. package/dist/decorators/response.js +32 -22
  84. package/dist/decorators/response.js.map +1 -1
  85. package/dist/decorators/routing.d.ts +81 -16
  86. package/dist/decorators/routing.d.ts.map +1 -1
  87. package/dist/decorators/routing.js +81 -16
  88. package/dist/decorators/routing.js.map +1 -1
  89. package/dist/di/container.d.ts.map +1 -1
  90. package/dist/di/container.js +6 -1
  91. package/dist/di/container.js.map +1 -1
  92. package/dist/docs/content/cli/commands.mdx +1 -1
  93. package/dist/docs/content/controllers.mdx +127 -10
  94. package/dist/docs/content/cron.mdx +196 -0
  95. package/dist/docs/content/decorators.mdx +22 -4
  96. package/dist/docs/content/errors.mdx +58 -9
  97. package/dist/docs/content/introduction.mdx +7 -7
  98. package/dist/docs/content/middleware.mdx +269 -6
  99. package/dist/docs/content/requests.mdx +180 -6
  100. package/dist/docs/content/responses.mdx +283 -32
  101. package/dist/docs/content/routing.mdx +46 -0
  102. package/dist/docs/content/swagger.mdx +228 -0
  103. package/dist/docs/content/validation.mdx +190 -11
  104. package/dist/docs/reference/context.mdx +11 -0
  105. package/dist/docs/reference/cron.mdx +300 -0
  106. package/dist/docs/reference/decorators.mdx +22 -4
  107. package/dist/docs/reference/error.mdx +88 -0
  108. package/dist/docs/reference/logger.mdx +175 -43
  109. package/dist/docs/reference/middleware.mdx +31 -0
  110. package/dist/docs/reference/router.mdx +22 -0
  111. package/dist/docs/reference/swagger.mdx +143 -0
  112. package/dist/docs/reference/validator.mdx +83 -23
  113. package/dist/error/errors.d.ts.map +1 -1
  114. package/dist/error/errors.js +95 -43
  115. package/dist/error/errors.js.map +1 -1
  116. package/dist/error/index.d.ts +1 -0
  117. package/dist/error/index.d.ts.map +1 -1
  118. package/dist/error/index.js +11 -1
  119. package/dist/error/index.js.map +1 -1
  120. package/dist/error/overlay.d.ts +42 -0
  121. package/dist/error/overlay.d.ts.map +1 -0
  122. package/dist/error/overlay.js +306 -0
  123. package/dist/error/overlay.js.map +1 -0
  124. package/dist/index.d.ts +1 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +22 -1
  127. package/dist/index.js.map +1 -1
  128. package/dist/lib/start-server.js +33 -7
  129. package/dist/lib/start-server.js.map +1 -1
  130. package/dist/logger/index.d.ts +1 -1
  131. package/dist/logger/index.d.ts.map +1 -1
  132. package/dist/logger/index.js +9 -1
  133. package/dist/logger/index.js.map +1 -1
  134. package/dist/middleware/guard.d.ts +2 -2
  135. package/dist/middleware/guard.d.ts.map +1 -1
  136. package/dist/middleware/guard.js.map +1 -1
  137. package/dist/middleware/ip-filter.d.ts +1 -0
  138. package/dist/middleware/ip-filter.d.ts.map +1 -1
  139. package/dist/middleware/ip-filter.js +2 -0
  140. package/dist/middleware/ip-filter.js.map +1 -1
  141. package/dist/middleware/middleware.d.ts +2 -2
  142. package/dist/middleware/middleware.d.ts.map +1 -1
  143. package/dist/middleware/middleware.js +20 -2
  144. package/dist/middleware/middleware.js.map +1 -1
  145. package/dist/middleware/security.d.ts +43 -1
  146. package/dist/middleware/security.d.ts.map +1 -1
  147. package/dist/middleware/security.js +101 -0
  148. package/dist/middleware/security.js.map +1 -1
  149. package/dist/response/index.d.ts +229 -6
  150. package/dist/response/index.d.ts.map +1 -1
  151. package/dist/response/index.js +272 -2
  152. package/dist/response/index.js.map +1 -1
  153. package/dist/router/boundary.d.ts +41 -11
  154. package/dist/router/boundary.d.ts.map +1 -1
  155. package/dist/router/boundary.js +24 -2
  156. package/dist/router/boundary.js.map +1 -1
  157. package/dist/router/controller-registrar.d.ts.map +1 -1
  158. package/dist/router/controller-registrar.js +108 -4
  159. package/dist/router/controller-registrar.js.map +1 -1
  160. package/dist/router/index.d.ts +2 -2
  161. package/dist/router/index.d.ts.map +1 -1
  162. package/dist/router/index.js +2 -1
  163. package/dist/router/index.js.map +1 -1
  164. package/dist/router/route-builder.d.ts +262 -65
  165. package/dist/router/route-builder.d.ts.map +1 -1
  166. package/dist/router/route-builder.js +181 -23
  167. package/dist/router/route-builder.js.map +1 -1
  168. package/dist/router/route-scanner.d.ts +6 -0
  169. package/dist/router/route-scanner.d.ts.map +1 -1
  170. package/dist/router/route-scanner.js +71 -792
  171. package/dist/router/route-scanner.js.map +1 -1
  172. package/dist/router/router.d.ts.map +1 -1
  173. package/dist/router/router.js +62 -17
  174. package/dist/router/router.js.map +1 -1
  175. package/dist/router/scanner/boundary-loader.d.ts +18 -0
  176. package/dist/router/scanner/boundary-loader.d.ts.map +1 -0
  177. package/dist/router/scanner/boundary-loader.js +539 -0
  178. package/dist/router/scanner/boundary-loader.js.map +1 -0
  179. package/dist/router/scanner/cron-mounter.d.ts +15 -0
  180. package/dist/router/scanner/cron-mounter.d.ts.map +1 -0
  181. package/dist/router/scanner/cron-mounter.js +216 -0
  182. package/dist/router/scanner/cron-mounter.js.map +1 -0
  183. package/dist/router/scanner/error-mounter.d.ts +14 -0
  184. package/dist/router/scanner/error-mounter.d.ts.map +1 -0
  185. package/dist/router/scanner/error-mounter.js +200 -0
  186. package/dist/router/scanner/error-mounter.js.map +1 -0
  187. package/dist/router/scanner/fs-scanner.d.ts +25 -0
  188. package/dist/router/scanner/fs-scanner.d.ts.map +1 -0
  189. package/dist/router/scanner/fs-scanner.js +115 -0
  190. package/dist/router/scanner/fs-scanner.js.map +1 -0
  191. package/dist/router/scanner/functional-compiler.d.ts +9 -0
  192. package/dist/router/scanner/functional-compiler.d.ts.map +1 -0
  193. package/dist/router/scanner/functional-compiler.js +233 -0
  194. package/dist/router/scanner/functional-compiler.js.map +1 -0
  195. package/dist/router/scanner/index.d.ts +9 -0
  196. package/dist/router/scanner/index.d.ts.map +1 -0
  197. package/dist/router/scanner/index.js +19 -0
  198. package/dist/router/scanner/index.js.map +1 -0
  199. package/dist/router/types.d.ts +23 -0
  200. package/dist/router/types.d.ts.map +1 -1
  201. package/dist/server/app.d.ts +3 -0
  202. package/dist/server/app.d.ts.map +1 -1
  203. package/dist/server/app.js +13 -0
  204. package/dist/server/app.js.map +1 -1
  205. package/dist/server/bootstrapper.d.ts.map +1 -1
  206. package/dist/server/bootstrapper.js +91 -30
  207. package/dist/server/bootstrapper.js.map +1 -1
  208. package/dist/server/cluster.d.ts.map +1 -1
  209. package/dist/server/cluster.js +13 -2
  210. package/dist/server/cluster.js.map +1 -1
  211. package/dist/server/context.d.ts +8 -0
  212. package/dist/server/context.d.ts.map +1 -1
  213. package/dist/server/context.js +50 -6
  214. package/dist/server/context.js.map +1 -1
  215. package/dist/server/helpers/body-parser.d.ts +18 -0
  216. package/dist/server/helpers/body-parser.d.ts.map +1 -0
  217. package/dist/server/helpers/body-parser.js +246 -0
  218. package/dist/server/helpers/body-parser.js.map +1 -0
  219. package/dist/server/helpers/cookie.d.ts +4 -0
  220. package/dist/server/helpers/cookie.d.ts.map +1 -0
  221. package/dist/server/helpers/cookie.js +61 -0
  222. package/dist/server/helpers/cookie.js.map +1 -0
  223. package/dist/server/helpers/etag.d.ts +3 -0
  224. package/dist/server/helpers/etag.d.ts.map +1 -0
  225. package/dist/server/helpers/etag.js +25 -0
  226. package/dist/server/helpers/etag.js.map +1 -0
  227. package/dist/server/helpers/index.d.ts +6 -0
  228. package/dist/server/helpers/index.d.ts.map +1 -0
  229. package/dist/server/helpers/index.js +21 -0
  230. package/dist/server/helpers/index.js.map +1 -0
  231. package/dist/server/helpers/ip.d.ts +9 -0
  232. package/dist/server/helpers/ip.d.ts.map +1 -0
  233. package/dist/server/helpers/ip.js +62 -0
  234. package/dist/server/helpers/ip.js.map +1 -0
  235. package/dist/server/helpers/stream.d.ts +4 -0
  236. package/dist/server/helpers/stream.d.ts.map +1 -0
  237. package/dist/server/helpers/stream.js +193 -0
  238. package/dist/server/helpers/stream.js.map +1 -0
  239. package/dist/server/lifecycle.d.ts +22 -0
  240. package/dist/server/lifecycle.d.ts.map +1 -0
  241. package/dist/server/lifecycle.js +106 -0
  242. package/dist/server/lifecycle.js.map +1 -0
  243. package/dist/server/request-handler.d.ts +1 -0
  244. package/dist/server/request-handler.d.ts.map +1 -1
  245. package/dist/server/request-handler.js +27 -17
  246. package/dist/server/request-handler.js.map +1 -1
  247. package/dist/server/request.d.ts +1 -139
  248. package/dist/server/request.d.ts.map +1 -1
  249. package/dist/server/request.js +37 -433
  250. package/dist/server/request.js.map +1 -1
  251. package/dist/server/response.d.ts +112 -156
  252. package/dist/server/response.d.ts.map +1 -1
  253. package/dist/server/response.js +129 -279
  254. package/dist/server/response.js.map +1 -1
  255. package/dist/swagger/decorators.d.ts +81 -0
  256. package/dist/swagger/decorators.d.ts.map +1 -0
  257. package/dist/swagger/decorators.js +172 -0
  258. package/dist/swagger/decorators.js.map +1 -0
  259. package/dist/swagger/generator.d.ts +19 -0
  260. package/dist/swagger/generator.d.ts.map +1 -0
  261. package/dist/swagger/generator.js +344 -0
  262. package/dist/swagger/generator.js.map +1 -0
  263. package/dist/swagger/index.d.ts +31 -0
  264. package/dist/swagger/index.d.ts.map +1 -0
  265. package/dist/swagger/index.js +53 -0
  266. package/dist/swagger/index.js.map +1 -0
  267. package/dist/swagger/mounter.d.ts +7 -0
  268. package/dist/swagger/mounter.d.ts.map +1 -0
  269. package/dist/swagger/mounter.js +56 -0
  270. package/dist/swagger/mounter.js.map +1 -0
  271. package/dist/swagger/types.d.ts +190 -0
  272. package/dist/swagger/types.d.ts.map +1 -0
  273. package/dist/swagger/types.js +3 -0
  274. package/dist/swagger/types.js.map +1 -0
  275. package/dist/swagger/ui.d.ts +6 -0
  276. package/dist/swagger/ui.d.ts.map +1 -0
  277. package/dist/swagger/ui.js +118 -0
  278. package/dist/swagger/ui.js.map +1 -0
  279. package/dist/testing/index.d.ts.map +1 -1
  280. package/dist/testing/index.js +6 -1
  281. package/dist/testing/index.js.map +1 -1
  282. package/dist/testing/mocks.d.ts.map +1 -1
  283. package/dist/testing/mocks.js +15 -3
  284. package/dist/testing/mocks.js.map +1 -1
  285. package/dist/utils/logger.d.ts +8 -0
  286. package/dist/utils/logger.d.ts.map +1 -1
  287. package/dist/utils/logger.js +184 -1
  288. package/dist/utils/logger.js.map +1 -1
  289. package/dist/validator/builder.d.ts +223 -0
  290. package/dist/validator/builder.d.ts.map +1 -0
  291. package/dist/validator/builder.js +517 -0
  292. package/dist/validator/builder.js.map +1 -0
  293. package/dist/validator/engine.d.ts +19 -0
  294. package/dist/validator/engine.d.ts.map +1 -0
  295. package/dist/validator/engine.js +568 -0
  296. package/dist/validator/engine.js.map +1 -0
  297. package/dist/validator/error.d.ts +12 -0
  298. package/dist/validator/error.d.ts.map +1 -0
  299. package/dist/validator/error.js +63 -0
  300. package/dist/validator/error.js.map +1 -0
  301. package/dist/validator/pagination.d.ts +40 -0
  302. package/dist/validator/pagination.d.ts.map +1 -0
  303. package/dist/validator/pagination.js +60 -0
  304. package/dist/validator/pagination.js.map +1 -0
  305. package/dist/validator/tex-types.d.ts +2 -1
  306. package/dist/validator/tex-types.d.ts.map +1 -1
  307. package/dist/validator/tex-types.js +2 -1
  308. package/dist/validator/tex-types.js.map +1 -1
  309. package/dist/validator/tex.d.ts +6 -142
  310. package/dist/validator/tex.d.ts.map +1 -1
  311. package/dist/validator/tex.js +14 -733
  312. package/dist/validator/tex.js.map +1 -1
  313. package/dist/validator/types.d.ts +83 -0
  314. package/dist/validator/types.d.ts.map +1 -0
  315. package/dist/validator/types.js +3 -0
  316. package/dist/validator/types.js.map +1 -0
  317. package/package.json +8 -4
  318. package/dist/dev/error-overlay.d.ts +0 -3
  319. package/dist/dev/error-overlay.d.ts.map +0 -1
  320. package/dist/dev/error-overlay.js +0 -118
  321. package/dist/dev/error-overlay.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/server/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAc9C,qBAAa,WAAW,CACtB,KAAK,GAAG,OAAO,EACf,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAuDvB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,YAAY;IACxB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IAxDZ,MAAM,EAAG,OAAO,CAAA;IAChB,IAAI,EAAG,KAAK,CAAA;IACZ,KAAK,EAAE,OAAO,UAAU,EAAE,QAAQ,EAAE,CAAK;IAChD,OAAO,CAAC,KAAK,CAAC,CAA6B;IAE3C,IAAI,IAAI,IAAI,OAAO,UAAU,EAAE,QAAQ,GAAG,SAAS,CAElD;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,UAAU,EAAE,QAAQ,GAAG,SAAS,EAEpD;IAEM,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAG,OAAO,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACxD,GAAG,EAAG,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAG,WAAW,CAAA;IAC3B,OAAO,CAAC,gBAAgB,CAAkB;IAEnC,QAAQ,gBAAsB;IAErC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAC,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAC,CAAwB;IACzC,OAAO,CAAC,IAAI,CAAC,CAAU;IACvB,OAAO,CAAC,GAAG,CAAC,CAAQ;IACpB,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAE1B,OAAO,CAAC,QAAQ,CAMf;IAED,OAAO,CAAC,aAAa;IAMd,OAAO,IAAI,IAAI;gBAKb,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,YAAY,EAChB,UAAU,GAAE,OAAO,GAAG,MAAc,EACpC,SAAS,SAAW;IAOvB,IAAI,CACT,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,YAAY,EACjB,UAAU,GAAE,OAAO,GAAG,MAAc,EACpC,SAAS,SAAW,GACnB,IAAI;IAkCP,OAAO,CAAC,OAAO,CAAC,CAAQ;IAExB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAErB;IAED,IAAI,OAAO,IAAI,OAAO,WAAW,EAAE,mBAAmB,CAErD;IAED,IAAI,IAAI,IAAI,MAAM,CAQjB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAEnB;IAED,IAAI,KAAK,IAAI,MAAM,CAWlB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAEpC;IAED,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMpC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAEtC;IAED;;;;;;;;;;OAUG;IACH,IAAI,GAAG,IAAI,MAAM,EAAE,CAIlB;IAED;;;;;;;;OAQG;IACH,IAAI,EAAE,IAAI,MAAM,CAIf;IAED,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;IA0BnB,IAAI,QAAQ,IAAI,MAAM,CAiBrB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;;;;;;OASG;IACH,IAAI,QAAQ,IAAI,MAAM,CAarB;IAED;;;;;OAKG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMvC;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAMhC;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK;IAKtD;;;;;;;OAOG;IACH,gBAAgB,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK;IAKnE;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,OAAO,CAWnB;IAED;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAEK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAMvB,IAAI,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;IAe/B,QAAQ,IAAI,OAAO,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC3B,CAAC;IAqIF,WAAW,CAAC,CAAC,KAAK,CAAC;IAInB,UAAU,CAAC,CAAC,KAAK,CAAC;IAIlB,SAAS,CAAC,CAAC,KAAK,CAAC;IAIjB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAS5B,YAAY,IAAI,IAAI;YASN,UAAU;IA6FlB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,KAAK,EAAE;YACL,SAAS,EAAE,MAAM,CAAA;YACjB,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;SACb,EAAE,CAAA;KACJ,CAAC;CAwFH"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/server/request.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,15 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.ExisRequest = void 0;
37
4
  const errors_1 = require("../error/errors");
5
+ const rs_1 = require("@exisjs/rs");
6
+ const helpers_1 = require("./helpers");
38
7
  // eslint-disable-next-line @typescript-eslint/no-require-imports
39
8
  const accepts = require('accepts');
40
9
  // eslint-disable-next-line @typescript-eslint/no-require-imports
41
10
  const fresh = require('fresh');
42
11
  // eslint-disable-next-line @typescript-eslint/no-require-imports
43
12
  const qs = require('fast-querystring');
44
- // eslint-disable-next-line @typescript-eslint/no-require-imports
45
- const busboy = require('busboy');
46
- const rs_1 = require("@exisjs/rs");
47
13
  class ExisRequest {
48
14
  get file() {
49
15
  return this._file || this.files?.[0];
@@ -58,6 +24,24 @@ class ExisRequest {
58
24
  }
59
25
  cleanup() {
60
26
  this.raw.removeListener('close', this._onClose);
27
+ this._diCache.clear();
28
+ this.user = undefined;
29
+ this.session = undefined;
30
+ this.body = undefined;
31
+ this.params = undefined;
32
+ this.files = [];
33
+ this._file = undefined;
34
+ this.rawBody = undefined;
35
+ this.requestId = undefined;
36
+ this.tenantId = undefined;
37
+ this._path = undefined;
38
+ this._query = undefined;
39
+ this._cookies = undefined;
40
+ this._ips = undefined;
41
+ this._ip = undefined;
42
+ this._protocol = undefined;
43
+ this._hostname = undefined;
44
+ this._method = undefined;
61
45
  }
62
46
  constructor(raw, res, trustProxy = false, bodyLimit = 10485760 // 10MB
63
47
  ) {
@@ -153,239 +137,63 @@ class ExisRequest {
153
137
  set cookies(val) {
154
138
  this._cookies = val;
155
139
  }
156
- /**
157
- * When "trust proxy" is set, trusted proxy addresses + client.
158
- *
159
- * For example if the value were "client, proxy1, proxy2"
160
- * you would receive the array `["client", "proxy1", "proxy2"]`
161
- * where "proxy2" is the furthest down-stream and "proxy1" and
162
- * "proxy2" were trusted.
163
- *
164
- * @return {string[]}
165
- * @public
166
- */
167
140
  get ips() {
168
141
  if (this._ips !== undefined)
169
142
  return this._ips;
170
- this._resolveIps();
143
+ const res = (0, helpers_1.resolveIps)(this.raw, this.trustProxy);
144
+ this._ips = res.ips;
145
+ this._ip = res.ip;
171
146
  return this._ips;
172
147
  }
173
- /**
174
- * Return the remote address from the trusted proxy.
175
- *
176
- * The is the remote address on the socket unless
177
- * "trust proxy" is set.
178
- *
179
- * @return {string}
180
- * @public
181
- */
182
148
  get ip() {
183
149
  if (this._ip !== undefined)
184
150
  return this._ip;
185
- this._resolveIps();
151
+ const res = (0, helpers_1.resolveIps)(this.raw, this.trustProxy);
152
+ this._ips = res.ips;
153
+ this._ip = res.ip;
186
154
  return this._ip;
187
155
  }
188
- _normalizeIp(ip) {
189
- if (ip.startsWith('::ffff:')) {
190
- return ip.substring(7);
191
- }
192
- if (ip === '::1') {
193
- return '127.0.0.1';
194
- }
195
- return ip;
196
- }
197
- _resolveIps() {
198
- const xForwardedFor = this.raw.headers['x-forwarded-for'];
199
- let ips = [];
200
- if (xForwardedFor) {
201
- const raw = Array.isArray(xForwardedFor)
202
- ? xForwardedFor.join(',')
203
- : xForwardedFor;
204
- ips = raw.split(',').map((ip) => this._normalizeIp(ip.trim()));
205
- }
206
- const rawRemote = this.raw.socket?.remoteAddress ?? '127.0.0.1';
207
- const remoteAddress = this._normalizeIp(rawRemote);
208
- if (this.trustProxy) {
209
- let trustedIps = ips;
210
- if (typeof this.trustProxy === 'number' && this.trustProxy > 0) {
211
- trustedIps = ips.slice(-(this.trustProxy + 1));
212
- }
213
- this._ips = trustedIps;
214
- this._ip = trustedIps.length > 0 ? trustedIps[0] : remoteAddress;
215
- }
216
- else {
217
- this._ips = [];
218
- this._ip = remoteAddress;
219
- }
220
- }
221
156
  get protocol() {
222
157
  if (this._protocol !== undefined)
223
158
  return this._protocol;
224
- const connection = this.raw.socket;
225
- const isTls = connection?.encrypted || false;
226
- let protocol = isTls ? 'https' : 'http';
227
- const xForwardedProto = this.raw.headers['x-forwarded-proto'];
228
- if (this.trustProxy && xForwardedProto) {
229
- const rawProto = Array.isArray(xForwardedProto)
230
- ? xForwardedProto.join(',')
231
- : xForwardedProto;
232
- protocol = rawProto.split(',')[0].trim();
233
- }
234
- this._protocol = protocol;
159
+ this._protocol = (0, helpers_1.resolveProtocol)(this.raw, this.trustProxy);
235
160
  return this._protocol;
236
161
  }
237
162
  get secure() {
238
163
  return this.protocol === 'https';
239
164
  }
240
- /**
241
- * Parse the "Host" header field to a hostname.
242
- *
243
- * When the "trust proxy" setting trusts the socket
244
- * address, the "X-Forwarded-Host" header field will
245
- * be trusted.
246
- *
247
- * @return {string}
248
- * @public
249
- */
250
165
  get hostname() {
251
166
  if (this._hostname !== undefined)
252
167
  return this._hostname;
253
- let host = this.raw.headers['x-forwarded-host'];
254
- if (!host || !this.trustProxy) {
255
- host = this.raw.headers.host || '';
256
- }
257
- if (Array.isArray(host))
258
- host = host[0];
259
- // IPv6 can have colons, so look for port after bracket or last colon
260
- const offset = host[0] === '[' ? host.indexOf(']') + 1 : 0;
261
- const index = host.indexOf(':', offset);
262
- this._hostname = index !== -1 ? host.substring(0, index) : host;
168
+ this._hostname = (0, helpers_1.resolveHostname)(this.raw, this.trustProxy);
263
169
  return this._hostname;
264
170
  }
265
- /**
266
- * The original URL requested by the client.
267
- *
268
- * @return {string}
269
- * @public
270
- */
271
171
  get originalUrl() {
272
172
  return this._urlStr;
273
173
  }
274
- /**
275
- * Return request header.
276
- *
277
- * The `Referrer` header field is special-cased,
278
- * both `Referrer` and `Referer` are interchangeable.
279
- *
280
- * Examples:
281
- *
282
- * req.get('Content-Type');
283
- * // => "text/plain"
284
- *
285
- * req.get('content-type');
286
- * // => "text/plain"
287
- *
288
- * req.get('Something');
289
- * // => undefined
290
- *
291
- * Aliased as `req.header()`.
292
- *
293
- * @param {string} header
294
- * @return {string | undefined}
295
- * @public
296
- */
297
174
  get(header) {
298
175
  const val = this.raw.headers[header.toLowerCase()];
299
176
  if (Array.isArray(val))
300
177
  return val[0];
301
178
  return val;
302
179
  }
303
- /**
304
- * Return request header.
305
- *
306
- * Alias for `req.get()`.
307
- *
308
- * @param {string} name
309
- * @return {string | undefined}
310
- * @public
311
- */
312
180
  header(name) {
313
181
  return this.get(name);
314
182
  }
315
- /**
316
- * Check if the incoming request contains the "Content-Type"
317
- * header field, and it contains the given mime `type`.
318
- *
319
- * Examples:
320
- *
321
- * // With Content-Type: text/html; charset=utf-8
322
- * req.is('html');
323
- * req.is('text/html');
324
- * req.is('text/*');
325
- * // => true
326
- *
327
- * // When Content-Type is application/json
328
- * req.is('json');
329
- * req.is('application/json');
330
- * req.is('application/*');
331
- * // => true
332
- *
333
- * req.is('html');
334
- * // => false
335
- *
336
- * @param {string} contentType
337
- * @return {boolean}
338
- * @public
339
- */
340
183
  is(contentType) {
341
184
  const header = this.get('content-type');
342
185
  if (!header)
343
186
  return false;
344
187
  return header.includes(contentType);
345
188
  }
346
- /**
347
- * Check if the given `type(s)` is acceptable, returning
348
- * the best match when true, otherwise `false`, in which
349
- * case you should respond with 406 "Not Acceptable".
350
- *
351
- * Examples:
352
- *
353
- * // Accept: text/html
354
- * req.accepts('html');
355
- * // => "html"
356
- *
357
- * // Accept: text/*, application/json
358
- * req.accepts('html');
359
- * // => "html"
360
- *
361
- * @param {string[]} types
362
- * @return {string | string[] | false}
363
- * @public
364
- */
365
189
  accepts(...types) {
366
190
  const accept = accepts(this.raw);
367
191
  return accept.types(...types);
368
192
  }
369
- /**
370
- * Check if the given `lang`s are acceptable,
371
- * otherwise you should respond with 406 "Not Acceptable".
372
- *
373
- * @param {string[]} languages
374
- * @return {string | string[] | false}
375
- * @public
376
- */
377
193
  acceptsLanguages(...languages) {
378
194
  const accept = accepts(this.raw);
379
195
  return accept.languages(...languages);
380
196
  }
381
- /**
382
- * Check if the request is fresh, aka
383
- * Last-Modified or the ETag
384
- * still match.
385
- *
386
- * @return {boolean}
387
- * @public
388
- */
389
197
  get fresh() {
390
198
  const method = this.method;
391
199
  const s = this.res.statusCode;
@@ -399,14 +207,6 @@ class ExisRequest {
399
207
  }
400
208
  return false;
401
209
  }
402
- /**
403
- * Check if the request is stale, aka
404
- * "Last-Modified" and / or the "ETag" for the
405
- * resource has changed.
406
- *
407
- * @return {boolean}
408
- * @public
409
- */
410
210
  get stale() {
411
211
  return !this.fresh;
412
212
  }
@@ -449,86 +249,9 @@ class ExisRequest {
449
249
  if (!contentType.includes('boundary=')) {
450
250
  throw errors_1.HttpError.badRequest('Missing multipart boundary. Ensure you are not manually setting the Content-Type header in your client (e.g. Axios) so that the browser can auto-attach the boundary string.');
451
251
  }
452
- return new Promise((resolve, reject) => {
453
- const fields = {};
454
- try {
455
- const bb = busboy({
456
- headers: this.raw.headers,
457
- limits: { fileSize: this.bodyLimit },
458
- });
459
- const cleanup = () => {
460
- this.raw.removeListener('close', onRawClose);
461
- this.raw.removeListener('aborted', onRawClose);
462
- };
463
- const onRawClose = () => {
464
- const isComplete = Boolean(this.raw.complete || this.raw.readableEnded);
465
- if (!isComplete) {
466
- try {
467
- ;
468
- bb.destroy?.();
469
- }
470
- catch {
471
- /* noop */
472
- }
473
- cleanup();
474
- reject(errors_1.HttpError.badRequest('Client disconnected prematurely during multipart upload'));
475
- }
476
- };
477
- this.raw.once('close', onRawClose);
478
- this.raw.once('aborted', onRawClose);
479
- bb.on('field', (name, val) => {
480
- fields[name] = val;
481
- });
482
- bb.on('file', (name, fileStream, info) => {
483
- const chunks = [];
484
- let size = 0;
485
- fileStream.on('data', (data) => {
486
- chunks.push(data);
487
- size += data.length;
488
- });
489
- fileStream.on('end', () => {
490
- const data = Buffer.concat(chunks);
491
- const filename = info.filename || 'unknown';
492
- this.files.push({
493
- fieldname: name,
494
- filename: filename,
495
- mimetype: info.mimeType || 'application/octet-stream',
496
- data,
497
- size,
498
- saveToDisk: async (destDir) => {
499
- const fs = await Promise.resolve().then(() => __importStar(require('node:fs/promises')));
500
- const path = await Promise.resolve().then(() => __importStar(require('node:path')));
501
- // Create dir if not exists
502
- await fs.mkdir(destDir, { recursive: true });
503
- // Generate unique filename
504
- const ext = path.extname(filename);
505
- const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9);
506
- const finalName = `${name}-${uniqueSuffix}${ext}`;
507
- const destPath = path.join(destDir, finalName);
508
- await fs.writeFile(destPath, data);
509
- return destPath;
510
- },
511
- });
512
- });
513
- });
514
- bb.on('finish', () => {
515
- cleanup();
516
- this.body = fields;
517
- resolve({
518
- fields,
519
- files: this.files,
520
- });
521
- });
522
- bb.on('error', (err) => {
523
- cleanup();
524
- reject(err);
525
- });
526
- this.raw.pipe(bb);
527
- }
528
- catch (err) {
529
- reject(errors_1.HttpError.badRequest(err.message || 'Failed to parse multipart data'));
530
- }
531
- });
252
+ const res = await (0, helpers_1.parseMultipartFormData)(this.raw, this.bodyLimit, this.files);
253
+ this.body = res.fields;
254
+ return res;
532
255
  }
533
256
  throw errors_1.HttpError.badRequest('Unsupported form data type');
534
257
  }
@@ -565,79 +288,10 @@ class ExisRequest {
565
288
  }
566
289
  async _parseBody() {
567
290
  const contentType = this.get('content-type') ?? '';
568
- if (['GET', 'HEAD', 'OPTIONS'].includes(this.method) ||
569
- contentType.includes('multipart/form-data')) {
570
- return;
571
- }
572
- if (typeof this.raw.readBody === 'function') {
573
- const buf = await this.raw.readBody(this.bodyLimit);
574
- if (buf) {
575
- this.rawBody = buf.toString('utf8');
576
- }
577
- else {
578
- this.rawBody = '';
579
- }
580
- return;
291
+ const bodyStr = await (0, helpers_1.parseRawBody)(this.raw, this.bodyLimit, contentType, this.method);
292
+ if (bodyStr !== undefined) {
293
+ this.rawBody = bodyStr;
581
294
  }
582
- return new Promise((resolve, reject) => {
583
- let settled = false;
584
- const chunks = [];
585
- let size = 0;
586
- const onData = (chunk) => {
587
- if (settled)
588
- return;
589
- size += chunk.length;
590
- if (size > this.bodyLimit) {
591
- this.raw.destroy?.();
592
- done(errors_1.HttpError.payloadTooLarge(`Request body exceeds limit of ${this.bodyLimit} bytes. Configure 'bodyLimit' in 'exis.config.ts' to allow larger payloads.`));
593
- return;
594
- }
595
- chunks.push(chunk);
596
- };
597
- const onError = (err) => done(err);
598
- const onAborted = () => done(new Error('Request aborted by client'));
599
- const onClose = () => {
600
- const isComplete = Boolean(this.raw.complete || this.raw.readableEnded);
601
- if (!settled && !isComplete)
602
- done(new Error('Request closed prematurely'));
603
- };
604
- const onEnd = () => {
605
- if (settled)
606
- return;
607
- this.rawBody = Buffer.concat(chunks).toString('utf8');
608
- done();
609
- };
610
- const cleanup = () => {
611
- this.raw.removeListener('data', onData);
612
- this.raw.removeListener('error', onError);
613
- this.raw.removeListener('aborted', onAborted);
614
- this.raw.removeListener('close', onClose);
615
- this.raw.removeListener('end', onEnd);
616
- };
617
- const done = (err) => {
618
- if (settled)
619
- return;
620
- settled = true;
621
- cleanup();
622
- if (err)
623
- reject(err);
624
- else
625
- resolve();
626
- };
627
- const contentLengthStr = this.get('content-length');
628
- if (contentLengthStr) {
629
- const contentLength = parseInt(contentLengthStr, 10);
630
- if (!isNaN(contentLength) && contentLength > this.bodyLimit) {
631
- done(errors_1.HttpError.payloadTooLarge(`Request body exceeds limit of ${this.bodyLimit} bytes. Configure 'bodyLimit' in 'exis.config.ts' to allow larger payloads.`));
632
- return;
633
- }
634
- }
635
- this.raw.on('data', onData);
636
- this.raw.on('error', onError);
637
- this.raw.on('aborted', onAborted);
638
- this.raw.on('close', onClose);
639
- this.raw.on('end', onEnd);
640
- });
641
295
  }
642
296
  async streamUpload(destDir) {
643
297
  const contentType = this.get('content-type') ?? '';
@@ -647,59 +301,9 @@ class ExisRequest {
647
301
  if (!contentType.includes('boundary=')) {
648
302
  throw errors_1.HttpError.badRequest('Missing multipart boundary.');
649
303
  }
650
- const fs = await Promise.resolve().then(() => __importStar(require('node:fs')));
651
- const path = await Promise.resolve().then(() => __importStar(require('node:path')));
652
- await fs.promises.mkdir(destDir, { recursive: true });
653
- return new Promise((resolve, reject) => {
654
- const fields = {};
655
- const streamedFiles = [];
656
- try {
657
- const bb = busboy({ headers: this.raw.headers });
658
- bb.on('field', (name, val) => {
659
- fields[name] = val;
660
- });
661
- bb.on('file', (name, fileStream, info) => {
662
- const filename = info.filename || 'unknown';
663
- const ext = path.extname(filename);
664
- const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9);
665
- const finalName = `${name}-${uniqueSuffix}${ext}`;
666
- const destPath = path.join(destDir, finalName);
667
- const writeStream = fs.createWriteStream(destPath);
668
- let size = 0;
669
- fileStream.on('data', (data) => {
670
- size += data.length;
671
- });
672
- fileStream.pipe(writeStream);
673
- fileStream.on('end', () => {
674
- streamedFiles.push({
675
- fieldname: name,
676
- filename,
677
- mimetype: info.mimeType || 'application/octet-stream',
678
- destPath,
679
- size,
680
- });
681
- });
682
- });
683
- bb.on('finish', () => {
684
- this.body = (0, rs_1.stripPrototype)(fields);
685
- resolve({
686
- fields: this.body,
687
- files: streamedFiles,
688
- });
689
- });
690
- bb.on('error', reject);
691
- if (typeof this.raw.pipe === 'function') {
692
- this.raw.pipe(bb);
693
- }
694
- else {
695
- this.raw.on('data', (chunk) => bb.write(chunk));
696
- this.raw.on('end', () => bb.end());
697
- }
698
- }
699
- catch (err) {
700
- reject(errors_1.HttpError.badRequest(err.message || 'Failed to stream multipart data'));
701
- }
702
- });
304
+ const res = await (0, helpers_1.streamMultipartUpload)(this.raw, destDir);
305
+ this.body = res.fields;
306
+ return res;
703
307
  }
704
308
  }
705
309
  exports.ExisRequest = ExisRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/server/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/server/request.ts"],"names":[],"mappings":"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"}