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
@@ -19,234 +19,190 @@ export declare class ExisResponse<TResponse = any> {
19
19
  hasHeader(name: string): boolean;
20
20
  end(data?: unknown): void;
21
21
  /**
22
- * Set status `code`.
22
+ * Sets the HTTP response status code.
23
23
  *
24
- * @param {number} code
25
- * @return {this}
26
- * @public
24
+ * @param code HTTP status code (e.g. `200`, `201`, `400`, `404`, `500`)
25
+ * @returns Response instance for chaining
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * res.status(201).json({ created: true })
30
+ * ```
27
31
  */
28
32
  status(code: number): this;
29
33
  /**
30
- * Set header `field` to `val`, or pass
31
- * an object of header fields.
32
- *
33
- * Examples:
34
+ * Sets a response header field to a specific value.
34
35
  *
35
- * res.set('Foo', ['bar', 'baz']);
36
- * res.set('Accept', 'application/json');
37
- *
38
- * Aliased as `res.header()`.
39
- *
40
- * @param {string} header
41
- * @param {string | string[]} value
42
- * @return {this}
43
- * @public
36
+ * @param header Header name
37
+ * @param value Header value or array of values
38
+ * @returns Response instance for chaining
44
39
  */
45
40
  set(header: string, value: string | string[]): this;
46
41
  /**
47
- * Set header `field` to `val`, or pass
48
- * an object of header fields.
49
- *
50
- * Alias for `res.set()`.
51
- *
52
- * @param {string} name
53
- * @param {string | string[]} value
54
- * @return {this}
55
- * @public
42
+ * Sets a response header field (alias for `res.set()`).
56
43
  */
57
44
  header(name: string, value: string | string[]): this;
58
45
  /**
59
- * Send given HTTP status code.
60
- *
61
- * Sets the response status to `code` and the body
62
- * to the string representation of the `code`.
63
- *
64
- * Examples:
65
- *
66
- * res.sendStatus(200);
67
- *
68
- * @param {number} code
69
- * @public
46
+ * Sets status code and sends its numeric string representation.
70
47
  */
71
48
  sendStatus(code: number): void;
72
49
  removeHeader(name: string): this;
73
50
  setStrHeaders(headers: Record<string, string>): this;
74
51
  /**
75
- * Append additional header `field` with value `val`.
76
- *
77
- * Example:
78
- *
79
- * res.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']);
80
- * res.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly');
81
- * res.append('Warning', '199 Miscellaneous warning');
82
- *
83
- * @param {string} field
84
- * @param {string | string[]} value
85
- * @return {this}
86
- * @public
52
+ * Appends an additional value to an existing header field (e.g. `Set-Cookie`, `Link`, `Warning`).
87
53
  */
88
54
  append(field: string, value: string | string[]): this;
89
55
  /**
90
- * Send a response.
56
+ * Sends a string, Buffer, or object response to the client.
91
57
  *
92
- * Examples:
58
+ * @param body Response payload (string, Buffer, or object)
93
59
  *
94
- * res.send(Buffer.from('wahoo'));
95
- * res.send({ some: 'json' });
96
- * res.send('<p>some html</p>');
97
- *
98
- * @param {string | Buffer | object} body
99
- * @public
60
+ * @example
61
+ * ```ts
62
+ * res.send('Hello World')
63
+ * ```
100
64
  */
101
65
  send(body: string | Buffer | object): void;
102
66
  /**
103
- * Send JSON response.
104
- *
105
- * Examples:
67
+ * Sends a JSON response with automatic native serialization and fast ETag support.
106
68
  *
107
- * res.json(null);
108
- * res.json({ user: 'tj' });
69
+ * @param data JSON-serializable data payload
109
70
  *
110
- * @param {unknown} data
111
- * @public
71
+ * @example
72
+ * ```ts
73
+ * res.json({ success: true, users: ['Alice', 'Bob'] })
74
+ * ```
112
75
  */
113
76
  json(data: unknown extends TResponse ? any : TResponse): void;
114
77
  /**
115
- * Send HTML response.
116
- *
117
- * Examples:
78
+ * Sends an HTML response with `Content-Type: text/html; charset=utf-8`.
118
79
  *
119
- * res.html('<h1>Hello</h1>');
80
+ * @param content HTML string
120
81
  *
121
- * @param {string} content
122
- * @public
82
+ * @example
83
+ * ```ts
84
+ * res.html('<h1>Welcome to ExisJS</h1>')
85
+ * ```
123
86
  */
124
87
  html(content: string): void;
125
88
  /**
126
- * Redirect to the given `url` with optional response `status`
127
- * defaulting to 302.
89
+ * Performs an HTTP redirect to a given URL with an optional status code (defaults to 302).
128
90
  *
129
- * Examples:
91
+ * @param url Target destination URL
92
+ * @param code HTTP status code (`301` Moved Permanently, `302` Found, `307` Temporary Redirect, `308` Permanent Redirect)
130
93
  *
131
- * res.redirect('/foo/bar');
132
- * res.redirect('http://example.com');
133
- * res.redirect('http://example.com', 301);
134
- *
135
- * @param {string} url
136
- * @param {number} [code=302]
137
- * @public
94
+ * @example
95
+ * ```ts
96
+ * res.redirect('/login')
97
+ * ```
138
98
  */
139
99
  redirect(url: string, code?: number): void;
140
- sendStream(readable: NodeJS.ReadableStream): void;
141
100
  /**
142
- * Initialize a Server-Sent Events (SSE) stream for real-time and AI streaming.
101
+ * Streams a Node.js Readable stream, Web standard `ReadableStream`, or `AsyncIterable` generator
102
+ * to the client with native backpressure handling and client disconnect auto-cancellation.
143
103
  *
144
- * Automatically sets standard SSE headers:
104
+ * @param readable Stream or async generator instance
105
+ *
106
+ * @example
107
+ * ```ts
108
+ * // Streaming from an AI SDK or Web stream:
109
+ * res.sendStream(aiResponse.toReadableStream())
110
+ * ```
111
+ */
112
+ sendStream(readable: NodeJS.ReadableStream | ReadableStream | AsyncIterable<any>): void;
113
+ /**
114
+ * Alias for `sendStream()`.
115
+ */
116
+ stream(readable: NodeJS.ReadableStream | ReadableStream | AsyncIterable<any>): void;
117
+ /**
118
+ * Initializes a Server-Sent Events (SSE) stream for real-time data and AI token streaming.
119
+ *
120
+ * Sets standard SSE headers automatically:
145
121
  * - `Content-Type: text/event-stream; charset=utf-8`
146
122
  * - `Cache-Control: no-cache, no-transform`
147
123
  * - `Connection: keep-alive`
148
- * - `X-Accel-Buffering: no` (disables Nginx proxy buffering)
124
+ * - `X-Accel-Buffering: no`
149
125
  *
150
- * @param options Optional configuration (heartbeat interval, custom headers)
151
- * @param handler Optional callback function receiving the active `SSEStream`
126
+ * @param optionsOrHandler Optional SSE configuration or callback handler
127
+ * @param maybeHandler Callback handler when options object is provided
152
128
  * @returns Active `SSEStream` instance
153
129
  *
154
130
  * @example
155
- * // Using callback handler:
156
- * res.sse(async (sse) => {
157
- * sse.send({ event: 'message', data: 'hello' })
158
- * await sse.pipeFrom(openaiStream)
159
- * sse.close()
131
+ * ```ts
132
+ * // In route.ts
133
+ * export default controller({
134
+ * events: route.get('/events', {
135
+ * async handle({ res }) {
136
+ * res.sse(async (sse) => {
137
+ * sse.send({ event: 'ping', data: { time: Date.now() } })
138
+ * await sse.pipeFrom(openAiStream)
139
+ * sse.close()
140
+ * })
141
+ * }
142
+ * })
160
143
  * })
161
- *
162
- * // Or assigning to variable:
163
- * const sse = res.sse()
164
- * sse.send({ event: 'connected', data: { time: Date.now() } })
144
+ * ```
165
145
  */
166
146
  sse(optionsOrHandler?: SSEOptions | ((sse: SSEStream) => void | Promise<void>), maybeHandler?: (sse: SSEStream) => void | Promise<void>): SSEStream;
167
147
  /**
168
- * Transfer the file at the given `filePath` as an attachment.
148
+ * Transfers a file on disk as an attachment with automatic Content-Disposition and MIME lookup.
169
149
  *
170
- * Optionally providing an alternate attachment `filename`,
171
- * and optional `options`.
150
+ * @param filePath Absolute path to file on disk
151
+ * @param filename Optional override for downloaded filename
152
+ * @param options File stream options
172
153
  *
173
- * @param {string} filePath
174
- * @param {string} [filename]
175
- * @param {unknown} [options]
176
- * @public
154
+ * @example
155
+ * ```ts
156
+ * res.download('/data/reports/report.pdf', 'monthly-report.pdf')
157
+ * ```
177
158
  */
178
159
  download(filePath: string, filename?: string, options?: unknown): void;
179
160
  /**
180
- * Set _Content-Type_ response header with `type` through `mime.lookup()`
181
- * when it does not contain "/", or set the Content-Type to `type` otherwise.
182
- *
183
- * Examples:
184
- *
185
- * res.type('.html');
186
- * res.type('html');
187
- * res.type('json');
188
- * res.type('application/json');
189
- * res.type('png');
161
+ * Sets Content-Type header using file extension or MIME type string.
190
162
  *
191
- * @param {string} type
192
- * @return {this}
193
- * @public
163
+ * @example
164
+ * ```ts
165
+ * res.type('json') // sets 'application/json; charset=utf-8'
166
+ * res.type('png') // sets 'image/png'
167
+ * ```
194
168
  */
195
169
  type(type: string): this;
196
170
  /**
197
- * Set Link header field with the given `links`.
198
- *
199
- * Examples:
200
- *
201
- * res.links({
202
- * next: 'http://api.example.com/users?page=2',
203
- * last: 'http://api.example.com/users?page=5'
204
- * });
205
- *
206
- * @param {Record<string, string>} links
207
- * @return {this}
208
- * @public
171
+ * Sets Link header field with pagination or resource relations.
209
172
  */
210
173
  links(links: Record<string, string>): this;
211
174
  /**
212
- * Add `field` to Vary. If already present in the Vary set, then
213
- * this call is simply ignored.
214
- *
215
- * @param {string} field
216
- * @return {this}
217
- * @public
175
+ * Adds a field to the Vary header if not already present.
218
176
  */
219
177
  vary(field: string): this;
220
178
  /**
221
- * Set cookie `name` to `value`, with the given `options`.
222
- *
223
- * Options:
224
- * - `maxAge` max-age in milliseconds, converted to `expires`
225
- * - `path` cookie path, defaults to '/'
226
- * - `domain` cookie domain
227
- * - `secure` secure cookie
228
- * - `httpOnly` httponly cookie
229
- * - `sameSite` samesite cookie
179
+ * Sets a cookie with specified security options.
230
180
  *
231
- * Examples:
181
+ * @param name Cookie name
182
+ * @param value Cookie value
183
+ * @param options Cookie options (httpOnly, secure, sameSite, maxAge, path, domain)
232
184
  *
233
- * res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });
234
- * res.cookie('cart', '1234');
235
- *
236
- * @param {string} name
237
- * @param {string} value
238
- * @param {CookieOptions} options
239
- * @return {this}
240
- * @public
185
+ * @example
186
+ * ```ts
187
+ * res.cookie('session_token', token, {
188
+ * httpOnly: true,
189
+ * secure: true,
190
+ * sameSite: 'lax',
191
+ * maxAge: 86400000 // 1 day
192
+ * })
193
+ * ```
241
194
  */
242
195
  cookie(name: string, value: string, options?: CookieOptions): this;
243
196
  /**
244
- * Clear cookie `name`.
197
+ * Clears a cookie by setting its expiration to the past.
245
198
  *
246
- * @param {string} name
247
- * @param {CookieOptions} [options]
248
- * @return {this}
249
- * @public
199
+ * @param name Cookie name
200
+ * @param options Cookie options (path, domain)
201
+ *
202
+ * @example
203
+ * ```ts
204
+ * res.clearCookie('session_token')
205
+ * ```
250
206
  */
251
207
  clearCookie(name: string, options?: CookieOptions): this;
252
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/server/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/server/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAG1C,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAA;AAElE,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAclD,qBAAa,YAAY,CAAC,SAAS,GAAG,GAAG;IAOpB,GAAG,EAAE,cAAc;IAL/B,GAAG,CAAC,EAAE,QAAQ,CAAA;IACd,WAAW,UAAQ;IACnB,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAK;IAC9B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAA;gBAE3B,GAAG,EAAE,cAAc;IAE/B,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAStC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,UAAU,IAAI,OAAO,CAMxB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAE1B;IAED,SAAS,CAAC,IAAI,EAAE,MAAM;IAKtB,UAAU;IAKV,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE;IAKlE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKhC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO;IAclB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM1B;;;;;;OAMG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAKnD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAIpD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAOpD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAcrD;;;;;;;;;OASG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAwC1C;;;;;;;;;OASG;IACH,IAAI,CAAC,IAAI,EAAE,OAAO,SAAS,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,IAAI;IA2C7D;;;;;;;;;OASG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ3B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,IAAI;IAOvC;;;;;;;;;;;OAWG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,CAAC,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,GACpE,IAAI;IAgBP;;OAEG;IACH,MAAM,CACJ,QAAQ,EAAE,MAAM,CAAC,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,GACpE,IAAI;IAIP;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,GAAG,CACD,gBAAgB,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAC1E,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACtD,SAAS;IAqEZ;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IA8BtE;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMxB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAa1C;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAqBzB;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI;IAStE;;;;;;;;;;OAUG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI;CAQ7D"}