@asenajs/asena 0.6.3 → 0.7.1

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 (147) hide show
  1. package/README.md +2 -2
  2. package/dist/lib/adapter/AsenaAdapter.d.ts +19 -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 +87 -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/Streaming.d.ts +42 -0
  11. package/dist/lib/adapter/types/Streaming.js +2 -0
  12. package/dist/lib/adapter/types/Streaming.js.map +1 -0
  13. package/dist/lib/adapter/types/index.d.ts +1 -0
  14. package/dist/lib/adapter/types/index.js +1 -0
  15. package/dist/lib/adapter/types/index.js.map +1 -1
  16. package/dist/lib/ioc/Container.d.ts +8 -1
  17. package/dist/lib/ioc/Container.js +16 -2
  18. package/dist/lib/ioc/Container.js.map +1 -1
  19. package/dist/lib/ioc/CoreContainer.js +10 -3
  20. package/dist/lib/ioc/CoreContainer.js.map +1 -1
  21. package/dist/lib/ioc/IocEngine.d.ts +7 -0
  22. package/dist/lib/ioc/IocEngine.js +82 -3
  23. package/dist/lib/ioc/IocEngine.js.map +1 -1
  24. package/dist/lib/ioc/component/componentUtils.js +3 -1
  25. package/dist/lib/ioc/component/componentUtils.js.map +1 -1
  26. package/dist/lib/ioc/constants/ComponentConstants.d.ts +2 -0
  27. package/dist/lib/ioc/constants/ComponentConstants.js +3 -0
  28. package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
  29. package/dist/lib/ioc/helper/cronParser.d.ts +3 -0
  30. package/dist/lib/ioc/helper/cronParser.js +3 -1
  31. package/dist/lib/ioc/helper/cronParser.js.map +1 -1
  32. package/dist/lib/ioc/types/ComponentPostProcessor.d.ts +30 -0
  33. package/dist/lib/ioc/types/ComponentPostProcessor.js +2 -0
  34. package/dist/lib/ioc/types/ComponentPostProcessor.js.map +1 -0
  35. package/dist/lib/ioc/types/ICoreServiceNamesType.d.ts +3 -0
  36. package/dist/lib/ioc/types/ICoreServiceNamesType.js +4 -0
  37. package/dist/lib/ioc/types/ICoreServiceNamesType.js.map +1 -1
  38. package/dist/lib/ioc/types/decorators/ComponentType.d.ts +3 -1
  39. package/dist/lib/ioc/types/decorators/ComponentType.js +2 -0
  40. package/dist/lib/ioc/types/decorators/ComponentType.js.map +1 -1
  41. package/dist/lib/ioc/types/decorators/ControllerParams.d.ts +1 -0
  42. package/dist/lib/ioc/types/index.d.ts +1 -0
  43. package/dist/lib/ioc/types/index.js +1 -0
  44. package/dist/lib/ioc/types/index.js.map +1 -1
  45. package/dist/lib/server/AsenaServer.d.ts +18 -0
  46. package/dist/lib/server/AsenaServer.js +85 -1
  47. package/dist/lib/server/AsenaServer.js.map +1 -1
  48. package/dist/lib/server/config/AsenaConfig.d.ts +16 -1
  49. package/dist/lib/server/decorators/components/Controller.js +3 -0
  50. package/dist/lib/server/decorators/components/Controller.js.map +1 -1
  51. package/dist/lib/server/decorators/components/FrontendController.d.ts +15 -0
  52. package/dist/lib/server/decorators/components/FrontendController.js +20 -0
  53. package/dist/lib/server/decorators/components/FrontendController.js.map +1 -0
  54. package/dist/lib/server/decorators/components/PostProcessor.d.ts +25 -0
  55. package/dist/lib/server/decorators/components/PostProcessor.js +29 -0
  56. package/dist/lib/server/decorators/components/PostProcessor.js.map +1 -0
  57. package/dist/lib/server/decorators/components/Schedule.d.ts +15 -3
  58. package/dist/lib/server/decorators/components/Schedule.js +24 -6
  59. package/dist/lib/server/decorators/components/Schedule.js.map +1 -1
  60. package/dist/lib/server/decorators/components/index.d.ts +2 -0
  61. package/dist/lib/server/decorators/components/index.js +2 -0
  62. package/dist/lib/server/decorators/components/index.js.map +1 -1
  63. package/dist/lib/server/decorators/index.d.ts +0 -3
  64. package/dist/lib/server/decorators/index.js +0 -3
  65. package/dist/lib/server/decorators/index.js.map +1 -1
  66. package/dist/lib/server/messaging/Ulak.js +8 -5
  67. package/dist/lib/server/messaging/Ulak.js.map +1 -1
  68. package/dist/lib/server/schedule/AsenaSchedule.d.ts +21 -0
  69. package/dist/lib/server/schedule/AsenaSchedule.js +2 -0
  70. package/dist/lib/server/schedule/AsenaSchedule.js.map +1 -0
  71. package/dist/lib/server/schedule/CronRunner.d.ts +54 -0
  72. package/dist/lib/server/schedule/CronRunner.js +130 -0
  73. package/dist/lib/server/schedule/CronRunner.js.map +1 -0
  74. package/dist/lib/server/schedule/index.d.ts +2 -0
  75. package/dist/lib/server/schedule/index.js +2 -0
  76. package/dist/lib/server/schedule/index.js.map +1 -0
  77. package/dist/lib/server/src/services/PrepareFrontendControllerService.d.ts +18 -0
  78. package/dist/lib/server/src/services/PrepareFrontendControllerService.js +63 -0
  79. package/dist/lib/server/src/services/PrepareFrontendControllerService.js.map +1 -0
  80. package/dist/lib/server/src/services/PrepareScheduleService.d.ts +21 -0
  81. package/dist/lib/server/src/services/PrepareScheduleService.js +69 -0
  82. package/dist/lib/server/src/services/PrepareScheduleService.js.map +1 -0
  83. package/dist/lib/server/web/decorators/Page.d.ts +13 -0
  84. package/dist/lib/server/web/decorators/Page.js +17 -0
  85. package/dist/lib/server/web/decorators/Page.js.map +1 -0
  86. package/dist/lib/server/web/decorators/http.base.d.ts +1 -1
  87. package/dist/lib/server/web/decorators/http.base.js +3 -2
  88. package/dist/lib/server/web/decorators/http.base.js.map +1 -1
  89. package/dist/lib/server/web/decorators/index.d.ts +1 -0
  90. package/dist/lib/server/web/decorators/index.js +1 -0
  91. package/dist/lib/server/web/decorators/index.js.map +1 -1
  92. package/dist/lib/server/web/decorators/methods/All.d.ts +7 -0
  93. package/dist/lib/server/web/decorators/methods/All.js +12 -0
  94. package/dist/lib/server/web/decorators/methods/All.js.map +1 -0
  95. package/dist/lib/server/web/decorators/methods/Connect.js +10 -2
  96. package/dist/lib/server/web/decorators/methods/Connect.js.map +1 -1
  97. package/dist/lib/server/web/decorators/methods/Delete.js +2 -2
  98. package/dist/lib/server/web/decorators/methods/Delete.js.map +1 -1
  99. package/dist/lib/server/web/decorators/methods/Get.js +2 -2
  100. package/dist/lib/server/web/decorators/methods/Get.js.map +1 -1
  101. package/dist/lib/server/web/decorators/methods/Head.js +2 -2
  102. package/dist/lib/server/web/decorators/methods/Head.js.map +1 -1
  103. package/dist/lib/server/web/decorators/methods/Options.js +10 -2
  104. package/dist/lib/server/web/decorators/methods/Options.js.map +1 -1
  105. package/dist/lib/server/web/decorators/methods/Patch.js +2 -2
  106. package/dist/lib/server/web/decorators/methods/Patch.js.map +1 -1
  107. package/dist/lib/server/web/decorators/methods/Post.js +2 -2
  108. package/dist/lib/server/web/decorators/methods/Post.js.map +1 -1
  109. package/dist/lib/server/web/decorators/methods/Put.js +2 -2
  110. package/dist/lib/server/web/decorators/methods/Put.js.map +1 -1
  111. package/dist/lib/server/web/decorators/methods/Route.d.ts +21 -0
  112. package/dist/lib/server/web/decorators/methods/Route.js +33 -0
  113. package/dist/lib/server/web/decorators/methods/Route.js.map +1 -0
  114. package/dist/lib/server/web/decorators/methods/Trace.js +2 -2
  115. package/dist/lib/server/web/decorators/methods/Trace.js.map +1 -1
  116. package/dist/lib/server/web/decorators/methods/index.d.ts +2 -0
  117. package/dist/lib/server/web/decorators/methods/index.js +2 -0
  118. package/dist/lib/server/web/decorators/methods/index.js.map +1 -1
  119. package/dist/lib/server/web/middleware/AsenaValidationService.d.ts +32 -0
  120. package/dist/lib/server/web/types/HttpMethod.d.ts +2 -1
  121. package/dist/lib/server/web/types/HttpMethod.js +1 -0
  122. package/dist/lib/server/web/types/HttpMethod.js.map +1 -1
  123. package/dist/lib/server/web/websocket/AsenaSocket.d.ts +16 -8
  124. package/dist/lib/server/web/websocket/AsenaSocket.js +30 -7
  125. package/dist/lib/server/web/websocket/AsenaSocket.js.map +1 -1
  126. package/dist/lib/server/web/websocket/AsenaWebSocketServer.d.ts +6 -7
  127. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js +10 -11
  128. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js.map +1 -1
  129. package/dist/lib/server/web/websocket/BunLocalTransport.d.ts +16 -0
  130. package/dist/lib/server/web/websocket/BunLocalTransport.js +18 -0
  131. package/dist/lib/server/web/websocket/BunLocalTransport.js.map +1 -0
  132. package/dist/lib/server/web/websocket/WebSocketTransport.d.ts +76 -0
  133. package/dist/lib/server/web/websocket/WebSocketTransport.js +2 -0
  134. package/dist/lib/server/web/websocket/WebSocketTransport.js.map +1 -0
  135. package/dist/lib/server/web/websocket/index.d.ts +2 -0
  136. package/dist/lib/server/web/websocket/index.js +2 -0
  137. package/dist/lib/server/web/websocket/index.js.map +1 -1
  138. package/dist/lib/server/web/websocket/types.d.ts +24 -0
  139. package/dist/lib/utils/index.d.ts +2 -0
  140. package/dist/lib/utils/index.js +1 -0
  141. package/dist/lib/utils/index.js.map +1 -1
  142. package/dist/lib/utils/metadataExtractor.d.ts +88 -0
  143. package/dist/lib/utils/metadataExtractor.js +105 -0
  144. package/dist/lib/utils/metadataExtractor.js.map +1 -0
  145. package/dist/lib/utils/patternMatcher.js +5 -2
  146. package/dist/lib/utils/patternMatcher.js.map +1 -1
  147. 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.3-blue.svg)](https://asena.sh)
7
+ [![Version](https://img.shields.io/badge/version-0.7.1-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,16 @@ 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
+ * @param controllerName - Name of the FrontendController that owns this route
75
+ * @param controllerBasePath - Base path of the FrontendController (e.g., '/ui')
76
+ */
77
+ abstract registerHTMLRoute(path: string, htmlBundle: unknown, controllerName: string, controllerBasePath: string): void;
68
78
  /**
69
79
  * Registers a WebSocket route with the application. This method establishes the connection
70
80
  * between HTTP routes and WebSocket handlers, allowing the adapter to properly route
@@ -96,4 +106,13 @@ export declare abstract class AsenaAdapter<C extends AsenaContext<any, any>, VS>
96
106
  * @returns A promise that resolves when the options are set, or void.
97
107
  */
98
108
  abstract serveOptions(options: () => Promise<AsenaServeOptions> | AsenaServeOptions): Promise<void> | void;
109
+ /**
110
+ * Stops the server and releases resources.
111
+ * @param closeActiveConnections - Whether to close active connections immediately
112
+ */
113
+ abstract stop(closeActiveConnections?: boolean): Promise<void>;
114
+ /**
115
+ * Gets the WebSocket adapter for transport configuration
116
+ */
117
+ getWebsocketAdapter(): AsenaWebsocketAdapter | undefined;
99
118
  }
@@ -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;IA6FD;;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.
@@ -11,6 +31,12 @@ export interface AsenaContext<R, S extends Response> {
11
31
  req: R;
12
32
  /** The original response object */
13
33
  res: S;
34
+ /**
35
+ * The matched route pattern (e.g., `/users/:id`).
36
+ * Set by the adapter's router after matching. Used by OTel and other
37
+ * middleware to produce low-cardinality identifiers instead of raw URLs.
38
+ */
39
+ routePattern?: string;
14
40
  /**
15
41
  * Request headers stored as key-value pairs
16
42
  */
@@ -74,6 +100,14 @@ export interface AsenaContext<R, S extends Response> {
74
100
  * @returns {Promise<string[]>} Array of all values for the query parameter
75
101
  */
76
102
  getQueryAll: (query: string) => Promise<string[]>;
103
+ /**
104
+ * Retrieves all query parameters as a key-value object.
105
+ * Single-value parameters are returned as strings, multi-value as arrays.
106
+ * For URL "?name=john&color=red&color=blue", returns { name: "john", color: ["red", "blue"] }
107
+ *
108
+ * @returns {Record<string, string | string[]>} All query parameters
109
+ */
110
+ getAllQueries: () => Record<string, string | string[]>;
77
111
  /**
78
112
  * Retrieves a cookie value by name, with optional signature verification.
79
113
  *
@@ -101,19 +135,22 @@ export interface AsenaContext<R, S extends Response> {
101
135
  deleteCookie: (name: string, options?: CookieExtra<any>) => Promise<void>;
102
136
  /**
103
137
  * Retrieves a value from the context's state storage.
138
+ * When AsenaVariables is augmented, provides type-safe access for known keys.
104
139
  *
105
- * @template T - The expected type of the value
106
- * @param {string} key - The key to retrieve
107
- * @returns {T} The stored value
140
+ * @param key - The key to retrieve
141
+ * @returns The stored value
108
142
  */
109
- getValue: <T>(key: string) => T;
143
+ getValue<K extends keyof AsenaVariables>(key: K): AsenaVariables[K];
144
+ getValue<T = any>(key: string): T;
110
145
  /**
111
146
  * Stores a value in the context's state storage.
147
+ * When AsenaVariables is augmented, enforces correct value types for known keys.
112
148
  *
113
- * @param {string} key - The key to store under
114
- * @param {any} value - The value to store
149
+ * @param key - The key to store under
150
+ * @param value - The value to store
115
151
  */
116
- setValue: (key: string, value: any) => void;
152
+ setValue<K extends keyof AsenaVariables>(key: K, value: AsenaVariables[K]): void;
153
+ setValue(key: string, value: any): void;
117
154
  /**
118
155
  * Stores a value specifically for WebSocket communication.
119
156
  *
@@ -127,6 +164,48 @@ export interface AsenaContext<R, S extends Response> {
127
164
  * @returns {T} The stored WebSocket value
128
165
  */
129
166
  getWebSocketValue: <T>() => T;
167
+ /**
168
+ * Get the client IP address (lazy evaluated).
169
+ * Uses Bun's server.requestIP() under the hood.
170
+ * Result is cached after first call - zero cost if never called.
171
+ *
172
+ * @returns {string | null} The client IP address, or null if unavailable
173
+ */
174
+ getRequestIp?(): string | null;
175
+ /**
176
+ * Set a response header.
177
+ *
178
+ * @param {string} key - Header name
179
+ * @param {string} value - Header value
180
+ */
181
+ setResponseHeader?(key: string, value: string): void;
182
+ /**
183
+ * Start a generic binary/text stream.
184
+ * The callback receives a writer; the method returns a Response backed by the stream.
185
+ *
186
+ * @param cb - Async callback that writes to the stream
187
+ * @param onError - Optional error handler
188
+ * @returns Response backed by the readable side of the stream
189
+ */
190
+ stream(cb: (stream: AsenaStreamWriter) => Promise<void>, onError?: (error: Error, stream: AsenaStreamWriter) => Promise<void>): Response | Promise<Response>;
191
+ /**
192
+ * Start a Server-Sent Events stream.
193
+ * Sets appropriate SSE headers automatically (text/event-stream, no-cache, keep-alive).
194
+ *
195
+ * @param cb - Async callback that writes SSE messages
196
+ * @param onError - Optional error handler
197
+ * @returns Response backed by the SSE stream
198
+ */
199
+ streamSSE(cb: (stream: AsenaSSEStreamWriter) => Promise<void>, onError?: (error: Error, stream: AsenaSSEStreamWriter) => Promise<void>): Response | Promise<Response>;
200
+ /**
201
+ * Start a text stream with appropriate content-type headers.
202
+ * Sets Content-Type: text/plain and streaming-related headers.
203
+ *
204
+ * @param cb - Async callback that writes text
205
+ * @param onError - Optional error handler
206
+ * @returns Response backed by the text stream
207
+ */
208
+ streamText(cb: (stream: AsenaStreamWriter) => Promise<void>, onError?: (error: Error, stream: AsenaStreamWriter) => Promise<void>): Response | Promise<Response>;
130
209
  /**
131
210
  * Sends an HTML response with appropriate content-type headers.
132
211
  *
@@ -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
  */
@@ -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":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,OAAO,SAAS;IACZ,SAAS,GAA6D,EAAE,CAAC;IAEzE,gBAAgB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IAE5D,YAAmB,QAAmE;QACpF,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,EAAE,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,KAAY,EAAE,SAAkB;QACjE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBAE/G,OAAO;YACT,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;gBACpB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBACnB,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE;aACrF,CAAC;YAEF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7G,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,gBAAgB,CAAI,GAAW,EAAE,QAAW;QACvD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,yBAAyB,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;YACpB,KAAK,EAAE,QAAQ,CAAC,WAAkB;YAClC,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,OAAO,CAAI,GAAW;QACjC,4BAA4B;QAC5B,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAEpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,oBAAoB,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,OAAO,MAAM,IAAI,CAAC,+BAA+B,CAAI,OAAO,CAAC,CAAC;YAChE,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAI,OAAO,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEM,eAAe,CAAI,GAAW;QACnC,OAAO,IAAI,CAAC,OAAO,CAAI,GAAG,CAAwB,CAAC;IACrD,CAAC;IAED;;;SAGK;IACE,KAAK,CAAC,UAAU,CAAI,eAA8B;QACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAE9D,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAgB,EAAE,CAAC;QAElC,KAAK,MAAM,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,+BAA+B,CAAI,gBAAgB,CAAC,CAAC,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAI,gBAAgB,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,cAAc,CAAC,eAA8B;QACnD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,oDAAoD;gBACpD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC7B,OAAO,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,gBAAgB,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAI,gBAAkC;QACzE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAChC,OAAO,MAAM,IAAI,CAAC,eAAe,CAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,gBAAgB,CAAC,QAAa,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAI,gBAAoC;QACnF,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1G,CAAC;IAEO,KAAK,CAAC,eAAe,CAAI,KAAY;QAC3C,MAAM,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC;QAEhC,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,uBAAuB;QAE1E,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB;QAEtE,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,iBAAiB;QAEvE,OAAO,WAAgB,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,qBAAqB,CAAC,WAAgB,EAAE,KAAY;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,KAAK,MAAM,YAAY,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,MAAM,cAAc,GAAa,mBAAmB,CAAW,kBAAkB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;YAElH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBAC3C,+EAA+E;gBAC/E,IAAI,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvC,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;oBACnC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;oBACxD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,WAAgB,EAAE,KAAY;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAErD,KAAK,MAAM,YAAY,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,mBAAmB,CAAa,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAEnG,IAAI,CAAC,YAAY;gBAAE,SAAS;YAE5B,KAAK,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBACxE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBACpD,CAAC;gBAED,IAAI,MAAM,CAAC,wBAAwB,CAAC,WAAW,EAAE,WAAW,CAAC;oBAAE,SAAS;gBAExE,MAAM,QAAQ,GAAY,MAAM,IAAI,CAAC,eAAe,CAAQ,aAAa,CAAC,CAAC;gBAE3E,MAAM,UAAU,GAAgB,mBAAmB,CACjD,kBAAkB,CAAC,aAAa,EAChC,YAAY,CACb,CAAC;gBAEF,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE;oBAC9C,GAAG;wBACD,OAAO,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAChG,CAAC;oBACD,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,WAAgB,EAAE,KAAY;QAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAErD,KAAK,MAAM,YAAY,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,mBAAmB,CAAe,kBAAkB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAE/F,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,IAAI,QAA4B,CAAC;YAEjC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,QAAQ,GAAG,MAAM,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAE3D,IAAI,QAAQ,EAAE,KAAK,KAAK,SAAS;oBAAE,SAAS;gBAE5C,MAAM,QAAQ,GAAoB,MAAM,IAAI,CAAC,OAAO,CAAQ,IAAI,CAAC,CAAC;gBAElE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;gBACnD,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBACnD,CAAC;gBAED,MAAM,UAAU,GAAgB,mBAAmB,CACjD,kBAAkB,CAAC,aAAa,EAChC,YAAY,CACb,CAAC;gBAEF,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,EAAE;oBACpC,GAAG,EAAE,GAAG,EAAE;wBACR,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC9D,CAAC;oBACD,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,GAAQ;QAC/B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4CAA4C;QAC5C,MAAM,aAAa,GAAG,gBAAgB,CAAU,YAAY,EAAE,GAAG,CAAC,CAAC;QAEnE,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAEO,iBAAiB,CAAC,KAAU;QAClC,MAAM,KAAK,GAAU,EAAE,CAAC;QACxB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,OAAO,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAE3D,oDAAoD;YACpD,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzD,MAAM;YACR,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzB,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,QAAQ,CAAC,KAA6D;QAC/E,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;CACF"}
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;