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
@@ -8,30 +8,11 @@ const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
9
  const index_1 = require("../logger/index");
10
10
  const sse_1 = require("./sse");
11
+ const helpers_1 = require("./helpers");
11
12
  // eslint-disable-next-line @typescript-eslint/no-require-imports
12
13
  const contentDisposition = require('content-disposition');
13
14
  // eslint-disable-next-line @typescript-eslint/no-require-imports
14
15
  const mime = require('mime-types');
15
- const rs_1 = require("@exisjs/rs");
16
- function generateETag(content) {
17
- return (0, rs_1.generateEtag)(content);
18
- }
19
- function nativeStringify(data) {
20
- if (data === null || data === undefined) {
21
- return 'null';
22
- }
23
- // If native rust serialization is available, use it
24
- if (typeof rs_1.fastJsonStringifyBuffer === 'function') {
25
- // Validate object can be serialized without throwing V8 check failure on circularity
26
- const str = JSON.stringify(data);
27
- if (str.length > 512) {
28
- // For larger payloads, Rust serde serialization into Buffer gives zero V8 GC overhead
29
- return (0, rs_1.fastJsonStringifyBuffer)(data);
30
- }
31
- return str;
32
- }
33
- return JSON.stringify(data);
34
- }
35
16
  class ExisResponse {
36
17
  constructor(raw) {
37
18
  this.raw = raw;
@@ -96,11 +77,15 @@ class ExisResponse {
96
77
  }
97
78
  }
98
79
  /**
99
- * Set status `code`.
80
+ * Sets the HTTP response status code.
100
81
  *
101
- * @param {number} code
102
- * @return {this}
103
- * @public
82
+ * @param code HTTP status code (e.g. `200`, `201`, `400`, `404`, `500`)
83
+ * @returns Response instance for chaining
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * res.status(201).json({ created: true })
88
+ * ```
104
89
  */
105
90
  status(code) {
106
91
  if (this.raw.destroyed || this.raw.headersSent)
@@ -109,51 +94,24 @@ class ExisResponse {
109
94
  return this;
110
95
  }
111
96
  /**
112
- * Set header `field` to `val`, or pass
113
- * an object of header fields.
114
- *
115
- * Examples:
116
- *
117
- * res.set('Foo', ['bar', 'baz']);
118
- * res.set('Accept', 'application/json');
119
- *
120
- * Aliased as `res.header()`.
97
+ * Sets a response header field to a specific value.
121
98
  *
122
- * @param {string} header
123
- * @param {string | string[]} value
124
- * @return {this}
125
- * @public
99
+ * @param header Header name
100
+ * @param value Header value or array of values
101
+ * @returns Response instance for chaining
126
102
  */
127
103
  set(header, value) {
128
104
  this.setHeader(header, value);
129
105
  return this;
130
106
  }
131
107
  /**
132
- * Set header `field` to `val`, or pass
133
- * an object of header fields.
134
- *
135
- * Alias for `res.set()`.
136
- *
137
- * @param {string} name
138
- * @param {string | string[]} value
139
- * @return {this}
140
- * @public
108
+ * Sets a response header field (alias for `res.set()`).
141
109
  */
142
110
  header(name, value) {
143
111
  return this.set(name, value);
144
112
  }
145
113
  /**
146
- * Send given HTTP status code.
147
- *
148
- * Sets the response status to `code` and the body
149
- * to the string representation of the `code`.
150
- *
151
- * Examples:
152
- *
153
- * res.sendStatus(200);
154
- *
155
- * @param {number} code
156
- * @public
114
+ * Sets status code and sends its numeric string representation.
157
115
  */
158
116
  sendStatus(code) {
159
117
  this.statusCode = code;
@@ -170,18 +128,7 @@ class ExisResponse {
170
128
  return this;
171
129
  }
172
130
  /**
173
- * Append additional header `field` with value `val`.
174
- *
175
- * Example:
176
- *
177
- * res.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']);
178
- * res.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly');
179
- * res.append('Warning', '199 Miscellaneous warning');
180
- *
181
- * @param {string} field
182
- * @param {string | string[]} value
183
- * @return {this}
184
- * @public
131
+ * Appends an additional value to an existing header field (e.g. `Set-Cookie`, `Link`, `Warning`).
185
132
  */
186
133
  append(field, value) {
187
134
  const prev = this.getHeader(field);
@@ -195,16 +142,14 @@ class ExisResponse {
195
142
  return this;
196
143
  }
197
144
  /**
198
- * Send a response.
199
- *
200
- * Examples:
145
+ * Sends a string, Buffer, or object response to the client.
201
146
  *
202
- * res.send(Buffer.from('wahoo'));
203
- * res.send({ some: 'json' });
204
- * res.send('<p>some html</p>');
147
+ * @param body Response payload (string, Buffer, or object)
205
148
  *
206
- * @param {string | Buffer | object} body
207
- * @public
149
+ * @example
150
+ * ```ts
151
+ * res.send('Hello World')
152
+ * ```
208
153
  */
209
154
  send(body) {
210
155
  if (!this.isWritable)
@@ -221,7 +166,7 @@ class ExisResponse {
221
166
  const buf = isBuffer
222
167
  ? body
223
168
  : Buffer.from(body, 'utf8');
224
- this.raw.setHeader('ETag', generateETag(buf));
169
+ this.raw.setHeader('ETag', (0, helpers_1.generateETag)(buf));
225
170
  }
226
171
  if (this.req &&
227
172
  (this.raw.hasHeader('ETag') || this.raw.hasHeader('Last-Modified')) &&
@@ -230,23 +175,20 @@ class ExisResponse {
230
175
  this.end();
231
176
  return;
232
177
  }
233
- // Rely on Node.js core to automatically calculate Content-Length
234
- // for strings in res.end() rather than creating a Buffer here.
235
178
  if (isBuffer && !this.raw.hasHeader('Content-Length')) {
236
179
  this.raw.setHeader('Content-Length', body.length);
237
180
  }
238
181
  this.end(body);
239
182
  }
240
183
  /**
241
- * Send JSON response.
242
- *
243
- * Examples:
184
+ * Sends a JSON response with automatic native serialization and fast ETag support.
244
185
  *
245
- * res.json(null);
246
- * res.json({ user: 'tj' });
186
+ * @param data JSON-serializable data payload
247
187
  *
248
- * @param {unknown} data
249
- * @public
188
+ * @example
189
+ * ```ts
190
+ * res.json({ success: true, users: ['Alice', 'Bob'] })
191
+ * ```
250
192
  */
251
193
  json(data) {
252
194
  if (!this.isWritable)
@@ -254,7 +196,7 @@ class ExisResponse {
254
196
  let payload;
255
197
  try {
256
198
  const useSerializer = this._serializer && this.statusCode < 400;
257
- payload = useSerializer ? this._serializer(data) : nativeStringify(data);
199
+ payload = useSerializer ? this._serializer(data) : (0, helpers_1.nativeStringify)(data);
258
200
  }
259
201
  catch (err) {
260
202
  if (this.req && this.req.log) {
@@ -275,7 +217,7 @@ class ExisResponse {
275
217
  const buf = Buffer.isBuffer(payload)
276
218
  ? payload
277
219
  : Buffer.from(payload, 'utf8');
278
- this.raw.setHeader('ETag', generateETag(buf));
220
+ this.raw.setHeader('ETag', (0, helpers_1.generateETag)(buf));
279
221
  }
280
222
  if (this.req &&
281
223
  (this.raw.hasHeader('ETag') || this.raw.hasHeader('Last-Modified')) &&
@@ -287,14 +229,14 @@ class ExisResponse {
287
229
  this.end(payload);
288
230
  }
289
231
  /**
290
- * Send HTML response.
232
+ * Sends an HTML response with `Content-Type: text/html; charset=utf-8`.
291
233
  *
292
- * Examples:
234
+ * @param content HTML string
293
235
  *
294
- * res.html('<h1>Hello</h1>');
295
- *
296
- * @param {string} content
297
- * @public
236
+ * @example
237
+ * ```ts
238
+ * res.html('<h1>Welcome to ExisJS</h1>')
239
+ * ```
298
240
  */
299
241
  html(content) {
300
242
  if (!this.isWritable)
@@ -305,18 +247,15 @@ class ExisResponse {
305
247
  this.end(content);
306
248
  }
307
249
  /**
308
- * Redirect to the given `url` with optional response `status`
309
- * defaulting to 302.
250
+ * Performs an HTTP redirect to a given URL with an optional status code (defaults to 302).
310
251
  *
311
- * Examples:
252
+ * @param url Target destination URL
253
+ * @param code HTTP status code (`301` Moved Permanently, `302` Found, `307` Temporary Redirect, `308` Permanent Redirect)
312
254
  *
313
- * res.redirect('/foo/bar');
314
- * res.redirect('http://example.com');
315
- * res.redirect('http://example.com', 301);
316
- *
317
- * @param {string} url
318
- * @param {number} [code=302]
319
- * @public
255
+ * @example
256
+ * ```ts
257
+ * res.redirect('/login')
258
+ * ```
320
259
  */
321
260
  redirect(url, code = 302) {
322
261
  if (!this.isWritable)
@@ -325,77 +264,57 @@ class ExisResponse {
325
264
  this.setHeader('Location', url);
326
265
  this.end();
327
266
  }
267
+ /**
268
+ * Streams a Node.js Readable stream, Web standard `ReadableStream`, or `AsyncIterable` generator
269
+ * to the client with native backpressure handling and client disconnect auto-cancellation.
270
+ *
271
+ * @param readable Stream or async generator instance
272
+ *
273
+ * @example
274
+ * ```ts
275
+ * // Streaming from an AI SDK or Web stream:
276
+ * res.sendStream(aiResponse.toReadableStream())
277
+ * ```
278
+ */
328
279
  sendStream(readable) {
329
- if (!this.isWritable) {
330
- if (typeof readable.destroy === 'function') {
331
- ;
332
- readable.destroy();
333
- }
334
- return;
335
- }
336
- if (!this.hasHeader('Content-Type')) {
337
- this.setHeader('Content-Type', 'application/octet-stream');
338
- }
339
- const cleanup = () => {
340
- if (typeof readable.destroy === 'function') {
341
- ;
342
- readable.destroy();
343
- }
344
- };
345
- // Auto-destroy stream if client aborts or response closes early
346
- this.raw.once('close', cleanup);
347
- // Handle stream error to prevent process crash
348
- if (typeof readable.on === 'function') {
349
- ;
350
- readable.once('error', (err) => {
351
- this.raw.removeListener('close', cleanup);
352
- if (this.req && this.req.log) {
353
- this.req.log.error({ err }, '[ExisJS] Error in sendStream');
354
- }
355
- else {
356
- index_1.logger.error({ err }, '[ExisJS] Error in sendStream');
357
- }
358
- if (this.isWritable) {
359
- this.statusCode = 500;
360
- this.end('{"error":"Stream transmission failed"}');
361
- }
362
- else {
363
- cleanup();
364
- }
365
- });
366
- }
367
- if (typeof readable.once === 'function') {
368
- ;
369
- readable.once('end', () => {
370
- this.raw.removeListener('close', cleanup);
371
- });
372
- }
373
- readable.pipe(this.raw);
280
+ (0, helpers_1.streamToResponse)(this.raw, readable, this.isWritable, this.headersSent, (name) => this.hasHeader(name), (name, val) => this.setHeader(name, val), (code) => {
281
+ this.statusCode = code;
282
+ }, (data) => this.end(data), this.req);
374
283
  }
375
284
  /**
376
- * Initialize a Server-Sent Events (SSE) stream for real-time and AI streaming.
285
+ * Alias for `sendStream()`.
286
+ */
287
+ stream(readable) {
288
+ this.sendStream(readable);
289
+ }
290
+ /**
291
+ * Initializes a Server-Sent Events (SSE) stream for real-time data and AI token streaming.
377
292
  *
378
- * Automatically sets standard SSE headers:
293
+ * Sets standard SSE headers automatically:
379
294
  * - `Content-Type: text/event-stream; charset=utf-8`
380
295
  * - `Cache-Control: no-cache, no-transform`
381
296
  * - `Connection: keep-alive`
382
- * - `X-Accel-Buffering: no` (disables Nginx proxy buffering)
297
+ * - `X-Accel-Buffering: no`
383
298
  *
384
- * @param options Optional configuration (heartbeat interval, custom headers)
385
- * @param handler Optional callback function receiving the active `SSEStream`
299
+ * @param optionsOrHandler Optional SSE configuration or callback handler
300
+ * @param maybeHandler Callback handler when options object is provided
386
301
  * @returns Active `SSEStream` instance
387
302
  *
388
303
  * @example
389
- * // Using callback handler:
390
- * res.sse(async (sse) => {
391
- * sse.send({ event: 'message', data: 'hello' })
392
- * await sse.pipeFrom(openaiStream)
393
- * sse.close()
304
+ * ```ts
305
+ * // In route.ts
306
+ * export default controller({
307
+ * events: route.get('/events', {
308
+ * async handle({ res }) {
309
+ * res.sse(async (sse) => {
310
+ * sse.send({ event: 'ping', data: { time: Date.now() } })
311
+ * await sse.pipeFrom(openAiStream)
312
+ * sse.close()
313
+ * })
314
+ * }
315
+ * })
394
316
  * })
395
- *
396
- * // Or assigning to variable:
397
- * const sse = res.sse()
398
- * sse.send({ event: 'connected', data: { time: Date.now() } })
317
+ * ```
399
318
  */
400
319
  sse(optionsOrHandler, maybeHandler) {
401
320
  let options = {};
@@ -421,7 +340,6 @@ class ExisResponse {
421
340
  this.setHeader(key, value);
422
341
  }
423
342
  }
424
- // Flush headers immediately
425
343
  if (typeof this.raw.flushHeaders === 'function') {
426
344
  this.raw.flushHeaders();
427
345
  }
@@ -459,15 +377,16 @@ class ExisResponse {
459
377
  return stream;
460
378
  }
461
379
  /**
462
- * Transfer the file at the given `filePath` as an attachment.
380
+ * Transfers a file on disk as an attachment with automatic Content-Disposition and MIME lookup.
463
381
  *
464
- * Optionally providing an alternate attachment `filename`,
465
- * and optional `options`.
382
+ * @param filePath Absolute path to file on disk
383
+ * @param filename Optional override for downloaded filename
384
+ * @param options File stream options
466
385
  *
467
- * @param {string} filePath
468
- * @param {string} [filename]
469
- * @param {unknown} [options]
470
- * @public
386
+ * @example
387
+ * ```ts
388
+ * res.download('/data/reports/report.pdf', 'monthly-report.pdf')
389
+ * ```
471
390
  */
472
391
  download(filePath, filename, options) {
473
392
  if (this.headersSent)
@@ -492,20 +411,13 @@ class ExisResponse {
492
411
  stream.pipe(this.raw);
493
412
  }
494
413
  /**
495
- * Set _Content-Type_ response header with `type` through `mime.lookup()`
496
- * when it does not contain "/", or set the Content-Type to `type` otherwise.
414
+ * Sets Content-Type header using file extension or MIME type string.
497
415
  *
498
- * Examples:
499
- *
500
- * res.type('.html');
501
- * res.type('html');
502
- * res.type('json');
503
- * res.type('application/json');
504
- * res.type('png');
505
- *
506
- * @param {string} type
507
- * @return {this}
508
- * @public
416
+ * @example
417
+ * ```ts
418
+ * res.type('json') // sets 'application/json; charset=utf-8'
419
+ * res.type('png') // sets 'image/png'
420
+ * ```
509
421
  */
510
422
  type(type) {
511
423
  const mimeType = mime.contentType(type) || type;
@@ -513,18 +425,7 @@ class ExisResponse {
513
425
  return this;
514
426
  }
515
427
  /**
516
- * Set Link header field with the given `links`.
517
- *
518
- * Examples:
519
- *
520
- * res.links({
521
- * next: 'http://api.example.com/users?page=2',
522
- * last: 'http://api.example.com/users?page=5'
523
- * });
524
- *
525
- * @param {Record<string, string>} links
526
- * @return {this}
527
- * @public
428
+ * Sets Link header field with pagination or resource relations.
528
429
  */
529
430
  links(links) {
530
431
  let linkHeader = this.getHeader('Link') || '';
@@ -536,12 +437,7 @@ class ExisResponse {
536
437
  return this;
537
438
  }
538
439
  /**
539
- * Add `field` to Vary. If already present in the Vary set, then
540
- * this call is simply ignored.
541
- *
542
- * @param {string} field
543
- * @return {this}
544
- * @public
440
+ * Adds a field to the Vary header if not already present.
545
441
  */
546
442
  vary(field) {
547
443
  if (!field)
@@ -562,94 +458,48 @@ class ExisResponse {
562
458
  return this;
563
459
  }
564
460
  /**
565
- * Set cookie `name` to `value`, with the given `options`.
566
- *
567
- * Options:
568
- * - `maxAge` max-age in milliseconds, converted to `expires`
569
- * - `path` cookie path, defaults to '/'
570
- * - `domain` cookie domain
571
- * - `secure` secure cookie
572
- * - `httpOnly` httponly cookie
573
- * - `sameSite` samesite cookie
574
- *
575
- * Examples:
461
+ * Sets a cookie with specified security options.
576
462
  *
577
- * res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });
578
- * res.cookie('cart', '1234');
463
+ * @param name Cookie name
464
+ * @param value Cookie value
465
+ * @param options Cookie options (httpOnly, secure, sameSite, maxAge, path, domain)
579
466
  *
580
- * @param {string} name
581
- * @param {string} value
582
- * @param {CookieOptions} options
583
- * @return {this}
584
- * @public
467
+ * @example
468
+ * ```ts
469
+ * res.cookie('session_token', token, {
470
+ * httpOnly: true,
471
+ * secure: true,
472
+ * sameSite: 'lax',
473
+ * maxAge: 86400000 // 1 day
474
+ * })
475
+ * ```
585
476
  */
586
477
  cookie(name, value, options = {}) {
587
- const parts = [
588
- `${encodeURIComponent(name)}=${encodeURIComponent(value)}`,
589
- ];
590
- if (options.maxAge !== undefined)
591
- parts.push(`Max-Age=${options.maxAge}`);
592
- if (options.expires)
593
- parts.push(`Expires=${options.expires.toUTCString()}`);
594
- if (options.path ?? true)
595
- parts.push(`Path=${options.path ?? '/'}`);
596
- if (options.domain)
597
- parts.push(`Domain=${options.domain}`);
598
- if (options.httpOnly)
599
- parts.push('HttpOnly');
600
- if (options.secure)
601
- parts.push('Secure');
602
- if (options.sameSite !== undefined && options.sameSite !== false) {
603
- if (options.sameSite === true) {
604
- parts.push('SameSite=Strict');
605
- }
606
- else {
607
- const str = String(options.sameSite).toLowerCase();
608
- if (str === 'strict')
609
- parts.push('SameSite=Strict');
610
- else if (str === 'lax')
611
- parts.push('SameSite=Lax');
612
- else if (str === 'none') {
613
- parts.push('SameSite=None');
614
- if (!options.secure && !parts.includes('Secure')) {
615
- parts.push('Secure');
616
- }
617
- }
618
- }
619
- }
620
- if (options.partitioned)
621
- parts.push('Partitioned');
622
- if (options.priority) {
623
- const p = options.priority.toLowerCase();
624
- if (p === 'low')
625
- parts.push('Priority=Low');
626
- else if (p === 'medium')
627
- parts.push('Priority=Medium');
628
- else if (p === 'high')
629
- parts.push('Priority=High');
630
- }
631
- this.append('Set-Cookie', parts.join('; '));
478
+ const serialized = (0, helpers_1.serializeCookie)(name, value, options);
479
+ this.append('Set-Cookie', serialized);
632
480
  if (process.env.NODE_ENV === 'development') {
633
- this.append('X-Set-Cookie', parts.join('; '));
481
+ this.append('X-Set-Cookie', serialized);
634
482
  }
635
483
  return this;
636
484
  }
637
485
  /**
638
- * Clear cookie `name`.
486
+ * Clears a cookie by setting its expiration to the past.
639
487
  *
640
- * @param {string} name
641
- * @param {CookieOptions} [options]
642
- * @return {this}
643
- * @public
488
+ * @param name Cookie name
489
+ * @param options Cookie options (path, domain)
490
+ *
491
+ * @example
492
+ * ```ts
493
+ * res.clearCookie('session_token')
494
+ * ```
644
495
  */
645
496
  clearCookie(name, options = {}) {
646
- const { maxAge: _, expires: __, ...rest } = options;
647
- return this.cookie(name, '', {
648
- httpOnly: true,
649
- ...rest,
650
- expires: new Date(0),
651
- maxAge: 0,
652
- });
497
+ const serialized = (0, helpers_1.serializeClearCookie)(name, options);
498
+ this.append('Set-Cookie', serialized);
499
+ if (process.env.NODE_ENV === 'development') {
500
+ this.append('X-Set-Cookie', serialized);
501
+ }
502
+ return this;
653
503
  }
654
504
  }
655
505
  exports.ExisResponse = ExisResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/server/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/server/response.ts"],"names":[],"mappings":"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"}