@asenajs/asena 0.3.3 → 0.5.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 (136) hide show
  1. package/README.md +165 -140
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.js +2 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/adapter/AsenaAdapter.d.ts +19 -3
  6. package/dist/lib/adapter/AsenaAdapter.js.map +1 -1
  7. package/dist/lib/adapter/AsenaWebsocketAdapter.d.ts +2 -2
  8. package/dist/lib/adapter/AsenaWebsocketAdapter.js.map +1 -1
  9. package/dist/lib/adapter/types/RouteParams.d.ts +3 -0
  10. package/dist/lib/adapter/types/ServeOptions.d.ts +2 -2
  11. package/dist/lib/adapter/types/index.d.ts +4 -4
  12. package/dist/lib/adapter/types/index.js +4 -4
  13. package/dist/lib/adapter/types/index.js.map +1 -1
  14. package/dist/lib/ioc/CircularDependencyDetector.d.ts +49 -0
  15. package/dist/lib/ioc/CircularDependencyDetector.js +69 -0
  16. package/dist/lib/ioc/CircularDependencyDetector.js.map +1 -0
  17. package/dist/lib/ioc/Container.d.ts +16 -0
  18. package/dist/lib/ioc/Container.js +61 -11
  19. package/dist/lib/ioc/Container.js.map +1 -1
  20. package/dist/lib/ioc/CoreContainer.d.ts +78 -0
  21. package/dist/lib/ioc/CoreContainer.js +139 -0
  22. package/dist/lib/ioc/CoreContainer.js.map +1 -0
  23. package/dist/lib/ioc/IocEngine.d.ts +16 -6
  24. package/dist/lib/ioc/IocEngine.js +35 -7
  25. package/dist/lib/ioc/IocEngine.js.map +1 -1
  26. package/dist/lib/ioc/component/decorators/Inject.d.ts +24 -4
  27. package/dist/lib/ioc/component/decorators/Inject.js +44 -7
  28. package/dist/lib/ioc/component/decorators/Inject.js.map +1 -1
  29. package/dist/lib/ioc/component/index.d.ts +1 -1
  30. package/dist/lib/ioc/component/index.js +1 -1
  31. package/dist/lib/ioc/component/index.js.map +1 -1
  32. package/dist/lib/ioc/constants/ComponentConstants.d.ts +27 -18
  33. package/dist/lib/ioc/constants/ComponentConstants.js +34 -20
  34. package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
  35. package/dist/lib/ioc/decorators/CoreService.d.ts +8 -0
  36. package/dist/lib/ioc/decorators/CoreService.js +27 -0
  37. package/dist/lib/ioc/decorators/CoreService.js.map +1 -0
  38. package/dist/lib/ioc/decorators/index.d.ts +1 -0
  39. package/dist/lib/ioc/decorators/index.js +2 -0
  40. package/dist/lib/ioc/decorators/index.js.map +1 -0
  41. package/dist/lib/ioc/index.d.ts +5 -0
  42. package/dist/lib/ioc/index.js +5 -0
  43. package/dist/lib/ioc/index.js.map +1 -1
  44. package/dist/lib/ioc/types/CoreBootstrapPhase.d.ts +15 -0
  45. package/dist/lib/ioc/types/CoreBootstrapPhase.js +17 -0
  46. package/dist/lib/ioc/types/CoreBootstrapPhase.js.map +1 -0
  47. package/dist/lib/ioc/types/ICoreService.d.ts +9 -0
  48. package/dist/lib/ioc/types/ICoreService.js +2 -0
  49. package/dist/lib/ioc/types/ICoreService.js.map +1 -0
  50. package/dist/lib/ioc/types/ICoreServiceNamesType.d.ts +19 -0
  51. package/dist/lib/ioc/types/ICoreServiceNamesType.js +25 -0
  52. package/dist/lib/ioc/types/ICoreServiceNamesType.js.map +1 -0
  53. package/dist/lib/ioc/types/decorators/ControllerParams.d.ts +1 -1
  54. package/dist/lib/ioc/types/index.d.ts +3 -0
  55. package/dist/lib/ioc/types/index.js +3 -0
  56. package/dist/lib/ioc/types/index.js.map +1 -1
  57. package/dist/lib/server/AsenaServer.d.ts +85 -14
  58. package/dist/lib/server/AsenaServer.js +176 -68
  59. package/dist/lib/server/AsenaServer.js.map +1 -1
  60. package/dist/lib/server/AsenaServerFactory.d.ts +26 -0
  61. package/dist/lib/server/AsenaServerFactory.js +66 -0
  62. package/dist/lib/server/AsenaServerFactory.js.map +1 -0
  63. package/dist/lib/server/config/AsenaConfig.d.ts +91 -18
  64. package/dist/lib/server/decorators/Override.js +1 -1
  65. package/dist/lib/server/decorators/Override.js.map +1 -1
  66. package/dist/lib/server/decorators/components/Config.d.ts +1 -1
  67. package/dist/lib/server/decorators/components/Config.js +1 -1
  68. package/dist/lib/server/decorators/components/Config.js.map +1 -1
  69. package/dist/lib/server/decorators/components/Controller.d.ts +1 -1
  70. package/dist/lib/server/decorators/components/Controller.js +1 -2
  71. package/dist/lib/server/decorators/components/Controller.js.map +1 -1
  72. package/dist/lib/server/decorators/components/Middleware.js +1 -2
  73. package/dist/lib/server/decorators/components/Middleware.js.map +1 -1
  74. package/dist/lib/server/decorators/components/Schedule.d.ts +1 -1
  75. package/dist/lib/server/decorators/components/Schedule.js +1 -2
  76. package/dist/lib/server/decorators/components/Schedule.js.map +1 -1
  77. package/dist/lib/server/decorators/components/WebSocket.d.ts +1 -1
  78. package/dist/lib/server/decorators/components/WebSocket.js +1 -2
  79. package/dist/lib/server/decorators/components/WebSocket.js.map +1 -1
  80. package/dist/lib/server/decorators/index.d.ts +2 -0
  81. package/dist/lib/server/decorators/index.js +2 -0
  82. package/dist/lib/server/decorators/index.js.map +1 -1
  83. package/dist/lib/server/index.d.ts +3 -0
  84. package/dist/lib/server/index.js +4 -0
  85. package/dist/lib/server/index.js.map +1 -1
  86. package/dist/lib/server/messaging/Ulak.d.ts +224 -0
  87. package/dist/lib/server/messaging/Ulak.js +351 -0
  88. package/dist/lib/server/messaging/Ulak.js.map +1 -0
  89. package/dist/lib/server/messaging/index.d.ts +8 -0
  90. package/dist/lib/server/messaging/index.js +9 -0
  91. package/dist/lib/server/messaging/index.js.map +1 -0
  92. package/dist/lib/server/messaging/types.d.ts +73 -0
  93. package/dist/lib/server/messaging/types.js +35 -0
  94. package/dist/lib/server/messaging/types.js.map +1 -0
  95. package/dist/lib/server/src/services/PrepareConfigService.d.ts +9 -5
  96. package/dist/lib/server/src/services/PrepareConfigService.js +32 -7
  97. package/dist/lib/server/src/services/PrepareConfigService.js.map +1 -1
  98. package/dist/lib/server/src/services/PrepareMiddlewareService.d.ts +8 -5
  99. package/dist/lib/server/src/services/PrepareMiddlewareService.js +27 -7
  100. package/dist/lib/server/src/services/PrepareMiddlewareService.js.map +1 -1
  101. package/dist/lib/server/src/services/PrepareStaticServeConfigService.d.ts +8 -5
  102. package/dist/lib/server/src/services/PrepareStaticServeConfigService.js +27 -6
  103. package/dist/lib/server/src/services/PrepareStaticServeConfigService.js.map +1 -1
  104. package/dist/lib/server/src/services/PrepareValidatorService.d.ts +8 -5
  105. package/dist/lib/server/src/services/PrepareValidatorService.js +27 -6
  106. package/dist/lib/server/src/services/PrepareValidatorService.js.map +1 -1
  107. package/dist/lib/server/src/services/PrepareWebsocketService.d.ts +9 -5
  108. package/dist/lib/server/src/services/PrepareWebsocketService.js +35 -9
  109. package/dist/lib/server/src/services/PrepareWebsocketService.js.map +1 -1
  110. package/dist/lib/server/web/decorators/http.base.d.ts +1 -1
  111. package/dist/lib/server/web/decorators/http.base.js.map +1 -1
  112. package/dist/lib/server/web/decorators/methods/Connect.d.ts +1 -1
  113. package/dist/lib/server/web/decorators/methods/Delete.d.ts +1 -1
  114. package/dist/lib/server/web/decorators/methods/Get.d.ts +1 -1
  115. package/dist/lib/server/web/decorators/methods/Head.d.ts +1 -1
  116. package/dist/lib/server/web/decorators/methods/Options.d.ts +1 -1
  117. package/dist/lib/server/web/decorators/methods/Patch.d.ts +1 -1
  118. package/dist/lib/server/web/decorators/methods/Post.d.ts +1 -1
  119. package/dist/lib/server/web/decorators/methods/Put.d.ts +1 -1
  120. package/dist/lib/server/web/decorators/methods/Trace.d.ts +1 -1
  121. package/dist/lib/server/web/websocket/AsenaSocket.js.map +1 -1
  122. package/dist/lib/server/web/websocket/AsenaWebSocketServer.d.ts +3 -16
  123. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js +3 -20
  124. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js.map +1 -1
  125. package/dist/lib/server/web/websocket/index.d.ts +1 -1
  126. package/dist/lib/server/web/websocket/index.js +1 -1
  127. package/dist/lib/server/web/websocket/index.js.map +1 -1
  128. package/dist/lib/utils/patternMatcher.d.ts +41 -0
  129. package/dist/lib/utils/patternMatcher.js +99 -0
  130. package/dist/lib/utils/patternMatcher.js.map +1 -0
  131. package/dist/lib/utils/typedMetadata.d.ts +3 -3
  132. package/dist/lib/utils/typedMetadata.js.map +1 -1
  133. package/package.json +19 -8
  134. package/dist/lib/server/src/PrepareService.d.ts +0 -8
  135. package/dist/lib/server/src/PrepareService.js +0 -9
  136. package/dist/lib/server/src/PrepareService.js.map +0 -1
@@ -1,92 +1,89 @@
1
- import { IocEngine } from '../ioc';
2
- import { readConfigFile } from '../ioc/helper/fileHelper';
3
- import { ComponentType } from '../ioc/types';
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { ComponentType, CoreBootstrapPhase, CoreService, ICoreServiceNames, } from '../ioc';
4
11
  import * as path from 'node:path';
5
12
  import { ComponentConstants } from '../ioc/constants';
6
13
  import * as bun from 'bun';
7
- import { green, yellow } from '../logger';
14
+ import { blue, green, yellow } from '../logger';
8
15
  import { getOwnTypedMetadata, getTypedMetadata } from '../utils/typedMetadata';
9
- import { PrepareMiddlewareService } from './src/services/PrepareMiddlewareService';
10
- import { PrepareConfigService } from './src/services/PrepareConfigService';
11
- import { PrepareWebsocketService } from './src/services/PrepareWebsocketService';
12
- import { PrepareValidatorService } from './src/services/PrepareValidatorService';
13
- import { PrepareStaticServeConfigService } from './src/services/PrepareStaticServeConfigService';
14
- export class AsenaServer {
15
- _port;
16
- controllers = [];
17
- _components = [];
18
- _ioc;
19
- _logger;
16
+ import { Inject, PostConstruct } from '../ioc/component';
17
+ /**
18
+ * @description AsenaServer - Main server class for Asena framework
19
+ * Now a core service managed by IoC container with field injection
20
+ */
21
+ let AsenaServer = class AsenaServer {
22
+ serviceName = 'AsenaServer';
23
+ _coreContainer;
20
24
  _adapter;
25
+ _logger;
21
26
  prepareMiddleware;
22
27
  prepareConfigService;
23
28
  prepareWebsocketService;
24
29
  prepareValidatorService;
25
30
  prepareStaticServeConfigService;
26
- constructor(adapter, logger) {
27
- this._adapter = adapter;
28
- this._logger = logger;
29
- this._logger.info(`
30
- ___ _____ ______ _ __ ___
31
- / | / ___/ / ____// | / // |
32
- / /| | \\__ \\ / __/ / |/ // /| |
33
- / ___ | ___/ // /___ / /| // ___ |
34
- /_/ |_|/____//_____//_/ |_//_/ |_|
35
- `);
36
- }
37
- async initialize() {
38
- const config = await readConfigFile();
39
- if (!config) {
40
- this._logger.warn('asena-config file not found');
41
- }
42
- this._ioc = new IocEngine(config);
43
- await this._ioc.searchAndRegister(this._components);
44
- this.prepareMiddleware = new PrepareMiddlewareService(this._ioc.container, this._logger);
45
- this.prepareConfigService = new PrepareConfigService(this._ioc.container, this._logger);
46
- this.prepareWebsocketService = new PrepareWebsocketService(this._ioc.container, this._logger);
47
- this.prepareValidatorService = new PrepareValidatorService(this._ioc.container, this._logger);
48
- this.prepareStaticServeConfigService = new PrepareStaticServeConfigService(this._ioc.container, this._logger);
49
- return this._ioc.container;
31
+ // Instance state
32
+ _port;
33
+ _gc = false;
34
+ controllers = [];
35
+ /**
36
+ * @description Lifecycle hook - called after dependencies are injected
37
+ * @returns {void}
38
+ */
39
+ onInit() {
40
+ this._logger.info(`${blue('[AsenaServer]')} is initialized`);
50
41
  }
51
- async start(gc = false) {
52
- await this.initialize();
42
+ /**
43
+ * @description Start the server
44
+ * Main entry point after factory creation
45
+ * @returns {Promise<void>}
46
+ */
47
+ async start() {
53
48
  this._logger.info(`Adapter: ${green(this._adapter.name)} implemented`);
54
49
  this._adapter.setPort(this._port);
55
50
  this._logger.info('All components registered and ready to use');
51
+ // Phase 7: Application setup
52
+ this._coreContainer.setPhase(CoreBootstrapPhase.APPLICATION_SETUP);
56
53
  await this.prepareConfigs();
57
54
  await this.initializeControllers();
58
55
  await this.prepareWebSocket();
59
- this._logger.info('Server started on port ' + this._port);
56
+ // Phase 8: Server ready
57
+ this._coreContainer.setPhase(CoreBootstrapPhase.SERVER_READY);
60
58
  await this._adapter.start();
61
- // TODO: this is wierd but when we call gc asena uses less memory rest of the time
62
- if (gc) {
59
+ if (this._gc) {
63
60
  bun.gc(true);
64
61
  }
65
62
  }
66
- components(components) {
67
- this._components = components.map((_component) => {
68
- const face = getTypedMetadata(ComponentConstants.InterfaceKey, _component);
69
- const component = {
70
- Class: _component,
71
- interface: face,
72
- };
73
- return component;
74
- });
75
- return this;
76
- }
63
+ /**
64
+ * @description Configure server port
65
+ * Builder pattern for API compatibility
66
+ * @param {number} port - Port number
67
+ * @returns {this}
68
+ */
77
69
  port(port) {
78
70
  this._port = port;
79
71
  return this;
80
72
  }
81
- logger(value) {
82
- this._logger = value;
83
- return this;
73
+ /**
74
+ * @description Get current CoreContainer instance
75
+ * @returns {CoreContainer}
76
+ */
77
+ get coreContainer() {
78
+ return this._coreContainer;
84
79
  }
80
+ /**
81
+ * @description Initialize and register all controllers
82
+ * @returns {Promise<void>}
83
+ */
85
84
  async initializeControllers() {
86
85
  await this.validateAndSetControllers();
87
86
  for (const controller of this.controllers) {
88
- const name = getTypedMetadata(ComponentConstants.NameKey, controller.constructor);
89
- this._logger.info(`Controller: ${green(name)} found:`);
90
87
  const routes = getOwnTypedMetadata(ComponentConstants.RouteKey, controller.constructor) || {};
91
88
  const routePath = getOwnTypedMetadata(ComponentConstants.PathKey, controller.constructor) || '';
92
89
  await this.prepareTopMiddlewares({ controller, routePath });
@@ -101,13 +98,18 @@ export class AsenaServer {
101
98
  handler: controller[name].bind(controller),
102
99
  staticServe: await this.prepareStaticServeConfig(params.staticServe),
103
100
  validator: validatorInstance,
101
+ controllerName: getTypedMetadata(ComponentConstants.NameKey, controller.constructor),
102
+ controllerBasePath: routePath,
104
103
  });
105
104
  }
106
- this._logger.info(`Controller: ${green(name)} successfully registered.`);
107
105
  }
108
106
  }
107
+ /**
108
+ * @description Validate and set controllers from container
109
+ * @returns {Promise<void>}
110
+ */
109
111
  async validateAndSetControllers() {
110
- const controllers = await this._ioc.container.resolveAll(ComponentType.CONTROLLER);
112
+ const controllers = await this._coreContainer.container.resolveAll(ComponentType.CONTROLLER);
111
113
  if (controllers !== null) {
112
114
  // check if any controller is array or not
113
115
  if (controllers.find((controller) => Array.isArray(controller))) {
@@ -116,29 +118,62 @@ export class AsenaServer {
116
118
  this.controllers = controllers;
117
119
  }
118
120
  }
121
+ /**
122
+ * @description Prepare static serve configuration
123
+ * @param {StaticServeClass} staticServeClass - Static serve class
124
+ * @returns {Promise<BaseStaticServeParams>}
125
+ */
119
126
  async prepareStaticServeConfig(staticServeClass) {
120
127
  return await this.prepareStaticServeConfigService.prepare(staticServeClass);
121
128
  }
129
+ /**
130
+ * @description Prepare top-level middlewares for controller or websocket
131
+ * @param {PrepareMiddlewareParams} params - Middleware parameters
132
+ * @param {boolean} websocket - Whether this is for websocket
133
+ * @returns {Promise<BaseMiddleware[]>}
134
+ */
122
135
  async prepareTopMiddlewares({ controller, routePath }, websocket = false) {
123
136
  const topMiddlewares = getTypedMetadata(ComponentConstants.MiddlewaresKey, controller.constructor) || [];
124
137
  const middlewares = await this.prepareMiddlewares(topMiddlewares);
125
138
  if (websocket) {
126
139
  return middlewares;
127
140
  }
141
+ // Register controller-level middlewares with pattern matching
142
+ // Convert routePath to pattern: /api → /api/*
143
+ const routePattern = routePath ? `${routePath}/*` : undefined;
128
144
  for (const middleware of middlewares) {
129
- await this._adapter.use(middleware, routePath);
145
+ await this._adapter.use(middleware, routePattern ? { include: [routePattern] } : undefined);
130
146
  }
131
147
  }
148
+ /**
149
+ * @description Prepare validator instance
150
+ * @param {ValidatorClass<any>} Validator - Validator class
151
+ * @returns {Promise<BaseValidator>}
152
+ */
132
153
  async prepareValidator(Validator) {
133
154
  return await this.prepareValidatorService.prepare(Validator);
134
155
  }
156
+ /**
157
+ * @description Prepare route-level middlewares
158
+ * @param {ApiParams} middlewareParams - Middleware parameters
159
+ * @returns {Promise<BaseMiddleware[]>}
160
+ */
135
161
  async prepareRouteMiddleware(middlewareParams) {
136
162
  const routeMiddlewares = middlewareParams?.middlewares || [];
137
163
  return this.prepareMiddlewares(routeMiddlewares);
138
164
  }
165
+ /**
166
+ * @description Prepare middlewares from classes
167
+ * @param {MiddlewareClass[]} middlewares - Middleware classes
168
+ * @returns {Promise<BaseMiddleware[]>}
169
+ */
139
170
  async prepareMiddlewares(middlewares) {
140
171
  return this.prepareMiddleware.prepare(middlewares);
141
172
  }
173
+ /**
174
+ * @description Prepare and register WebSocket routes
175
+ * @returns {Promise<void>}
176
+ */
142
177
  async prepareWebSocket() {
143
178
  const websockets = await this.prepareWebsocketService.prepare();
144
179
  if (!websockets) {
@@ -151,9 +186,33 @@ export class AsenaServer {
151
186
  path: path,
152
187
  middlewares: middlewares,
153
188
  websocketService: websocket,
189
+ controllerName: getTypedMetadata(ComponentConstants.NameKey, websocket.constructor),
154
190
  });
155
191
  }
156
192
  }
193
+ /**
194
+ * @description Normalizes global middleware entry to config format
195
+ * Handles backward compatibility (MiddlewareClass → GlobalMiddlewareConfig)
196
+ *
197
+ * @param entry - Middleware entry (class or config object)
198
+ * @returns Normalized config object
199
+ */
200
+ normalizeMiddlewareEntry(entry) {
201
+ // If it's already a config object, return as-is
202
+ if (typeof entry === 'object' && 'middleware' in entry) {
203
+ return entry;
204
+ }
205
+ // If it's a class (old format), convert to config format
206
+ return {
207
+ middleware: entry,
208
+ routes: undefined, // No route config = apply to all routes
209
+ };
210
+ }
211
+ /**
212
+ * @description Prepare and apply configuration
213
+ * Updated to support pattern-based global middlewares
214
+ * @returns {Promise<void>}
215
+ */
157
216
  async prepareConfigs() {
158
217
  const configInstance = await this.prepareConfigService.prepare();
159
218
  if (!configInstance) {
@@ -165,15 +224,64 @@ export class AsenaServer {
165
224
  if (typeof configInstance.onError === 'function') {
166
225
  await this._adapter.onError(configInstance.onError.bind(configInstance));
167
226
  }
227
+ // Pattern-based global middleware registration
168
228
  if (typeof configInstance.globalMiddlewares === 'function') {
169
- const middlewares = await configInstance.globalMiddlewares();
170
- const preparedMiddlewares = await this.prepareMiddlewares(middlewares);
171
- for (const middleware of preparedMiddlewares) {
172
- await this._adapter.use(middleware);
229
+ const middlewareEntries = await configInstance.globalMiddlewares();
230
+ for (const entry of middlewareEntries) {
231
+ // Normalize entry to config format (handles backward compatibility)
232
+ const config = this.normalizeMiddlewareEntry(entry);
233
+ // Prepare middleware instances
234
+ const preparedMiddlewares = await this.prepareMiddlewares([config.middleware]);
235
+ // Register with adapter (pass route config)
236
+ for (const middleware of preparedMiddlewares) {
237
+ await this._adapter.use(middleware, config.routes);
238
+ }
173
239
  }
174
240
  }
175
241
  const name = getOwnTypedMetadata(ComponentConstants.NameKey, configInstance.constructor);
176
242
  this._logger.info(`Config ${yellow(name)} applied`);
177
243
  }
178
- }
244
+ };
245
+ __decorate([
246
+ Inject(ICoreServiceNames.CORE_CONTAINER),
247
+ __metadata("design:type", Function)
248
+ ], AsenaServer.prototype, "_coreContainer", void 0);
249
+ __decorate([
250
+ Inject(ICoreServiceNames.ASENA_ADAPTER),
251
+ __metadata("design:type", Object)
252
+ ], AsenaServer.prototype, "_adapter", void 0);
253
+ __decorate([
254
+ Inject(ICoreServiceNames.SERVER_LOGGER),
255
+ __metadata("design:type", Object)
256
+ ], AsenaServer.prototype, "_logger", void 0);
257
+ __decorate([
258
+ Inject(ICoreServiceNames.PREPARE_MIDDLEWARE_SERVICE),
259
+ __metadata("design:type", Function)
260
+ ], AsenaServer.prototype, "prepareMiddleware", void 0);
261
+ __decorate([
262
+ Inject(ICoreServiceNames.PREPARE_CONFIG_SERVICE),
263
+ __metadata("design:type", Function)
264
+ ], AsenaServer.prototype, "prepareConfigService", void 0);
265
+ __decorate([
266
+ Inject(ICoreServiceNames.PREPARE_WEBSOCKET_SERVICE),
267
+ __metadata("design:type", Function)
268
+ ], AsenaServer.prototype, "prepareWebsocketService", void 0);
269
+ __decorate([
270
+ Inject(ICoreServiceNames.PREPARE_VALIDATOR_SERVICE),
271
+ __metadata("design:type", Function)
272
+ ], AsenaServer.prototype, "prepareValidatorService", void 0);
273
+ __decorate([
274
+ Inject(ICoreServiceNames.PREPARE_STATIC_SERVE_CONFIG_SERVICE),
275
+ __metadata("design:type", Function)
276
+ ], AsenaServer.prototype, "prepareStaticServeConfigService", void 0);
277
+ __decorate([
278
+ PostConstruct(),
279
+ __metadata("design:type", Function),
280
+ __metadata("design:paramtypes", []),
281
+ __metadata("design:returntype", void 0)
282
+ ], AsenaServer.prototype, "onInit", null);
283
+ AsenaServer = __decorate([
284
+ CoreService(ICoreServiceNames.ASENA_SERVER)
285
+ ], AsenaServer);
286
+ export { AsenaServer };
179
287
  //# sourceMappingURL=AsenaServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsenaServer.js","sourceRoot":"","sources":["../../../lib/server/AsenaServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsenaServer.js","sourceRoot":"","sources":["../../../lib/server/AsenaServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { AsenaServer } from './AsenaServer';
2
+ import type { AsenaAdapter } from '../adapter';
3
+ import type { ServerLogger } from '../logger';
4
+ import type { Class } from './types';
5
+ /**
6
+ * @description Configuration options for AsenaServer creation
7
+ */
8
+ export interface AsenaServerOptions<A extends AsenaAdapter<any, any>> {
9
+ adapter: A;
10
+ logger: ServerLogger;
11
+ port?: number;
12
+ components?: Class[];
13
+ gc?: boolean;
14
+ }
15
+ /**
16
+ * @description Factory for creating AsenaServer instances
17
+ * Handles IoC bootstrap and dependency injection
18
+ */
19
+ export declare class AsenaServerFactory {
20
+ /**
21
+ * @description Create and configure AsenaServer instance
22
+ * @param {AsenaServerOptions<A>} options - Server configuration options
23
+ * @returns {Promise<AsenaServer<A>>} Fully configured AsenaServer instance
24
+ */
25
+ static create<A extends AsenaAdapter<any, any>>(options: AsenaServerOptions<A>): Promise<AsenaServer<A>>;
26
+ }
@@ -0,0 +1,66 @@
1
+ import { CoreBootstrapPhase, CoreContainer, ICoreServiceNames } from '../ioc';
2
+ import { readConfigFile } from '../ioc/helper/fileHelper';
3
+ import { ComponentConstants } from '../ioc/constants';
4
+ import { getTypedMetadata } from '../utils/typedMetadata';
5
+ /**
6
+ * @description Factory for creating AsenaServer instances
7
+ * Handles IoC bootstrap and dependency injection
8
+ */
9
+ export class AsenaServerFactory {
10
+ /**
11
+ * @description Create and configure AsenaServer instance
12
+ * @param {AsenaServerOptions<A>} options - Server configuration options
13
+ * @returns {Promise<AsenaServer<A>>} Fully configured AsenaServer instance
14
+ */
15
+ static async create(options) {
16
+ const { adapter, logger, port, components, gc } = options;
17
+ logger.info(`
18
+ ___ _____ ______ _ __ ___
19
+ / | / ___/ / ____// | / // |
20
+ / /| | \\__ \\ / __/ / |/ // /| |
21
+ / ___ | ___/ // /___ / /| // ___ |
22
+ /_/ |_|/____//_____//_/ |_//_/ |_|
23
+ ------------------------------------------------------------
24
+ `);
25
+ // Read config file
26
+ const config = await readConfigFile();
27
+ if (!config) {
28
+ logger.warn('asena-config file not found');
29
+ }
30
+ // Create CoreContainer
31
+ const coreContainer = new CoreContainer();
32
+ // Phase 1-5: Bootstrap core services
33
+ await coreContainer.bootstrap(adapter, logger);
34
+ // Register CoreContainer itself for AsenaServer injection
35
+ await coreContainer.container.registerInstance(ICoreServiceNames.CORE_CONTAINER, coreContainer);
36
+ // Phase 6: Register user components
37
+ const iocEngine = await coreContainer.resolve(ICoreServiceNames.IOC_ENGINE);
38
+ iocEngine.setConfig(config);
39
+ if (components?.length) {
40
+ const injectableComponents = components.map((comp) => {
41
+ const face = getTypedMetadata(ComponentConstants.InterfaceKey, comp);
42
+ return {
43
+ Class: comp,
44
+ interface: face,
45
+ };
46
+ });
47
+ await iocEngine.searchAndRegister(injectableComponents);
48
+ }
49
+ else if (config) {
50
+ await iocEngine.searchAndRegister();
51
+ }
52
+ coreContainer.setPhase(CoreBootstrapPhase.USER_COMPONENTS_INIT);
53
+ // Register AsenaServer as core service
54
+ const { AsenaServer } = await import('./AsenaServer');
55
+ await coreContainer.container.register(ICoreServiceNames.ASENA_SERVER, AsenaServer, true);
56
+ // Resolve AsenaServer (with all dependencies injected)
57
+ const server = await coreContainer.resolve(ICoreServiceNames.ASENA_SERVER);
58
+ // Configure server
59
+ if (port)
60
+ server.port(port);
61
+ if (gc !== undefined)
62
+ server._gc = gc;
63
+ return server;
64
+ }
65
+ }
66
+ //# sourceMappingURL=AsenaServerFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsenaServerFactory.js","sourceRoot":"","sources":["../../../lib/server/AsenaServerFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAK9E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAa1D;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAE7B;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,OAA8B;QAE9B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;QAE1D,MAAM,CAAC,IAAI,CAAC;;;;;;;KAOX,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;QAED,uBAAuB;QACvB,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAE1C,qCAAqC;QACrC,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE/C,0DAA0D;QAC1D,MAAM,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAEhG,oCAAoC;QACpC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAY,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEvF,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE5B,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;YACvB,MAAM,oBAAoB,GAA0B,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1E,MAAM,IAAI,GAAW,gBAAgB,CAAS,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAErF,OAAO;oBACL,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,IAAI;iBAChB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;QACtC,CAAC;QAED,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;QAEhE,uCAAuC;QACvC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAEtD,MAAM,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAE1F,uDAAuD;QACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAiB,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAE3F,mBAAmB;QACnB,IAAI,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,EAAE,KAAK,SAAS;YAAG,MAAc,CAAC,GAAG,GAAG,EAAE,CAAC;QAE/C,OAAO,MAAM,CAAC;IAChB,CAAC;CAEF"}
@@ -1,5 +1,49 @@
1
1
  import type { AsenaContext, AsenaServeOptions } from '../../adapter';
2
- import type { MiddlewareClass } from "../web/middleware";
2
+ import type { MiddlewareClass } from '../web/middleware';
3
+ /**
4
+ * Route configuration for global middleware
5
+ */
6
+ export interface GlobalMiddlewareRouteConfig {
7
+ /**
8
+ * Paths to include. Supports glob patterns.
9
+ * Default: ['*'] (all routes)
10
+ *
11
+ * @example
12
+ * include: ['/api/*', '/admin/*']
13
+ * include: ['/users/:id', '/posts/:id']
14
+ */
15
+ include?: string[];
16
+ /**
17
+ * Paths to exclude. Supports glob patterns.
18
+ * Exclusions take precedence over inclusions.
19
+ * Default: []
20
+ *
21
+ * @example
22
+ * exclude: ['/health', '/metrics']
23
+ * exclude: ['/api/public/*']
24
+ */
25
+ exclude?: string[];
26
+ }
27
+ /**
28
+ * Global middleware configuration
29
+ */
30
+ export interface GlobalMiddlewareConfig {
31
+ /**
32
+ * Middleware class to apply
33
+ */
34
+ middleware: MiddlewareClass;
35
+ /**
36
+ * Route configuration for this middleware
37
+ * If not specified, middleware applies to all routes
38
+ */
39
+ routes?: GlobalMiddlewareRouteConfig;
40
+ }
41
+ /**
42
+ * Union type for backward compatibility
43
+ * - MiddlewareClass: Apply to all routes (old behavior)
44
+ * - GlobalMiddlewareConfig: Apply with pattern matching (new behavior)
45
+ */
46
+ export type GlobalMiddlewareEntry = MiddlewareClass | GlobalMiddlewareConfig;
3
47
  /**
4
48
  * Configuration interface for Asena framework
5
49
  * @template C - Extends AsenaContext type with generic parameters
@@ -18,26 +62,55 @@ export interface AsenaConfig<C extends AsenaContext<any, any> = AsenaContext<any
18
62
  */
19
63
  serveOptions?(): AsenaServeOptions;
20
64
  /**
21
- * Global middleware configuration for applying middleware across all routes.
22
- * Similar to Hono's global middleware usage:
65
+ * Global middleware configuration for applying middleware across routes.
66
+ *
67
+ * Supports two formats:
68
+ * 1. Simple: MiddlewareClass (applies to all routes)
69
+ * 2. Advanced: GlobalMiddlewareConfig (pattern-based filtering)
70
+ *
23
71
  * @example
24
- * // Hono usage:
25
- * const app = new Hono()
26
- * app.use(middleware1)
27
- * app.use(middleware2)
28
- *
29
- * // Equivalent in Asena:
30
- * class Config implements AsenaConfig {
31
- * globalMiddlewares() {
32
- * return [
33
- * MiddlewareService1,
34
- * MiddlewareService2
35
- * ]
36
- * }
72
+ * ```typescript
73
+ * // Simple format (backward compatible)
74
+ * globalMiddlewares() {
75
+ * return [LoggerMiddleware, CorsMiddleware];
76
+ * }
77
+ *
78
+ * // Advanced format with pattern matching
79
+ * globalMiddlewares() {
80
+ * return [
81
+ * // Apply to all routes
82
+ * LoggerMiddleware,
83
+ *
84
+ * // Apply only to /api/* and /admin/*
85
+ * {
86
+ * middleware: AuthMiddleware,
87
+ * routes: {
88
+ * include: ['/api/*', '/admin/*']
89
+ * }
90
+ * },
91
+ *
92
+ * // Apply to all routes except /health
93
+ * {
94
+ * middleware: RateLimitMiddleware,
95
+ * routes: {
96
+ * exclude: ['/health', '/metrics']
97
+ * }
98
+ * },
99
+ *
100
+ * // Advanced: include + exclude
101
+ * {
102
+ * middleware: AuditMiddleware,
103
+ * routes: {
104
+ * include: ['/api/*'],
105
+ * exclude: ['/api/health']
106
+ * }
107
+ * }
108
+ * ];
37
109
  * }
110
+ * ```
38
111
  *
39
- * @returns Array of middleware services to be applied globally
112
+ * @returns Array of middleware configurations
40
113
  */
41
- globalMiddlewares?(): Promise<MiddlewareClass[]> | MiddlewareClass[];
114
+ globalMiddlewares?(): Promise<GlobalMiddlewareEntry[]> | GlobalMiddlewareEntry[];
42
115
  }
43
116
  export type AsenaConfigFunctions = 'onError' | 'serveOptions' | 'globalMiddlewares';
@@ -1,4 +1,4 @@
1
- import { ComponentConstants } from '../../ioc/constants';
1
+ import { ComponentConstants } from '../../ioc';
2
2
  import { defineTypedMetadata, getOwnTypedMetadata } from '../../utils/typedMetadata';
3
3
  /**
4
4
  * Decorator for marking a property as an override.
@@ -1 +1 @@
1
- {"version":3,"file":"Override.js","sourceRoot":"","sources":["../../../../lib/server/decorators/Override.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,OAAO,CAAC,MAAc,EAAE,WAAmB,EAAE,EAAE;QAC7C,MAAM,SAAS,GAAa,mBAAmB,CAAW,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAExG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;QAED,mBAAmB,CAAW,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Override.js","sourceRoot":"","sources":["../../../../lib/server/decorators/Override.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,OAAO,CAAC,MAAc,EAAE,WAAmB,EAAE,EAAE;QAC7C,MAAM,SAAS,GAAa,mBAAmB,CAAW,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAExG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;QAED,mBAAmB,CAAW,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ComponentParams } from '../../../ioc/types';
1
+ import { type ComponentParams } from '../../../ioc';
2
2
  /**
3
3
  * Decorator that marks a class as a configuration component.
4
4
  * Used to define configuration classes that can be injected into other components.
@@ -1,4 +1,4 @@
1
- import { ComponentType } from '../../../ioc/types';
1
+ import { ComponentType } from '../../../ioc';
2
2
  import { defineComponent } from '../../../ioc/component';
3
3
  /**
4
4
  * Decorator that marks a class as a configuration component.
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAiC,EAAkB,EAAE;IAC1E,OAAO,eAAe,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC"}
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,aAAa,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAiC,EAAkB,EAAE;IAC1E,OAAO,eAAe,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ControllerParams } from '../../../ioc/types';
1
+ import { type ControllerParams } from '../../../ioc';
2
2
  /**
3
3
  * Decorator for defining a Controller component. String is used for defining the path.
4
4
  *
@@ -1,6 +1,5 @@
1
- import { ComponentType } from '../../../ioc/types';
1
+ import { ComponentConstants, ComponentType } from '../../../ioc';
2
2
  import { defineComponent } from '../../../ioc/component';
3
- import { ComponentConstants } from '../../../ioc/constants';
4
3
  import { defineMiddleware } from '../../web/helper';
5
4
  import { defineTypedMetadata } from '../../../utils/typedMetadata';
6
5
  /**