{"version":3,"sources":["../../../../src/lib/A-ServerLogger/A-ServerLogger.component.ts"],"names":[],"mappings":";;;;;;;;;AAUO,MAAM,uBAAuB,QAAA,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,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,kBAAA,CAAmB,MAAA;AAAA,IACzB,KAAA,EAAO,CAAC,UAAU;AAAA,GACrB,CAAA;AAAA,EAEI,4BAAS,SAAS,CAAA,CAAA;AAAA,EAClB,4BAAS,UAAU,CAAA,CAAA;AAAA,EACnB,4BAAS,0BAA0B,CAAA;AAAA,CAAA,EAb/B,cAAA,CAUT,SAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;AAcA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,kBAAA,CAAmB,OAAA;AAAA,IACzB,KAAA,EAAO,CAAC,UAAU;AAAA,GACrB,CAAA;AAAA,EAEI,4BAAS,SAAS,CAAA,CAAA;AAAA,EAClB,4BAAS,UAAU,CAAA,CAAA;AAAA,EACnB,4BAAS,0BAA0B,CAAA,CAAA;AAAA,EACnC,4BAAS,OAAO,CAAA;AAAA,CAAA,EA5BZ,cAAA,CAwBT,SAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;AAmCA,eAAA,CAAA;AAAA,EAJC,UAAU,MAAA,CAAO;AAAA,IACd,MAAM,iBAAA,CAAkB,WAAA;AAAA,IACxB,KAAA,EAAO,CAAC,SAAS;AAAA,GACpB,CAAA;AAAA,EAEI,4BAAS,OAAO,CAAA;AAAA,CAAA,EA5DZ,cAAA,CA2DT,SAAA,EAAA,SAAA,EAAA,CAAA,CAAA","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}"]}