@asenajs/asena 0.6.2 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/lib/adapter/AsenaAdapter.d.ts +17 -0
- package/dist/lib/adapter/AsenaAdapter.js +6 -0
- package/dist/lib/adapter/AsenaAdapter.js.map +1 -1
- package/dist/lib/adapter/AsenaContext.d.ts +81 -8
- package/dist/lib/adapter/AsenaWebsocketAdapter.d.ts +41 -2
- package/dist/lib/adapter/AsenaWebsocketAdapter.js +74 -0
- package/dist/lib/adapter/AsenaWebsocketAdapter.js.map +1 -1
- package/dist/lib/adapter/types/ApiParams.d.ts +6 -0
- package/dist/lib/adapter/types/ServeOptions.d.ts +22 -1
- package/dist/lib/adapter/types/Streaming.d.ts +42 -0
- package/dist/lib/adapter/types/Streaming.js +2 -0
- package/dist/lib/adapter/types/Streaming.js.map +1 -0
- package/dist/lib/adapter/types/index.d.ts +1 -0
- package/dist/lib/adapter/types/index.js +1 -0
- package/dist/lib/adapter/types/index.js.map +1 -1
- package/dist/lib/ioc/Container.d.ts +8 -1
- package/dist/lib/ioc/Container.js +16 -2
- package/dist/lib/ioc/Container.js.map +1 -1
- package/dist/lib/ioc/CoreContainer.js +10 -3
- package/dist/lib/ioc/CoreContainer.js.map +1 -1
- package/dist/lib/ioc/IocEngine.d.ts +7 -0
- package/dist/lib/ioc/IocEngine.js +85 -3
- package/dist/lib/ioc/IocEngine.js.map +1 -1
- package/dist/lib/ioc/component/componentUtils.js +3 -1
- package/dist/lib/ioc/component/componentUtils.js.map +1 -1
- package/dist/lib/ioc/constants/ComponentConstants.d.ts +2 -0
- package/dist/lib/ioc/constants/ComponentConstants.js +3 -0
- package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
- package/dist/lib/ioc/helper/cronParser.d.ts +3 -0
- package/dist/lib/ioc/helper/cronParser.js +3 -1
- package/dist/lib/ioc/helper/cronParser.js.map +1 -1
- package/dist/lib/ioc/types/ComponentPostProcessor.d.ts +30 -0
- package/dist/lib/ioc/types/ComponentPostProcessor.js +2 -0
- package/dist/lib/ioc/types/ComponentPostProcessor.js.map +1 -0
- package/dist/lib/ioc/types/ICoreServiceNamesType.d.ts +3 -0
- package/dist/lib/ioc/types/ICoreServiceNamesType.js +4 -0
- package/dist/lib/ioc/types/ICoreServiceNamesType.js.map +1 -1
- package/dist/lib/ioc/types/decorators/ComponentType.d.ts +3 -1
- package/dist/lib/ioc/types/decorators/ComponentType.js +2 -0
- package/dist/lib/ioc/types/decorators/ComponentType.js.map +1 -1
- package/dist/lib/ioc/types/decorators/ControllerParams.d.ts +1 -0
- package/dist/lib/ioc/types/index.d.ts +1 -0
- package/dist/lib/ioc/types/index.js +1 -0
- package/dist/lib/ioc/types/index.js.map +1 -1
- package/dist/lib/server/AsenaServer.d.ts +18 -0
- package/dist/lib/server/AsenaServer.js +85 -1
- package/dist/lib/server/AsenaServer.js.map +1 -1
- package/dist/lib/server/config/AsenaConfig.d.ts +16 -1
- package/dist/lib/server/decorators/components/Controller.js +3 -0
- package/dist/lib/server/decorators/components/Controller.js.map +1 -1
- package/dist/lib/server/decorators/components/FrontendController.d.ts +15 -0
- package/dist/lib/server/decorators/components/FrontendController.js +20 -0
- package/dist/lib/server/decorators/components/FrontendController.js.map +1 -0
- package/dist/lib/server/decorators/components/PostProcessor.d.ts +25 -0
- package/dist/lib/server/decorators/components/PostProcessor.js +29 -0
- package/dist/lib/server/decorators/components/PostProcessor.js.map +1 -0
- package/dist/lib/server/decorators/components/Schedule.d.ts +15 -3
- package/dist/lib/server/decorators/components/Schedule.js +24 -6
- package/dist/lib/server/decorators/components/Schedule.js.map +1 -1
- package/dist/lib/server/decorators/components/index.d.ts +2 -0
- package/dist/lib/server/decorators/components/index.js +2 -0
- package/dist/lib/server/decorators/components/index.js.map +1 -1
- package/dist/lib/server/decorators/index.d.ts +0 -3
- package/dist/lib/server/decorators/index.js +0 -3
- package/dist/lib/server/decorators/index.js.map +1 -1
- package/dist/lib/server/messaging/Ulak.js +8 -5
- package/dist/lib/server/messaging/Ulak.js.map +1 -1
- package/dist/lib/server/schedule/AsenaSchedule.d.ts +21 -0
- package/dist/lib/server/schedule/AsenaSchedule.js +2 -0
- package/dist/lib/server/schedule/AsenaSchedule.js.map +1 -0
- package/dist/lib/server/schedule/CronRunner.d.ts +54 -0
- package/dist/lib/server/schedule/CronRunner.js +130 -0
- package/dist/lib/server/schedule/CronRunner.js.map +1 -0
- package/dist/lib/server/schedule/index.d.ts +2 -0
- package/dist/lib/server/schedule/index.js +2 -0
- package/dist/lib/server/schedule/index.js.map +1 -0
- package/dist/lib/server/src/services/PrepareFrontendControllerService.d.ts +17 -0
- package/dist/lib/server/src/services/PrepareFrontendControllerService.js +63 -0
- package/dist/lib/server/src/services/PrepareFrontendControllerService.js.map +1 -0
- package/dist/lib/server/src/services/PrepareScheduleService.d.ts +21 -0
- package/dist/lib/server/src/services/PrepareScheduleService.js +69 -0
- package/dist/lib/server/src/services/PrepareScheduleService.js.map +1 -0
- package/dist/lib/server/web/decorators/Page.d.ts +13 -0
- package/dist/lib/server/web/decorators/Page.js +17 -0
- package/dist/lib/server/web/decorators/Page.js.map +1 -0
- package/dist/lib/server/web/decorators/http.base.d.ts +1 -1
- package/dist/lib/server/web/decorators/http.base.js +3 -2
- package/dist/lib/server/web/decorators/http.base.js.map +1 -1
- package/dist/lib/server/web/decorators/index.d.ts +1 -0
- package/dist/lib/server/web/decorators/index.js +1 -0
- package/dist/lib/server/web/decorators/index.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/All.d.ts +7 -0
- package/dist/lib/server/web/decorators/methods/All.js +12 -0
- package/dist/lib/server/web/decorators/methods/All.js.map +1 -0
- package/dist/lib/server/web/decorators/methods/Connect.js +2 -2
- package/dist/lib/server/web/decorators/methods/Connect.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/Delete.js +2 -2
- package/dist/lib/server/web/decorators/methods/Delete.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/Get.js +2 -2
- package/dist/lib/server/web/decorators/methods/Get.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/Head.js +2 -2
- package/dist/lib/server/web/decorators/methods/Head.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/Options.js +2 -2
- package/dist/lib/server/web/decorators/methods/Options.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/Patch.js +2 -2
- package/dist/lib/server/web/decorators/methods/Patch.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/Post.js +2 -2
- package/dist/lib/server/web/decorators/methods/Post.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/Put.js +2 -2
- package/dist/lib/server/web/decorators/methods/Put.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/Route.d.ts +21 -0
- package/dist/lib/server/web/decorators/methods/Route.js +33 -0
- package/dist/lib/server/web/decorators/methods/Route.js.map +1 -0
- package/dist/lib/server/web/decorators/methods/Trace.js +2 -2
- package/dist/lib/server/web/decorators/methods/Trace.js.map +1 -1
- package/dist/lib/server/web/decorators/methods/index.d.ts +2 -0
- package/dist/lib/server/web/decorators/methods/index.js +2 -0
- package/dist/lib/server/web/decorators/methods/index.js.map +1 -1
- package/dist/lib/server/web/middleware/AsenaValidationService.d.ts +32 -0
- package/dist/lib/server/web/types/HttpMethod.d.ts +2 -1
- package/dist/lib/server/web/types/HttpMethod.js +1 -0
- package/dist/lib/server/web/types/HttpMethod.js.map +1 -1
- package/dist/lib/server/web/websocket/AsenaSocket.d.ts +16 -8
- package/dist/lib/server/web/websocket/AsenaSocket.js +30 -7
- package/dist/lib/server/web/websocket/AsenaSocket.js.map +1 -1
- package/dist/lib/server/web/websocket/AsenaWebSocketServer.d.ts +6 -7
- package/dist/lib/server/web/websocket/AsenaWebSocketServer.js +10 -11
- package/dist/lib/server/web/websocket/AsenaWebSocketServer.js.map +1 -1
- package/dist/lib/server/web/websocket/BunLocalTransport.d.ts +16 -0
- package/dist/lib/server/web/websocket/BunLocalTransport.js +18 -0
- package/dist/lib/server/web/websocket/BunLocalTransport.js.map +1 -0
- package/dist/lib/server/web/websocket/WebSocketTransport.d.ts +76 -0
- package/dist/lib/server/web/websocket/WebSocketTransport.js +2 -0
- package/dist/lib/server/web/websocket/WebSocketTransport.js.map +1 -0
- package/dist/lib/server/web/websocket/index.d.ts +2 -0
- package/dist/lib/server/web/websocket/index.js +2 -0
- package/dist/lib/server/web/websocket/index.js.map +1 -1
- package/dist/lib/server/web/websocket/types.d.ts +24 -0
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.js +1 -0
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/metadataExtractor.d.ts +88 -0
- package/dist/lib/utils/metadataExtractor.js +105 -0
- package/dist/lib/utils/metadataExtractor.js.map +1 -0
- package/dist/lib/utils/patternMatcher.js +5 -2
- package/dist/lib/utils/patternMatcher.js.map +1 -1
- package/package.json +23 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsenaServer.js","sourceRoot":"","sources":["../../../lib/server/AsenaServer.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EACL,aAAa,EACb,kBAAkB,EAElB,WAAW,EAEX,iBAAiB,GAClB,MAAM,QAAQ,CAAC;AAUhB,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAqB,MAAM,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"AsenaServer.js","sourceRoot":"","sources":["../../../lib/server/AsenaServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AsenaContext, AsenaServeOptions } from '../../adapter';
|
|
2
|
+
import type { WebSocketTransport } from '../web/websocket';
|
|
2
3
|
import type { MiddlewareClass } from '../web/middleware';
|
|
3
4
|
/**
|
|
4
5
|
* Route configuration for global middleware
|
|
@@ -112,5 +113,19 @@ export interface AsenaConfig<C extends AsenaContext<any, any> = AsenaContext<any
|
|
|
112
113
|
* @returns Array of middleware configurations
|
|
113
114
|
*/
|
|
114
115
|
globalMiddlewares?(): Promise<GlobalMiddlewareEntry[]> | GlobalMiddlewareEntry[];
|
|
116
|
+
/**
|
|
117
|
+
* WebSocket transport for cross-pod messaging.
|
|
118
|
+
*
|
|
119
|
+
* When not specified, BunLocalTransport is used (single-pod, zero overhead).
|
|
120
|
+
* For multi-pod deployments, return a custom transport (e.g., RedisTransport).
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* transport() {
|
|
125
|
+
* return new RedisTransport(this.redis);
|
|
126
|
+
* }
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
transport?(): WebSocketTransport | Promise<WebSocketTransport>;
|
|
115
130
|
}
|
|
116
|
-
export type AsenaConfigFunctions = 'onError' | 'serveOptions' | 'globalMiddlewares';
|
|
131
|
+
export type AsenaConfigFunctions = 'onError' | 'serveOptions' | 'globalMiddlewares' | 'transport';
|
|
@@ -12,6 +12,9 @@ export const Controller = (params) => {
|
|
|
12
12
|
const _params = typeof params === 'string' ? { path: params, name: undefined } : params || { path: '', name: undefined };
|
|
13
13
|
return defineComponent(ComponentType.CONTROLLER, _params, (target) => {
|
|
14
14
|
defineTypedMetadata(ComponentConstants.PathKey, _params.path.replace(/^\/+/, '/') || '/', target);
|
|
15
|
+
if (_params.description) {
|
|
16
|
+
defineTypedMetadata(ComponentConstants.ControllerDescriptionKey, _params.description, target);
|
|
17
|
+
}
|
|
15
18
|
defineMiddleware(target, _params.middlewares || []);
|
|
16
19
|
defineTypedMetadata(ComponentConstants.MiddlewaresKey, _params.middlewares || [], target);
|
|
17
20
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Controller.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/Controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAyB,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAInE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAkC,EAAkB,EAAE;IAC/E,MAAM,OAAO,GACX,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAE3G,OAAO,eAAe,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QACnE,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QAE1G,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAEpD,mBAAmB,CACjB,kBAAkB,CAAC,cAAc,EACjC,OAAO,CAAC,WAAW,IAAK,EAAwB,EAChD,MAAM,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"Controller.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/Controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAyB,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAInE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAkC,EAAkB,EAAE;IAC/E,MAAM,OAAO,GACX,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAE3G,OAAO,eAAe,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QACnE,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QAE1G,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,mBAAmB,CAAS,kBAAkB,CAAC,wBAAwB,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACxG,CAAC;QAED,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAEpD,mBAAmB,CACjB,kBAAkB,CAAC,cAAc,EACjC,OAAO,CAAC,WAAW,IAAK,EAAwB,EAChD,MAAM,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface FrontendControllerParams {
|
|
2
|
+
path: string;
|
|
3
|
+
name?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Decorator for defining a Frontend Controller component.
|
|
7
|
+
* Frontend controllers serve HTML bundles via Bun's native HTML import feature.
|
|
8
|
+
* String parameter is used for defining the base path.
|
|
9
|
+
*
|
|
10
|
+
* HTML routes bypass the middleware chain entirely and are served directly by Bun.serve().
|
|
11
|
+
*
|
|
12
|
+
* @param {FrontendControllerParams | string} params - Base path or full params
|
|
13
|
+
* @returns {ClassDecorator}
|
|
14
|
+
*/
|
|
15
|
+
export declare const FrontendController: (params: FrontendControllerParams | string) => ClassDecorator;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ComponentConstants, ComponentType } from '../../../ioc';
|
|
2
|
+
import { defineComponent } from '../../../ioc/component';
|
|
3
|
+
import { defineTypedMetadata } from '../../../utils/typedMetadata';
|
|
4
|
+
/**
|
|
5
|
+
* Decorator for defining a Frontend Controller component.
|
|
6
|
+
* Frontend controllers serve HTML bundles via Bun's native HTML import feature.
|
|
7
|
+
* String parameter is used for defining the base path.
|
|
8
|
+
*
|
|
9
|
+
* HTML routes bypass the middleware chain entirely and are served directly by Bun.serve().
|
|
10
|
+
*
|
|
11
|
+
* @param {FrontendControllerParams | string} params - Base path or full params
|
|
12
|
+
* @returns {ClassDecorator}
|
|
13
|
+
*/
|
|
14
|
+
export const FrontendController = (params) => {
|
|
15
|
+
const _params = typeof params === 'string' ? { path: params, name: undefined } : params || { path: '', name: undefined };
|
|
16
|
+
return defineComponent(ComponentType.FRONTEND_CONTROLLER, _params, (target) => {
|
|
17
|
+
defineTypedMetadata(ComponentConstants.PathKey, _params.path.replace(/^\/+/, '/') || '/', target);
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=FrontendController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrontendController.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/FrontendController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAOnE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAyC,EAAkB,EAAE;IAC9F,MAAM,OAAO,GACX,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAE3G,OAAO,eAAe,CAAC,aAAa,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QAC5E,mBAAmB,CACjB,kBAAkB,CAAC,OAAO,EAC1B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,EACxC,MAAM,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ComponentParams } from '../../../ioc';
|
|
2
|
+
/**
|
|
3
|
+
* Decorator for defining a PostProcessor component.
|
|
4
|
+
*
|
|
5
|
+
* PostProcessors hook into the component creation lifecycle and can modify or inspect
|
|
6
|
+
* instances after they are fully initialized (constructor + DI + PostConstruct).
|
|
7
|
+
*
|
|
8
|
+
* PostProcessor components and their dependencies are registered BEFORE other components
|
|
9
|
+
* (Phase A) and are NOT themselves post-processed.
|
|
10
|
+
*
|
|
11
|
+
* @param {ComponentParams | string} [params] - Optional parameters (name, scope).
|
|
12
|
+
* @returns {ClassDecorator} - The class decorator for the PostProcessor.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* @PostProcessor()
|
|
17
|
+
* class TracingPostProcessor implements ComponentPostProcessor {
|
|
18
|
+
* postProcess<T>(instance: T, Class: any): T {
|
|
19
|
+
* // Wrap with tracing proxy
|
|
20
|
+
* return new Proxy(instance, { ... });
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare const PostProcessor: (params?: ComponentParams | string) => ClassDecorator;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ComponentType } from '../../../ioc';
|
|
2
|
+
import { defineComponent } from '../../../ioc/component';
|
|
3
|
+
/**
|
|
4
|
+
* Decorator for defining a PostProcessor component.
|
|
5
|
+
*
|
|
6
|
+
* PostProcessors hook into the component creation lifecycle and can modify or inspect
|
|
7
|
+
* instances after they are fully initialized (constructor + DI + PostConstruct).
|
|
8
|
+
*
|
|
9
|
+
* PostProcessor components and their dependencies are registered BEFORE other components
|
|
10
|
+
* (Phase A) and are NOT themselves post-processed.
|
|
11
|
+
*
|
|
12
|
+
* @param {ComponentParams | string} [params] - Optional parameters (name, scope).
|
|
13
|
+
* @returns {ClassDecorator} - The class decorator for the PostProcessor.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* @PostProcessor()
|
|
18
|
+
* class TracingPostProcessor implements ComponentPostProcessor {
|
|
19
|
+
* postProcess<T>(instance: T, Class: any): T {
|
|
20
|
+
* // Wrap with tracing proxy
|
|
21
|
+
* return new Proxy(instance, { ... });
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export const PostProcessor = (params) => {
|
|
27
|
+
return defineComponent(ComponentType.POST_PROCESSOR, params || {});
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=PostProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostProcessor.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/PostProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,aAAa,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAiC,EAAkB,EAAE;IACjF,OAAO,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { type ScheduleParams } from '../../../ioc';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Decorator for scheduled task classes.
|
|
4
|
+
* Classes must implement AsenaSchedule interface (execute() method).
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* Uses Bun.cron.parse() for cron expression validation at decoration time.
|
|
7
|
+
*
|
|
8
|
+
* @param params - Schedule parameters including cron expression
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* @Schedule({ cron: '0 9 * * MON-FRI' })
|
|
13
|
+
* class MyTask implements AsenaSchedule {
|
|
14
|
+
* async execute() {
|
|
15
|
+
* // Runs at 9:00 AM on weekdays
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
7
19
|
*/
|
|
8
20
|
export declare const Schedule: (params: ScheduleParams) => ClassDecorator;
|
|
@@ -1,17 +1,35 @@
|
|
|
1
1
|
import { ComponentConstants, ComponentType } from '../../../ioc';
|
|
2
2
|
import { defineComponent } from '../../../ioc/component';
|
|
3
|
-
import { parseCron } from '../../../ioc/helper/cronParser';
|
|
4
3
|
import { defineTypedMetadata } from '../../../utils/typedMetadata';
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
5
|
+
* Decorator for scheduled task classes.
|
|
6
|
+
* Classes must implement AsenaSchedule interface (execute() method).
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Uses Bun.cron.parse() for cron expression validation at decoration time.
|
|
9
|
+
*
|
|
10
|
+
* @param params - Schedule parameters including cron expression
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* @Schedule({ cron: '0 9 * * MON-FRI' })
|
|
15
|
+
* class MyTask implements AsenaSchedule {
|
|
16
|
+
* async execute() {
|
|
17
|
+
* // Runs at 9:00 AM on weekdays
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
10
21
|
*/
|
|
11
22
|
export const Schedule = (params) => {
|
|
12
23
|
return defineComponent(ComponentType.SCHEDULE, params, (target) => {
|
|
13
|
-
|
|
14
|
-
|
|
24
|
+
// Validate cron expression using Bun native API
|
|
25
|
+
const nextRun = Bun.cron.parse(params.cron);
|
|
26
|
+
if (nextRun === null) {
|
|
27
|
+
throw new Error(`Invalid cron expression "${params.cron}" in @Schedule for ${target.name}. ` +
|
|
28
|
+
`Use 5-field format (minute hour day-of-month month day-of-week) ` +
|
|
29
|
+
`or nicknames (@daily, @hourly, etc.)`);
|
|
30
|
+
}
|
|
31
|
+
// Store cron expression as metadata
|
|
32
|
+
defineTypedMetadata(ComponentConstants.CronKey, params.cron, target);
|
|
15
33
|
});
|
|
16
34
|
};
|
|
17
35
|
//# sourceMappingURL=Schedule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schedule.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/Schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"Schedule.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/Schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAkB,EAAE;IACjE,OAAO,eAAe,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QAChE,gDAAgD;QAChD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,4BAA4B,MAAM,CAAC,IAAI,sBAAsB,MAAM,CAAC,IAAI,IAAI;gBAC1E,kEAAkE;gBAClE,sCAAsC,CACzC,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export * from '../../../ioc/component/decorators/Component';
|
|
2
2
|
export * from './Controller';
|
|
3
3
|
export * from './Middleware';
|
|
4
|
+
export * from './PostProcessor';
|
|
4
5
|
export * from './Schedule';
|
|
5
6
|
export * from './Service';
|
|
6
7
|
export * from './WebSocket';
|
|
7
8
|
export * from './StaticServe';
|
|
8
9
|
export * from './EventService';
|
|
10
|
+
export * from './FrontendController';
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export * from '../../../ioc/component/decorators/Component';
|
|
2
2
|
export * from './Controller';
|
|
3
3
|
export * from './Middleware';
|
|
4
|
+
export * from './PostProcessor';
|
|
4
5
|
export * from './Schedule';
|
|
5
6
|
export * from './Service';
|
|
6
7
|
export * from './WebSocket';
|
|
7
8
|
export * from './StaticServe';
|
|
8
9
|
export * from './EventService';
|
|
10
|
+
export * from './FrontendController';
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/server/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/server/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC"}
|
|
@@ -150,13 +150,16 @@ let Ulak = class Ulak {
|
|
|
150
150
|
async toSocket(namespace, socketId, data) {
|
|
151
151
|
try {
|
|
152
152
|
const service = this.getNamespaceService(namespace);
|
|
153
|
-
//
|
|
153
|
+
// Try direct send first (fastest path - local socket)
|
|
154
154
|
const socket = service.sockets.get(socketId);
|
|
155
|
-
if (
|
|
156
|
-
|
|
155
|
+
if (socket) {
|
|
156
|
+
socket.send(typeof data === 'string' ? data : JSON.stringify(data));
|
|
157
|
+
return;
|
|
157
158
|
}
|
|
158
|
-
//
|
|
159
|
-
socket
|
|
159
|
+
// Cross-pod fallback: publish to the socket's ID topic
|
|
160
|
+
// Each socket auto-subscribes to its own ID in onOpenInternal(),
|
|
161
|
+
// so the transport will deliver the message to the correct pod
|
|
162
|
+
service.to(socketId, data);
|
|
160
163
|
}
|
|
161
164
|
catch (error) {
|
|
162
165
|
this.logger.error(`${blue('[Ulak]')} Send to socket "${socketId}" failed in namespace "${namespace}"`, error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ulak.js","sourceRoot":"","sources":["../../../../lib/server/messaging/Ulak.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Ulak.js","sourceRoot":"","sources":["../../../../lib/server/messaging/Ulak.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract interface for scheduled task classes.
|
|
3
|
+
* Classes decorated with @Schedule must implement this interface.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* @Schedule({ cron: '0 9 * * MON-FRI' })
|
|
8
|
+
* class MyTask implements AsenaSchedule {
|
|
9
|
+
* async execute() {
|
|
10
|
+
* // Runs at 9:00 AM on weekdays
|
|
11
|
+
* }
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export interface AsenaSchedule {
|
|
16
|
+
/**
|
|
17
|
+
* Called on each scheduled execution.
|
|
18
|
+
* Can be async - errors are caught and logged without stopping the schedule.
|
|
19
|
+
*/
|
|
20
|
+
execute(): Promise<void> | void;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsenaSchedule.js","sourceRoot":"","sources":["../../../../lib/server/schedule/AsenaSchedule.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ICoreService } from '../../ioc';
|
|
2
|
+
/**
|
|
3
|
+
* @description CronRunner - Core service for managing scheduled job execution.
|
|
4
|
+
* Uses Bun.cron.parse() for next-run calculation + setTimeout for timing.
|
|
5
|
+
*
|
|
6
|
+
* Design:
|
|
7
|
+
* - Lazy: zero cost until startAll() is called
|
|
8
|
+
* - Error-resilient: handler errors are logged but don't stop the schedule
|
|
9
|
+
* - Idempotent: multiple startAll() calls have no effect
|
|
10
|
+
*
|
|
11
|
+
* @internal Managed by PrepareScheduleService, not used directly by users
|
|
12
|
+
*/
|
|
13
|
+
export declare class CronRunner implements ICoreService {
|
|
14
|
+
readonly serviceName = "CronRunner";
|
|
15
|
+
private logger;
|
|
16
|
+
private jobs;
|
|
17
|
+
/**
|
|
18
|
+
* Register a new scheduled job.
|
|
19
|
+
* Job won't start until startAll() is called.
|
|
20
|
+
*
|
|
21
|
+
* @param name - Job identifier for logging
|
|
22
|
+
* @param cronExpression - 5-field cron expression or nickname (@daily, @hourly, etc.)
|
|
23
|
+
* @param handler - Function to execute on schedule
|
|
24
|
+
*/
|
|
25
|
+
registerJob(name: string, cronExpression: string, handler: () => Promise<void> | void): void;
|
|
26
|
+
/**
|
|
27
|
+
* Start all registered jobs.
|
|
28
|
+
* Idempotent - already running jobs are skipped.
|
|
29
|
+
*/
|
|
30
|
+
startAll(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Stop all running jobs and clear timers.
|
|
33
|
+
*/
|
|
34
|
+
stopAll(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Get registered job count (for testing/debugging)
|
|
37
|
+
*/
|
|
38
|
+
get jobCount(): number;
|
|
39
|
+
/**
|
|
40
|
+
* Get all job names (for testing/debugging)
|
|
41
|
+
*/
|
|
42
|
+
getJobNames(): string[];
|
|
43
|
+
/**
|
|
44
|
+
* Check if any job is currently running
|
|
45
|
+
*/
|
|
46
|
+
get hasRunningJobs(): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Clear all jobs (for testing)
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
clearJobs(): void;
|
|
52
|
+
private stopJob;
|
|
53
|
+
private scheduleNext;
|
|
54
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
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 { CoreService, ICoreServiceNames } from '../../ioc';
|
|
11
|
+
import { Inject } from '../../ioc/component';
|
|
12
|
+
/**
|
|
13
|
+
* @description CronRunner - Core service for managing scheduled job execution.
|
|
14
|
+
* Uses Bun.cron.parse() for next-run calculation + setTimeout for timing.
|
|
15
|
+
*
|
|
16
|
+
* Design:
|
|
17
|
+
* - Lazy: zero cost until startAll() is called
|
|
18
|
+
* - Error-resilient: handler errors are logged but don't stop the schedule
|
|
19
|
+
* - Idempotent: multiple startAll() calls have no effect
|
|
20
|
+
*
|
|
21
|
+
* @internal Managed by PrepareScheduleService, not used directly by users
|
|
22
|
+
*/
|
|
23
|
+
let CronRunner = class CronRunner {
|
|
24
|
+
serviceName = 'CronRunner';
|
|
25
|
+
logger;
|
|
26
|
+
jobs = [];
|
|
27
|
+
/**
|
|
28
|
+
* Register a new scheduled job.
|
|
29
|
+
* Job won't start until startAll() is called.
|
|
30
|
+
*
|
|
31
|
+
* @param name - Job identifier for logging
|
|
32
|
+
* @param cronExpression - 5-field cron expression or nickname (@daily, @hourly, etc.)
|
|
33
|
+
* @param handler - Function to execute on schedule
|
|
34
|
+
*/
|
|
35
|
+
registerJob(name, cronExpression, handler) {
|
|
36
|
+
this.jobs.push({
|
|
37
|
+
name,
|
|
38
|
+
cronExpression,
|
|
39
|
+
handler,
|
|
40
|
+
timer: null,
|
|
41
|
+
running: false,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Start all registered jobs.
|
|
46
|
+
* Idempotent - already running jobs are skipped.
|
|
47
|
+
*/
|
|
48
|
+
startAll() {
|
|
49
|
+
for (const job of this.jobs) {
|
|
50
|
+
if (job.running)
|
|
51
|
+
continue;
|
|
52
|
+
job.running = true;
|
|
53
|
+
this.scheduleNext(job);
|
|
54
|
+
this.logger.info(`[Schedule] Started "${job.name}"`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Stop all running jobs and clear timers.
|
|
59
|
+
*/
|
|
60
|
+
stopAll() {
|
|
61
|
+
for (const job of this.jobs) {
|
|
62
|
+
this.stopJob(job);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get registered job count (for testing/debugging)
|
|
67
|
+
*/
|
|
68
|
+
get jobCount() {
|
|
69
|
+
return this.jobs.length;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get all job names (for testing/debugging)
|
|
73
|
+
*/
|
|
74
|
+
getJobNames() {
|
|
75
|
+
return this.jobs.map((j) => j.name);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Check if any job is currently running
|
|
79
|
+
*/
|
|
80
|
+
get hasRunningJobs() {
|
|
81
|
+
return this.jobs.some((j) => j.running);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Clear all jobs (for testing)
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
clearJobs() {
|
|
88
|
+
this.stopAll();
|
|
89
|
+
this.jobs = [];
|
|
90
|
+
}
|
|
91
|
+
stopJob(job) {
|
|
92
|
+
job.running = false;
|
|
93
|
+
if (job.timer) {
|
|
94
|
+
clearTimeout(job.timer);
|
|
95
|
+
job.timer = null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
scheduleNext(job) {
|
|
99
|
+
if (!job.running)
|
|
100
|
+
return;
|
|
101
|
+
const now = Date.now();
|
|
102
|
+
const nextRun = Bun.cron.parse(job.cronExpression, now);
|
|
103
|
+
if (!nextRun) {
|
|
104
|
+
this.logger.warn(`[Schedule] No next run found for "${job.name}", stopping`);
|
|
105
|
+
job.running = false;
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const delay = nextRun.getTime() - now;
|
|
109
|
+
job.timer = setTimeout(() => {
|
|
110
|
+
if (!job.running)
|
|
111
|
+
return;
|
|
112
|
+
void Promise.resolve(job.handler())
|
|
113
|
+
.catch((error) => {
|
|
114
|
+
this.logger.error(`[Schedule] Error in "${job.name}":`, error);
|
|
115
|
+
})
|
|
116
|
+
.then(() => {
|
|
117
|
+
this.scheduleNext(job);
|
|
118
|
+
});
|
|
119
|
+
}, delay);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
__decorate([
|
|
123
|
+
Inject(ICoreServiceNames.SERVER_LOGGER),
|
|
124
|
+
__metadata("design:type", Object)
|
|
125
|
+
], CronRunner.prototype, "logger", void 0);
|
|
126
|
+
CronRunner = __decorate([
|
|
127
|
+
CoreService(ICoreServiceNames.CRON_RUNNER)
|
|
128
|
+
], CronRunner);
|
|
129
|
+
export { CronRunner };
|
|
130
|
+
//# sourceMappingURL=CronRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CronRunner.js","sourceRoot":"","sources":["../../../../lib/server/schedule/CronRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/server/schedule/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ICoreService } from '../../../ioc';
|
|
2
|
+
export interface PreparedHTMLRoute {
|
|
3
|
+
path: string;
|
|
4
|
+
htmlBundle: unknown;
|
|
5
|
+
controllerName: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @description Core service for preparing FrontendController components.
|
|
9
|
+
* Resolves FrontendControllers from the container, reads @Page metadata,
|
|
10
|
+
* and collects HTML routes. Adapter registration is handled by AsenaServer.
|
|
11
|
+
*/
|
|
12
|
+
export declare class PrepareFrontendControllerService implements ICoreService {
|
|
13
|
+
serviceName: string;
|
|
14
|
+
private container;
|
|
15
|
+
prepare(): Promise<PreparedHTMLRoute[]>;
|
|
16
|
+
private extractHTMLRoutes;
|
|
17
|
+
}
|