@adaas/a-server 0.0.28 → 0.0.30
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/dist/browser/index.d.mts +123 -69
- package/dist/browser/index.mjs +212 -70
- package/dist/browser/index.mjs.map +1 -1
- package/dist/node/controllers/A-EntityController/A-EntityController.component.d.mts +2 -5
- package/dist/node/controllers/A-EntityController/A-EntityController.component.d.ts +2 -5
- package/dist/node/controllers/A-EntityController/A-EntityController.component.js +66 -88
- package/dist/node/controllers/A-EntityController/A-EntityController.component.js.map +1 -1
- package/dist/node/controllers/A-EntityController/A-EntityController.component.mjs +67 -89
- package/dist/node/controllers/A-EntityController/A-EntityController.component.mjs.map +1 -1
- package/dist/node/controllers/A-ListingController/A-ListingController.component.js +20 -18
- package/dist/node/controllers/A-ListingController/A-ListingController.component.js.map +1 -1
- package/dist/node/controllers/A-ListingController/A-ListingController.component.mjs +20 -18
- package/dist/node/controllers/A-ListingController/A-ListingController.component.mjs.map +1 -1
- package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.d.mts +0 -2
- package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.d.ts +0 -2
- package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.js +10 -1
- package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.js.map +1 -1
- package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.mjs +10 -1
- package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.mjs.map +1 -1
- package/dist/node/index.d.mts +3 -1
- package/dist/node/index.d.ts +3 -1
- package/dist/node/index.js +14 -0
- package/dist/node/index.mjs +2 -0
- package/dist/node/lib/A-Request/A-Request.helper.js +1 -1
- package/dist/node/lib/A-Request/A-Request.helper.js.map +1 -1
- package/dist/node/lib/A-Request/A-Request.helper.mjs +1 -1
- package/dist/node/lib/A-Request/A-Request.helper.mjs.map +1 -1
- package/dist/node/lib/A-Server/A-HttpServer.container.d.mts +4 -6
- package/dist/node/lib/A-Server/A-HttpServer.container.d.ts +4 -6
- package/dist/node/lib/A-ServerController/A-ServerController.component.js +17 -4
- package/dist/node/lib/A-ServerController/A-ServerController.component.js.map +1 -1
- package/dist/node/lib/A-ServerController/A-ServerController.component.mjs +17 -4
- package/dist/node/lib/A-ServerController/A-ServerController.component.mjs.map +1 -1
- package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.d.mts +52 -28
- package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.d.ts +52 -28
- package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.js +117 -44
- package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.js.map +1 -1
- package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.mjs +118 -45
- package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.mjs.map +1 -1
- package/dist/node/lib/A-ServerEntityList/A-EntityList.types.d.mts +14 -6
- package/dist/node/lib/A-ServerEntityList/A-EntityList.types.d.ts +14 -6
- package/dist/node/lib/A-ServerEntityList/A-EntityList.types.js.map +1 -1
- package/dist/node/lib/A-ServerEntityList/A-EntityList.types.mjs.map +1 -1
- package/dist/node/lib/A-ServerEntityList/A-EntityListCacheState.context.d.mts +12 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListCacheState.context.d.ts +12 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListCacheState.context.js +25 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListCacheState.context.js.map +1 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListCacheState.context.mjs +24 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListCacheState.context.mjs.map +1 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListPagination.context.d.mts +18 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListPagination.context.d.ts +18 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListPagination.context.js +48 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListPagination.context.js.map +1 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListPagination.context.mjs +47 -0
- package/dist/node/lib/A-ServerEntityList/A-EntityListPagination.context.mjs.map +1 -0
- package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.d.mts +6 -8
- package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.d.ts +6 -8
- package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.js +3 -4
- package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.js.map +1 -1
- package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.mjs +4 -5
- package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.mjs.map +1 -1
- package/dist/node/lib/A-ServerRouter/A-ServerRouter.component.d.mts +0 -2
- package/dist/node/lib/A-ServerRouter/A-ServerRouter.component.d.ts +0 -2
- package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.js +1 -1
- package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.js.map +1 -1
- package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.mjs +1 -1
- package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.mjs.map +1 -1
- package/dist/node/repositories/A-EntityRepository/A-EntityRepository.component.d.mts +1 -0
- package/dist/node/repositories/A-EntityRepository/A-EntityRepository.component.d.ts +1 -0
- package/examples/simple-server/components/Users.repository.ts +2 -2
- package/jest.config.ts +1 -0
- package/package.json +1 -1
- package/src/controllers/A-EntityController/A-EntityController.component.ts +69 -109
- package/src/controllers/A-ListingController/A-ListingController.component.ts +22 -20
- package/src/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.ts +11 -1
- package/src/index.ts +2 -0
- package/src/lib/A-Request/A-Request.helper.ts +1 -1
- package/src/lib/A-ServerController/A-ServerController.component.ts +17 -8
- package/src/lib/A-ServerEntityList/A-EntityList.entity.ts +159 -55
- package/src/lib/A-ServerEntityList/A-EntityList.types.ts +17 -7
- package/src/lib/A-ServerEntityList/A-EntityListCacheState.context.ts +27 -0
- package/src/lib/A-ServerEntityList/A-EntityListPagination.context.ts +48 -0
- package/src/lib/A-ServerLogger/A-ServerLogger.component.ts +3 -4
- package/src/middlewares/A-ServerCORS/A_ServerCORS.component.ts +1 -1
- package/tests/A-Server-CORS.test.ts +542 -0
- package/tests/A-Server-Entity.test.ts +205 -0
- package/tests/A-Server-Health.test.ts +89 -0
- package/tests/A-Server-Routes.test.ts +113 -0
- package/tests/A-ServerEntityList.test.ts +416 -0
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
import { A_Error } from '@adaas/a-concept';
|
|
2
|
-
import { A_Server } from '../A-Server/A-Server.context.js';
|
|
1
|
+
import { A_Error, A_Scope } from '@adaas/a-concept';
|
|
3
2
|
import { A as A_Request } from '../../A-Request.entity-8_9MCXT2.js';
|
|
4
3
|
import { A as A_Response } from '../../A-Response.entity-bjh6bofZ.js';
|
|
5
4
|
import { A_HttpServerRequestContext } from '../A-Request/A-HttpServerRequest.context.js';
|
|
6
5
|
import { A_Config } from '@adaas/a-utils/a-config';
|
|
7
6
|
import { A_Logger } from '@adaas/a-utils/a-logger';
|
|
8
|
-
import '../A-Server/A-Server.types.js';
|
|
9
|
-
import '../A-ServerRoute/A-ServerRoute.entity.js';
|
|
10
|
-
import '@adaas/a-utils/a-route';
|
|
11
|
-
import '../A-ServerRoute/A-ServerRoute.types.js';
|
|
12
|
-
import '../A-ServerRoute/A-ServerRoute.constants.js';
|
|
13
7
|
import 'http';
|
|
14
8
|
import '../A-Server/A-HttpServer.error.js';
|
|
15
9
|
import '../A-Server/A-HttpServer.types.js';
|
|
@@ -18,6 +12,10 @@ import '../A-Request/A-Request.constants.js';
|
|
|
18
12
|
import '../A-Request/A-Request.env.js';
|
|
19
13
|
import '../A-Request/A-HttpRequestData.context.js';
|
|
20
14
|
import '@adaas/a-utils/a-execution';
|
|
15
|
+
import '../A-ServerRoute/A-ServerRoute.entity.js';
|
|
16
|
+
import '@adaas/a-utils/a-route';
|
|
17
|
+
import '../A-ServerRoute/A-ServerRoute.types.js';
|
|
18
|
+
import '../A-ServerRoute/A-ServerRoute.constants.js';
|
|
21
19
|
import 'stream';
|
|
22
20
|
import '../A-Response/A-Response.constants.js';
|
|
23
21
|
import '@adaas/a-utils/a-operation';
|
|
@@ -26,7 +24,7 @@ declare class A_ServerLogger extends A_Logger {
|
|
|
26
24
|
protected config: A_Config<any>;
|
|
27
25
|
logRequestFinish(request: A_Request, response: A_Response, context: A_HttpServerRequestContext): void;
|
|
28
26
|
logResponseError(request: A_Request, response: A_Response, context: A_HttpServerRequestContext, error: A_Error): void;
|
|
29
|
-
logStop(
|
|
27
|
+
logStop(scope: A_Scope): void;
|
|
30
28
|
serverReady(params: {
|
|
31
29
|
port: number;
|
|
32
30
|
app: {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var aConcept = require('@adaas/a-concept');
|
|
4
|
-
var AServer_context = require('@adaas/a-server/server/A-Server.context');
|
|
5
4
|
var ARequest_entity = require('@adaas/a-server/request/A-Request.entity');
|
|
6
5
|
var AResponse_entity = require('@adaas/a-server/response/A-Response.entity');
|
|
7
6
|
var AResponse_constants = require('@adaas/a-server/response/A-Response.constants');
|
|
@@ -28,8 +27,8 @@ class A_ServerLogger extends aLogger.A_Logger {
|
|
|
28
27
|
this.info("red", `Request ${request.method} ${request.url} errored with status ${response.statusCode} in ${context.processingTime ?? "N/A"}ms`);
|
|
29
28
|
this.error(error);
|
|
30
29
|
}
|
|
31
|
-
logStop(
|
|
32
|
-
this.
|
|
30
|
+
logStop(scope) {
|
|
31
|
+
this.info("red", `Server ${scope.name} stopped`);
|
|
33
32
|
}
|
|
34
33
|
serverReady(params) {
|
|
35
34
|
const processId = process.pid;
|
|
@@ -80,7 +79,7 @@ __decorateClass([
|
|
|
80
79
|
name: aService.A_ServiceFeatures.onAfterStop,
|
|
81
80
|
scope: [aService.A_Service]
|
|
82
81
|
}),
|
|
83
|
-
__decorateParam(0, aConcept.A_Inject(
|
|
82
|
+
__decorateParam(0, aConcept.A_Inject(aConcept.A_Scope))
|
|
84
83
|
], A_ServerLogger.prototype, "logStop");
|
|
85
84
|
|
|
86
85
|
exports.A_ServerLogger = A_ServerLogger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/A-ServerLogger/A-ServerLogger.component.ts"],"names":["A_Logger","A_Feature","A_ResponseFeatures","A_Response","A_Request","A_HttpServerRequestContext","A_Error","A_ServiceFeatures","A_Service","
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/A-ServerLogger/A-ServerLogger.component.ts"],"names":["A_Logger","A_Feature","A_ResponseFeatures","A_Response","A_Request","A_HttpServerRequestContext","A_Error","A_ServiceFeatures","A_Service","A_Scope"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,uBAAuBA,gBAAA,CAAS;AAAA,EAUzC,gBAAA,CACyB,OAAA,EACC,QAAA,EACgB,OAAA,EACxC;AAEE,IAAA,IAAA,CAAK,IAAA,CAAK,OAAA,EAAS,CAAA,QAAA,EAAW,OAAA,CAAQ,MAAM,CAAA,CAAA,EAAI,OAAA,CAAQ,GAAG,CAAA,sBAAA,EAAyB,SAAS,UAAU,CAAA,IAAA,EAAO,OAAA,CAAQ,cAAA,IAAkB,KAAK,CAAA,EAAA,CAAI,CAAA;AAAA,EACrJ;AAAA,EAOA,gBAAA,CACyB,OAAA,EACC,QAAA,EACgB,OAAA,EACnB,KAAA,EACrB;AACE,IAAA,IAAA,CAAK,IAAA,CAAK,KAAA,EAAO,CAAA,QAAA,EAAW,OAAA,CAAQ,MAAM,CAAA,CAAA,EAAI,OAAA,CAAQ,GAAG,CAAA,qBAAA,EAAwB,SAAS,UAAU,CAAA,IAAA,EAAO,OAAA,CAAQ,cAAA,IAAkB,KAAK,CAAA,EAAA,CAAI,CAAA;AAC9I,IAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,EACpB;AAAA,EA2BA,QACuB,KAAA,EACrB;AACE,IAAA,IAAA,CAAK,IAAA,CAAK,KAAA,EAAO,CAAA,OAAA,EAAU,KAAA,CAAM,IAAI,CAAA,QAAA,CAAU,CAAA;AAAA,EACnD;AAAA,EAKA,YACI,MAAA,EAQF;AACE,IAAA,MAAM,YAAY,OAAA,CAAQ,GAAA;AAE1B,IAAA,IAAA,CAAK,IAAA;AAAA,MAAK,MAAA;AAAA,MACN,CAAA,CAAA,EAAI,MAAA,CAAO,GAAA,CAAI,IAAI,CAAA,EAAA,EAAK,MAAA,CAAO,GAAA,CAAI,OAAA,IAAW,OAAO,CAAA,oBAAA,EAAuB,MAAA,CAAO,IAAI,CAAA,CAAA;AAAA,MACvF,gBAAgB,SAAS,CAAA,CAAA;AAAA,MACzB,CAAA,mCAAA,EAAsC,OAAO,IAAI,CAAA,CAAA;AAAA,MACjD,CAAA,CAAA;AAAA,MACA,CAAA,+BAAA,CAAA;AAAA,MACA,CAAA,+BAAA,CAAA;AAAA,MACA,CAAA,4BAAA,CAAA;AAAA,MACA,CAAA,+BAAA;AAAA,KACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MACI,MAAA,EAIF;AACE,IAAA,OAAA,CAAQ,GAAA,CAAI,YAAY,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,GAAA,EAAM,IAAA,CAAK,SAAS,CAAA;AAAA,EACjE,GAAA,CAAI,MAAA,CAAO,IAAA,CAAK,WAAA,GAAc,CAAC,CAAC,CAAA,EAAA,EAAK,MAAA,CAAO,QAAQ,CAAA,IAAA,EAAO,MAAA,CAAO,WAAW;AAAA,EAC7E,IAAI,MAAA,CAAO,IAAA,CAAK,WAAA,GAAc,CAAC,CAAC,CAAA,uCAAA,CAAyC,CAAA;AAAA,EACvE;AAEJ;AAnGI,eAAA,CAAA;AAAA,EAJCC,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,sCAAA,CAAmB,MAAA;AAAA,IACzB,KAAA,EAAO,CAACC,2BAAU;AAAA,GACrB,CAAA;AAAA,EAEI,qCAASC,yBAAS,CAAA,CAAA;AAAA,EAClB,qCAASD,2BAAU,CAAA,CAAA;AAAA,EACnB,qCAASE,qDAA0B,CAAA;AAAA,CAAA,EAb/B,cAAA,CAUT,SAAA,EAAA,kBAAA,CAAA;AAcA,eAAA,CAAA;AAAA,EAJCJ,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,sCAAA,CAAmB,OAAA;AAAA,IACzB,KAAA,EAAO,CAACC,2BAAU;AAAA,GACrB,CAAA;AAAA,EAEI,qCAASC,yBAAS,CAAA,CAAA;AAAA,EAClB,qCAASD,2BAAU,CAAA,CAAA;AAAA,EACnB,qCAASE,qDAA0B,CAAA,CAAA;AAAA,EACnC,qCAASC,gBAAO,CAAA;AAAA,CAAA,EA5BZ,cAAA,CAwBT,SAAA,EAAA,kBAAA,CAAA;AAmCA,eAAA,CAAA;AAAA,EAJCL,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMM,0BAAA,CAAkB,WAAA;AAAA,IACxB,KAAA,EAAO,CAACC,kBAAS;AAAA,GACpB,CAAA;AAAA,EAEI,qCAASC,gBAAO,CAAA;AAAA,CAAA,EA5DZ,cAAA,CA2DT,SAAA,EAAA,SAAA,CAAA","file":"A-ServerLogger.component.js","sourcesContent":["import { A_Error, A_Feature, A_Inject, A_Scope, } from \"@adaas/a-concept\";\nimport { A_Request } from \"@adaas/a-server/request/A-Request.entity\";\nimport { A_Response } from \"@adaas/a-server/response/A-Response.entity\";\nimport { A_ResponseFeatures } from \"@adaas/a-server/response/A-Response.constants\";\nimport { A_HttpServerRequestContext } from \"@adaas/a-server/request/A-HttpServerRequest.context\";\nimport { A_Config } from \"@adaas/a-utils/a-config\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_Service, A_ServiceFeatures } from \"@adaas/a-utils/a-service\";\n\n\nexport class A_ServerLogger extends A_Logger {\n\n protected declare config: A_Config<any>\n\n\n\n @A_Feature.Extend({\n name: A_ResponseFeatures.onSend,\n scope: [A_Response]\n })\n logRequestFinish(\n @A_Inject(A_Request) request: A_Request,\n @A_Inject(A_Response) response: A_Response,\n @A_Inject(A_HttpServerRequestContext) context: A_HttpServerRequestContext,\n ) {\n\n this.info('green', `Request ${request.method} ${request.url} finished with status ${response.statusCode} in ${context.processingTime ?? 'N/A'}ms`);\n }\n\n\n @A_Feature.Extend({\n name: A_ResponseFeatures.onError,\n scope: [A_Response]\n })\n logResponseError(\n @A_Inject(A_Request) request: A_Request,\n @A_Inject(A_Response) response: A_Response,\n @A_Inject(A_HttpServerRequestContext) context: A_HttpServerRequestContext,\n @A_Inject(A_Error) error: A_Error,\n ) {\n this.info('red', `Request ${request.method} ${request.url} errored with status ${response.statusCode} in ${context.processingTime ?? 'N/A'}ms`);\n this.error(error);\n }\n\n\n\n\n // @A_Feature.Extend({\n // name: A_ServiceFeatures.onAfterStart,\n // scope: [A_Service]\n // })\n // logStart(\n // @A_Inject(A_Service) container: A_Service,\n // ): void {\n // // this.serverReady({\n // // port: container.port,\n // // app: {\n // // name: container.name,\n // // }\n // // })\n // }\n\n\n\n\n @A_Feature.Extend({\n name: A_ServiceFeatures.onAfterStop,\n scope: [A_Service]\n })\n logStop(\n @A_Inject(A_Scope) scope: A_Scope,\n ) {\n this.info('red', `Server ${scope.name} stopped`);\n }\n\n\n\n\n serverReady(\n params: {\n port: number,\n\n app: {\n name: string,\n version?: string\n }\n }\n ) {\n const processId = process.pid;\n\n this.info('cyan',\n ` ${params.app.name} v${params.app.version || '0.0.1'} is running on port ${params.port}`,\n ` Process ID: ${processId}`,\n ` Open In Browser: http://localhost:${params.port}`,\n ``,\n `-------------------------------`,\n ` ==============================`,\n ` LISTENING... `,\n ` ==============================`\n );\n }\n\n\n /**\n * Displays a proxy routes \n * \n * @param params \n */\n proxy(\n params: {\n original: string,\n destination: string,\n }\n ) {\n console.log(`\\x1b[35m[${this.scope.name}] |${this.getTime()}| Proxy:\n${' '.repeat(this.scopeLength + 3)}| ${params.original} -> ${params.destination}\n${' '.repeat(this.scopeLength + 3)}|-------------------------------\\x1b[0m`);\n }\n\n}"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { __decorateClass, __decorateParam } from '../../chunk-EQQGB2QZ.mjs';
|
|
2
|
-
import { A_Feature, A_Inject, A_Error } from '@adaas/a-concept';
|
|
3
|
-
import { A_Server } from '@adaas/a-server/server/A-Server.context';
|
|
2
|
+
import { A_Feature, A_Inject, A_Error, A_Scope } from '@adaas/a-concept';
|
|
4
3
|
import { A_Request } from '@adaas/a-server/request/A-Request.entity';
|
|
5
4
|
import { A_Response } from '@adaas/a-server/response/A-Response.entity';
|
|
6
5
|
import { A_ResponseFeatures } from '@adaas/a-server/response/A-Response.constants';
|
|
@@ -16,8 +15,8 @@ class A_ServerLogger extends A_Logger {
|
|
|
16
15
|
this.info("red", `Request ${request.method} ${request.url} errored with status ${response.statusCode} in ${context.processingTime ?? "N/A"}ms`);
|
|
17
16
|
this.error(error);
|
|
18
17
|
}
|
|
19
|
-
logStop(
|
|
20
|
-
this.
|
|
18
|
+
logStop(scope) {
|
|
19
|
+
this.info("red", `Server ${scope.name} stopped`);
|
|
21
20
|
}
|
|
22
21
|
serverReady(params) {
|
|
23
22
|
const processId = process.pid;
|
|
@@ -68,7 +67,7 @@ __decorateClass([
|
|
|
68
67
|
name: A_ServiceFeatures.onAfterStop,
|
|
69
68
|
scope: [A_Service]
|
|
70
69
|
}),
|
|
71
|
-
__decorateParam(0, A_Inject(
|
|
70
|
+
__decorateParam(0, A_Inject(A_Scope))
|
|
72
71
|
], A_ServerLogger.prototype, "logStop", 1);
|
|
73
72
|
|
|
74
73
|
export { A_ServerLogger };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/A-ServerLogger/A-ServerLogger.component.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/A-ServerLogger/A-ServerLogger.component.ts"],"names":[],"mappings":"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","file":"A-ServerLogger.component.mjs","sourcesContent":["import { A_Error, A_Feature, A_Inject, A_Scope, } from \"@adaas/a-concept\";\nimport { A_Request } from \"@adaas/a-server/request/A-Request.entity\";\nimport { A_Response } from \"@adaas/a-server/response/A-Response.entity\";\nimport { A_ResponseFeatures } from \"@adaas/a-server/response/A-Response.constants\";\nimport { A_HttpServerRequestContext } from \"@adaas/a-server/request/A-HttpServerRequest.context\";\nimport { A_Config } from \"@adaas/a-utils/a-config\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_Service, A_ServiceFeatures } from \"@adaas/a-utils/a-service\";\n\n\nexport class A_ServerLogger extends A_Logger {\n\n protected declare config: A_Config<any>\n\n\n\n @A_Feature.Extend({\n name: A_ResponseFeatures.onSend,\n scope: [A_Response]\n })\n logRequestFinish(\n @A_Inject(A_Request) request: A_Request,\n @A_Inject(A_Response) response: A_Response,\n @A_Inject(A_HttpServerRequestContext) context: A_HttpServerRequestContext,\n ) {\n\n this.info('green', `Request ${request.method} ${request.url} finished with status ${response.statusCode} in ${context.processingTime ?? 'N/A'}ms`);\n }\n\n\n @A_Feature.Extend({\n name: A_ResponseFeatures.onError,\n scope: [A_Response]\n })\n logResponseError(\n @A_Inject(A_Request) request: A_Request,\n @A_Inject(A_Response) response: A_Response,\n @A_Inject(A_HttpServerRequestContext) context: A_HttpServerRequestContext,\n @A_Inject(A_Error) error: A_Error,\n ) {\n this.info('red', `Request ${request.method} ${request.url} errored with status ${response.statusCode} in ${context.processingTime ?? 'N/A'}ms`);\n this.error(error);\n }\n\n\n\n\n // @A_Feature.Extend({\n // name: A_ServiceFeatures.onAfterStart,\n // scope: [A_Service]\n // })\n // logStart(\n // @A_Inject(A_Service) container: A_Service,\n // ): void {\n // // this.serverReady({\n // // port: container.port,\n // // app: {\n // // name: container.name,\n // // }\n // // })\n // }\n\n\n\n\n @A_Feature.Extend({\n name: A_ServiceFeatures.onAfterStop,\n scope: [A_Service]\n })\n logStop(\n @A_Inject(A_Scope) scope: A_Scope,\n ) {\n this.info('red', `Server ${scope.name} stopped`);\n }\n\n\n\n\n serverReady(\n params: {\n port: number,\n\n app: {\n name: string,\n version?: string\n }\n }\n ) {\n const processId = process.pid;\n\n this.info('cyan',\n ` ${params.app.name} v${params.app.version || '0.0.1'} is running on port ${params.port}`,\n ` Process ID: ${processId}`,\n ` Open In Browser: http://localhost:${params.port}`,\n ``,\n `-------------------------------`,\n ` ==============================`,\n ` LISTENING... `,\n ` ==============================`\n );\n }\n\n\n /**\n * Displays a proxy routes \n * \n * @param params \n */\n proxy(\n params: {\n original: string,\n destination: string,\n }\n ) {\n console.log(`\\x1b[35m[${this.scope.name}] |${this.getTime()}| Proxy:\n${' '.repeat(this.scopeLength + 3)}| ${params.original} -> ${params.destination}\n${' '.repeat(this.scopeLength + 3)}|-------------------------------\\x1b[0m`);\n }\n\n}"]}
|
|
@@ -17,8 +17,6 @@ import '../A-Request/A-HttpServerRequest.context.mjs';
|
|
|
17
17
|
import '@adaas/a-utils/a-operation';
|
|
18
18
|
import '../A-Request/A-HttpRequestData.context.mjs';
|
|
19
19
|
import '@adaas/a-utils/a-execution';
|
|
20
|
-
import '../A-Server/A-Server.context.mjs';
|
|
21
|
-
import '../A-Server/A-Server.types.mjs';
|
|
22
20
|
import '@adaas/a-utils/a-route';
|
|
23
21
|
import '../A-ServerRoute/A-ServerRoute.types.mjs';
|
|
24
22
|
import '../A-ServerRoute/A-ServerRoute.constants.mjs';
|
|
@@ -17,8 +17,6 @@ import '../A-Request/A-HttpServerRequest.context.js';
|
|
|
17
17
|
import '@adaas/a-utils/a-operation';
|
|
18
18
|
import '../A-Request/A-HttpRequestData.context.js';
|
|
19
19
|
import '@adaas/a-utils/a-execution';
|
|
20
|
-
import '../A-Server/A-Server.context.js';
|
|
21
|
-
import '../A-Server/A-Server.types.js';
|
|
22
20
|
import '@adaas/a-utils/a-route';
|
|
23
21
|
import '../A-ServerRoute/A-ServerRoute.types.js';
|
|
24
22
|
import '../A-ServerRoute/A-ServerRoute.constants.js';
|
|
@@ -52,7 +52,7 @@ __decorateClass([
|
|
|
52
52
|
__decorateParam(0, aConcept.A_Inject(aConfig.A_Config))
|
|
53
53
|
], A_ServerCORS.prototype, "init");
|
|
54
54
|
__decorateClass([
|
|
55
|
-
AHttpServer_container.A_HttpServer.
|
|
55
|
+
AHttpServer_container.A_HttpServer.onBeforeRequest,
|
|
56
56
|
__decorateParam(0, aConcept.A_Inject(ARequest_entity.A_Request)),
|
|
57
57
|
__decorateParam(1, aConcept.A_Inject(AResponse_entity.A_Response))
|
|
58
58
|
], A_ServerCORS.prototype, "apply");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/middlewares/A-ServerCORS/A_ServerCORS.component.ts"],"names":["A_ServerMiddleware","A_SERVER_DEFAULTS__CorsConfig","A_Feature","A_ServiceFeatures","A_Config","A_HttpServer","A_Request","A_Response"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcO,MAAM,qBAAqBA,8CAAA,CAAmB;AAAA,EAOjD,MAAM,KACkB,MAAA,EACtB;AACE,IAAA,IAAA,CAAK,MAAA,GAAS;AAAA,MACV,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,QAAQ,KAAKC,oDAAA,CAA8B,MAAA;AAAA,MAC9D,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,SAAS,KAAKA,oDAAA,CAA8B,OAAA;AAAA,MAChE,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,SAAS,KAAKA,oDAAA,CAA8B,OAAA;AAAA,MAChE,WAAA,EAAa,MAAA,CAAO,GAAA,CAAI,aAAa,KAAKA,oDAAA,CAA8B,WAAA;AAAA,MACxE,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,SAAS,KAAKA,oDAAA,CAA8B;AAAA,KACnE;AAAA,EACJ;AAAA,EAIO,KAAA,CACkB,MACC,IAAA,EACxB;AAEE,IAAA,IAAA,CAAK,SAAA,CAAU,6BAAA,EAA+B,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA;AAChE,IAAA,IAAA,CAAK,UAAU,8BAAA,EAAgC,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AAC7E,IAAA,IAAA,CAAK,UAAU,8BAAA,EAAgC,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AAE7E,IAAA,IAAI,IAAA,CAAK,OAAO,WAAA,EAAa;AACzB,MAAA,IAAA,CAAK,SAAA,CAAU,oCAAoC,MAAM,CAAA;AAAA,IAC7D;AAEA,IAAA,IAAI,IAAA,CAAK,OAAO,MAAA,EAAQ;AACpB,MAAA,IAAA,CAAK,UAAU,wBAAA,EAA0B,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,UAAU,CAAA;AAAA,IAC1E;AAGA,IAAA,IAAI,IAAA,CAAK,WAAW,SAAA,EAAW;AAC3B,MAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAA,CAAE,IAAA,EAAK;AAAA,IAC1B;AAAA,EACJ;AACJ;AApCU,eAAA,CAAA;AAAA,EAHLC,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,0BAAA,CAAkB;AAAA,GAC3B,CAAA;AAAA,EAEI,qCAASC,gBAAQ,CAAA;AAAA,CAAA,EARb,YAAA,CAOH,SAAA,EAAA,MAAA,CAAA;AAcC,eAAA,CAAA;AAAA,EADNC,kCAAA,CAAa,
|
|
1
|
+
{"version":3,"sources":["../../../../src/middlewares/A-ServerCORS/A_ServerCORS.component.ts"],"names":["A_ServerMiddleware","A_SERVER_DEFAULTS__CorsConfig","A_Feature","A_ServiceFeatures","A_Config","A_HttpServer","A_Request","A_Response"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcO,MAAM,qBAAqBA,8CAAA,CAAmB;AAAA,EAOjD,MAAM,KACkB,MAAA,EACtB;AACE,IAAA,IAAA,CAAK,MAAA,GAAS;AAAA,MACV,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,QAAQ,KAAKC,oDAAA,CAA8B,MAAA;AAAA,MAC9D,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,SAAS,KAAKA,oDAAA,CAA8B,OAAA;AAAA,MAChE,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,SAAS,KAAKA,oDAAA,CAA8B,OAAA;AAAA,MAChE,WAAA,EAAa,MAAA,CAAO,GAAA,CAAI,aAAa,KAAKA,oDAAA,CAA8B,WAAA;AAAA,MACxE,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,SAAS,KAAKA,oDAAA,CAA8B;AAAA,KACnE;AAAA,EACJ;AAAA,EAIO,KAAA,CACkB,MACC,IAAA,EACxB;AAEE,IAAA,IAAA,CAAK,SAAA,CAAU,6BAAA,EAA+B,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA;AAChE,IAAA,IAAA,CAAK,UAAU,8BAAA,EAAgC,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AAC7E,IAAA,IAAA,CAAK,UAAU,8BAAA,EAAgC,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AAE7E,IAAA,IAAI,IAAA,CAAK,OAAO,WAAA,EAAa;AACzB,MAAA,IAAA,CAAK,SAAA,CAAU,oCAAoC,MAAM,CAAA;AAAA,IAC7D;AAEA,IAAA,IAAI,IAAA,CAAK,OAAO,MAAA,EAAQ;AACpB,MAAA,IAAA,CAAK,UAAU,wBAAA,EAA0B,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,UAAU,CAAA;AAAA,IAC1E;AAGA,IAAA,IAAI,IAAA,CAAK,WAAW,SAAA,EAAW;AAC3B,MAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAA,CAAE,IAAA,EAAK;AAAA,IAC1B;AAAA,EACJ;AACJ;AApCU,eAAA,CAAA;AAAA,EAHLC,mBAAU,MAAA,CAAO;AAAA,IACd,MAAMC,0BAAA,CAAkB;AAAA,GAC3B,CAAA;AAAA,EAEI,qCAASC,gBAAQ,CAAA;AAAA,CAAA,EARb,YAAA,CAOH,SAAA,EAAA,MAAA,CAAA;AAcC,eAAA,CAAA;AAAA,EADNC,kCAAA,CAAa,eAAA;AAAA,EAET,qCAASC,yBAAS,CAAA,CAAA;AAAA,EAClB,qCAASC,2BAAU,CAAA;AAAA,CAAA,EAvBf,YAAA,CAqBF,SAAA,EAAA,OAAA,CAAA","file":"A_ServerCORS.component.js","sourcesContent":["import { A_Feature, A_Inject } from '@adaas/a-concept';\nimport { A_ServiceFeatures } from '@adaas/a-utils/a-service';\nimport { A_Request } from '@adaas/a-server/request/A-Request.entity';\nimport { A_Response } from '@adaas/a-server/response/A-Response.entity';\nimport { A_HttpServerFeatures } from '@adaas/a-server/server/A-HttpServer.constants';\nimport { A_Config } from '@adaas/a-utils/a-config';\nimport { A_ServerMiddleware } from '@adaas/a-server/middleware/A-ServerMiddleware.component';\nimport { A_SERVER_TYPES__CorsConfig } from './A_ServerCORS.types';\nimport { A_SERVER_DEFAULTS__CorsConfig } from './A_ServerCORS.constants';\nimport { A_HttpServer } from '@adaas/a-server/server/A-HttpServer.container';\n\n\n\n\nexport class A_ServerCORS extends A_ServerMiddleware {\n\n private config!: A_SERVER_TYPES__CorsConfig;\n\n @A_Feature.Extend({\n name: A_ServiceFeatures.onBeforeStart\n })\n async init(\n @A_Inject(A_Config) config: A_Config<['ORIGIN', 'METHODS', 'HEADERS', 'CREDENTIALS', 'MAX_AGE']>,\n ) {\n this.config = {\n origin: config.get('ORIGIN') || A_SERVER_DEFAULTS__CorsConfig.origin,\n methods: config.get('METHODS') || A_SERVER_DEFAULTS__CorsConfig.methods,\n headers: config.get('HEADERS') || A_SERVER_DEFAULTS__CorsConfig.headers,\n credentials: config.get('CREDENTIALS') || A_SERVER_DEFAULTS__CorsConfig.credentials,\n maxAge: config.get('MAX_AGE') || A_SERVER_DEFAULTS__CorsConfig.maxAge,\n };\n }\n\n\n @A_HttpServer.onBeforeRequest\n public apply(\n @A_Inject(A_Request) aReq: A_Request,\n @A_Inject(A_Response) aRes: A_Response,\n ) {\n\n aRes.setHeader('Access-Control-Allow-Origin', this.config.origin);\n aRes.setHeader('Access-Control-Allow-Methods', this.config.methods.join(', '));\n aRes.setHeader('Access-Control-Allow-Headers', this.config.headers.join(', '));\n\n if (this.config.credentials) {\n aRes.setHeader('Access-Control-Allow-Credentials', 'true');\n }\n\n if (this.config.maxAge) {\n aRes.setHeader('Access-Control-Max-Age', this.config.maxAge.toString());\n }\n\n // Handle preflight OPTIONS requests\n if (aReq.method === 'OPTIONS') {\n aRes.status(204).send();\n }\n }\n}\n"]}
|
|
@@ -40,7 +40,7 @@ __decorateClass([
|
|
|
40
40
|
__decorateParam(0, A_Inject(A_Config))
|
|
41
41
|
], A_ServerCORS.prototype, "init", 1);
|
|
42
42
|
__decorateClass([
|
|
43
|
-
A_HttpServer.
|
|
43
|
+
A_HttpServer.onBeforeRequest,
|
|
44
44
|
__decorateParam(0, A_Inject(A_Request)),
|
|
45
45
|
__decorateParam(1, A_Inject(A_Response))
|
|
46
46
|
], A_ServerCORS.prototype, "apply", 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/middlewares/A-ServerCORS/A_ServerCORS.component.ts"],"names":[],"mappings":";;;;;;;;;;AAcO,MAAM,qBAAqB,kBAAA,CAAmB;AAAA,EAOjD,MAAM,KACkB,MAAA,EACtB;AACE,IAAA,IAAA,CAAK,MAAA,GAAS;AAAA,MACV,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,QAAQ,KAAK,6BAAA,CAA8B,MAAA;AAAA,MAC9D,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,SAAS,KAAK,6BAAA,CAA8B,OAAA;AAAA,MAChE,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,SAAS,KAAK,6BAAA,CAA8B,OAAA;AAAA,MAChE,WAAA,EAAa,MAAA,CAAO,GAAA,CAAI,aAAa,KAAK,6BAAA,CAA8B,WAAA;AAAA,MACxE,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,SAAS,KAAK,6BAAA,CAA8B;AAAA,KACnE;AAAA,EACJ;AAAA,EAIO,KAAA,CACkB,MACC,IAAA,EACxB;AAEE,IAAA,IAAA,CAAK,SAAA,CAAU,6BAAA,EAA+B,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA;AAChE,IAAA,IAAA,CAAK,UAAU,8BAAA,EAAgC,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AAC7E,IAAA,IAAA,CAAK,UAAU,8BAAA,EAAgC,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AAE7E,IAAA,IAAI,IAAA,CAAK,OAAO,WAAA,EAAa;AACzB,MAAA,IAAA,CAAK,SAAA,CAAU,oCAAoC,MAAM,CAAA;AAAA,IAC7D;AAEA,IAAA,IAAI,IAAA,CAAK,OAAO,MAAA,EAAQ;AACpB,MAAA,IAAA,CAAK,UAAU,wBAAA,EAA0B,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,UAAU,CAAA;AAAA,IAC1E;AAGA,IAAA,IAAI,IAAA,CAAK,WAAW,SAAA,EAAW;AAC3B,MAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAA,CAAE,IAAA,EAAK;AAAA,IAC1B;AAAA,EACJ;AACJ;AApCU,eAAA,CAAA;AAAA,EAHL,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,iBAAA,CAAkB;AAAA,GAC3B,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA;AAAA,CAAA,EARb,YAAA,CAOH,SAAA,EAAA,MAAA,EAAA,CAAA,CAAA;AAcC,eAAA,CAAA;AAAA,EADN,YAAA,CAAa,
|
|
1
|
+
{"version":3,"sources":["../../../../src/middlewares/A-ServerCORS/A_ServerCORS.component.ts"],"names":[],"mappings":";;;;;;;;;;AAcO,MAAM,qBAAqB,kBAAA,CAAmB;AAAA,EAOjD,MAAM,KACkB,MAAA,EACtB;AACE,IAAA,IAAA,CAAK,MAAA,GAAS;AAAA,MACV,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,QAAQ,KAAK,6BAAA,CAA8B,MAAA;AAAA,MAC9D,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,SAAS,KAAK,6BAAA,CAA8B,OAAA;AAAA,MAChE,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,SAAS,KAAK,6BAAA,CAA8B,OAAA;AAAA,MAChE,WAAA,EAAa,MAAA,CAAO,GAAA,CAAI,aAAa,KAAK,6BAAA,CAA8B,WAAA;AAAA,MACxE,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,SAAS,KAAK,6BAAA,CAA8B;AAAA,KACnE;AAAA,EACJ;AAAA,EAIO,KAAA,CACkB,MACC,IAAA,EACxB;AAEE,IAAA,IAAA,CAAK,SAAA,CAAU,6BAAA,EAA+B,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA;AAChE,IAAA,IAAA,CAAK,UAAU,8BAAA,EAAgC,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AAC7E,IAAA,IAAA,CAAK,UAAU,8BAAA,EAAgC,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AAE7E,IAAA,IAAI,IAAA,CAAK,OAAO,WAAA,EAAa;AACzB,MAAA,IAAA,CAAK,SAAA,CAAU,oCAAoC,MAAM,CAAA;AAAA,IAC7D;AAEA,IAAA,IAAI,IAAA,CAAK,OAAO,MAAA,EAAQ;AACpB,MAAA,IAAA,CAAK,UAAU,wBAAA,EAA0B,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,UAAU,CAAA;AAAA,IAC1E;AAGA,IAAA,IAAI,IAAA,CAAK,WAAW,SAAA,EAAW;AAC3B,MAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAA,CAAE,IAAA,EAAK;AAAA,IAC1B;AAAA,EACJ;AACJ;AApCU,eAAA,CAAA;AAAA,EAHL,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,iBAAA,CAAkB;AAAA,GAC3B,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA;AAAA,CAAA,EARb,YAAA,CAOH,SAAA,EAAA,MAAA,EAAA,CAAA,CAAA;AAcC,eAAA,CAAA;AAAA,EADN,YAAA,CAAa,eAAA;AAAA,EAET,4BAAS,SAAS,CAAA,CAAA;AAAA,EAClB,4BAAS,UAAU,CAAA;AAAA,CAAA,EAvBf,YAAA,CAqBF,SAAA,EAAA,OAAA,EAAA,CAAA,CAAA","file":"A_ServerCORS.component.mjs","sourcesContent":["import { A_Feature, A_Inject } from '@adaas/a-concept';\nimport { A_ServiceFeatures } from '@adaas/a-utils/a-service';\nimport { A_Request } from '@adaas/a-server/request/A-Request.entity';\nimport { A_Response } from '@adaas/a-server/response/A-Response.entity';\nimport { A_HttpServerFeatures } from '@adaas/a-server/server/A-HttpServer.constants';\nimport { A_Config } from '@adaas/a-utils/a-config';\nimport { A_ServerMiddleware } from '@adaas/a-server/middleware/A-ServerMiddleware.component';\nimport { A_SERVER_TYPES__CorsConfig } from './A_ServerCORS.types';\nimport { A_SERVER_DEFAULTS__CorsConfig } from './A_ServerCORS.constants';\nimport { A_HttpServer } from '@adaas/a-server/server/A-HttpServer.container';\n\n\n\n\nexport class A_ServerCORS extends A_ServerMiddleware {\n\n private config!: A_SERVER_TYPES__CorsConfig;\n\n @A_Feature.Extend({\n name: A_ServiceFeatures.onBeforeStart\n })\n async init(\n @A_Inject(A_Config) config: A_Config<['ORIGIN', 'METHODS', 'HEADERS', 'CREDENTIALS', 'MAX_AGE']>,\n ) {\n this.config = {\n origin: config.get('ORIGIN') || A_SERVER_DEFAULTS__CorsConfig.origin,\n methods: config.get('METHODS') || A_SERVER_DEFAULTS__CorsConfig.methods,\n headers: config.get('HEADERS') || A_SERVER_DEFAULTS__CorsConfig.headers,\n credentials: config.get('CREDENTIALS') || A_SERVER_DEFAULTS__CorsConfig.credentials,\n maxAge: config.get('MAX_AGE') || A_SERVER_DEFAULTS__CorsConfig.maxAge,\n };\n }\n\n\n @A_HttpServer.onBeforeRequest\n public apply(\n @A_Inject(A_Request) aReq: A_Request,\n @A_Inject(A_Response) aRes: A_Response,\n ) {\n\n aRes.setHeader('Access-Control-Allow-Origin', this.config.origin);\n aRes.setHeader('Access-Control-Allow-Methods', this.config.methods.join(', '));\n aRes.setHeader('Access-Control-Allow-Headers', this.config.headers.join(', '));\n\n if (this.config.credentials) {\n aRes.setHeader('Access-Control-Allow-Credentials', 'true');\n }\n\n if (this.config.maxAge) {\n aRes.setHeader('Access-Control-Max-Age', this.config.maxAge.toString());\n }\n\n // Handle preflight OPTIONS requests\n if (aReq.method === 'OPTIONS') {\n aRes.status(204).send();\n }\n }\n}\n"]}
|
|
@@ -12,6 +12,7 @@ import '@adaas/a-utils/a-route';
|
|
|
12
12
|
import '../../lib/A-ServerRoute/A-ServerRoute.types.mjs';
|
|
13
13
|
import '../../lib/A-ServerRoute/A-ServerRoute.constants.mjs';
|
|
14
14
|
import '../../lib/A-ServerEntityList/A-EntityList.types.mjs';
|
|
15
|
+
import '../../lib/A-ServerEntityList/A-EntityListPagination.context.mjs';
|
|
15
16
|
|
|
16
17
|
declare class A_EntityRepository extends A_HTTPChannel {
|
|
17
18
|
execute(command: A_Command, scope: A_Scope): Promise<void>;
|
|
@@ -12,6 +12,7 @@ import '@adaas/a-utils/a-route';
|
|
|
12
12
|
import '../../lib/A-ServerRoute/A-ServerRoute.types.js';
|
|
13
13
|
import '../../lib/A-ServerRoute/A-ServerRoute.constants.js';
|
|
14
14
|
import '../../lib/A-ServerEntityList/A-EntityList.types.js';
|
|
15
|
+
import '../../lib/A-ServerEntityList/A-EntityListPagination.context.js';
|
|
15
16
|
|
|
16
17
|
declare class A_EntityRepository extends A_HTTPChannel {
|
|
17
18
|
execute(command: A_Command, scope: A_Scope): Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A_Component, A_Entity, A_Feature, A_Inject,
|
|
1
|
+
import { A_Component, A_Entity, A_Feature, A_Inject, A_Scope, A_TYPES__EntityFeatures, } from "@adaas/a-concept";
|
|
2
2
|
import { User } from "../entities/User/User.entity";
|
|
3
3
|
import { UserJSON } from "../entities/User/User.entity.types";
|
|
4
4
|
import { SignInCommand } from "../commands/SignIn.command";
|
|
@@ -49,7 +49,7 @@ export class UsersRepository extends A_Component {
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
@A_Feature.Extend({
|
|
52
|
-
name:
|
|
52
|
+
name: A_TYPES__EntityFeatures.LOAD,
|
|
53
53
|
scope: [A_ServerEntityList]
|
|
54
54
|
})
|
|
55
55
|
list(
|
package/jest.config.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaas/a-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.30",
|
|
4
4
|
"description": "A-Server is a powerful server framework designed to work seamlessly with the A-Concept framework. This library provides a robust and flexible server implementation of A-Server, enabling developers to create scalable and efficient server-side applications using the A-Concept architecture.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adaas",
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { A_Component, A_Context, A_Feature, A_Inject, A_Scope,
|
|
1
|
+
import { A_Component, A_Context, A_Feature, A_Inject, A_Scope, ASEID } from "@adaas/a-concept";
|
|
2
2
|
import { A_Request } from "@adaas/a-server/request/A-Request.entity";
|
|
3
3
|
import { A_ServerRouter } from "@adaas/a-server/router/A-ServerRouter.component";
|
|
4
4
|
import { A_Response } from "@adaas/a-server/response/A-Response.entity";
|
|
5
|
-
import {
|
|
6
|
-
import { A_ServerListQueryFilter } from "@adaas/a-server/list-query/A-ServerListQueryFilter.context";
|
|
7
|
-
import { A_ServerEntityList } from "@adaas/a-server/entity-list/A-EntityList.entity";
|
|
8
|
-
import { A_Config } from "@adaas/a-utils/a-config";
|
|
5
|
+
import { A_HttpServerError } from "../../lib/A-Server/A-HttpServer.error";
|
|
9
6
|
|
|
10
7
|
|
|
11
8
|
|
|
@@ -14,46 +11,6 @@ export class A_EntityController extends A_Component {
|
|
|
14
11
|
// =======================================================
|
|
15
12
|
// ================ Method Definition=====================
|
|
16
13
|
// =======================================================
|
|
17
|
-
@A_ServerRouter.Get({
|
|
18
|
-
path: '/:type',
|
|
19
|
-
version: 'v1',
|
|
20
|
-
prefix: 'a-list'
|
|
21
|
-
})
|
|
22
|
-
async list(
|
|
23
|
-
@A_Inject(A_Request) request: A_Request<any, any, { type: string }>,
|
|
24
|
-
@A_Inject(A_Response) response: A_Response,
|
|
25
|
-
@A_Inject(A_Scope) scope: A_Scope,
|
|
26
|
-
@A_Inject(A_Config) config: A_Config<['A_LIST_ITEMS_PER_PAGE', 'A_LIST_PAGE']>
|
|
27
|
-
) {
|
|
28
|
-
|
|
29
|
-
const constructor = scope.resolveConstructor(request.params.type);
|
|
30
|
-
|
|
31
|
-
if (constructor) {
|
|
32
|
-
|
|
33
|
-
const entityList = new A_ServerEntityList({
|
|
34
|
-
name: request.params.type,
|
|
35
|
-
scope: scope.name,
|
|
36
|
-
constructor
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
scope.register(entityList);
|
|
40
|
-
|
|
41
|
-
const queryFilter = new A_ServerListQueryFilter(request.query, {
|
|
42
|
-
itemsPerPage: String(config.get('A_LIST_ITEMS_PER_PAGE') || '10'),
|
|
43
|
-
page: String(config.get('A_LIST_PAGE') || '1')
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
const queryScope = new A_Scope({
|
|
47
|
-
fragments: [queryFilter]
|
|
48
|
-
}).inherit(scope);
|
|
49
|
-
|
|
50
|
-
await entityList.load(queryScope);
|
|
51
|
-
|
|
52
|
-
response.add('items', entityList.items);
|
|
53
|
-
response.add('pagination', entityList.pagination);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
14
|
|
|
58
15
|
@A_Feature.Define({
|
|
59
16
|
name: 'getEntity',
|
|
@@ -69,44 +26,29 @@ export class A_EntityController extends A_Component {
|
|
|
69
26
|
@A_Inject(A_Response) response: A_Response,
|
|
70
27
|
@A_Inject(A_Scope) scope: A_Scope
|
|
71
28
|
) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// )
|
|
78
|
-
// return;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
console.log('Request params:', request.params);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (!ASEID.isASEID(request.params.aseid)) {
|
|
85
|
-
response.add('A_EntityController.load', 'Invalid ASEID');
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
|
|
29
|
+
if (!ASEID.isASEID(request.params.aseid))
|
|
30
|
+
throw new A_HttpServerError({
|
|
31
|
+
status: 400,
|
|
32
|
+
description: `Invalid ASEID: "${request.params.aseid}"`,
|
|
33
|
+
});
|
|
89
34
|
|
|
90
35
|
const aseid = new ASEID(request.params.aseid);
|
|
91
36
|
|
|
92
37
|
const constructor = scope.resolveConstructor(aseid.entity);
|
|
93
38
|
|
|
39
|
+
if (!constructor)
|
|
40
|
+
throw new A_HttpServerError({
|
|
41
|
+
status: 404,
|
|
42
|
+
description: `Entity constructor for ASEID ${request.params.aseid} not found`,
|
|
43
|
+
});
|
|
94
44
|
|
|
95
|
-
|
|
96
|
-
const entity = new constructor(request.params.aseid);
|
|
45
|
+
const entity = new constructor(request.params.aseid);
|
|
97
46
|
|
|
98
|
-
|
|
47
|
+
scope.register(entity);
|
|
99
48
|
|
|
100
|
-
|
|
49
|
+
await entity.load();
|
|
101
50
|
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
else
|
|
105
|
-
throw new A_ServerError({
|
|
106
|
-
title: 'Entity Not Found',
|
|
107
|
-
description: `Entity constructor for ASEID ${request.params.aseid} not found`,
|
|
108
|
-
status: 404,
|
|
109
|
-
});
|
|
51
|
+
return response.status(200).send(entity.toJSON());
|
|
110
52
|
}
|
|
111
53
|
|
|
112
54
|
|
|
@@ -118,17 +60,22 @@ export class A_EntityController extends A_Component {
|
|
|
118
60
|
})
|
|
119
61
|
async create(
|
|
120
62
|
@A_Inject(A_Request) request: A_Request<any, any, { aseid: string }>,
|
|
63
|
+
@A_Inject(A_Response) response: A_Response,
|
|
121
64
|
@A_Inject(A_Scope) scope: A_Scope
|
|
122
65
|
) {
|
|
123
66
|
const constructor = scope.resolveConstructor(request.params.aseid);
|
|
124
67
|
|
|
125
|
-
if (constructor)
|
|
126
|
-
|
|
68
|
+
if (!constructor)
|
|
69
|
+
throw new A_HttpServerError({
|
|
70
|
+
status: 404,
|
|
71
|
+
description: `Entity type "${request.params.aseid}" not registered`,
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const entity = new constructor(request.body);
|
|
127
75
|
|
|
128
|
-
|
|
76
|
+
scope.register(entity);
|
|
129
77
|
|
|
130
|
-
|
|
131
|
-
}
|
|
78
|
+
await entity.save();
|
|
132
79
|
}
|
|
133
80
|
|
|
134
81
|
|
|
@@ -143,20 +90,25 @@ export class A_EntityController extends A_Component {
|
|
|
143
90
|
@A_Inject(A_Response) response: A_Response,
|
|
144
91
|
@A_Inject(A_Scope) scope: A_Scope
|
|
145
92
|
) {
|
|
146
|
-
if (!ASEID.isASEID(request.params.aseid))
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
93
|
+
if (!ASEID.isASEID(request.params.aseid))
|
|
94
|
+
throw new A_HttpServerError({
|
|
95
|
+
status: 400,
|
|
96
|
+
description: `Invalid ASEID: "${request.params.aseid}"`,
|
|
97
|
+
});
|
|
150
98
|
|
|
151
99
|
const constructor = scope.resolveConstructor(request.params.aseid);
|
|
152
100
|
|
|
153
|
-
if (constructor)
|
|
154
|
-
|
|
101
|
+
if (!constructor)
|
|
102
|
+
throw new A_HttpServerError({
|
|
103
|
+
status: 404,
|
|
104
|
+
description: `Entity constructor for ASEID ${request.params.aseid} not found`,
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
const entity = new constructor(request.body);
|
|
155
108
|
|
|
156
|
-
|
|
109
|
+
scope.register(entity);
|
|
157
110
|
|
|
158
|
-
|
|
159
|
-
}
|
|
111
|
+
await entity.save();
|
|
160
112
|
}
|
|
161
113
|
|
|
162
114
|
|
|
@@ -170,20 +122,25 @@ export class A_EntityController extends A_Component {
|
|
|
170
122
|
@A_Inject(A_Response) response: A_Response,
|
|
171
123
|
@A_Inject(A_Scope) scope: A_Scope
|
|
172
124
|
) {
|
|
173
|
-
if (!ASEID.isASEID(request.params.aseid))
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
125
|
+
if (!ASEID.isASEID(request.params.aseid))
|
|
126
|
+
throw new A_HttpServerError({
|
|
127
|
+
status: 400,
|
|
128
|
+
description: `Invalid ASEID: "${request.params.aseid}"`,
|
|
129
|
+
});
|
|
177
130
|
|
|
178
131
|
const constructor = scope.resolveConstructor(request.params.aseid);
|
|
179
132
|
|
|
180
|
-
if (constructor)
|
|
181
|
-
|
|
133
|
+
if (!constructor)
|
|
134
|
+
throw new A_HttpServerError({
|
|
135
|
+
status: 404,
|
|
136
|
+
description: `Entity constructor for ASEID ${request.params.aseid} not found`,
|
|
137
|
+
});
|
|
182
138
|
|
|
183
|
-
|
|
139
|
+
const entity = new constructor(request.params.aseid);
|
|
140
|
+
|
|
141
|
+
scope.register(entity);
|
|
184
142
|
|
|
185
|
-
|
|
186
|
-
}
|
|
143
|
+
await entity.destroy();
|
|
187
144
|
}
|
|
188
145
|
|
|
189
146
|
|
|
@@ -202,26 +159,29 @@ export class A_EntityController extends A_Component {
|
|
|
202
159
|
@A_Inject(A_Response) response: A_Response,
|
|
203
160
|
@A_Inject(A_Scope) scope: A_Scope
|
|
204
161
|
) {
|
|
205
|
-
if (!ASEID.isASEID(request.params.aseid))
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
162
|
+
if (!ASEID.isASEID(request.params.aseid))
|
|
163
|
+
throw new A_HttpServerError({
|
|
164
|
+
status: 400,
|
|
165
|
+
description: `Invalid ASEID: "${request.params.aseid}"`,
|
|
166
|
+
});
|
|
209
167
|
|
|
210
168
|
const constructor = scope.resolveConstructor(request.params.aseid);
|
|
211
169
|
|
|
212
|
-
if (!constructor)
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
170
|
+
if (!constructor)
|
|
171
|
+
throw new A_HttpServerError({
|
|
172
|
+
status: 404,
|
|
173
|
+
description: `Entity constructor for ASEID ${request.params.aseid} not found`,
|
|
174
|
+
});
|
|
216
175
|
|
|
217
176
|
const meta = A_Context.meta(constructor);
|
|
218
177
|
|
|
219
178
|
const targetFeature = meta.features().find(f => f.name === `${constructor.name}.${request.params.action}`);
|
|
220
179
|
|
|
221
|
-
if (!targetFeature)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
180
|
+
if (!targetFeature)
|
|
181
|
+
throw new A_HttpServerError({
|
|
182
|
+
status: 404,
|
|
183
|
+
description: `Feature "${request.params.action}" not found on entity`,
|
|
184
|
+
});
|
|
225
185
|
|
|
226
186
|
const entity = new constructor(request.params.aseid);
|
|
227
187
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { A_Component,
|
|
1
|
+
import { A_Component, A_Feature, A_Inject, A_Scope } from "@adaas/a-concept"
|
|
2
2
|
import { A_Config } from "@adaas/a-utils/a-config";
|
|
3
3
|
import { A_Request } from "@adaas/a-server/request/A-Request.entity";
|
|
4
4
|
import { A_Response } from "@adaas/a-server/response/A-Response.entity";
|
|
5
5
|
import { A_ServerRouter } from "@adaas/a-server/router/A-ServerRouter.component";
|
|
6
6
|
import { A_ServerEntityList } from "@adaas/a-server/entity-list/A-EntityList.entity";
|
|
7
7
|
import { A_ServerListQueryFilter } from "@adaas/a-server/list-query/A-ServerListQueryFilter.context";
|
|
8
|
+
import { A_HttpServerError } from "../../lib/A-Server/A-HttpServer.error";
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
|
|
@@ -26,31 +27,32 @@ export class A_ListingController extends A_Component {
|
|
|
26
27
|
@A_Inject(A_Config) config: A_Config<['A_LIST_ITEMS_PER_PAGE', 'A_LIST_PAGE']>
|
|
27
28
|
) {
|
|
28
29
|
|
|
29
|
-
const
|
|
30
|
+
const ctor = scope.resolveConstructor(request.params.type);
|
|
30
31
|
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
scope: scope.name,
|
|
36
|
-
constructor
|
|
32
|
+
if (!ctor)
|
|
33
|
+
throw new A_HttpServerError({
|
|
34
|
+
status: 404,
|
|
35
|
+
description: `Entity type "${request.params.type}" not registered`,
|
|
37
36
|
});
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
const entityList = new A_ServerEntityList({
|
|
39
|
+
entity: ctor,
|
|
40
|
+
});
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
scope.register(entityList);
|
|
43
|
+
|
|
44
|
+
const queryFilter = new A_ServerListQueryFilter(request.query, {
|
|
45
|
+
itemsPerPage: String(config.get('A_LIST_ITEMS_PER_PAGE') || '10'),
|
|
46
|
+
page: String(config.get('A_LIST_PAGE') || '1'),
|
|
47
|
+
});
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
const queryScope = new A_Scope({
|
|
50
|
+
fragments: [queryFilter],
|
|
51
|
+
}).inherit(scope);
|
|
49
52
|
|
|
50
|
-
|
|
53
|
+
await entityList.load(queryScope);
|
|
51
54
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
+
response.add('items', entityList.items);
|
|
56
|
+
response.add('pagination', entityList.pagination);
|
|
55
57
|
}
|
|
56
58
|
}
|