@asenajs/asena 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +2 -2
  2. package/dist/lib/adapter/AsenaAdapter.d.ts +17 -0
  3. package/dist/lib/adapter/AsenaAdapter.js +6 -0
  4. package/dist/lib/adapter/AsenaAdapter.js.map +1 -1
  5. package/dist/lib/adapter/AsenaContext.d.ts +81 -8
  6. package/dist/lib/adapter/AsenaWebsocketAdapter.d.ts +41 -2
  7. package/dist/lib/adapter/AsenaWebsocketAdapter.js +74 -0
  8. package/dist/lib/adapter/AsenaWebsocketAdapter.js.map +1 -1
  9. package/dist/lib/adapter/types/ApiParams.d.ts +6 -0
  10. package/dist/lib/adapter/types/ServeOptions.d.ts +22 -1
  11. package/dist/lib/adapter/types/Streaming.d.ts +42 -0
  12. package/dist/lib/adapter/types/Streaming.js +2 -0
  13. package/dist/lib/adapter/types/Streaming.js.map +1 -0
  14. package/dist/lib/adapter/types/index.d.ts +1 -0
  15. package/dist/lib/adapter/types/index.js +1 -0
  16. package/dist/lib/adapter/types/index.js.map +1 -1
  17. package/dist/lib/ioc/Container.d.ts +8 -1
  18. package/dist/lib/ioc/Container.js +16 -2
  19. package/dist/lib/ioc/Container.js.map +1 -1
  20. package/dist/lib/ioc/CoreContainer.js +10 -3
  21. package/dist/lib/ioc/CoreContainer.js.map +1 -1
  22. package/dist/lib/ioc/IocEngine.d.ts +7 -0
  23. package/dist/lib/ioc/IocEngine.js +85 -3
  24. package/dist/lib/ioc/IocEngine.js.map +1 -1
  25. package/dist/lib/ioc/component/componentUtils.js +3 -1
  26. package/dist/lib/ioc/component/componentUtils.js.map +1 -1
  27. package/dist/lib/ioc/constants/ComponentConstants.d.ts +2 -0
  28. package/dist/lib/ioc/constants/ComponentConstants.js +3 -0
  29. package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
  30. package/dist/lib/ioc/helper/cronParser.d.ts +3 -0
  31. package/dist/lib/ioc/helper/cronParser.js +3 -1
  32. package/dist/lib/ioc/helper/cronParser.js.map +1 -1
  33. package/dist/lib/ioc/types/ComponentPostProcessor.d.ts +30 -0
  34. package/dist/lib/ioc/types/ComponentPostProcessor.js +2 -0
  35. package/dist/lib/ioc/types/ComponentPostProcessor.js.map +1 -0
  36. package/dist/lib/ioc/types/ICoreServiceNamesType.d.ts +3 -0
  37. package/dist/lib/ioc/types/ICoreServiceNamesType.js +4 -0
  38. package/dist/lib/ioc/types/ICoreServiceNamesType.js.map +1 -1
  39. package/dist/lib/ioc/types/decorators/ComponentType.d.ts +3 -1
  40. package/dist/lib/ioc/types/decorators/ComponentType.js +2 -0
  41. package/dist/lib/ioc/types/decorators/ComponentType.js.map +1 -1
  42. package/dist/lib/ioc/types/decorators/ControllerParams.d.ts +1 -0
  43. package/dist/lib/ioc/types/index.d.ts +1 -0
  44. package/dist/lib/ioc/types/index.js +1 -0
  45. package/dist/lib/ioc/types/index.js.map +1 -1
  46. package/dist/lib/server/AsenaServer.d.ts +18 -0
  47. package/dist/lib/server/AsenaServer.js +85 -1
  48. package/dist/lib/server/AsenaServer.js.map +1 -1
  49. package/dist/lib/server/config/AsenaConfig.d.ts +16 -1
  50. package/dist/lib/server/decorators/components/Controller.js +3 -0
  51. package/dist/lib/server/decorators/components/Controller.js.map +1 -1
  52. package/dist/lib/server/decorators/components/FrontendController.d.ts +15 -0
  53. package/dist/lib/server/decorators/components/FrontendController.js +20 -0
  54. package/dist/lib/server/decorators/components/FrontendController.js.map +1 -0
  55. package/dist/lib/server/decorators/components/PostProcessor.d.ts +25 -0
  56. package/dist/lib/server/decorators/components/PostProcessor.js +29 -0
  57. package/dist/lib/server/decorators/components/PostProcessor.js.map +1 -0
  58. package/dist/lib/server/decorators/components/Schedule.d.ts +15 -3
  59. package/dist/lib/server/decorators/components/Schedule.js +24 -6
  60. package/dist/lib/server/decorators/components/Schedule.js.map +1 -1
  61. package/dist/lib/server/decorators/components/index.d.ts +2 -0
  62. package/dist/lib/server/decorators/components/index.js +2 -0
  63. package/dist/lib/server/decorators/components/index.js.map +1 -1
  64. package/dist/lib/server/decorators/index.d.ts +0 -3
  65. package/dist/lib/server/decorators/index.js +0 -3
  66. package/dist/lib/server/decorators/index.js.map +1 -1
  67. package/dist/lib/server/messaging/Ulak.js +8 -5
  68. package/dist/lib/server/messaging/Ulak.js.map +1 -1
  69. package/dist/lib/server/schedule/AsenaSchedule.d.ts +21 -0
  70. package/dist/lib/server/schedule/AsenaSchedule.js +2 -0
  71. package/dist/lib/server/schedule/AsenaSchedule.js.map +1 -0
  72. package/dist/lib/server/schedule/CronRunner.d.ts +54 -0
  73. package/dist/lib/server/schedule/CronRunner.js +130 -0
  74. package/dist/lib/server/schedule/CronRunner.js.map +1 -0
  75. package/dist/lib/server/schedule/index.d.ts +2 -0
  76. package/dist/lib/server/schedule/index.js +2 -0
  77. package/dist/lib/server/schedule/index.js.map +1 -0
  78. package/dist/lib/server/src/services/PrepareFrontendControllerService.d.ts +17 -0
  79. package/dist/lib/server/src/services/PrepareFrontendControllerService.js +63 -0
  80. package/dist/lib/server/src/services/PrepareFrontendControllerService.js.map +1 -0
  81. package/dist/lib/server/src/services/PrepareScheduleService.d.ts +21 -0
  82. package/dist/lib/server/src/services/PrepareScheduleService.js +69 -0
  83. package/dist/lib/server/src/services/PrepareScheduleService.js.map +1 -0
  84. package/dist/lib/server/web/decorators/Page.d.ts +13 -0
  85. package/dist/lib/server/web/decorators/Page.js +17 -0
  86. package/dist/lib/server/web/decorators/Page.js.map +1 -0
  87. package/dist/lib/server/web/decorators/http.base.d.ts +1 -1
  88. package/dist/lib/server/web/decorators/http.base.js +3 -2
  89. package/dist/lib/server/web/decorators/http.base.js.map +1 -1
  90. package/dist/lib/server/web/decorators/index.d.ts +1 -0
  91. package/dist/lib/server/web/decorators/index.js +1 -0
  92. package/dist/lib/server/web/decorators/index.js.map +1 -1
  93. package/dist/lib/server/web/decorators/methods/All.d.ts +7 -0
  94. package/dist/lib/server/web/decorators/methods/All.js +12 -0
  95. package/dist/lib/server/web/decorators/methods/All.js.map +1 -0
  96. package/dist/lib/server/web/decorators/methods/Connect.js +2 -2
  97. package/dist/lib/server/web/decorators/methods/Connect.js.map +1 -1
  98. package/dist/lib/server/web/decorators/methods/Delete.js +2 -2
  99. package/dist/lib/server/web/decorators/methods/Delete.js.map +1 -1
  100. package/dist/lib/server/web/decorators/methods/Get.js +2 -2
  101. package/dist/lib/server/web/decorators/methods/Get.js.map +1 -1
  102. package/dist/lib/server/web/decorators/methods/Head.js +2 -2
  103. package/dist/lib/server/web/decorators/methods/Head.js.map +1 -1
  104. package/dist/lib/server/web/decorators/methods/Options.js +2 -2
  105. package/dist/lib/server/web/decorators/methods/Options.js.map +1 -1
  106. package/dist/lib/server/web/decorators/methods/Patch.js +2 -2
  107. package/dist/lib/server/web/decorators/methods/Patch.js.map +1 -1
  108. package/dist/lib/server/web/decorators/methods/Post.js +2 -2
  109. package/dist/lib/server/web/decorators/methods/Post.js.map +1 -1
  110. package/dist/lib/server/web/decorators/methods/Put.js +2 -2
  111. package/dist/lib/server/web/decorators/methods/Put.js.map +1 -1
  112. package/dist/lib/server/web/decorators/methods/Route.d.ts +21 -0
  113. package/dist/lib/server/web/decorators/methods/Route.js +33 -0
  114. package/dist/lib/server/web/decorators/methods/Route.js.map +1 -0
  115. package/dist/lib/server/web/decorators/methods/Trace.js +2 -2
  116. package/dist/lib/server/web/decorators/methods/Trace.js.map +1 -1
  117. package/dist/lib/server/web/decorators/methods/index.d.ts +2 -0
  118. package/dist/lib/server/web/decorators/methods/index.js +2 -0
  119. package/dist/lib/server/web/decorators/methods/index.js.map +1 -1
  120. package/dist/lib/server/web/middleware/AsenaValidationService.d.ts +32 -0
  121. package/dist/lib/server/web/types/HttpMethod.d.ts +2 -1
  122. package/dist/lib/server/web/types/HttpMethod.js +1 -0
  123. package/dist/lib/server/web/types/HttpMethod.js.map +1 -1
  124. package/dist/lib/server/web/websocket/AsenaSocket.d.ts +16 -8
  125. package/dist/lib/server/web/websocket/AsenaSocket.js +30 -7
  126. package/dist/lib/server/web/websocket/AsenaSocket.js.map +1 -1
  127. package/dist/lib/server/web/websocket/AsenaWebSocketServer.d.ts +6 -7
  128. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js +10 -11
  129. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js.map +1 -1
  130. package/dist/lib/server/web/websocket/BunLocalTransport.d.ts +16 -0
  131. package/dist/lib/server/web/websocket/BunLocalTransport.js +18 -0
  132. package/dist/lib/server/web/websocket/BunLocalTransport.js.map +1 -0
  133. package/dist/lib/server/web/websocket/WebSocketTransport.d.ts +76 -0
  134. package/dist/lib/server/web/websocket/WebSocketTransport.js +2 -0
  135. package/dist/lib/server/web/websocket/WebSocketTransport.js.map +1 -0
  136. package/dist/lib/server/web/websocket/index.d.ts +2 -0
  137. package/dist/lib/server/web/websocket/index.js +2 -0
  138. package/dist/lib/server/web/websocket/index.js.map +1 -1
  139. package/dist/lib/server/web/websocket/types.d.ts +24 -0
  140. package/dist/lib/utils/index.d.ts +2 -0
  141. package/dist/lib/utils/index.js +1 -0
  142. package/dist/lib/utils/index.js.map +1 -1
  143. package/dist/lib/utils/metadataExtractor.d.ts +88 -0
  144. package/dist/lib/utils/metadataExtractor.js +105 -0
  145. package/dist/lib/utils/metadataExtractor.js.map +1 -0
  146. package/dist/lib/utils/patternMatcher.js +5 -2
  147. package/dist/lib/utils/patternMatcher.js.map +1 -1
  148. package/package.json +23 -15
package/README.md CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  # Asena
6
6
 
7
- [![Version](https://img.shields.io/badge/version-0.6.2-blue.svg)](https://asena.sh)
7
+ [![Version](https://img.shields.io/badge/version-0.7.0-blue.svg)](https://asena.sh)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
9
- [![Bun Version](https://img.shields.io/badge/Bun-1.3.2%2B-blueviolet)](https://bun.sh)
9
+ [![Bun Version](https://img.shields.io/badge/Bun-1.3.11%2B-blueviolet)](https://bun.sh)
10
10
 
11
11
  A high-performance IoC web framework for Bun runtime, bringing Spring Boot's automatic component discovery and field-based dependency injection to TypeScript.
12
12
 
@@ -65,6 +65,14 @@ export declare abstract class AsenaAdapter<C extends AsenaContext<any, any>, VS>
65
65
  * @param params - Route configuration parameters
66
66
  */
67
67
  abstract registerRoute(params: RouteParams<C, VS>): Promise<void> | void;
68
+ /**
69
+ * Registers an HTML route for serving via Bun's native HTML import.
70
+ * HTML routes bypass the middleware chain entirely and are served directly by Bun.serve().
71
+ *
72
+ * @param path - Full URL path (e.g., '/ui/home')
73
+ * @param htmlBundle - The HTML bundle returned by importing an .html file
74
+ */
75
+ abstract registerHTMLRoute(path: string, htmlBundle: unknown): void;
68
76
  /**
69
77
  * Registers a WebSocket route with the application. This method establishes the connection
70
78
  * between HTTP routes and WebSocket handlers, allowing the adapter to properly route
@@ -96,4 +104,13 @@ export declare abstract class AsenaAdapter<C extends AsenaContext<any, any>, VS>
96
104
  * @returns A promise that resolves when the options are set, or void.
97
105
  */
98
106
  abstract serveOptions(options: () => Promise<AsenaServeOptions> | AsenaServeOptions): Promise<void> | void;
107
+ /**
108
+ * Stops the server and releases resources.
109
+ * @param closeActiveConnections - Whether to close active connections immediately
110
+ */
111
+ abstract stop(closeActiveConnections?: boolean): Promise<void>;
112
+ /**
113
+ * Gets the WebSocket adapter for transport configuration
114
+ */
115
+ getWebsocketAdapter(): AsenaWebsocketAdapter | undefined;
99
116
  }
@@ -33,5 +33,11 @@ export class AsenaAdapter {
33
33
  this.websocketAdapter = websocketAdapter;
34
34
  }
35
35
  }
36
+ /**
37
+ * Gets the WebSocket adapter for transport configuration
38
+ */
39
+ getWebsocketAdapter() {
40
+ return this.websocketAdapter;
41
+ }
36
42
  }
37
43
  //# sourceMappingURL=AsenaAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsenaAdapter.js","sourceRoot":"","sources":["../../../lib/adapter/AsenaAdapter.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,MAAM,OAAgB,YAAY;IAChC;;OAEG;IACa,IAAI,CAAS;IAE7B;;OAEG;IACO,IAAI,CAAS;IAEvB;;OAEG;IACO,MAAM,GAAiB,OAAO,CAAC;IAEzC;;OAEG;IACO,gBAAgB,CAAwB;IAElD;;;;OAIG;IACH,YAAsB,MAAoB,EAAE,gBAAwC;QAClF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC3C,CAAC;IACH,CAAC;CAsEF"}
1
+ {"version":3,"file":"AsenaAdapter.js","sourceRoot":"","sources":["../../../lib/adapter/AsenaAdapter.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,MAAM,OAAgB,YAAY;IAChC;;OAEG;IACa,IAAI,CAAS;IAE7B;;OAEG;IACO,IAAI,CAAS;IAEvB;;OAEG;IACO,MAAM,GAAiB,OAAO,CAAC;IAEzC;;OAEG;IACO,gBAAgB,CAAwB;IAElD;;;;OAIG;IACH,YAAsB,MAAoB,EAAE,gBAAwC;QAClF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC3C,CAAC;IACH,CAAC;IAsFD;;OAEG;IACI,mBAAmB;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
@@ -1,4 +1,24 @@
1
- import type { CookieExtra, SendOptions } from './types';
1
+ import type { AsenaSSEStreamWriter, AsenaStreamWriter, CookieExtra, SendOptions } from './types';
2
+ /**
3
+ * Augmentable interface for declaring typed context variables.
4
+ * Users can extend this interface via module augmentation to get type-safe getValue/setValue.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * declare module '@asenajs/asena/adapter' {
9
+ * interface AsenaVariables {
10
+ * user: { id: string; name: string };
11
+ * session: SessionData;
12
+ * }
13
+ * }
14
+ *
15
+ * // Now type-safe with autocomplete:
16
+ * context.getValue('user') // { id: string; name: string }
17
+ * context.setValue('user', u) // type-checked
18
+ * ```
19
+ */
20
+ export interface AsenaVariables {
21
+ }
2
22
  /**
3
23
  * AsenaContext represents the core context interface for handling HTTP requests and responses in Asena framework.
4
24
  * It provides essential methods and properties for request/response handling, data manipulation, and state management.
@@ -74,6 +94,14 @@ export interface AsenaContext<R, S extends Response> {
74
94
  * @returns {Promise<string[]>} Array of all values for the query parameter
75
95
  */
76
96
  getQueryAll: (query: string) => Promise<string[]>;
97
+ /**
98
+ * Retrieves all query parameters as a key-value object.
99
+ * Single-value parameters are returned as strings, multi-value as arrays.
100
+ * For URL "?name=john&color=red&color=blue", returns { name: "john", color: ["red", "blue"] }
101
+ *
102
+ * @returns {Record<string, string | string[]>} All query parameters
103
+ */
104
+ getAllQueries: () => Record<string, string | string[]>;
77
105
  /**
78
106
  * Retrieves a cookie value by name, with optional signature verification.
79
107
  *
@@ -101,19 +129,22 @@ export interface AsenaContext<R, S extends Response> {
101
129
  deleteCookie: (name: string, options?: CookieExtra<any>) => Promise<void>;
102
130
  /**
103
131
  * Retrieves a value from the context's state storage.
132
+ * When AsenaVariables is augmented, provides type-safe access for known keys.
104
133
  *
105
- * @template T - The expected type of the value
106
- * @param {string} key - The key to retrieve
107
- * @returns {T} The stored value
134
+ * @param key - The key to retrieve
135
+ * @returns The stored value
108
136
  */
109
- getValue: <T>(key: string) => T;
137
+ getValue<K extends keyof AsenaVariables>(key: K): AsenaVariables[K];
138
+ getValue<T = any>(key: string): T;
110
139
  /**
111
140
  * Stores a value in the context's state storage.
141
+ * When AsenaVariables is augmented, enforces correct value types for known keys.
112
142
  *
113
- * @param {string} key - The key to store under
114
- * @param {any} value - The value to store
143
+ * @param key - The key to store under
144
+ * @param value - The value to store
115
145
  */
116
- setValue: (key: string, value: any) => void;
146
+ setValue<K extends keyof AsenaVariables>(key: K, value: AsenaVariables[K]): void;
147
+ setValue(key: string, value: any): void;
117
148
  /**
118
149
  * Stores a value specifically for WebSocket communication.
119
150
  *
@@ -127,6 +158,48 @@ export interface AsenaContext<R, S extends Response> {
127
158
  * @returns {T} The stored WebSocket value
128
159
  */
129
160
  getWebSocketValue: <T>() => T;
161
+ /**
162
+ * Get the client IP address (lazy evaluated).
163
+ * Uses Bun's server.requestIP() under the hood.
164
+ * Result is cached after first call - zero cost if never called.
165
+ *
166
+ * @returns {string | null} The client IP address, or null if unavailable
167
+ */
168
+ getRequestIp?(): string | null;
169
+ /**
170
+ * Set a response header.
171
+ *
172
+ * @param {string} key - Header name
173
+ * @param {string} value - Header value
174
+ */
175
+ setResponseHeader?(key: string, value: string): void;
176
+ /**
177
+ * Start a generic binary/text stream.
178
+ * The callback receives a writer; the method returns a Response backed by the stream.
179
+ *
180
+ * @param cb - Async callback that writes to the stream
181
+ * @param onError - Optional error handler
182
+ * @returns Response backed by the readable side of the stream
183
+ */
184
+ stream(cb: (stream: AsenaStreamWriter) => Promise<void>, onError?: (error: Error, stream: AsenaStreamWriter) => Promise<void>): Response | Promise<Response>;
185
+ /**
186
+ * Start a Server-Sent Events stream.
187
+ * Sets appropriate SSE headers automatically (text/event-stream, no-cache, keep-alive).
188
+ *
189
+ * @param cb - Async callback that writes SSE messages
190
+ * @param onError - Optional error handler
191
+ * @returns Response backed by the SSE stream
192
+ */
193
+ streamSSE(cb: (stream: AsenaSSEStreamWriter) => Promise<void>, onError?: (error: Error, stream: AsenaSSEStreamWriter) => Promise<void>): Response | Promise<Response>;
194
+ /**
195
+ * Start a text stream with appropriate content-type headers.
196
+ * Sets Content-Type: text/plain and streaming-related headers.
197
+ *
198
+ * @param cb - Async callback that writes text
199
+ * @param onError - Optional error handler
200
+ * @returns Response backed by the text stream
201
+ */
202
+ streamText(cb: (stream: AsenaStreamWriter) => Promise<void>, onError?: (error: Error, stream: AsenaStreamWriter) => Promise<void>): Response | Promise<Response>;
130
203
  /**
131
204
  * Sends an HTML response with appropriate content-type headers.
132
205
  *
@@ -1,5 +1,5 @@
1
- import type { AsenaWebSocketService, WSOptions } from '../server/web/websocket';
2
- import type { WebSocketHandler } from 'bun';
1
+ import type { AsenaWebSocketService, WebSocketTransport, WSOptions, WebSocketData } from '../server/web/websocket';
2
+ import type { ServerWebSocket, WebSocketHandler } from 'bun';
3
3
  import type { WebSocketRegistry } from './types';
4
4
  import type { ServerLogger } from '../logger';
5
5
  /**
@@ -30,6 +30,12 @@ export declare abstract class AsenaWebsocketAdapter {
30
30
  * @private
31
31
  */
32
32
  private _logger;
33
+ /**
34
+ * Optional WebSocket transport for cross-pod messaging.
35
+ * When set, publish operations are routed through this transport.
36
+ * @protected
37
+ */
38
+ protected _transport?: WebSocketTransport;
33
39
  /**
34
40
  * Initializes a new WebSocket adapter instance
35
41
  * @param logger - Logger instance for WebSocket-related logging
@@ -74,4 +80,37 @@ export declare abstract class AsenaWebsocketAdapter {
74
80
  * Sets the logger instance
75
81
  */
76
82
  set logger(value: ServerLogger);
83
+ /**
84
+ * Gets the WebSocket transport
85
+ */
86
+ get transport(): WebSocketTransport | undefined;
87
+ /**
88
+ * Sets the WebSocket transport for cross-pod messaging
89
+ */
90
+ set transport(value: WebSocketTransport | undefined);
91
+ /**
92
+ * Map of connection ID to heartbeat interval timer.
93
+ * Used when sendPingStrategy is 'adapter'.
94
+ */
95
+ protected heartbeatIntervals: Map<string, Timer>;
96
+ /**
97
+ * Starts a periodic heartbeat (ping) for a WebSocket connection.
98
+ * Call from the adapter's open handler when using 'adapter' strategy.
99
+ *
100
+ * @param ws - The WebSocket connection
101
+ * @param intervalMs - Heartbeat interval in milliseconds (default: 30000)
102
+ */
103
+ protected startHeartbeat(ws: ServerWebSocket<WebSocketData>, intervalMs?: number): void;
104
+ /**
105
+ * Stops the heartbeat for a single connection.
106
+ * Call from the adapter's close handler.
107
+ *
108
+ * @param connectionId - The connection ID
109
+ */
110
+ protected stopHeartbeat(connectionId: string): void;
111
+ /**
112
+ * Clears all active heartbeat intervals.
113
+ * Call during adapter shutdown.
114
+ */
115
+ protected clearAllHeartbeats(): void;
77
116
  }
@@ -26,6 +26,12 @@ export class AsenaWebsocketAdapter {
26
26
  * @private
27
27
  */
28
28
  _logger = console;
29
+ /**
30
+ * Optional WebSocket transport for cross-pod messaging.
31
+ * When set, publish operations are routed through this transport.
32
+ * @protected
33
+ */
34
+ _transport;
29
35
  /**
30
36
  * Initializes a new WebSocket adapter instance
31
37
  * @param logger - Logger instance for WebSocket-related logging
@@ -69,5 +75,73 @@ export class AsenaWebsocketAdapter {
69
75
  set logger(value) {
70
76
  this._logger = value;
71
77
  }
78
+ /**
79
+ * Gets the WebSocket transport
80
+ */
81
+ get transport() {
82
+ return this._transport;
83
+ }
84
+ /**
85
+ * Sets the WebSocket transport for cross-pod messaging
86
+ */
87
+ set transport(value) {
88
+ this._transport = value;
89
+ }
90
+ // ── Heartbeat Infrastructure ──────────────────────────────────────────
91
+ /**
92
+ * Map of connection ID to heartbeat interval timer.
93
+ * Used when sendPingStrategy is 'adapter'.
94
+ */
95
+ heartbeatIntervals = new Map();
96
+ /**
97
+ * Starts a periodic heartbeat (ping) for a WebSocket connection.
98
+ * Call from the adapter's open handler when using 'adapter' strategy.
99
+ *
100
+ * @param ws - The WebSocket connection
101
+ * @param intervalMs - Heartbeat interval in milliseconds (default: 30000)
102
+ */
103
+ startHeartbeat(ws, intervalMs = 30000) {
104
+ const interval = setInterval(() => {
105
+ if (ws.readyState === WebSocket.OPEN) {
106
+ try {
107
+ ws.ping();
108
+ }
109
+ catch (error) {
110
+ this.logger.error(`Heartbeat ping failed for connection ${ws.data.id}:`, error);
111
+ this.stopHeartbeat(ws.data.id);
112
+ if (ws.readyState === WebSocket.OPEN) {
113
+ ws.close(1011, 'Heartbeat failed');
114
+ }
115
+ }
116
+ }
117
+ else {
118
+ this.stopHeartbeat(ws.data.id);
119
+ }
120
+ }, intervalMs);
121
+ this.heartbeatIntervals.set(ws.data.id, interval);
122
+ }
123
+ /**
124
+ * Stops the heartbeat for a single connection.
125
+ * Call from the adapter's close handler.
126
+ *
127
+ * @param connectionId - The connection ID
128
+ */
129
+ stopHeartbeat(connectionId) {
130
+ const interval = this.heartbeatIntervals.get(connectionId);
131
+ if (interval) {
132
+ clearInterval(interval);
133
+ this.heartbeatIntervals.delete(connectionId);
134
+ }
135
+ }
136
+ /**
137
+ * Clears all active heartbeat intervals.
138
+ * Call during adapter shutdown.
139
+ */
140
+ clearAllHeartbeats() {
141
+ for (const interval of this.heartbeatIntervals.values()) {
142
+ clearInterval(interval);
143
+ }
144
+ this.heartbeatIntervals.clear();
145
+ }
72
146
  }
73
147
  //# sourceMappingURL=AsenaWebsocketAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsenaWebsocketAdapter.js","sourceRoot":"","sources":["../../../lib/adapter/AsenaWebsocketAdapter.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,OAAgB,qBAAqB;IACzB,IAAI,CAAS;IAE7B;;;;;;;;OAQG;IACO,WAAW,CAAoB;IAEzC;;;OAGG;IACK,UAAU,CAAwB;IAE1C;;;OAGG;IACK,OAAO,GAAiB,OAAO,CAAC;IAExC;;;OAGG;IACH,YAAsB,MAAoB;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAoBD;;OAEG;IACH,IAAc,UAAU;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAc,UAAU,CAAC,KAAwB;QAC/C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,SAAS,CAAC,KAA4B;QAC/C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAW,MAAM,CAAC,KAAmB;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"AsenaWebsocketAdapter.js","sourceRoot":"","sources":["../../../lib/adapter/AsenaWebsocketAdapter.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export interface ApiParams<C extends AsenaContext<any, any> = any, SH = unknown>
25
25
  path: string;
26
26
  /** The HTTP method for the route. */
27
27
  method: HttpMethod;
28
+ /** A short summary of the route (displayed in OpenAPI UI). */
29
+ summary: string;
28
30
  /** A brief description of the route. */
29
31
  description: string;
30
32
  /** An array of middleware classes to be applied to the route. */
@@ -58,6 +60,10 @@ export interface ControllerDecoratorParams<C extends AsenaContext<any, any> = an
58
60
  * Optional array of middleware classes to be applied.
59
61
  */
60
62
  middlewares?: MiddlewareClass<C>[];
63
+ /**
64
+ * Optional short summary of the route (displayed in OpenAPI UI).
65
+ */
66
+ summary?: string;
61
67
  /**
62
68
  * Optional description of the route.
63
69
  */
@@ -1,6 +1,27 @@
1
1
  import type { ServeOptions } from 'bun';
2
2
  import type { WSOptions } from '../../server/web/websocket';
3
- export type AsenaServerOptions = ServeOptions;
3
+ /**
4
+ * AsenaServerOptions excludes framework-managed properties from Bun's ServeOptions.
5
+ *
6
+ * Excluded properties (managed internally by AsenaJS):
7
+ * - `fetch`: Managed by HTTP adapter (e.g., HonoAdapter)
8
+ * - `routes`: Managed by AsenaJS routing decorators (@Get, @Post, etc.)
9
+ * - `websocket`: Managed by AsenaWebsocketAdapter
10
+ * - `error`: Managed through AsenaConfig.onError()
11
+ *
12
+ * Available options include:
13
+ * - Network: `hostname`, `port`, `unix`, `reusePort`, `ipv6Only`
14
+ * - Security: `tls`
15
+ * - Performance: `maxRequestBodySize`, `idleTimeout`
16
+ * - Development: `development`, `id`
17
+ */
18
+ export type AsenaServerOptions = Omit<ServeOptions, 'fetch' | 'routes' | 'websocket' | 'error'>;
19
+ /**
20
+ * Complete configuration for AsenaJS server.
21
+ *
22
+ * @property serveOptions - Bun server options (excluding framework-managed properties)
23
+ * @property wsOptions - AsenaJS WebSocket-specific options
24
+ */
4
25
  export interface AsenaServeOptions {
5
26
  serveOptions?: AsenaServerOptions;
6
27
  wsOptions?: WSOptions;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * SSE message format following the Server-Sent Events specification.
3
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
4
+ */
5
+ export interface SSEMessage {
6
+ /** The data field. Multi-line strings are automatically split into separate data: lines. */
7
+ data: string;
8
+ /** Optional event type name */
9
+ event?: string;
10
+ /** Optional event ID for reconnection */
11
+ id?: string;
12
+ /** Optional reconnection time in milliseconds */
13
+ retry?: number;
14
+ }
15
+ /**
16
+ * Writer interface for generic streaming responses.
17
+ * Adapter implementations provide concrete instances backed by TransformStream.
18
+ */
19
+ export interface AsenaStreamWriter {
20
+ /** Write raw bytes or a string to the stream */
21
+ write(input: Uint8Array | string): Promise<void>;
22
+ /** Write a string followed by a newline */
23
+ writeln(input: string): Promise<void>;
24
+ /** Close the stream normally */
25
+ close(): Promise<void>;
26
+ /** Pipe a ReadableStream through this writer */
27
+ pipe(body: ReadableStream): Promise<void>;
28
+ /** Register a callback for when the client disconnects */
29
+ onAbort(listener: () => void | Promise<void>): void;
30
+ /** Whether the stream has been aborted by the client */
31
+ readonly aborted: boolean;
32
+ /** Whether the stream has been closed normally */
33
+ readonly closed: boolean;
34
+ }
35
+ /**
36
+ * Writer interface for SSE streaming responses.
37
+ * Extends the base writer with SSE-specific writeSSE method.
38
+ */
39
+ export interface AsenaSSEStreamWriter extends AsenaStreamWriter {
40
+ /** Write a formatted SSE message */
41
+ writeSSE(message: SSEMessage): Promise<void>;
42
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Streaming.js","sourceRoot":"","sources":["../../../../lib/adapter/types/Streaming.ts"],"names":[],"mappings":""}
@@ -9,3 +9,4 @@ export * from './BaseMiddleware';
9
9
  export * from './ApiParams';
10
10
  export * from './AsenaHandler';
11
11
  export * from './BaseStaticServeParams';
12
+ export * from './Streaming';
@@ -9,4 +9,5 @@ export * from './BaseMiddleware';
9
9
  export * from './ApiParams';
10
10
  export * from './AsenaHandler';
11
11
  export * from './BaseStaticServeParams';
12
+ export * from './Streaming';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/adapter/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/adapter/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import type { Class } from '../server/types';
2
- import type { ComponentType, ContainerService } from './types';
2
+ import type { ComponentPostProcessor, ComponentType, ContainerService } from './types';
3
3
  export declare class Container {
4
4
  private _services;
5
5
  private circularDetector;
6
+ private postProcessors;
6
7
  constructor(services?: {
7
8
  [key: string]: ContainerService | ContainerService[];
8
9
  });
@@ -25,6 +26,12 @@ export declare class Container {
25
26
  private filterServices;
26
27
  private resolveContainerService;
27
28
  private resolveMultipleContainerService;
29
+ /**
30
+ * @description Register a ComponentPostProcessor for post-processing newly created instances.
31
+ * PostProcessors are called in FIFO order after DI + PostConstruct.
32
+ * @param {ComponentPostProcessor} processor - The post-processor to register
33
+ */
34
+ registerPostProcessor(processor: ComponentPostProcessor): void;
28
35
  private prepareInstance;
29
36
  /**
30
37
  * @description Executes PostConstruct methods on the instance.
@@ -1,10 +1,11 @@
1
1
  import { ComponentConstants } from './constants';
2
- import { getOwnTypedMetadata, getTypedMetadata } from '../utils/typedMetadata';
2
+ import { getOwnTypedMetadata, getTypedMetadata } from '../utils';
3
3
  import { CircularDependencyDetector } from './CircularDependencyDetector';
4
4
  import { CORE_SERVICE } from './decorators';
5
5
  export class Container {
6
6
  _services = {};
7
7
  circularDetector = new CircularDependencyDetector();
8
+ postProcessors = [];
8
9
  constructor(services) {
9
10
  this._services = services || {};
10
11
  }
@@ -105,12 +106,25 @@ export class Container {
105
106
  async resolveMultipleContainerService(containerService) {
106
107
  return Promise.all(containerService.map(async (_service) => this.resolveContainerService(_service)));
107
108
  }
109
+ /**
110
+ * @description Register a ComponentPostProcessor for post-processing newly created instances.
111
+ * PostProcessors are called in FIFO order after DI + PostConstruct.
112
+ * @param {ComponentPostProcessor} processor - The post-processor to register
113
+ */
114
+ registerPostProcessor(processor) {
115
+ this.postProcessors.push(processor);
116
+ }
108
117
  async prepareInstance(Class) {
109
118
  const newInstance = new Class();
110
119
  await this.injectDependencies(newInstance, Class); // dependency injection
111
120
  await this.injectStrategies(newInstance, Class); // strategy injection
112
121
  await this.executePostConstructs(newInstance, Class); // post construct
113
- return newInstance;
122
+ // Post-processing (skipped when postProcessors is empty - zero overhead)
123
+ let processed = newInstance;
124
+ for (const processor of this.postProcessors) {
125
+ processed = (await processor.postProcess(processed, Class)) ?? processed;
126
+ }
127
+ return processed;
114
128
  }
115
129
  /**
116
130
  * @description Executes PostConstruct methods on the instance.
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/ioc/Container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/ioc/Container.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,12 @@ import { PrepareWebsocketService } from '../server/src/services/PrepareWebsocket
7
7
  import { PrepareValidatorService } from '../server/src/services/PrepareValidatorService';
8
8
  import { PrepareStaticServeConfigService } from '../server/src/services/PrepareStaticServeConfigService';
9
9
  import { PrepareEventService } from '../server/src/services/PrepareEventService';
10
- import { Ulak } from '../server/messaging/Ulak';
11
- import { EventDispatchService } from '../server/event/EventDispatchService';
12
- import { EventEmitter } from '../server/event/EventEmitter';
10
+ import { PrepareScheduleService } from '../server/src/services/PrepareScheduleService';
11
+ import { PrepareFrontendControllerService } from '../server/src/services/PrepareFrontendControllerService';
12
+ import { Ulak } from '../server/messaging';
13
+ import { EventDispatchService } from '../server/event';
14
+ import { EventEmitter } from '../server/event';
15
+ import { CronRunner } from '../server/schedule';
13
16
  /**
14
17
  * @description CoreContainer manages framework-level services
15
18
  * Handles the bootstrap sequence for core services and user components
@@ -115,6 +118,10 @@ export class CoreContainer {
115
118
  { name: ICoreServiceNames.PREPARE_VALIDATOR_SERVICE, Class: PrepareValidatorService },
116
119
  { name: ICoreServiceNames.PREPARE_STATIC_SERVE_CONFIG_SERVICE, Class: PrepareStaticServeConfigService },
117
120
  { name: ICoreServiceNames.PREPARE_EVENT_SERVICE, Class: PrepareEventService },
121
+ { name: ICoreServiceNames.PREPARE_FRONTEND_CONTROLLER_SERVICE, Class: PrepareFrontendControllerService },
122
+ // Schedule system (CronRunner must be registered before PrepareScheduleService)
123
+ { name: ICoreServiceNames.CRON_RUNNER, Class: CronRunner },
124
+ { name: ICoreServiceNames.PREPARE_SCHEDULE_SERVICE, Class: PrepareScheduleService },
118
125
  ];
119
126
  for (const service of services) {
120
127
  await this._container.register(service.name, service.Class, true);
@@ -1 +1 @@
1
- {"version":3,"file":"CoreContainer.js","sourceRoot":"","sources":["../../../lib/ioc/CoreContainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreContainer.js","sourceRoot":"","sources":["../../../lib/ioc/CoreContainer.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import type { Container } from './Container';
7
7
  export declare class IocEngine implements ICoreService {
8
8
  serviceName: string;
9
9
  private _container;
10
+ private logger;
10
11
  private injectables;
11
12
  private config?;
12
13
  /**
@@ -27,6 +28,12 @@ export declare class IocEngine implements ICoreService {
27
28
  private topologicalSort;
28
29
  private initializeGraph;
29
30
  private findCycle;
31
+ /**
32
+ * @description Separates PostProcessor classes and their transitive dependencies from other components.
33
+ * PostProcessors and their deps are registered in Phase A (before post-processing is active).
34
+ * Non-PostProcessor dependencies pulled into Phase A will NOT be post-processed (by design).
35
+ */
36
+ private separatePostProcessors;
30
37
  private getDependencies;
31
38
  private getStrategyDependencies;
32
39
  get container(): Container;