@asenajs/asena 0.7.1 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/lib/adapter/AsenaAdapter.d.ts +2 -2
- package/dist/lib/adapter/AsenaAdapter.js.map +1 -1
- package/dist/lib/adapter/types/ServeOptions.d.ts +16 -0
- package/dist/lib/adapter/types/ValidationError.d.ts +53 -0
- package/dist/lib/adapter/types/ValidationError.js +24 -0
- package/dist/lib/adapter/types/ValidationError.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 +25 -0
- package/dist/lib/ioc/Container.js +47 -0
- package/dist/lib/ioc/Container.js.map +1 -1
- package/dist/lib/ioc/CoreContainer.d.ts +5 -3
- package/dist/lib/ioc/CoreContainer.js +9 -3
- package/dist/lib/ioc/CoreContainer.js.map +1 -1
- package/dist/lib/ioc/IocEngine.d.ts +50 -4
- package/dist/lib/ioc/IocEngine.js +138 -12
- package/dist/lib/ioc/IocEngine.js.map +1 -1
- package/dist/lib/ioc/component/componentRegistry.d.ts +22 -0
- package/dist/lib/ioc/component/componentRegistry.js +119 -0
- package/dist/lib/ioc/component/componentRegistry.js.map +1 -0
- package/dist/lib/ioc/component/componentUtils.js +4 -0
- package/dist/lib/ioc/component/componentUtils.js.map +1 -1
- package/dist/lib/ioc/component/decorators/Inject.js +16 -0
- package/dist/lib/ioc/component/decorators/Inject.js.map +1 -1
- package/dist/lib/ioc/component/index.d.ts +1 -0
- package/dist/lib/ioc/component/index.js +1 -0
- package/dist/lib/ioc/component/index.js.map +1 -1
- package/dist/lib/ioc/constants/ComponentConstants.d.ts +4 -0
- package/dist/lib/ioc/constants/ComponentConstants.js +5 -0
- package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
- package/dist/lib/ioc/helper/fileHelper.d.ts +9 -0
- package/dist/lib/ioc/helper/fileHelper.js +41 -11
- package/dist/lib/ioc/helper/fileHelper.js.map +1 -1
- package/dist/lib/ioc/types/ICoreServiceNamesType.d.ts +1 -0
- package/dist/lib/ioc/types/ICoreServiceNamesType.js +1 -0
- package/dist/lib/ioc/types/ICoreServiceNamesType.js.map +1 -1
- package/dist/lib/ioc/types/InjectableComponent.d.ts +10 -0
- package/dist/lib/ioc/types/IocConfig.d.ts +7 -0
- package/dist/lib/ioc/types/decorators/ComponentType.d.ts +2 -1
- package/dist/lib/ioc/types/decorators/ComponentType.js +1 -0
- package/dist/lib/ioc/types/decorators/ComponentType.js.map +1 -1
- package/dist/lib/server/AsenaServer.d.ts +47 -3
- package/dist/lib/server/AsenaServer.js +167 -28
- package/dist/lib/server/AsenaServer.js.map +1 -1
- package/dist/lib/server/AsenaServerFactory.d.ts +38 -3
- package/dist/lib/server/AsenaServerFactory.js +21 -2
- package/dist/lib/server/AsenaServerFactory.js.map +1 -1
- package/dist/lib/server/config/AsenaConfig.d.ts +82 -4
- package/dist/lib/server/config/AsenaConfig.js +39 -1
- package/dist/lib/server/config/AsenaConfig.js.map +1 -1
- package/dist/lib/server/decorators/components/MessageController.d.ts +49 -0
- package/dist/lib/server/decorators/components/MessageController.js +62 -0
- package/dist/lib/server/decorators/components/MessageController.js.map +1 -0
- package/dist/lib/server/decorators/components/index.d.ts +1 -0
- package/dist/lib/server/decorators/components/index.js +1 -0
- package/dist/lib/server/decorators/components/index.js.map +1 -1
- package/dist/lib/server/event/EventDispatchService.d.ts +3 -7
- package/dist/lib/server/event/EventDispatchService.js +9 -40
- package/dist/lib/server/event/EventDispatchService.js.map +1 -1
- package/dist/lib/server/event/PatternHandlerIndex.d.ts +53 -0
- package/dist/lib/server/event/PatternHandlerIndex.js +100 -0
- package/dist/lib/server/event/PatternHandlerIndex.js.map +1 -0
- package/dist/lib/server/event/decorators/On.d.ts +4 -0
- package/dist/lib/server/event/decorators/On.js +6 -0
- package/dist/lib/server/event/decorators/On.js.map +1 -1
- package/dist/lib/server/event/index.d.ts +1 -0
- package/dist/lib/server/event/index.js +2 -0
- package/dist/lib/server/event/index.js.map +1 -1
- package/dist/lib/server/event/types.d.ts +12 -0
- package/dist/lib/server/health/HealthServer.d.ts +26 -0
- package/dist/lib/server/health/HealthServer.js +63 -0
- package/dist/lib/server/health/HealthServer.js.map +1 -0
- package/dist/lib/server/health/index.d.ts +1 -0
- package/dist/lib/server/health/index.js +2 -0
- package/dist/lib/server/health/index.js.map +1 -0
- package/dist/lib/server/messaging/Ulak.d.ts +156 -0
- package/dist/lib/server/messaging/Ulak.js +174 -0
- package/dist/lib/server/messaging/Ulak.js.map +1 -1
- package/dist/lib/server/messaging/types.d.ts +5 -1
- package/dist/lib/server/messaging/types.js +5 -0
- package/dist/lib/server/messaging/types.js.map +1 -1
- package/dist/lib/server/microservice/InMemoryTransport.d.ts +45 -0
- package/dist/lib/server/microservice/InMemoryTransport.js +124 -0
- package/dist/lib/server/microservice/InMemoryTransport.js.map +1 -0
- package/dist/lib/server/microservice/MicroserviceTransport.d.ts +132 -0
- package/dist/lib/server/microservice/MicroserviceTransport.js +2 -0
- package/dist/lib/server/microservice/MicroserviceTransport.js.map +1 -0
- package/dist/lib/server/microservice/decorators/EventPattern.d.ts +38 -0
- package/dist/lib/server/microservice/decorators/EventPattern.js +59 -0
- package/dist/lib/server/microservice/decorators/EventPattern.js.map +1 -0
- package/dist/lib/server/microservice/decorators/MessagePattern.d.ts +31 -0
- package/dist/lib/server/microservice/decorators/MessagePattern.js +55 -0
- package/dist/lib/server/microservice/decorators/MessagePattern.js.map +1 -0
- package/dist/lib/server/microservice/decorators/index.d.ts +2 -0
- package/dist/lib/server/microservice/decorators/index.js +3 -0
- package/dist/lib/server/microservice/decorators/index.js.map +1 -0
- package/dist/lib/server/microservice/index.d.ts +5 -0
- package/dist/lib/server/microservice/index.js +11 -0
- package/dist/lib/server/microservice/index.js.map +1 -0
- package/dist/lib/server/microservice/interceptorChain.d.ts +20 -0
- package/dist/lib/server/microservice/interceptorChain.js +39 -0
- package/dist/lib/server/microservice/interceptorChain.js.map +1 -0
- package/dist/lib/server/microservice/types.d.ts +142 -0
- package/dist/lib/server/microservice/types.js +5 -0
- package/dist/lib/server/microservice/types.js.map +1 -0
- package/dist/lib/server/src/services/PrepareEventService.d.ts +4 -1
- package/dist/lib/server/src/services/PrepareEventService.js +10 -3
- package/dist/lib/server/src/services/PrepareEventService.js.map +1 -1
- package/dist/lib/server/src/services/PrepareMicroserviceService.d.ts +66 -0
- package/dist/lib/server/src/services/PrepareMicroserviceService.js +193 -0
- package/dist/lib/server/src/services/PrepareMicroserviceService.js.map +1 -0
- package/dist/lib/test/factory/deepMock.d.ts +25 -0
- package/dist/lib/test/factory/deepMock.js +105 -0
- package/dist/lib/test/factory/deepMock.js.map +1 -0
- package/dist/lib/test/factory/ulakStub.d.ts +44 -0
- package/dist/lib/test/factory/ulakStub.js +40 -0
- package/dist/lib/test/factory/ulakStub.js.map +1 -0
- package/dist/lib/test/harness/createTestApp.d.ts +33 -0
- package/dist/lib/test/harness/createTestApp.js +105 -0
- package/dist/lib/test/harness/createTestApp.js.map +1 -0
- package/dist/lib/test/harness/createWebTest.d.ts +28 -0
- package/dist/lib/test/harness/createWebTest.js +127 -0
- package/dist/lib/test/harness/createWebTest.js.map +1 -0
- package/dist/lib/test/harness/silentLogger.d.ts +27 -0
- package/dist/lib/test/harness/silentLogger.js +54 -0
- package/dist/lib/test/harness/silentLogger.js.map +1 -0
- package/dist/lib/test/harness/types.d.ts +147 -0
- package/dist/lib/test/harness/types.js +2 -0
- package/dist/lib/test/harness/types.js.map +1 -0
- package/dist/lib/test/http/TestHttpCall.d.ts +78 -0
- package/dist/lib/test/http/TestHttpCall.js +149 -0
- package/dist/lib/test/http/TestHttpCall.js.map +1 -0
- package/dist/lib/test/http/TestHttpResponse.d.ts +46 -0
- package/dist/lib/test/http/TestHttpResponse.js +70 -0
- package/dist/lib/test/http/TestHttpResponse.js.map +1 -0
- package/dist/lib/test/index.d.ts +9 -0
- package/dist/lib/test/index.js +8 -0
- package/dist/lib/test/index.js.map +1 -1
- package/dist/lib/test/metadata/discovery.d.ts +21 -0
- package/dist/lib/test/metadata/discovery.js +37 -8
- package/dist/lib/test/metadata/discovery.js.map +1 -1
- package/dist/lib/test/mockComponent.d.ts +25 -0
- package/dist/lib/test/mockComponent.js +39 -6
- package/dist/lib/test/mockComponent.js.map +1 -1
- package/dist/lib/test/types.d.ts +13 -0
- package/package.json +11 -7
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
// create file helper class
|
|
4
|
+
const CONFIG_FILE_NAME = 'asena-config.ts';
|
|
5
|
+
/**
|
|
6
|
+
* Directories that never hold application components. `node_modules` alone is the
|
|
7
|
+
* overwhelming majority of a project's files, and walking it made every boot stat
|
|
8
|
+
* tens of thousands of paths. Dotfolders (`.git`, `.idea`, `.vscode`, ...) are
|
|
9
|
+
* skipped by prefix rather than by name.
|
|
10
|
+
*/
|
|
11
|
+
const EXCLUDED_DIRECTORIES = new Set(['node_modules']);
|
|
12
|
+
const isExcludedDirectory = (name) => name.startsWith('.') || EXCLUDED_DIRECTORIES.has(name);
|
|
4
13
|
export const getAllFiles = (dirPath, arrayOfFiles = []) => {
|
|
5
|
-
|
|
14
|
+
// Sorted because `readdirSync` order is not defined: without this, which file wins a
|
|
15
|
+
// name collision - or which config is picked up first - can differ between machines
|
|
16
|
+
const files = fs.readdirSync(dirPath, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name));
|
|
6
17
|
files.forEach((file) => {
|
|
7
|
-
const filePath = path.join(dirPath, file);
|
|
8
|
-
if (
|
|
18
|
+
const filePath = path.join(dirPath, file.name);
|
|
19
|
+
if (file.isDirectory()) {
|
|
20
|
+
if (isExcludedDirectory(file.name)) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
9
23
|
getAllFiles(filePath, arrayOfFiles);
|
|
10
24
|
}
|
|
11
25
|
else {
|
|
@@ -18,20 +32,36 @@ export const readJson = (path) => {
|
|
|
18
32
|
const file = fs.readFileSync(path, { encoding: 'utf-8' });
|
|
19
33
|
return JSON.parse(file);
|
|
20
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* @description Locate and load `asena-config.ts`.
|
|
37
|
+
*
|
|
38
|
+
* The config sits in the project root in every supported layout, so that is checked
|
|
39
|
+
* directly before falling back to a walk. The fallback is also order-dependent - the
|
|
40
|
+
* first match wins and `readdirSync` order is not defined - which is the second reason
|
|
41
|
+
* to prefer the direct hit.
|
|
42
|
+
* @returns {Promise<IocConfig | null>} The config, or null when there is none
|
|
43
|
+
*/
|
|
21
44
|
export const readConfigFile = async () => {
|
|
22
45
|
const folderPath = path.join(process.cwd());
|
|
46
|
+
const rootConfig = path.join(folderPath, CONFIG_FILE_NAME);
|
|
47
|
+
if (fs.existsSync(rootConfig)) {
|
|
48
|
+
return importConfigFile(rootConfig);
|
|
49
|
+
}
|
|
23
50
|
const files = getAllFiles(folderPath);
|
|
24
51
|
for (const file of files) {
|
|
25
|
-
if (file.endsWith(
|
|
26
|
-
|
|
27
|
-
return (await import(file)).default;
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
console.error('Cannot read config file', e);
|
|
31
|
-
throw new Error('AsenaConfig file cannot read.');
|
|
32
|
-
}
|
|
52
|
+
if (file.endsWith(CONFIG_FILE_NAME)) {
|
|
53
|
+
return importConfigFile(file);
|
|
33
54
|
}
|
|
34
55
|
}
|
|
35
56
|
return null;
|
|
36
57
|
};
|
|
58
|
+
const importConfigFile = async (file) => {
|
|
59
|
+
try {
|
|
60
|
+
return (await import(file)).default;
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
console.error('Cannot read config file', e);
|
|
64
|
+
throw new Error('AsenaConfig file cannot read.');
|
|
65
|
+
}
|
|
66
|
+
};
|
|
37
67
|
//# sourceMappingURL=fileHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileHelper.js","sourceRoot":"","sources":["../../../../lib/ioc/helper/fileHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,2BAA2B;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,eAAyB,EAAE,EAAY,EAAE;IACpF,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"fileHelper.js","sourceRoot":"","sources":["../../../../lib/ioc/helper/fileHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ export declare enum ICoreServiceNames {
|
|
|
19
19
|
PREPARE_EVENT_SERVICE = "PrepareEventService",
|
|
20
20
|
PREPARE_SCHEDULE_SERVICE = "PrepareScheduleService",
|
|
21
21
|
PREPARE_FRONTEND_CONTROLLER_SERVICE = "PrepareFrontendControllerService",
|
|
22
|
+
PREPARE_MICROSERVICE_SERVICE = "PrepareMicroserviceService",
|
|
22
23
|
CRON_RUNNER = "CronRunner",
|
|
23
24
|
CORE_CONTAINER = "CoreContainer",
|
|
24
25
|
ASENA_SERVER = "AsenaServer"
|
|
@@ -24,6 +24,7 @@ export var ICoreServiceNames;
|
|
|
24
24
|
ICoreServiceNames["PREPARE_EVENT_SERVICE"] = "PrepareEventService";
|
|
25
25
|
ICoreServiceNames["PREPARE_SCHEDULE_SERVICE"] = "PrepareScheduleService";
|
|
26
26
|
ICoreServiceNames["PREPARE_FRONTEND_CONTROLLER_SERVICE"] = "PrepareFrontendControllerService";
|
|
27
|
+
ICoreServiceNames["PREPARE_MICROSERVICE_SERVICE"] = "PrepareMicroserviceService";
|
|
27
28
|
// Schedule Services (Phase 5)
|
|
28
29
|
ICoreServiceNames["CRON_RUNNER"] = "CronRunner";
|
|
29
30
|
// Factory Services (Phase 6+)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICoreServiceNamesType.js","sourceRoot":"","sources":["../../../../lib/ioc/types/ICoreServiceNamesType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"ICoreServiceNamesType.js","sourceRoot":"","sources":["../../../../lib/ioc/types/ICoreServiceNamesType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,iBA+BX;AA/BD,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;IACxE,gFAA2D,CAAA;IAE3D,8BAA8B;IAC9B,+CAA0B,CAAA;IAE1B,8BAA8B;IAC9B,qDAAgC,CAAA;IAChC,iDAA4B,CAAA;AAC9B,CAAC,EA/BW,iBAAiB,KAAjB,iBAAiB,QA+B5B"}
|
|
@@ -6,6 +6,16 @@ export interface InjectableComponent {
|
|
|
6
6
|
export interface Dependencies {
|
|
7
7
|
[key: string]: string;
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Maps a field name to the class reference it was injected with.
|
|
11
|
+
*
|
|
12
|
+
* Only populated for class-based injections (`@Inject(UserService)`); string-based
|
|
13
|
+
* injections (`@Inject('UserService')`) carry no class reference and are absent here.
|
|
14
|
+
* Used by the test utilities to auto-generate method mocks from the real class shape.
|
|
15
|
+
*/
|
|
16
|
+
export interface DependencyClasses {
|
|
17
|
+
[key: string]: Class;
|
|
18
|
+
}
|
|
9
19
|
export interface Expressions {
|
|
10
20
|
[key: string]: (injectedClass: any) => any;
|
|
11
21
|
}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
export interface IocConfig {
|
|
2
2
|
sourceFolder: string;
|
|
3
3
|
rootFile: string;
|
|
4
|
+
/**
|
|
5
|
+
* Milliseconds a single component file may take to import before the engine
|
|
6
|
+
* warns about it. Set to 0 to disable the warning.
|
|
7
|
+
*
|
|
8
|
+
* @default 10000
|
|
9
|
+
*/
|
|
10
|
+
importTimeout?: number;
|
|
4
11
|
}
|
|
@@ -10,5 +10,6 @@ export var ComponentType;
|
|
|
10
10
|
ComponentType["CONFIG"] = "CONFIG";
|
|
11
11
|
ComponentType["EVENT"] = "EVENT";
|
|
12
12
|
ComponentType["POST_PROCESSOR"] = "POST_PROCESSOR";
|
|
13
|
+
ComponentType["MESSAGE_CONTROLLER"] = "MESSAGE_CONTROLLER";
|
|
13
14
|
})(ComponentType || (ComponentType = {}));
|
|
14
15
|
//# 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,
|
|
1
|
+
{"version":3,"file":"ComponentType.js","sourceRoot":"","sources":["../../../../../lib/ioc/types/decorators/ComponentType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAYX;AAZD,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;IACjC,0DAAyC,CAAA;AAC3C,CAAC,EAZW,aAAa,KAAb,aAAa,QAYxB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type CoreContainer, type ICoreService } from '../ioc';
|
|
2
|
-
import type { AsenaAdapter } from '../adapter';
|
|
2
|
+
import type { AsenaAdapter, AsenaStartOptions } from '../adapter';
|
|
3
|
+
import * as bun from 'bun';
|
|
4
|
+
import type { HealthOptions } from './AsenaServerFactory';
|
|
3
5
|
/**
|
|
4
6
|
* @description AsenaServer - Main server class for Asena framework
|
|
5
7
|
* Now a core service managed by IoC container with field injection
|
|
@@ -7,8 +9,10 @@ import type { AsenaAdapter } from '../adapter';
|
|
|
7
9
|
export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements ICoreService {
|
|
8
10
|
serviceName: string;
|
|
9
11
|
private _coreContainer;
|
|
10
|
-
private _adapter
|
|
12
|
+
private _adapter?;
|
|
11
13
|
private _logger;
|
|
14
|
+
private _iocEngine;
|
|
15
|
+
private _ulak;
|
|
12
16
|
private prepareMiddleware;
|
|
13
17
|
private prepareConfigService;
|
|
14
18
|
private prepareWebsocketService;
|
|
@@ -17,10 +21,16 @@ export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements IC
|
|
|
17
21
|
private prepareEventService;
|
|
18
22
|
private prepareScheduleService;
|
|
19
23
|
private prepareFrontendControllerService;
|
|
24
|
+
private prepareMicroserviceService;
|
|
20
25
|
private cronRunner;
|
|
21
26
|
private _port;
|
|
22
27
|
private _gc;
|
|
23
28
|
private controllers;
|
|
29
|
+
private microserviceTransports;
|
|
30
|
+
private messagingInterceptors;
|
|
31
|
+
private _health?;
|
|
32
|
+
private healthServer?;
|
|
33
|
+
private _httpServer?;
|
|
24
34
|
/**
|
|
25
35
|
* @description Lifecycle hook - called after dependencies are injected
|
|
26
36
|
* @returns {void}
|
|
@@ -29,9 +39,10 @@ export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements IC
|
|
|
29
39
|
/**
|
|
30
40
|
* @description Start the server
|
|
31
41
|
* Main entry point after factory creation
|
|
42
|
+
* @param {AsenaStartOptions} options - Optional transport overrides forwarded to the adapter
|
|
32
43
|
* @returns {Promise<void>}
|
|
33
44
|
*/
|
|
34
|
-
start(): Promise<void>;
|
|
45
|
+
start(options?: AsenaStartOptions): Promise<void>;
|
|
35
46
|
/**
|
|
36
47
|
* @description Stop the server and release resources
|
|
37
48
|
* @param {boolean} closeActiveConnections - Whether to close active connections immediately
|
|
@@ -45,11 +56,37 @@ export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements IC
|
|
|
45
56
|
* @returns {this}
|
|
46
57
|
*/
|
|
47
58
|
port(port: number): this;
|
|
59
|
+
/**
|
|
60
|
+
* @description Configure the optional health endpoint (mainly for headless/K8s probes)
|
|
61
|
+
* Builder pattern for API compatibility
|
|
62
|
+
* @param {HealthOptions} options - Health endpoint options
|
|
63
|
+
* @returns {this}
|
|
64
|
+
*/
|
|
65
|
+
health(options: HealthOptions): this;
|
|
66
|
+
/**
|
|
67
|
+
* @description Lazily resolve the HTTP adapter if one was registered.
|
|
68
|
+
* Headless mode (no adapter) is valid - all adapter-dependent steps are skipped.
|
|
69
|
+
* @returns {Promise<void>}
|
|
70
|
+
*/
|
|
71
|
+
private resolveAdapter;
|
|
72
|
+
/**
|
|
73
|
+
* @description Warn about HTTP-only components that cannot work without an adapter
|
|
74
|
+
* @returns {void}
|
|
75
|
+
*/
|
|
76
|
+
private warnAdapterlessComponents;
|
|
48
77
|
/**
|
|
49
78
|
* @description Get current CoreContainer instance
|
|
50
79
|
* @returns {CoreContainer}
|
|
51
80
|
*/
|
|
52
81
|
get coreContainer(): CoreContainer;
|
|
82
|
+
/**
|
|
83
|
+
* @description The Bun server the adapter is listening on, once start() has run.
|
|
84
|
+
*
|
|
85
|
+
* Undefined in headless mode and before start(). Read `httpServer.port` to learn the
|
|
86
|
+
* actually bound port - the only way to find it out when starting on port 0.
|
|
87
|
+
* @returns {bun.Server | undefined}
|
|
88
|
+
*/
|
|
89
|
+
get httpServer(): bun.Server<any> | undefined;
|
|
53
90
|
/**
|
|
54
91
|
* @description Initialize and register all controllers
|
|
55
92
|
* @returns {Promise<void>}
|
|
@@ -119,4 +156,11 @@ export declare class AsenaServer<A extends AsenaAdapter<any, any>> implements IC
|
|
|
119
156
|
* @returns {Promise<void>}
|
|
120
157
|
*/
|
|
121
158
|
private prepareConfigs;
|
|
159
|
+
/**
|
|
160
|
+
* @description Prepare microservice message handlers and transports
|
|
161
|
+
* Runs before the HTTP adapter starts so handlers are live before HTTP goes up.
|
|
162
|
+
* Also validates that @MessageController components have a configured transport (fail fast).
|
|
163
|
+
* @returns {Promise<void>}
|
|
164
|
+
*/
|
|
165
|
+
private prepareMicroservices;
|
|
122
166
|
}
|
|
@@ -14,6 +14,8 @@ import * as bun from 'bun';
|
|
|
14
14
|
import { blue, green, yellow } from '../logger';
|
|
15
15
|
import { getOwnTypedMetadata, getTypedMetadata } from '../utils/typedMetadata';
|
|
16
16
|
import { Inject, PostConstruct } from '../ioc/component';
|
|
17
|
+
import { normalizeTransportConfig } from './config/AsenaConfig';
|
|
18
|
+
import { HealthServer } from './health/HealthServer';
|
|
17
19
|
/**
|
|
18
20
|
* @description AsenaServer - Main server class for Asena framework
|
|
19
21
|
* Now a core service managed by IoC container with field injection
|
|
@@ -21,8 +23,12 @@ import { Inject, PostConstruct } from '../ioc/component';
|
|
|
21
23
|
let AsenaServer = class AsenaServer {
|
|
22
24
|
serviceName = 'AsenaServer';
|
|
23
25
|
_coreContainer;
|
|
26
|
+
// NOT injected eagerly: resolved lazily in start() via container.has()
|
|
27
|
+
// so the server can boot in headless mode without an HTTP adapter
|
|
24
28
|
_adapter;
|
|
25
29
|
_logger;
|
|
30
|
+
_iocEngine;
|
|
31
|
+
_ulak;
|
|
26
32
|
prepareMiddleware;
|
|
27
33
|
prepareConfigService;
|
|
28
34
|
prepareWebsocketService;
|
|
@@ -31,11 +37,21 @@ let AsenaServer = class AsenaServer {
|
|
|
31
37
|
prepareEventService;
|
|
32
38
|
prepareScheduleService;
|
|
33
39
|
prepareFrontendControllerService;
|
|
40
|
+
prepareMicroserviceService;
|
|
34
41
|
cronRunner;
|
|
35
42
|
// Instance state
|
|
36
43
|
_port;
|
|
37
44
|
_gc = false;
|
|
38
45
|
controllers = [];
|
|
46
|
+
// Microservice transports collected from the transport() config hook
|
|
47
|
+
microserviceTransports = new Map();
|
|
48
|
+
messagingInterceptors = [];
|
|
49
|
+
// Optional health endpoint (mainly for headless deployments / K8s probes)
|
|
50
|
+
_health;
|
|
51
|
+
healthServer;
|
|
52
|
+
// The Bun server returned by the adapter - exposes the actually bound port, which is
|
|
53
|
+
// what a caller needs when starting on port 0 or on a unix socket
|
|
54
|
+
_httpServer;
|
|
39
55
|
/**
|
|
40
56
|
* @description Lifecycle hook - called after dependencies are injected
|
|
41
57
|
* @returns {void}
|
|
@@ -46,25 +62,46 @@ let AsenaServer = class AsenaServer {
|
|
|
46
62
|
/**
|
|
47
63
|
* @description Start the server
|
|
48
64
|
* Main entry point after factory creation
|
|
65
|
+
* @param {AsenaStartOptions} options - Optional transport overrides forwarded to the adapter
|
|
49
66
|
* @returns {Promise<void>}
|
|
50
67
|
*/
|
|
51
|
-
async start() {
|
|
52
|
-
this.
|
|
53
|
-
this._adapter
|
|
68
|
+
async start(options) {
|
|
69
|
+
await this.resolveAdapter();
|
|
70
|
+
if (this._adapter) {
|
|
71
|
+
this._logger.info(`Adapter: ${green(this._adapter.name)} implemented`);
|
|
72
|
+
this._adapter.setPort(this._port);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
this._logger.info('Headless mode: no HTTP adapter configured');
|
|
76
|
+
this.warnAdapterlessComponents();
|
|
77
|
+
}
|
|
78
|
+
// Runs here rather than during the scan: statements between create() and start()
|
|
79
|
+
// in the entry file have executed by now, so a component declared below the
|
|
80
|
+
// bootstrap call is visible and can be reported instead of silently missing
|
|
81
|
+
this._iocEngine.warnAboutLateEntryComponents();
|
|
54
82
|
this._logger.info('All components registered and ready to use');
|
|
55
83
|
// Phase 7: Application setup
|
|
56
84
|
this._coreContainer.setPhase(CoreBootstrapPhase.APPLICATION_SETUP);
|
|
57
85
|
await this.prepareConfigs();
|
|
86
|
+
await this.prepareMicroservices();
|
|
58
87
|
await this.prepareEventService.prepare();
|
|
59
88
|
await this.prepareScheduleService.prepare();
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
89
|
+
if (this._adapter) {
|
|
90
|
+
await this.initializeControllers();
|
|
91
|
+
await this.prepareFrontendControllers();
|
|
92
|
+
await this.prepareWebSocket();
|
|
93
|
+
}
|
|
63
94
|
// Phase 8: Server ready
|
|
64
95
|
this._coreContainer.setPhase(CoreBootstrapPhase.SERVER_READY);
|
|
65
|
-
|
|
96
|
+
if (this._adapter) {
|
|
97
|
+
this._httpServer = await this._adapter.start(options);
|
|
98
|
+
}
|
|
66
99
|
// Start scheduled jobs after server is ready
|
|
67
100
|
this.cronRunner.startAll();
|
|
101
|
+
if (this._health) {
|
|
102
|
+
this.healthServer = new HealthServer(this._health, this._ulak, this._logger);
|
|
103
|
+
this.healthServer.start();
|
|
104
|
+
}
|
|
68
105
|
if (this._gc) {
|
|
69
106
|
bun.gc(true);
|
|
70
107
|
}
|
|
@@ -76,7 +113,11 @@ let AsenaServer = class AsenaServer {
|
|
|
76
113
|
*/
|
|
77
114
|
async stop(closeActiveConnections = true) {
|
|
78
115
|
this.cronRunner.stopAll();
|
|
79
|
-
|
|
116
|
+
this.healthServer?.stop();
|
|
117
|
+
// Adapter first: in-flight HTTP handlers may still call ulak.send(), so
|
|
118
|
+
// transports must outlive the HTTP surface that uses them
|
|
119
|
+
await this._adapter?.stop(closeActiveConnections);
|
|
120
|
+
await this.prepareMicroserviceService.destroy();
|
|
80
121
|
}
|
|
81
122
|
/**
|
|
82
123
|
* @description Configure server port
|
|
@@ -88,6 +129,51 @@ let AsenaServer = class AsenaServer {
|
|
|
88
129
|
this._port = port;
|
|
89
130
|
return this;
|
|
90
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* @description Configure the optional health endpoint (mainly for headless/K8s probes)
|
|
134
|
+
* Builder pattern for API compatibility
|
|
135
|
+
* @param {HealthOptions} options - Health endpoint options
|
|
136
|
+
* @returns {this}
|
|
137
|
+
*/
|
|
138
|
+
health(options) {
|
|
139
|
+
this._health = options;
|
|
140
|
+
return this;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* @description Lazily resolve the HTTP adapter if one was registered.
|
|
144
|
+
* Headless mode (no adapter) is valid - all adapter-dependent steps are skipped.
|
|
145
|
+
* @returns {Promise<void>}
|
|
146
|
+
*/
|
|
147
|
+
async resolveAdapter() {
|
|
148
|
+
if (this._adapter) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (this._coreContainer.container.has(ICoreServiceNames.ASENA_ADAPTER)) {
|
|
152
|
+
this._adapter = await this._coreContainer.resolve(ICoreServiceNames.ASENA_ADAPTER);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* @description Warn about HTTP-only components that cannot work without an adapter
|
|
157
|
+
* @returns {void}
|
|
158
|
+
*/
|
|
159
|
+
warnAdapterlessComponents() {
|
|
160
|
+
const httpOnlyTypes = [ComponentType.CONTROLLER, ComponentType.WEBSOCKET, ComponentType.FRONTEND_CONTROLLER];
|
|
161
|
+
const services = this._coreContainer.container.services;
|
|
162
|
+
for (const type of httpOnlyTypes) {
|
|
163
|
+
const names = [];
|
|
164
|
+
for (const value of Object.values(services)) {
|
|
165
|
+
const entries = Array.isArray(value) ? value : [value];
|
|
166
|
+
for (const entry of entries) {
|
|
167
|
+
if (entry?.Class && getTypedMetadata(type, entry.Class)) {
|
|
168
|
+
names.push(entry.Class.name);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (names.length) {
|
|
173
|
+
this._logger.warn(`Headless mode: ${type} component(s) [${names.join(', ')}] require an HTTP adapter and will be ignored`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
91
177
|
/**
|
|
92
178
|
* @description Get current CoreContainer instance
|
|
93
179
|
* @returns {CoreContainer}
|
|
@@ -95,6 +181,16 @@ let AsenaServer = class AsenaServer {
|
|
|
95
181
|
get coreContainer() {
|
|
96
182
|
return this._coreContainer;
|
|
97
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* @description The Bun server the adapter is listening on, once start() has run.
|
|
186
|
+
*
|
|
187
|
+
* Undefined in headless mode and before start(). Read `httpServer.port` to learn the
|
|
188
|
+
* actually bound port - the only way to find it out when starting on port 0.
|
|
189
|
+
* @returns {bun.Server | undefined}
|
|
190
|
+
*/
|
|
191
|
+
get httpServer() {
|
|
192
|
+
return this._httpServer;
|
|
193
|
+
}
|
|
98
194
|
/**
|
|
99
195
|
* @description Initialize and register all controllers
|
|
100
196
|
* @returns {Promise<void>}
|
|
@@ -285,49 +381,88 @@ let AsenaServer = class AsenaServer {
|
|
|
285
381
|
return;
|
|
286
382
|
}
|
|
287
383
|
if (typeof configInstance.serveOptions === 'function') {
|
|
288
|
-
|
|
384
|
+
if (this._adapter) {
|
|
385
|
+
await this._adapter.serveOptions(configInstance.serveOptions.bind(configInstance));
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
this._logger.warn('Headless mode: serveOptions() ignored (no HTTP adapter)');
|
|
389
|
+
}
|
|
289
390
|
}
|
|
290
391
|
if (typeof configInstance.onError === 'function') {
|
|
291
|
-
|
|
392
|
+
if (this._adapter) {
|
|
393
|
+
await this._adapter.onError(configInstance.onError.bind(configInstance));
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
this._logger.warn('Headless mode: onError() ignored (no HTTP adapter)');
|
|
397
|
+
}
|
|
292
398
|
}
|
|
293
399
|
// Pattern-based global middleware registration
|
|
294
400
|
if (typeof configInstance.globalMiddlewares === 'function') {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
401
|
+
if (this._adapter) {
|
|
402
|
+
const middlewareEntries = await configInstance.globalMiddlewares();
|
|
403
|
+
for (const entry of middlewareEntries) {
|
|
404
|
+
// Normalize entry to config format (handles backward compatibility)
|
|
405
|
+
const config = this.normalizeMiddlewareEntry(entry);
|
|
406
|
+
// Prepare middleware instances
|
|
407
|
+
const preparedMiddlewares = await this.prepareMiddlewares([config.middleware]);
|
|
408
|
+
// Register with adapter (pass route config)
|
|
409
|
+
for (const middleware of preparedMiddlewares) {
|
|
410
|
+
await this._adapter.use(middleware, config.routes);
|
|
411
|
+
}
|
|
304
412
|
}
|
|
305
413
|
}
|
|
414
|
+
else {
|
|
415
|
+
this._logger.warn('Headless mode: globalMiddlewares() ignored (no HTTP adapter)');
|
|
416
|
+
}
|
|
306
417
|
}
|
|
307
|
-
// WebSocket
|
|
418
|
+
// Transport configuration (WebSocket + microservice)
|
|
308
419
|
if (typeof configInstance.transport === 'function') {
|
|
309
|
-
const
|
|
310
|
-
const
|
|
311
|
-
if (
|
|
312
|
-
|
|
420
|
+
const result = await configInstance.transport();
|
|
421
|
+
const normalized = await normalizeTransportConfig(result);
|
|
422
|
+
if (normalized.websocket) {
|
|
423
|
+
if (this._adapter) {
|
|
424
|
+
const wsAdapter = this._adapter.getWebsocketAdapter();
|
|
425
|
+
if (wsAdapter) {
|
|
426
|
+
wsAdapter.transport = normalized.websocket;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
this._logger.warn('Headless mode: websocket transport ignored (no HTTP adapter)');
|
|
431
|
+
}
|
|
313
432
|
}
|
|
433
|
+
// Microservice part works in BOTH modes - consumed by prepareMicroservices()
|
|
434
|
+
this.microserviceTransports = normalized.microservices;
|
|
435
|
+
this.messagingInterceptors = normalized.interceptors;
|
|
314
436
|
}
|
|
315
437
|
const name = getOwnTypedMetadata(ComponentConstants.NameKey, configInstance.constructor);
|
|
316
438
|
this._logger.info(`Config ${yellow(name)} applied`);
|
|
317
439
|
}
|
|
440
|
+
/**
|
|
441
|
+
* @description Prepare microservice message handlers and transports
|
|
442
|
+
* Runs before the HTTP adapter starts so handlers are live before HTTP goes up.
|
|
443
|
+
* Also validates that @MessageController components have a configured transport (fail fast).
|
|
444
|
+
* @returns {Promise<void>}
|
|
445
|
+
*/
|
|
446
|
+
async prepareMicroservices() {
|
|
447
|
+
await this.prepareMicroserviceService.prepare(this.microserviceTransports, this.messagingInterceptors);
|
|
448
|
+
}
|
|
318
449
|
};
|
|
319
450
|
__decorate([
|
|
320
451
|
Inject(ICoreServiceNames.CORE_CONTAINER),
|
|
321
452
|
__metadata("design:type", Function)
|
|
322
453
|
], AsenaServer.prototype, "_coreContainer", void 0);
|
|
323
|
-
__decorate([
|
|
324
|
-
Inject(ICoreServiceNames.ASENA_ADAPTER),
|
|
325
|
-
__metadata("design:type", Object)
|
|
326
|
-
], AsenaServer.prototype, "_adapter", void 0);
|
|
327
454
|
__decorate([
|
|
328
455
|
Inject(ICoreServiceNames.SERVER_LOGGER),
|
|
329
456
|
__metadata("design:type", Object)
|
|
330
457
|
], AsenaServer.prototype, "_logger", void 0);
|
|
458
|
+
__decorate([
|
|
459
|
+
Inject(ICoreServiceNames.IOC_ENGINE),
|
|
460
|
+
__metadata("design:type", Function)
|
|
461
|
+
], AsenaServer.prototype, "_iocEngine", void 0);
|
|
462
|
+
__decorate([
|
|
463
|
+
Inject(ICoreServiceNames.__ULAK__),
|
|
464
|
+
__metadata("design:type", Function)
|
|
465
|
+
], AsenaServer.prototype, "_ulak", void 0);
|
|
331
466
|
__decorate([
|
|
332
467
|
Inject(ICoreServiceNames.PREPARE_MIDDLEWARE_SERVICE),
|
|
333
468
|
__metadata("design:type", Function)
|
|
@@ -360,6 +495,10 @@ __decorate([
|
|
|
360
495
|
Inject(ICoreServiceNames.PREPARE_FRONTEND_CONTROLLER_SERVICE),
|
|
361
496
|
__metadata("design:type", Function)
|
|
362
497
|
], AsenaServer.prototype, "prepareFrontendControllerService", void 0);
|
|
498
|
+
__decorate([
|
|
499
|
+
Inject(ICoreServiceNames.PREPARE_MICROSERVICE_SERVICE),
|
|
500
|
+
__metadata("design:type", Function)
|
|
501
|
+
], AsenaServer.prototype, "prepareMicroserviceService", void 0);
|
|
363
502
|
__decorate([
|
|
364
503
|
Inject(ICoreServiceNames.CRON_RUNNER),
|
|
365
504
|
__metadata("design:type", Function)
|
|
@@ -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;AAO/E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMzD;;;GAGG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAW;IACf,WAAW,GAAG,aAAa,CAAC;IAG3B,cAAc,CAAiB;IAG/B,QAAQ,CAAK;IAGb,OAAO,CAAgB;IAGvB,iBAAiB,CAA4B;IAG7C,oBAAoB,CAAwB;IAG5C,uBAAuB,CAA2B;IAGlD,uBAAuB,CAA2B;IAGlD,+BAA+B,CAAmC;IAGlE,mBAAmB,CAAsB;IAGzC,sBAAsB,CAAyB;IAG/C,gCAAgC,CAAmC;IAGnE,UAAU,CAAa;IAE/B,iBAAiB;IACT,KAAK,CAAU;IAEf,GAAG,GAAG,KAAK,CAAC;IAEZ,WAAW,GAAY,EAAE,CAAC;IAElC;;;OAGG;IAEI,MAAM;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAEhE,6BAA6B;QAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,wBAAwB;QACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAE9D,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAE5B,6CAA6C;QAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI;QAC7C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAC,IAAY;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,qBAAqB;QACjC,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEvC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA2D,CAAC;QAE5F,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,mBAAmB,CAAQ,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAErG,MAAM,SAAS,GAAW,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAEhH,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YAE5D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC7E,MAAM,cAAc,GAClB,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;gBAE5F,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;gBAE1F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;gBAC9D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAExE,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAChC,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,WAAW;oBACxB,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC1C,WAAW,EAAE,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,WAAW,CAAC;oBACpE,SAAS,EAAE,iBAAiB;oBAC5B,cAAc;oBACd,kBAAkB,EAAE,SAAS;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,gBAA8E,EAC9E,MAAc,EACd,QAAgB,EAChB,cAAsB,EACtB,WAAmB;QAEnB,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC;QAEvD,iDAAiD;QACjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,KAAK;gBACxC,yBAAyB,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,WAAW,MAAM;gBAC9E,kBAAkB,cAAc,IAAI,WAAW,IAAI,CACtD,CAAC;QACJ,CAAC;QAED,iGAAiG;QACjG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;gBAC5C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACb,iCAAiC,QAAQ,mBAAmB,GAAG,KAAK;wBAClE,yBAAyB,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,WAAW,MAAM;wBACxE,kBAAkB,cAAc,IAAI,WAAW,IAAI,CACtD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,MAAM,MAAM,GAAG,OAAO,QAAQ,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9C,IAAI,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,uBAAuB,QAAQ,KAAK;gBACvE,yBAAyB,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,WAAW,MAAM;gBAC9E,kBAAkB,cAAc,IAAI,WAAW,IAAI,CACtD,CAAC;QACJ,CAAC;QAED,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,yBAAyB;QACrC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAQ,aAAa,CAAC,UAAU,CAAC,CAAC;QAEpG,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,0CAA0C;YAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAChE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,WAAsB,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,wBAAwB,CAAC,gBAAkC;QACvE,OAAO,MAAM,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,qBAAqB,CACjC,EAAE,UAAU,EAAE,SAAS,EAA2B,EAClD,SAAS,GAAG,KAAK;QAEjB,MAAM,cAAc,GAClB,gBAAgB,CAAoB,kBAAkB,CAAC,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEvG,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAElE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,8DAA8D;QAC9D,8CAA8C;QAC9C,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9D,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAC,SAA8B;QAC3D,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,sBAAsB,CAAC,gBAA2B;QAC9D,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,WAAW,IAAI,EAAE,CAAC;QAE7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAAC,WAA8B;QAC7D,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,0BAA0B;QACtC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,OAAO,EAAE,CAAC;QAEzE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,gBAAgB;QAC5B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC;QAEhE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YACzF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,SAA6B,EAAE,EAAE,IAAI,CAAC,CAAC;YAE1G,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBACzC,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,WAAW;gBACxB,gBAAgB,EAAE,SAAS;gBAC3B,cAAc,EAAE,gBAAgB,CAAS,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC;aAC5F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,wBAAwB,CAAC,KAA4B;QAC3D,gDAAgD;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,yDAAyD;QACzD,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,SAAS,EAAE,wCAAwC;SAC5D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,cAAc;QAC1B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAEjE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,cAAc,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,OAAO,cAAc,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACjD,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,+CAA+C;QAC/C,IAAI,OAAO,cAAc,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC3D,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC,iBAAiB,EAAE,CAAC;YAEnE,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;gBACtC,oEAAoE;gBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBAEpD,+BAA+B;gBAC/B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;gBAE/E,4CAA4C;gBAC5C,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;oBAC7C,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,cAAc,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YAEtD,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,mBAAmB,CAAS,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;QAEjG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;CACF,CAAA;AA9YS;IADP,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC;;mDACF;AAG/B;IADP,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC;;6CACnB;AAGb;IADP,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC;;4CACT;AAGvB;IADP,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,CAAC;;sDACA;AAG7C;IADP,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;;yDACG;AAG5C;IADP,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC;;4DACM;AAGlD;IADP,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC;;4DACM;AAGlD;IADP,MAAM,CAAC,iBAAiB,CAAC,mCAAmC,CAAC;;oEACY;AAGlE;IADP,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;;wDACC;AAGzC;IADP,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;;2DACI;AAG/C;IADP,MAAM,CAAC,iBAAiB,CAAC,mCAAmC,CAAC;;qEACa;AAGnE;IADP,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC;;+CACP;AAcxB;IADN,aAAa,EAAE;;;;yCAGf;AArDU,WAAW;IADvB,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC;GAC/B,WAAW,CAkZvB"}
|
|
1
|
+
{"version":3,"file":"AsenaServer.js","sourceRoot":"","sources":["../../../lib/server/AsenaServer.ts"],"names":[],"mappings":"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"}
|