@asenajs/asena 0.6.3 → 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 (147) 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/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 +85 -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 +17 -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 +2 -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 +2 -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
@@ -7,14 +7,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { ICoreServiceNames, } from './types';
10
+ import { ComponentType, ICoreServiceNames, } from './types';
11
11
  import { getAllFiles } from './helper/fileHelper';
12
12
  import * as path from 'node:path';
13
13
  import { ComponentConstants } from './constants';
14
14
  import * as process from 'node:process';
15
15
  import * as console from 'node:console';
16
16
  import { getStrategyClass } from './helper/iocHelper';
17
- import { getOwnTypedMetadata, getTypedMetadata } from '../utils/typedMetadata';
17
+ import { getOwnTypedMetadata, getTypedMetadata } from '../utils';
18
18
  import { Inject, Scope } from './component';
19
19
  import { CoreService } from './decorators';
20
20
  import { CircularDependencyError } from './CircularDependencyDetector';
@@ -25,6 +25,7 @@ import { CircularDependencyError } from './CircularDependencyDetector';
25
25
  let IocEngine = class IocEngine {
26
26
  serviceName = 'IocEngine';
27
27
  _container;
28
+ logger;
28
29
  injectables = [];
29
30
  config;
30
31
  /**
@@ -39,7 +40,25 @@ let IocEngine = class IocEngine {
39
40
  // load components
40
41
  await this.loadComponents(components);
41
42
  const injectableClasses = this.injectables.map((c) => c.Class);
42
- await this.validateAndRegisterComponents(injectableClasses);
43
+ // Two-phase registration for PostProcessor support
44
+ const { postProcessorClasses, remainingClasses } = this.separatePostProcessors(injectableClasses);
45
+ // Phase A: Register PostProcessors and their dependencies first (without post-processing)
46
+ if (postProcessorClasses.length > 0) {
47
+ await this.validateAndRegisterComponents(postProcessorClasses);
48
+ // Resolve only actual PostProcessor instances (not their dependencies) and activate them
49
+ for (const cls of postProcessorClasses) {
50
+ const isPostProcessor = getTypedMetadata(ComponentType.POST_PROCESSOR, cls);
51
+ if (isPostProcessor) {
52
+ const name = getTypedMetadata(ComponentConstants.NameKey, cls) || cls.name;
53
+ const instance = await this._container.resolve(name);
54
+ this._container.registerPostProcessor(instance);
55
+ }
56
+ }
57
+ }
58
+ // Phase B: Register remaining components (post-processing is now active)
59
+ if (remainingClasses.length > 0) {
60
+ await this.validateAndRegisterComponents(remainingClasses);
61
+ }
43
62
  }
44
63
  async loadComponents(components) {
45
64
  if (components?.length) {
@@ -202,6 +221,65 @@ let IocEngine = class IocEngine {
202
221
  }
203
222
  return cycle.reverse();
204
223
  }
224
+ /**
225
+ * @description Separates PostProcessor classes and their transitive dependencies from other components.
226
+ * PostProcessors and their deps are registered in Phase A (before post-processing is active).
227
+ * Non-PostProcessor dependencies pulled into Phase A will NOT be post-processed (by design).
228
+ */
229
+ separatePostProcessors(classes) {
230
+ // Find all PostProcessor classes
231
+ const postProcessorSet = new Set();
232
+ const nameToClass = new Map();
233
+ for (const cls of classes) {
234
+ const name = getTypedMetadata(ComponentConstants.NameKey, cls) || cls.name;
235
+ nameToClass.set(name, cls);
236
+ }
237
+ // Identify PostProcessor classes
238
+ for (const cls of classes) {
239
+ if (getTypedMetadata(ComponentType.POST_PROCESSOR, cls)) {
240
+ postProcessorSet.add(cls);
241
+ }
242
+ }
243
+ if (postProcessorSet.size === 0) {
244
+ return { postProcessorClasses: [], remainingClasses: classes };
245
+ }
246
+ // Compute transitive dependency closure for all PostProcessors
247
+ const closureSet = new Set(postProcessorSet);
248
+ const addDependencyClosure = (cls) => {
249
+ const deps = [
250
+ ...this.getDependencies(cls),
251
+ ...this.getStrategyDependencies(cls, this.injectables),
252
+ ];
253
+ for (const depName of deps) {
254
+ const depClass = nameToClass.get(depName);
255
+ if (depClass && !closureSet.has(depClass)) {
256
+ closureSet.add(depClass);
257
+ // Log warning for non-PostProcessor dependencies pulled into Phase A
258
+ if (!getTypedMetadata(ComponentType.POST_PROCESSOR, depClass)) {
259
+ const ppName = getTypedMetadata(ComponentConstants.NameKey, cls) || cls.name;
260
+ this.logger.warn(`[IocEngine] PostProcessor '${ppName}' depends on '${depName}'. ${depName} will not be post-processed.`);
261
+ }
262
+ // Recurse into this dependency's own dependencies
263
+ addDependencyClosure(depClass);
264
+ }
265
+ }
266
+ };
267
+ for (const ppClass of postProcessorSet) {
268
+ addDependencyClosure(ppClass);
269
+ }
270
+ // Split into two groups
271
+ const postProcessorClasses = [];
272
+ const remainingClasses = [];
273
+ for (const cls of classes) {
274
+ if (closureSet.has(cls)) {
275
+ postProcessorClasses.push(cls);
276
+ }
277
+ else {
278
+ remainingClasses.push(cls);
279
+ }
280
+ }
281
+ return { postProcessorClasses, remainingClasses };
282
+ }
205
283
  getDependencies(component) {
206
284
  try {
207
285
  const directDependencies = Object.values(getOwnTypedMetadata(ComponentConstants.DependencyKey, component) || {});
@@ -251,6 +329,10 @@ __decorate([
251
329
  Inject('Container'),
252
330
  __metadata("design:type", Function)
253
331
  ], IocEngine.prototype, "_container", void 0);
332
+ __decorate([
333
+ Inject(ICoreServiceNames.SERVER_LOGGER),
334
+ __metadata("design:type", Object)
335
+ ], IocEngine.prototype, "logger", void 0);
254
336
  IocEngine = __decorate([
255
337
  CoreService(ICoreServiceNames.IOC_ENGINE)
256
338
  ], IocEngine);
@@ -1 +1 @@
1
- {"version":3,"file":"IocEngine.js","sourceRoot":"","sources":["../../../lib/ioc/IocEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IocEngine.js","sourceRoot":"","sources":["../../../lib/ioc/IocEngine.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,9 @@ export const defineComponent = (componentType, params, extra) => {
23
23
  const paramsGenerator = (params, componentType) => {
24
24
  const defaultParam = { name: undefined, scope: undefined };
25
25
  if (typeof params === 'string' &&
26
- (componentType === ComponentType.CONTROLLER || componentType === ComponentType.WEBSOCKET)) {
26
+ (componentType === ComponentType.CONTROLLER ||
27
+ componentType === ComponentType.WEBSOCKET ||
28
+ componentType === ComponentType.FRONTEND_CONTROLLER)) {
27
29
  return defaultParam;
28
30
  }
29
31
  return typeof params === 'string' ? { name: params } : params || defaultParam;
@@ -1 +1 @@
1
- {"version":3,"file":"componentUtils.js","sourceRoot":"","sources":["../../../../lib/ioc/component/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,aAAa,EAAsC,MAAM,UAAU,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,aAA4B,EAC5B,MAAkB,EAClB,KAAkC,EAClB,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAE/F,mBAAmB,CAAU,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE1D,mBAAmB,CAAU,kBAAkB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE5E,mBAAmB,CAAQ,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEvE,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEtE,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,CAAC;QAED,IAAI,mBAAmB,CAAe,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9F,mBAAmB,CAAe,kBAAkB,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,mBAAmB,CAAa,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1F,mBAAmB,CAAa,kBAAkB,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAgC,EAAE,aAA4B,EAAmB,EAAE;IAC1G,MAAM,YAAY,GAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAE5E,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,CAAC,aAAa,KAAK,aAAa,CAAC,UAAU,IAAI,aAAa,KAAK,aAAa,CAAC,SAAS,CAAC,EACzF,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC;AAChF,CAAC,CAAC"}
1
+ {"version":3,"file":"componentUtils.js","sourceRoot":"","sources":["../../../../lib/ioc/component/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,aAAa,EAAsC,MAAM,UAAU,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,aAA4B,EAC5B,MAAkB,EAClB,KAAkC,EAClB,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAE/F,mBAAmB,CAAU,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE1D,mBAAmB,CAAU,kBAAkB,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE5E,mBAAmB,CAAQ,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEvE,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEtE,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,CAAC;QAED,IAAI,mBAAmB,CAAe,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9F,mBAAmB,CAAe,kBAAkB,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,mBAAmB,CAAa,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1F,mBAAmB,CAAa,kBAAkB,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAgC,EAAE,aAA4B,EAAmB,EAAE;IAC1G,MAAM,YAAY,GAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAE5E,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,CAAC,aAAa,KAAK,aAAa,CAAC,UAAU;YACzC,aAAa,KAAK,aAAa,CAAC,SAAS;YACzC,aAAa,KAAK,aAAa,CAAC,mBAAmB,CAAC,EACtD,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC;AAChF,CAAC,CAAC"}
@@ -17,6 +17,7 @@ export declare class ComponentConstants {
17
17
  static readonly IOCObjectKey: unique symbol;
18
18
  static readonly CronKey: unique symbol;
19
19
  static readonly ControllerConfigKey: unique symbol;
20
+ static readonly ControllerDescriptionKey: unique symbol;
20
21
  static readonly RouteKey: unique symbol;
21
22
  static readonly MiddlewaresKey: unique symbol;
22
23
  static readonly ValidatorKey: unique symbol;
@@ -27,6 +28,7 @@ export declare class ComponentConstants {
27
28
  static readonly WebSocketPathKey: unique symbol;
28
29
  static readonly WebSocketMiddlewaresKey: unique symbol;
29
30
  static readonly StaticServeRootKey: unique symbol;
31
+ static readonly PageRoutesKey: unique symbol;
30
32
  static readonly EventHandlersKey: unique symbol;
31
33
  static readonly EventPrefixKey: unique symbol;
32
34
  }
@@ -19,6 +19,7 @@ export class ComponentConstants {
19
19
  static CronKey = Symbol('component:cron');
20
20
  // Controller specific
21
21
  static ControllerConfigKey = Symbol('controller:config');
22
+ static ControllerDescriptionKey = Symbol('controller:description');
22
23
  static RouteKey = Symbol('controller:route');
23
24
  // Middleware specific
24
25
  static MiddlewaresKey = Symbol('middleware:middlewares');
@@ -33,6 +34,8 @@ export class ComponentConstants {
33
34
  static WebSocketMiddlewaresKey = Symbol('websocket:middlewares');
34
35
  // Static Serve specific
35
36
  static StaticServeRootKey = Symbol('staticServe:root');
37
+ // FrontendController specific
38
+ static PageRoutesKey = Symbol('frontendController:pageRoutes');
36
39
  // Event specific
37
40
  static EventHandlersKey = Symbol('event:handlers');
38
41
  static EventPrefixKey = Symbol('event:prefix');
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentConstants.js","sourceRoot":"","sources":["../../../../lib/ioc/constants/ComponentConstants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC7B,wDAAwD;IACjD,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,CAAU,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAErD,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE7D,MAAM,CAAU,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAE/D,MAAM,CAAU,iBAAiB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAEvE,MAAM,CAAU,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE3D,MAAM,CAAU,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAE/D,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAErE,MAAM,CAAU,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE3D,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE7D,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE1D,sBAAsB;IACf,MAAM,CAAU,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAElE,MAAM,CAAU,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE7D,sBAAsB;IACf,MAAM,CAAU,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAElE,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAErE,iBAAiB;IACV,MAAM,CAAU,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAEnD,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAEpD,MAAM,CAAU,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAElE,MAAM,CAAU,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAErE,qBAAqB;IACd,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE5D,MAAM,CAAU,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEjF,wBAAwB;IACjB,MAAM,CAAU,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEvE,iBAAiB;IACV,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE5D,MAAM,CAAU,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"ComponentConstants.js","sourceRoot":"","sources":["../../../../lib/ioc/constants/ComponentConstants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC7B,wDAAwD;IACjD,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,CAAU,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAErD,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE7D,MAAM,CAAU,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAE/D,MAAM,CAAU,iBAAiB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAEvE,MAAM,CAAU,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE3D,MAAM,CAAU,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAE/D,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAErE,MAAM,CAAU,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE3D,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE7D,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE1D,sBAAsB;IACf,MAAM,CAAU,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAElE,MAAM,CAAU,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAE5E,MAAM,CAAU,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE7D,sBAAsB;IACf,MAAM,CAAU,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAElE,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAErE,iBAAiB;IACV,MAAM,CAAU,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAEnD,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAEpD,MAAM,CAAU,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAElE,MAAM,CAAU,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAErE,qBAAqB;IACd,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE5D,MAAM,CAAU,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEjF,wBAAwB;IACjB,MAAM,CAAU,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEvE,8BAA8B;IACvB,MAAM,CAAU,aAAa,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;IAE/E,iBAAiB;IACV,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE5D,MAAM,CAAU,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @deprecated Use Bun.cron.parse() instead. This parser is replaced by Bun's native cron API.
3
+ */
1
4
  export interface CronField {
2
5
  value: string;
3
6
  description: string;
@@ -1,4 +1,6 @@
1
- // Create corn parser class
1
+ /**
2
+ * @deprecated Use Bun.cron.parse() instead. This parser is replaced by Bun's native cron API.
3
+ */
2
4
  export const parseCron = (cronString) => {
3
5
  const cronParts = cronString.trim().split(/\s+/);
4
6
  if (cronParts.length < 5 || cronParts.length > 6) {
@@ -1 +1 @@
1
- {"version":3,"file":"cronParser.js","sourceRoot":"","sources":["../../../../lib/ioc/helper/cronParser.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAgB3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAkB,EAAc,EAAE;IAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,GAC9D,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3D,OAAO;QACL,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,OAAO,EAAE,EAAE;QAC/D,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,OAAO,EAAE,EAAE;QAC/D,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,KAAK,EAAE,EAAE;QACvD,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,WAAW,EAAE,EAAE;QACjF,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,MAAM,EAAE,EAAE;QAC3D,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,UAAU,EAAE,EAAE;KAC9E,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"cronParser.js","sourceRoot":"","sources":["../../../../lib/ioc/helper/cronParser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAkB,EAAc,EAAE;IAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,GAC9D,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3D,OAAO;QACL,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,OAAO,EAAE,EAAE;QAC/D,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,OAAO,EAAE,EAAE;QAC/D,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,KAAK,EAAE,EAAE;QACvD,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,WAAW,EAAE,EAAE;QACjF,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,MAAM,EAAE,EAAE;QAC3D,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,UAAU,EAAE,EAAE;KAC9E,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Interface for post-processing component instances after creation.
3
+ *
4
+ * PostProcessors run once at startup during component creation (NOT on every method call).
5
+ * They are registered in FIFO order and executed sequentially.
6
+ *
7
+ * Two usage modes:
8
+ * - **Mode 1 (Instance Transformation):** Return a modified instance (e.g., Proxy wrapper for tracing)
9
+ * - **Mode 2 (Metadata Collection):** Read metadata and return the original instance unchanged
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * @PostProcessor()
14
+ * class TracingPostProcessor implements ComponentPostProcessor {
15
+ * postProcess<T>(instance: T, Class: any): T {
16
+ * return new Proxy(instance, { ... }); // Mode 1: wrap with Proxy
17
+ * }
18
+ * }
19
+ * ```
20
+ */
21
+ export interface ComponentPostProcessor {
22
+ /**
23
+ * Process a component instance after creation and dependency injection.
24
+ *
25
+ * @param instance - The fully initialized component instance (after DI + PostConstruct)
26
+ * @param Class - The original class constructor (for metadata reading)
27
+ * @returns The processed instance (same or modified). Return null/undefined to keep original.
28
+ */
29
+ postProcess<T>(instance: T, Class: any): T | Promise<T>;
30
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ComponentPostProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentPostProcessor.js","sourceRoot":"","sources":["../../../../lib/ioc/types/ComponentPostProcessor.ts"],"names":[],"mappings":""}
@@ -17,6 +17,9 @@ export declare enum ICoreServiceNames {
17
17
  PREPARE_VALIDATOR_SERVICE = "PrepareValidatorService",
18
18
  PREPARE_STATIC_SERVE_CONFIG_SERVICE = "PrepareStaticServeConfigService",
19
19
  PREPARE_EVENT_SERVICE = "PrepareEventService",
20
+ PREPARE_SCHEDULE_SERVICE = "PrepareScheduleService",
21
+ PREPARE_FRONTEND_CONTROLLER_SERVICE = "PrepareFrontendControllerService",
22
+ CRON_RUNNER = "CronRunner",
20
23
  CORE_CONTAINER = "CoreContainer",
21
24
  ASENA_SERVER = "AsenaServer"
22
25
  }
@@ -22,6 +22,10 @@ export var ICoreServiceNames;
22
22
  ICoreServiceNames["PREPARE_VALIDATOR_SERVICE"] = "PrepareValidatorService";
23
23
  ICoreServiceNames["PREPARE_STATIC_SERVE_CONFIG_SERVICE"] = "PrepareStaticServeConfigService";
24
24
  ICoreServiceNames["PREPARE_EVENT_SERVICE"] = "PrepareEventService";
25
+ ICoreServiceNames["PREPARE_SCHEDULE_SERVICE"] = "PrepareScheduleService";
26
+ ICoreServiceNames["PREPARE_FRONTEND_CONTROLLER_SERVICE"] = "PrepareFrontendControllerService";
27
+ // Schedule Services (Phase 5)
28
+ ICoreServiceNames["CRON_RUNNER"] = "CronRunner";
25
29
  // Factory Services (Phase 6+)
26
30
  ICoreServiceNames["CORE_CONTAINER"] = "CoreContainer";
27
31
  ICoreServiceNames["ASENA_SERVER"] = "AsenaServer";
@@ -1 +1 @@
1
- {"version":3,"file":"ICoreServiceNamesType.js","sourceRoot":"","sources":["../../../../lib/ioc/types/ICoreServiceNamesType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,iBAyBX;AAzBD,WAAY,iBAAiB;IAC3B,2CAA2C;IAC3C,4CAAuB,CAAA;IACvB,mDAA8B,CAAA;IAC9B,6CAAwB,CAAA;IACxB,mDAA8B,CAAA;IAE9B,wCAAwC;IACxC,0CAAqB,CAAA;IAErB,2BAA2B;IAC3B,mDAA8B,CAAA;IAC9B,oEAA+C,CAAA;IAE/C,6BAA6B;IAC7B,4EAAuD,CAAA;IACvD,oEAA+C,CAAA;IAC/C,0EAAqD,CAAA;IACrD,0EAAqD,CAAA;IACrD,4FAAuE,CAAA;IACvE,kEAA6C,CAAA;IAE7C,8BAA8B;IAC9B,qDAAgC,CAAA;IAChC,iDAA4B,CAAA;AAC9B,CAAC,EAzBW,iBAAiB,KAAjB,iBAAiB,QAyB5B"}
1
+ {"version":3,"file":"ICoreServiceNamesType.js","sourceRoot":"","sources":["../../../../lib/ioc/types/ICoreServiceNamesType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,iBA8BX;AA9BD,WAAY,iBAAiB;IAC3B,2CAA2C;IAC3C,4CAAuB,CAAA;IACvB,mDAA8B,CAAA;IAC9B,6CAAwB,CAAA;IACxB,mDAA8B,CAAA;IAE9B,wCAAwC;IACxC,0CAAqB,CAAA;IAErB,2BAA2B;IAC3B,mDAA8B,CAAA;IAC9B,oEAA+C,CAAA;IAE/C,6BAA6B;IAC7B,4EAAuD,CAAA;IACvD,oEAA+C,CAAA;IAC/C,0EAAqD,CAAA;IACrD,0EAAqD,CAAA;IACrD,4FAAuE,CAAA;IACvE,kEAA6C,CAAA;IAC7C,wEAAmD,CAAA;IACnD,6FAAwE,CAAA;IAExE,8BAA8B;IAC9B,+CAA0B,CAAA;IAE1B,8BAA8B;IAC9B,qDAAgC,CAAA;IAChC,iDAA4B,CAAA;AAC9B,CAAC,EA9BW,iBAAiB,KAAjB,iBAAiB,QA8B5B"}
@@ -2,9 +2,11 @@ export declare enum ComponentType {
2
2
  COMPONENT = "COMPONENT",
3
3
  SERVICE = "SERVICE",
4
4
  CONTROLLER = "CONTROLLER",
5
+ FRONTEND_CONTROLLER = "FRONTEND_CONTROLLER",
5
6
  SCHEDULE = "SCHEDULE",
6
7
  MIDDLEWARE = "MIDDLEWARE",
7
8
  WEBSOCKET = "WEBSOCKET",
8
9
  CONFIG = "CONFIG",
9
- EVENT = "EVENT"
10
+ EVENT = "EVENT",
11
+ POST_PROCESSOR = "POST_PROCESSOR"
10
12
  }
@@ -3,10 +3,12 @@ export var ComponentType;
3
3
  ComponentType["COMPONENT"] = "COMPONENT";
4
4
  ComponentType["SERVICE"] = "SERVICE";
5
5
  ComponentType["CONTROLLER"] = "CONTROLLER";
6
+ ComponentType["FRONTEND_CONTROLLER"] = "FRONTEND_CONTROLLER";
6
7
  ComponentType["SCHEDULE"] = "SCHEDULE";
7
8
  ComponentType["MIDDLEWARE"] = "MIDDLEWARE";
8
9
  ComponentType["WEBSOCKET"] = "WEBSOCKET";
9
10
  ComponentType["CONFIG"] = "CONFIG";
10
11
  ComponentType["EVENT"] = "EVENT";
12
+ ComponentType["POST_PROCESSOR"] = "POST_PROCESSOR";
11
13
  })(ComponentType || (ComponentType = {}));
12
14
  //# sourceMappingURL=ComponentType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentType.js","sourceRoot":"","sources":["../../../../../lib/ioc/types/decorators/ComponentType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;IACnB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,wCAAuB,CAAA;IACvB,kCAAiB,CAAA;IACjB,gCAAe,CAAA;AACjB,CAAC,EATW,aAAa,KAAb,aAAa,QASxB"}
1
+ {"version":3,"file":"ComponentType.js","sourceRoot":"","sources":["../../../../../lib/ioc/types/decorators/ComponentType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;IACnB,0CAAyB,CAAA;IACzB,4DAA2C,CAAA;IAC3C,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,wCAAuB,CAAA;IACvB,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,kDAAiC,CAAA;AACnC,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB"}
@@ -4,4 +4,5 @@ import type { MiddlewareClass } from '../../../server/web/middleware';
4
4
  export interface ControllerParams<C extends AsenaContext<any, any> = AsenaContext<any, any>> extends ComponentParams {
5
5
  path: string;
6
6
  middlewares?: MiddlewareClass<C>[];
7
+ description?: string;
7
8
  }
@@ -8,4 +8,5 @@ export * from './InjectableComponent';
8
8
  export * from './ContainerService';
9
9
  export * from './ICoreService';
10
10
  export * from './CoreBootstrapPhase';
11
+ export * from './ComponentPostProcessor';
11
12
  export { ICoreServiceNames } from './ICoreServiceNamesType';
@@ -8,5 +8,6 @@ export * from './InjectableComponent';
8
8
  export * from './ContainerService';
9
9
  export * from './ICoreService';
10
10
  export * from './CoreBootstrapPhase';
11
+ export * from './ComponentPostProcessor';
11
12
  export { ICoreServiceNames } from './ICoreServiceNamesType';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/ioc/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/ioc/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -15,6 +15,9 @@ export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements IC
15
15
  private prepareValidatorService;
16
16
  private prepareStaticServeConfigService;
17
17
  private prepareEventService;
18
+ private prepareScheduleService;
19
+ private prepareFrontendControllerService;
20
+ private cronRunner;
18
21
  private _port;
19
22
  private _gc;
20
23
  private controllers;
@@ -29,6 +32,12 @@ export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements IC
29
32
  * @returns {Promise<void>}
30
33
  */
31
34
  start(): Promise<void>;
35
+ /**
36
+ * @description Stop the server and release resources
37
+ * @param {boolean} closeActiveConnections - Whether to close active connections immediately
38
+ * @returns {Promise<void>}
39
+ */
40
+ stop(closeActiveConnections?: boolean): Promise<void>;
32
41
  /**
33
42
  * @description Configure server port
34
43
  * Builder pattern for API compatibility
@@ -46,6 +55,10 @@ export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements IC
46
55
  * @returns {Promise<void>}
47
56
  */
48
57
  private initializeControllers;
58
+ /**
59
+ * @description Check for duplicate route registration and throw if found
60
+ */
61
+ private checkDuplicateRoute;
49
62
  /**
50
63
  * @description Validate and set controllers from container
51
64
  * @returns {Promise<void>}
@@ -82,6 +95,11 @@ export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements IC
82
95
  * @returns {Promise<BaseMiddleware[]>}
83
96
  */
84
97
  private prepareMiddlewares;
98
+ /**
99
+ * @description Prepare and register FrontendController HTML routes
100
+ * @returns {Promise<void>}
101
+ */
102
+ private prepareFrontendControllers;
85
103
  /**
86
104
  * @description Prepare and register WebSocket routes
87
105
  * @returns {Promise<void>}
@@ -29,6 +29,9 @@ let AsenaServer = class AsenaServer {
29
29
  prepareValidatorService;
30
30
  prepareStaticServeConfigService;
31
31
  prepareEventService;
32
+ prepareScheduleService;
33
+ prepareFrontendControllerService;
34
+ cronRunner;
32
35
  // Instance state
33
36
  _port;
34
37
  _gc = false;
@@ -53,15 +56,28 @@ let AsenaServer = class AsenaServer {
53
56
  this._coreContainer.setPhase(CoreBootstrapPhase.APPLICATION_SETUP);
54
57
  await this.prepareConfigs();
55
58
  await this.prepareEventService.prepare();
59
+ await this.prepareScheduleService.prepare();
56
60
  await this.initializeControllers();
61
+ await this.prepareFrontendControllers();
57
62
  await this.prepareWebSocket();
58
63
  // Phase 8: Server ready
59
64
  this._coreContainer.setPhase(CoreBootstrapPhase.SERVER_READY);
60
65
  await this._adapter.start();
66
+ // Start scheduled jobs after server is ready
67
+ this.cronRunner.startAll();
61
68
  if (this._gc) {
62
69
  bun.gc(true);
63
70
  }
64
71
  }
72
+ /**
73
+ * @description Stop the server and release resources
74
+ * @param {boolean} closeActiveConnections - Whether to close active connections immediately
75
+ * @returns {Promise<void>}
76
+ */
77
+ async stop(closeActiveConnections = true) {
78
+ this.cronRunner.stopAll();
79
+ await this._adapter.stop(closeActiveConnections);
80
+ }
65
81
  /**
66
82
  * @description Configure server port
67
83
  * Builder pattern for API compatibility
@@ -85,12 +101,15 @@ let AsenaServer = class AsenaServer {
85
101
  */
86
102
  async initializeControllers() {
87
103
  await this.validateAndSetControllers();
104
+ const registeredRoutes = new Map();
88
105
  for (const controller of this.controllers) {
89
106
  const routes = getOwnTypedMetadata(ComponentConstants.RouteKey, controller.constructor) || {};
90
107
  const routePath = getOwnTypedMetadata(ComponentConstants.PathKey, controller.constructor) || '';
91
108
  await this.prepareTopMiddlewares({ controller, routePath });
92
109
  for (const [name, params] of Object.entries(routes)) {
93
110
  const lastPath = path.join(`${routePath}/`, params.path).replace(/\\/g, '/');
111
+ const controllerName = getTypedMetadata(ComponentConstants.NameKey, controller.constructor) || 'Unknown';
112
+ this.checkDuplicateRoute(registeredRoutes, params.method, lastPath, controllerName, name);
94
113
  const middlewares = await this.prepareRouteMiddleware(params);
95
114
  const validatorInstance = await this.prepareValidator(params.validator);
96
115
  await this._adapter.registerRoute({
@@ -100,12 +119,44 @@ let AsenaServer = class AsenaServer {
100
119
  handler: controller[name].bind(controller),
101
120
  staticServe: await this.prepareStaticServeConfig(params.staticServe),
102
121
  validator: validatorInstance,
103
- controllerName: getTypedMetadata(ComponentConstants.NameKey, controller.constructor),
122
+ controllerName,
104
123
  controllerBasePath: routePath,
105
124
  });
106
125
  }
107
126
  }
108
127
  }
128
+ /**
129
+ * @description Check for duplicate route registration and throw if found
130
+ */
131
+ checkDuplicateRoute(registeredRoutes, method, fullPath, controllerName, handlerName) {
132
+ const routeKey = `${method.toUpperCase()} ${fullPath}`;
133
+ // Check for exact duplicate (same method + path)
134
+ const existing = registeredRoutes.get(routeKey);
135
+ if (existing) {
136
+ throw new Error(`Duplicate route detected: ${routeKey} — ` +
137
+ `already registered by ${existing.controllerName}.${existing.handlerName}(), ` +
138
+ `conflicts with ${controllerName}.${handlerName}()`);
139
+ }
140
+ // Check ALL conflicts: if new route is ALL, check if any method already registered for this path
141
+ if (method.toUpperCase() === 'ALL') {
142
+ for (const [key, entry] of registeredRoutes) {
143
+ if (key.endsWith(` ${fullPath}`)) {
144
+ throw new Error(`Duplicate route detected: ALL ${fullPath} conflicts with ${key} — ` +
145
+ `already registered by ${entry.controllerName}.${entry.handlerName}(), ` +
146
+ `conflicts with ${controllerName}.${handlerName}()`);
147
+ }
148
+ }
149
+ }
150
+ // Check if ALL already registered for this path and new route conflicts
151
+ const allKey = `ALL ${fullPath}`;
152
+ const allEntry = registeredRoutes.get(allKey);
153
+ if (allEntry && method.toUpperCase() !== 'ALL') {
154
+ throw new Error(`Duplicate route detected: ${routeKey} conflicts with ALL ${fullPath} — ` +
155
+ `already registered by ${allEntry.controllerName}.${allEntry.handlerName}(), ` +
156
+ `conflicts with ${controllerName}.${handlerName}()`);
157
+ }
158
+ registeredRoutes.set(routeKey, { controllerName, handlerName });
159
+ }
109
160
  /**
110
161
  * @description Validate and set controllers from container
111
162
  * @returns {Promise<void>}
@@ -172,6 +223,19 @@ let AsenaServer = class AsenaServer {
172
223
  async prepareMiddlewares(middlewares) {
173
224
  return this.prepareMiddleware.prepare(middlewares);
174
225
  }
226
+ /**
227
+ * @description Prepare and register FrontendController HTML routes
228
+ * @returns {Promise<void>}
229
+ */
230
+ async prepareFrontendControllers() {
231
+ const htmlRoutes = await this.prepareFrontendControllerService.prepare();
232
+ if (!htmlRoutes.length) {
233
+ return;
234
+ }
235
+ for (const route of htmlRoutes) {
236
+ this._adapter.registerHTMLRoute(route.path, route.htmlBundle);
237
+ }
238
+ }
175
239
  /**
176
240
  * @description Prepare and register WebSocket routes
177
241
  * @returns {Promise<void>}
@@ -240,6 +304,14 @@ let AsenaServer = class AsenaServer {
240
304
  }
241
305
  }
242
306
  }
307
+ // WebSocket transport configuration
308
+ if (typeof configInstance.transport === 'function') {
309
+ const transport = await configInstance.transport();
310
+ const wsAdapter = this._adapter.getWebsocketAdapter();
311
+ if (wsAdapter) {
312
+ wsAdapter.transport = transport;
313
+ }
314
+ }
243
315
  const name = getOwnTypedMetadata(ComponentConstants.NameKey, configInstance.constructor);
244
316
  this._logger.info(`Config ${yellow(name)} applied`);
245
317
  }
@@ -280,6 +352,18 @@ __decorate([
280
352
  Inject(ICoreServiceNames.PREPARE_EVENT_SERVICE),
281
353
  __metadata("design:type", Function)
282
354
  ], AsenaServer.prototype, "prepareEventService", void 0);
355
+ __decorate([
356
+ Inject(ICoreServiceNames.PREPARE_SCHEDULE_SERVICE),
357
+ __metadata("design:type", Function)
358
+ ], AsenaServer.prototype, "prepareScheduleService", void 0);
359
+ __decorate([
360
+ Inject(ICoreServiceNames.PREPARE_FRONTEND_CONTROLLER_SERVICE),
361
+ __metadata("design:type", Function)
362
+ ], AsenaServer.prototype, "prepareFrontendControllerService", void 0);
363
+ __decorate([
364
+ Inject(ICoreServiceNames.CRON_RUNNER),
365
+ __metadata("design:type", Function)
366
+ ], AsenaServer.prototype, "cronRunner", void 0);
283
367
  __decorate([
284
368
  PostConstruct(),
285
369
  __metadata("design:type", Function),