@expressots/core 1.8.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/lib/CHANGELOG.md +26 -3
  2. package/lib/cjs/common/color-service.provider.js +46 -0
  3. package/lib/cjs/common/package-resolver.provider.js +35 -0
  4. package/lib/cjs/console/console.js +10 -33
  5. package/lib/cjs/controller/base-controller.js +0 -2
  6. package/lib/cjs/error/report.js +14 -5
  7. package/lib/cjs/index.js +1 -2
  8. package/lib/cjs/provider/dto-validator/dto-validator.provider.js +62 -0
  9. package/lib/cjs/{environment/env-validator.js → provider/environment/env-validator.provider.js} +16 -10
  10. package/lib/cjs/provider/index.js +11 -0
  11. package/lib/cjs/provider/logger/logger-service.js +114 -0
  12. package/lib/cjs/provider/provider-service.js +36 -0
  13. package/lib/cjs/types/common/color-service.provider.d.ts +30 -0
  14. package/lib/cjs/types/common/color-service.provider.d.ts.map +1 -0
  15. package/lib/cjs/types/common/package-resolver.provider.d.ts +9 -0
  16. package/lib/cjs/types/common/package-resolver.provider.d.ts.map +1 -0
  17. package/lib/cjs/types/console/console.d.ts +1 -1
  18. package/lib/cjs/types/console/console.d.ts.map +1 -1
  19. package/lib/cjs/types/controller/base-controller.d.ts.map +1 -1
  20. package/lib/cjs/types/error/report.d.ts +5 -3
  21. package/lib/cjs/types/error/report.d.ts.map +1 -1
  22. package/lib/cjs/types/index.d.ts +1 -2
  23. package/lib/cjs/types/index.d.ts.map +1 -1
  24. package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts +12 -0
  25. package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts.map +1 -0
  26. package/lib/cjs/types/{environment/env-validator.d.ts → provider/environment/env-validator.provider.d.ts} +7 -4
  27. package/lib/cjs/types/provider/environment/env-validator.provider.d.ts.map +1 -0
  28. package/lib/cjs/types/provider/index.d.ts +5 -0
  29. package/lib/cjs/types/provider/index.d.ts.map +1 -0
  30. package/lib/cjs/types/provider/logger/logger-service.d.ts +50 -0
  31. package/lib/cjs/types/provider/logger/logger-service.d.ts.map +1 -0
  32. package/lib/cjs/types/{logger/general-logger.d.ts → provider/logger/winston-logger.d.ts} +1 -1
  33. package/lib/cjs/types/provider/logger/winston-logger.d.ts.map +1 -0
  34. package/lib/cjs/types/provider/provider-service.d.ts +31 -0
  35. package/lib/cjs/types/provider/provider-service.d.ts.map +1 -0
  36. package/lib/esm/common/color-service.provider.js +46 -0
  37. package/lib/esm/common/package-resolver.provider.js +35 -0
  38. package/lib/esm/console/console.js +10 -33
  39. package/lib/esm/controller/base-controller.js +0 -2
  40. package/lib/esm/error/report.js +15 -5
  41. package/lib/esm/index.mjs +1 -2
  42. package/lib/esm/provider/dto-validator/dto-validator.provider.js +53 -0
  43. package/lib/esm/{environment/env-validator.js → provider/environment/env-validator.provider.js} +17 -10
  44. package/lib/esm/provider/index.js +11 -0
  45. package/lib/esm/provider/logger/logger-service.js +115 -0
  46. package/lib/esm/provider/provider-service.js +38 -0
  47. package/lib/esm/types/common/color-service.provider.d.ts +30 -0
  48. package/lib/esm/types/common/color-service.provider.d.ts.map +1 -0
  49. package/lib/esm/types/common/package-resolver.provider.d.ts +9 -0
  50. package/lib/esm/types/common/package-resolver.provider.d.ts.map +1 -0
  51. package/lib/esm/types/console/console.d.ts +1 -1
  52. package/lib/esm/types/console/console.d.ts.map +1 -1
  53. package/lib/esm/types/controller/base-controller.d.ts.map +1 -1
  54. package/lib/esm/types/error/report.d.ts +5 -3
  55. package/lib/esm/types/error/report.d.ts.map +1 -1
  56. package/lib/esm/types/index.d.ts +1 -2
  57. package/lib/esm/types/index.d.ts.map +1 -1
  58. package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts +12 -0
  59. package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts.map +1 -0
  60. package/lib/esm/types/{environment/env-validator.d.ts → provider/environment/env-validator.provider.d.ts} +7 -4
  61. package/lib/esm/types/provider/environment/env-validator.provider.d.ts.map +1 -0
  62. package/lib/esm/types/provider/index.d.ts +5 -0
  63. package/lib/esm/types/provider/index.d.ts.map +1 -0
  64. package/lib/esm/types/provider/logger/logger-service.d.ts +50 -0
  65. package/lib/esm/types/provider/logger/logger-service.d.ts.map +1 -0
  66. package/lib/esm/types/{logger/general-logger.d.ts → provider/logger/winston-logger.d.ts} +1 -1
  67. package/lib/esm/types/provider/logger/winston-logger.d.ts.map +1 -0
  68. package/lib/esm/types/provider/provider-service.d.ts +31 -0
  69. package/lib/esm/types/provider/provider-service.d.ts.map +1 -0
  70. package/lib/package.json +2 -3
  71. package/package.json +2 -3
  72. package/lib/cjs/environment/index.js +0 -5
  73. package/lib/cjs/logger/index.js +0 -7
  74. package/lib/cjs/types/environment/env-validator.d.ts.map +0 -1
  75. package/lib/cjs/types/environment/index.d.ts +0 -2
  76. package/lib/cjs/types/environment/index.d.ts.map +0 -1
  77. package/lib/cjs/types/logger/general-logger.d.ts.map +0 -1
  78. package/lib/cjs/types/logger/index.d.ts +0 -2
  79. package/lib/cjs/types/logger/index.d.ts.map +0 -1
  80. package/lib/esm/environment/index.js +0 -5
  81. package/lib/esm/logger/index.js +0 -7
  82. package/lib/esm/types/environment/env-validator.d.ts.map +0 -1
  83. package/lib/esm/types/environment/index.d.ts +0 -2
  84. package/lib/esm/types/environment/index.d.ts.map +0 -1
  85. package/lib/esm/types/logger/general-logger.d.ts.map +0 -1
  86. package/lib/esm/types/logger/index.d.ts +0 -2
  87. package/lib/esm/types/logger/index.d.ts.map +0 -1
  88. /package/lib/cjs/{logger/general-logger.js → provider/logger/winston-logger.js} +0 -0
  89. /package/lib/esm/{logger/general-logger.js → provider/logger/winston-logger.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/console/console.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,UAAU,4BAA4B;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,cACM,OAAO;IACX;;;;OAIG;YACW,UAAU;IAgBxB;;;;;OAKG;IACU,aAAa,CAExB,IAAI,EAAE,GAAG,EACT,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,4BAA4B,GAC5C,OAAO,CAAC,IAAI,CAAC;CA6BjB;AAED,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/console/console.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,UAAU,4BAA4B;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,cACM,OAAO;IACX;;;;OAIG;YACW,UAAU;IAWxB;;;;;OAKG;IACU,aAAa,CACxB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,4BAA4B,GAC5C,OAAO,CAAC,IAAI,CAAC;CA6BjB;AAED,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-controller.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/controller/base-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD;;;;GAIG;AACH,uBACe,cAAe,YAAW,UAAU,CAAC,UAAU;IAC5D,OAAO,CAAC,WAAW,CAAS;IAE5B;;;OAGG;gBACS,WAAW,GAAE,MAAW;IAIpC;;;;;OAKG;cACa,gBAAgB,CAC9B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EACrB,GAAG,EAAE,GAAG,EACR,iBAAiB,EAAE,MAAM;IAK3B;;;;;OAKG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM;IAIvE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,KAAK,GAAG,IAAI;IAI5E;;;;;;;;;;OAUG;IACH,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,KAAK,GACX,OAAO,CAAC,MAAM,CAAC;CAWnB;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"base-controller.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/controller/base-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;;;GAIG;AACH,uBACe,cAAe,YAAW,UAAU,CAAC,UAAU;IAC5D,OAAO,CAAC,WAAW,CAAS;IAE5B;;;OAGG;gBACS,WAAW,GAAE,MAAW;IAIpC;;;;;OAKG;cACa,gBAAgB,CAC9B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EACrB,GAAG,EAAE,GAAG,EACR,iBAAiB,EAAE,MAAM;IAK3B;;;;;OAKG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM;IAIvE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,KAAK,GAAG,IAAI;IAI5E;;;;;;;;;;OAUG;IACH,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,KAAK,GACX,OAAO,CAAC,MAAM,CAAC;CAUnB;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -6,19 +6,21 @@ import { AppError } from "./app-error";
6
6
  */
7
7
  declare class Report {
8
8
  static stack: string;
9
+ private logger;
10
+ constructor();
9
11
  /**
10
12
  * The Error method is responsible for generating a standardized error object,
11
13
  * logging the error, and then throwing it for further handling.
12
- * The error thrown is of the custom type IAppError, which extends the built-in Error class.
14
+ * The error thrown is of the custom type AppError, which extends the built-in Error class.
13
15
  *
14
16
  * @param error - An instance of Error or a string that describes the error.
15
17
  * @param statusCode - The HTTP status code associated with the error (default is 500).
16
18
  * @param service - The service name associated with the error. If not specified,
17
19
  * it defaults to the name of the calling function.
18
20
  *
19
- * @throws An object of the custom type IAppError, which includes details about the error.
21
+ * @throws An object of the custom type AppError, which includes details about the error.
20
22
  */
21
- Error(error: Error | string, statusCode?: number, service?: string): AppError;
23
+ error(error: Error | string, statusCode?: number, service?: string): AppError;
22
24
  }
23
25
  export { Report };
24
26
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/error/report.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;GAIG;AACH,cACM,MAAM;IACV,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;;OAWG;IACI,KAAK,CACV,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,QAAQ;CAWZ;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/error/report.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;GAIG;AACH,cACM,MAAM;IACV,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,MAAM,CAAS;;IAMvB;;;;;;;;;;;OAWG;IACI,KAAK,CACV,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,QAAQ;CAgBZ;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -4,8 +4,7 @@ export * from "./console";
4
4
  export * from "./container-module";
5
5
  export * from "./controller";
6
6
  export * from "./decorator";
7
- export * from "./environment";
8
7
  export * from "./error";
9
- export * from "./logger";
8
+ export * from "./provider";
10
9
  export * from "./render";
11
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/core/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,12 @@
1
+ import "reflect-metadata";
2
+ import { RequestHandler } from "express";
3
+ /**
4
+ * Validate the DTO using class-validator and class-transformer.
5
+ * @param type - The type of the DTO to validate.
6
+ * @returns A RequestHandler function.
7
+ * @throws An exception if the DTO is invalid.
8
+ *
9
+ */
10
+ declare function ValidateDTO<T extends object>(type: new () => T): RequestHandler;
11
+ export { ValidateDTO };
12
+ //# sourceMappingURL=dto-validator.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto-validator.provider.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/provider/dto-validator/dto-validator.provider.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAmC,cAAc,EAAE,MAAM,SAAS,CAAC;AAK1E;;;;;;GAMG;AACH,iBAAS,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,cAAc,CA8CxE;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,21 +1,24 @@
1
+ type DefaultValueType = string | number | boolean | undefined;
1
2
  /**
2
3
  * The EnvValidatorProvider class provides utility methods for working with environment variables.
3
4
  * It validates, loads, and retrieves environment variables from the .env file.
4
5
  * @provide EnvValidatorProvider
5
6
  */
6
7
  declare class EnvValidatorProvider {
8
+ private logger;
9
+ constructor();
7
10
  /**
8
11
  * Retrieves the value of an environment variable, or a default value if the variable is not set.
9
12
  * @param key - The key of the environment variable.
10
13
  * @param defaultValue - The default value to return if the environment variable is not set.
11
14
  * @returns The value of the environment variable, or the default value if not set.
12
15
  */
13
- static get(key: string, defaultValue?: any): any;
16
+ get(key: string, defaultValue?: DefaultValueType): DefaultValueType;
14
17
  /**
15
18
  * Validates and loads all environment variables from the .env file.
16
19
  * If the .env file does not exist or any environment variables are not set, the process will exit with an error.
17
20
  */
18
- static checkAll(): void;
21
+ checkAll(): void;
19
22
  }
20
23
  declare global {
21
24
  interface String {
@@ -24,5 +27,5 @@ declare global {
24
27
  AsString(): string | undefined;
25
28
  }
26
29
  }
27
- export { EnvValidatorProvider as Environments };
28
- //# sourceMappingURL=env-validator.d.ts.map
30
+ export { EnvValidatorProvider };
31
+ //# sourceMappingURL=env-validator.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-validator.provider.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/provider/environment/env-validator.provider.ts"],"names":[],"mappings":"AAMA,KAAK,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9D;;;;GAIG;AACH,cACM,oBAAoB;IACxB,OAAO,CAAC,MAAM,CAAS;;IAMvB;;;;;OAKG;IACI,GAAG,CACR,GAAG,EAAE,MAAM,EACX,YAAY,GAAE,gBAA4B,GACzC,gBAAgB;IAInB;;;OAGG;IACI,QAAQ,IAAI,IAAI;CAoCxB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,SAAS,IAAI,OAAO,GAAG,SAAS,CAAC;QACjC,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC;QAC/B,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC;KAChC;CACF;AAyBD,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { Provider, IProvider } from "./provider-service";
2
+ export { Logger } from "./logger/logger-service";
3
+ export { EnvValidatorProvider } from "./environment/env-validator.provider";
4
+ export { ValidateDTO } from "./dto-validator/dto-validator.provider";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Represents the different logging levels.
3
+ */
4
+ type LogLevel = "INFO" | "WARN" | "ERROR" | "NONE";
5
+ /**
6
+ * Class that provides logging functionality with colorized text.
7
+ */
8
+ declare class Logger {
9
+ private pid;
10
+ constructor();
11
+ /**
12
+ * Formats the log message with color, timestamps, and log levels.
13
+ *
14
+ * @param logLevel - The level of the log (e.g. INFO, WARN).
15
+ * @param message - The main log message.
16
+ * @param module - Optional module name.
17
+ * @returns The formatted log message.
18
+ */
19
+ protected formatMessage(logLevel: LogLevel, message: string, module?: string): string;
20
+ /**
21
+ * Logs a generic message.
22
+ *
23
+ * @param message - The message to log.
24
+ * @param module - Optional module name.
25
+ */
26
+ msg(message: string, module?: string): void;
27
+ /**
28
+ * Logs an informational message.
29
+ *
30
+ * @param message - The message to log.
31
+ * @param module - Optional module name.
32
+ */
33
+ info(message: string, module?: string): void;
34
+ /**
35
+ * Logs a warning message.
36
+ *
37
+ * @param message - The message to log.
38
+ * @param module - Optional module name.
39
+ */
40
+ warn(message: string, module?: string): void;
41
+ /**
42
+ * Logs an error message.
43
+ *
44
+ * @param message - The message to log.
45
+ * @param module - Optional module name.
46
+ */
47
+ error(message: string, module?: string): void;
48
+ }
49
+ export { Logger, LogLevel };
50
+ //# sourceMappingURL=logger-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-service.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/provider/logger/logger-service.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAanD;;GAEG;AACH,cACM,MAAM;IACV,OAAO,CAAC,GAAG,CAAS;;IAMpB;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CACrB,QAAQ,EAAE,QAAiB,EAC3B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,MAAM;IAqDT;;;;;OAKG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAIlD;;;;;OAKG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAInD;;;;;OAKG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAInD;;;;;OAKG;IACI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAGrD;AAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC"}
@@ -43,4 +43,4 @@ declare class GeneralLogger {
43
43
  }
44
44
  declare const log: (logLevel: LogLevel, content: Error | string, service?: string) => void;
45
45
  export { LogLevel, GeneralLogger, log };
46
- //# sourceMappingURL=general-logger.d.ts.map
46
+ //# sourceMappingURL=winston-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"winston-logger.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/provider/logger/winston-logger.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,aAAK,QAAQ;IACX,KAAK,IAAA;IACL,KAAK,IAAA;IACL,IAAI,IAAA;CACL;AAED;;GAEG;AACH,cACM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAS;;IAMvB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAcrC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;;OAKG;IACI,GAAG,CACR,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,KAAK,GAAG,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;CAyBR;AAGD,QAAA,MAAM,GAAG,aA/BK,QAAQ,WACT,KAAK,GAAG,MAAM,YACb,MAAM,KACf,IA4BwB,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { Logger } from "./logger/logger-service";
2
+ import { EnvValidatorProvider } from "./environment/env-validator.provider";
3
+ /**
4
+ * Interface defining the methods for the Provider class.
5
+ */
6
+ interface IProvider {
7
+ /**
8
+ * Returns an instance of the `EnvValidatorProvider`.
9
+ */
10
+ envValidator: EnvValidatorProvider;
11
+ /**
12
+ * Returns an instance of the `Logger`.
13
+ */
14
+ logger: Logger;
15
+ }
16
+ /**
17
+ * Class responsible for providing singleton instances of various services.
18
+ *
19
+ * This class implements the IProvider interface and is decorated with a
20
+ * singleton provider to ensure a single instance is reused.
21
+ */
22
+ declare class Provider implements IProvider {
23
+ envValidator: EnvValidatorProvider;
24
+ logger: Logger;
25
+ /**
26
+ * Initializes the instances of the various providers.
27
+ */
28
+ constructor();
29
+ }
30
+ export { IProvider, Provider };
31
+ //# sourceMappingURL=provider-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-service.d.ts","sourceRoot":"","sources":["../../../../packages/core/src/provider/provider-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E;;GAEG;AACH,UAAU,SAAS;IACjB;;OAEG;IACH,YAAY,EAAE,oBAAoB,CAAC;IAEnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,cACM,QAAS,YAAW,SAAS;IACjC,YAAY,EAAE,oBAAoB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;;CAKJ;AAED,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bgColorCodes = exports.colorCodes = exports.ColorStyle = void 0;
4
+ /**
5
+ * Mapping of text color codes.
6
+ *
7
+ * @remarks
8
+ * Defines the ANSI escape codes for the corresponding colors in the terminal.
9
+ */
10
+ const colorCodes = {
11
+ red: "\x1b[31m",
12
+ green: "\x1b[32m",
13
+ yellow: "\x1b[33m",
14
+ blue: "\x1b[34m",
15
+ white: "\x1b[37m",
16
+ black: "\x1b[30m",
17
+ none: "\x1b[0m",
18
+ };
19
+ exports.colorCodes = colorCodes;
20
+ /**
21
+ * ANSI escape color codes mapping for different background colors.
22
+ */
23
+ const bgColorCodes = {
24
+ red: "\x1b[41m",
25
+ green: "\x1b[42m",
26
+ yellow: "\x1b[43m",
27
+ blue: "\x1b[44m",
28
+ white: "\x1b[47m",
29
+ black: "\x1b[40m",
30
+ none: "\x1b[0m",
31
+ };
32
+ exports.bgColorCodes = bgColorCodes;
33
+ /**
34
+ * Enum representing possible color styles for console output.
35
+ *
36
+ * @remarks
37
+ * Enum values correspond to the string representations of colors.
38
+ */
39
+ var ColorStyle;
40
+ (function (ColorStyle) {
41
+ ColorStyle["None"] = "none";
42
+ ColorStyle["Yellow"] = "yellow";
43
+ ColorStyle["Blue"] = "blue";
44
+ ColorStyle["Green"] = "green";
45
+ ColorStyle["Red"] = "red";
46
+ })(ColorStyle || (exports.ColorStyle = ColorStyle = {}));
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.packageResolver = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ const logger_service_1 = require("../provider/logger/logger-service");
6
+ /**
7
+ * Resolve package from the current working directory.
8
+ * @param packageName
9
+ * @param options
10
+ * @returns
11
+ */
12
+ function packageResolver(packageName, ...options) {
13
+ const logger = new logger_service_1.Logger();
14
+ try {
15
+ const hasPackage = require.resolve(packageName, {
16
+ paths: [process.cwd()],
17
+ });
18
+ if (hasPackage) {
19
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
20
+ const packageResolved = require(hasPackage);
21
+ if (typeof packageResolved === "function") {
22
+ return packageResolved(...options);
23
+ }
24
+ if (packageResolved.default &&
25
+ typeof packageResolved.default === "function") {
26
+ return packageResolved.default(...options);
27
+ }
28
+ return packageResolved;
29
+ }
30
+ }
31
+ catch (error) {
32
+ logger.warn(`Package [${packageName}] not installed. Please install it using your package manager.`, "package-resolver");
33
+ }
34
+ }
35
+ exports.packageResolver = packageResolver;
@@ -5,25 +5,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
8
  var Console_1;
12
9
  Object.defineProperty(exports, "__esModule", { value: true });
13
10
  exports.Console = void 0;
14
- const chalk_1 = __importDefault(require("chalk"));
15
11
  const inversify_binding_decorators_1 = require("inversify-binding-decorators");
16
- /**
17
- * Enum representing possible color styles for console output.
18
- */
19
- var ColorStyle;
20
- (function (ColorStyle) {
21
- ColorStyle[ColorStyle["None"] = 0] = "None";
22
- ColorStyle[ColorStyle["Yellow"] = 1] = "Yellow";
23
- ColorStyle[ColorStyle["Blue"] = 2] = "Blue";
24
- ColorStyle[ColorStyle["Green"] = 3] = "Green";
25
- ColorStyle[ColorStyle["Red"] = 4] = "Red";
26
- })(ColorStyle || (ColorStyle = {}));
12
+ const color_service_provider_1 = require("../common/color-service.provider");
27
13
  /**
28
14
  * The Console class provides methods for displaying styled messages in the console.
29
15
  * @provide Console
@@ -35,16 +21,9 @@ let Console = Console_1 = class Console {
35
21
  * @param colorStyle - The color style for the message.
36
22
  */
37
23
  async printColor(message, colorStyle) {
38
- switch (colorStyle) {
39
- case ColorStyle.Yellow:
40
- return console.log(chalk_1.default.bgYellow.black(message));
41
- case ColorStyle.Blue:
42
- return console.log(chalk_1.default.bgBlue.black(message));
43
- case ColorStyle.Green:
44
- return console.log(chalk_1.default.bgGreen.black(message));
45
- case ColorStyle.Red:
46
- return console.log(chalk_1.default.bgRed.black(message));
47
- }
24
+ const textColor = "black";
25
+ const bgColor = colorStyle;
26
+ console.log(`${color_service_provider_1.bgColorCodes[bgColor]}${color_service_provider_1.colorCodes[textColor]}${message}\x1b[0m`);
48
27
  }
49
28
  /**
50
29
  * Display a message in the console with details about the running server.
@@ -52,26 +31,24 @@ let Console = Console_1 = class Console {
52
31
  * @param environment - The server environment.
53
32
  * @param consoleMessage - Optional application message details for console output.
54
33
  */
55
- async messageServer(
56
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
- port, environment, consoleMessage) {
34
+ async messageServer(port, environment, consoleMessage) {
58
35
  const appConsoleMessage = {
59
36
  appName: consoleMessage?.appName || "Application",
60
37
  appVersion: consoleMessage?.appVersion || "not provided",
61
38
  };
62
- let terminalColor = ColorStyle.None;
39
+ let terminalColor = color_service_provider_1.ColorStyle.None;
63
40
  switch (environment.toLowerCase()) {
64
41
  case "development":
65
- terminalColor = ColorStyle.Yellow;
42
+ terminalColor = color_service_provider_1.ColorStyle.Yellow;
66
43
  break;
67
44
  case "staging":
68
- terminalColor = ColorStyle.Blue;
45
+ terminalColor = color_service_provider_1.ColorStyle.Blue;
69
46
  break;
70
47
  case "production":
71
- terminalColor = ColorStyle.Green;
48
+ terminalColor = color_service_provider_1.ColorStyle.Green;
72
49
  break;
73
50
  default:
74
- terminalColor = ColorStyle.Red;
51
+ terminalColor = color_service_provider_1.ColorStyle.Red;
75
52
  break;
76
53
  }
77
54
  this.printColor(`${appConsoleMessage.appName} version ${appConsoleMessage.appVersion} is running on ` +
@@ -12,7 +12,6 @@ var BaseController_1;
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.BaseController = void 0;
14
14
  const inversify_binding_decorators_1 = require("inversify-binding-decorators");
15
- const logger_1 = require("../logger");
16
15
  /**
17
16
  * The BaseController class is an abstract base class for controllers.
18
17
  * It provides methods for handling use case calls and sending appropriate responses.
@@ -74,7 +73,6 @@ let BaseController = BaseController_1 = class BaseController {
74
73
  return new Promise((resolve, reject) => {
75
74
  res.render(template, options, (err, compiled) => {
76
75
  if (err) {
77
- (0, logger_1.log)(logger_1.LogLevel.Error, err.message, "base-controller");
78
76
  reject(err);
79
77
  }
80
78
  resolve(compiled);
@@ -5,10 +5,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  var Report_1;
9
12
  Object.defineProperty(exports, "__esModule", { value: true });
10
13
  exports.Report = void 0;
11
14
  const inversify_binding_decorators_1 = require("inversify-binding-decorators");
15
+ const logger_service_1 = require("../provider/logger/logger-service");
12
16
  const app_error_1 = require("./app-error");
13
17
  /**
14
18
  * Report class is a utility class to manage and log errors within the application.
@@ -18,19 +22,23 @@ const app_error_1 = require("./app-error");
18
22
  let Report = class Report {
19
23
  static { Report_1 = this; }
20
24
  static stack;
25
+ logger;
26
+ constructor() {
27
+ this.logger = new logger_service_1.Logger();
28
+ }
21
29
  /**
22
30
  * The Error method is responsible for generating a standardized error object,
23
31
  * logging the error, and then throwing it for further handling.
24
- * The error thrown is of the custom type IAppError, which extends the built-in Error class.
32
+ * The error thrown is of the custom type AppError, which extends the built-in Error class.
25
33
  *
26
34
  * @param error - An instance of Error or a string that describes the error.
27
35
  * @param statusCode - The HTTP status code associated with the error (default is 500).
28
36
  * @param service - The service name associated with the error. If not specified,
29
37
  * it defaults to the name of the calling function.
30
38
  *
31
- * @throws An object of the custom type IAppError, which includes details about the error.
39
+ * @throws An object of the custom type AppError, which includes details about the error.
32
40
  */
33
- Error(error, statusCode, service) {
41
+ error(error, statusCode, service) {
34
42
  let appError = {};
35
43
  if (error instanceof Error) {
36
44
  appError = new app_error_1.AppError(error.message, statusCode, service);
@@ -38,10 +46,12 @@ let Report = class Report {
38
46
  else {
39
47
  appError = new app_error_1.AppError(error, statusCode, service);
40
48
  }
41
- throw appError;
49
+ this.logger.error(appError.message, appError.service || "service-undefined");
50
+ return appError;
42
51
  }
43
52
  };
44
53
  exports.Report = Report;
45
54
  exports.Report = Report = Report_1 = __decorate([
46
- (0, inversify_binding_decorators_1.provide)(Report_1)
55
+ (0, inversify_binding_decorators_1.provide)(Report_1),
56
+ __metadata("design:paramtypes", [])
47
57
  ], Report);
package/lib/esm/index.mjs CHANGED
@@ -20,7 +20,6 @@ __exportStar(require("./console"), exports);
20
20
  __exportStar(require("./container-module"), exports);
21
21
  __exportStar(require("./controller"), exports);
22
22
  __exportStar(require("./decorator"), exports);
23
- __exportStar(require("./environment"), exports);
24
23
  __exportStar(require("./error"), exports);
25
- __exportStar(require("./logger"), exports);
24
+ __exportStar(require("./provider"), exports);
26
25
  __exportStar(require("./render"), exports);
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidateDTO = void 0;
4
+ require("reflect-metadata");
5
+ const status_code_1 = require("../../error/status-code");
6
+ const package_resolver_provider_1 = require("../../common/package-resolver.provider");
7
+ const logger_service_1 = require("../logger/logger-service");
8
+ /**
9
+ * Validate the DTO using class-validator and class-transformer.
10
+ * @param type - The type of the DTO to validate.
11
+ * @returns A RequestHandler function.
12
+ * @throws An exception if the DTO is invalid.
13
+ *
14
+ */
15
+ function ValidateDTO(type) {
16
+ return async (req, res, next) => {
17
+ const logger = new logger_service_1.Logger();
18
+ const classValidator = (0, package_resolver_provider_1.packageResolver)("class-validator");
19
+ const classTransformer = (0, package_resolver_provider_1.packageResolver)("class-transformer");
20
+ if (!classValidator || !classTransformer) {
21
+ return next();
22
+ }
23
+ try {
24
+ const errors = await classValidator.validate(classTransformer.plainToClass(type, req.body));
25
+ if (errors.length > 0) {
26
+ const DTO = errors.reduce((acc, error) => {
27
+ if (error.constraints) {
28
+ const propertyName = error.property;
29
+ if (!acc.some((e) => e.property === propertyName)) {
30
+ acc.push({ property: propertyName, messages: [] });
31
+ }
32
+ const target = acc.find((e) => e.property === propertyName);
33
+ target.messages.push(...Object.values(error.constraints));
34
+ }
35
+ return acc;
36
+ }, []);
37
+ res.status(status_code_1.StatusCode.BadRequest).json({
38
+ errorCode: status_code_1.StatusCode.BadRequest,
39
+ errorMessage: "Bad Request",
40
+ DTO,
41
+ });
42
+ }
43
+ else {
44
+ next();
45
+ }
46
+ }
47
+ catch (error) {
48
+ logger.error(`An exception occurred while validating the DTO: ${error}`, "validate-dto-provider");
49
+ next(error);
50
+ }
51
+ };
52
+ }
53
+ exports.ValidateDTO = ValidateDTO;
@@ -5,43 +5,49 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
13
  };
11
14
  var EnvValidatorProvider_1;
12
15
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.Environments = void 0;
16
+ exports.EnvValidatorProvider = void 0;
14
17
  const fs_1 = __importDefault(require("fs"));
15
18
  const path_1 = __importDefault(require("path"));
16
19
  const dotenv_1 = __importDefault(require("dotenv"));
17
20
  const inversify_binding_decorators_1 = require("inversify-binding-decorators");
18
- const logger_1 = require("../logger");
21
+ const logger_service_1 = require("../logger/logger-service");
19
22
  /**
20
23
  * The EnvValidatorProvider class provides utility methods for working with environment variables.
21
24
  * It validates, loads, and retrieves environment variables from the .env file.
22
25
  * @provide EnvValidatorProvider
23
26
  */
24
27
  let EnvValidatorProvider = EnvValidatorProvider_1 = class EnvValidatorProvider {
28
+ logger;
29
+ constructor() {
30
+ this.logger = new logger_service_1.Logger();
31
+ }
25
32
  /**
26
33
  * Retrieves the value of an environment variable, or a default value if the variable is not set.
27
34
  * @param key - The key of the environment variable.
28
35
  * @param defaultValue - The default value to return if the environment variable is not set.
29
36
  * @returns The value of the environment variable, or the default value if not set.
30
37
  */
31
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
- static get(key, defaultValue = undefined) {
38
+ get(key, defaultValue = undefined) {
33
39
  return process.env[key] ?? defaultValue;
34
40
  }
35
41
  /**
36
42
  * Validates and loads all environment variables from the .env file.
37
43
  * If the .env file does not exist or any environment variables are not set, the process will exit with an error.
38
44
  */
39
- static checkAll() {
45
+ checkAll() {
40
46
  // Get the full path of the .env file
41
47
  const envFilePath = path_1.default.join(process.cwd(), ".", ".env");
42
48
  // Check if the .env file exists
43
49
  if (!fs_1.default.existsSync(envFilePath)) {
44
- (0, logger_1.log)(logger_1.LogLevel.Info, "Environment file .env is not defined.", "env-validator-provider");
50
+ this.logger.error("Environment file .env is not defined.", "env-validator-provider");
45
51
  process.exit(1);
46
52
  }
47
53
  // Load the environment variables from the .env file
@@ -53,7 +59,7 @@ let EnvValidatorProvider = EnvValidatorProvider_1 = class EnvValidatorProvider {
53
59
  for (const key of Object.keys(dotEnvParsed)) {
54
60
  // Check if the environment variable is not defined or is an empty string
55
61
  if (!process.env[key] || process.env[key] === "") {
56
- (0, logger_1.log)(logger_1.LogLevel.Info, `Environment variable ${key} is not defined.`, "env-validator-provider");
62
+ this.logger.error(`Environment variable ${key} is not defined.`, "env-validator-provider");
57
63
  hasError = true;
58
64
  }
59
65
  }
@@ -63,9 +69,10 @@ let EnvValidatorProvider = EnvValidatorProvider_1 = class EnvValidatorProvider {
63
69
  }
64
70
  }
65
71
  };
66
- exports.Environments = EnvValidatorProvider;
67
- exports.Environments = EnvValidatorProvider = EnvValidatorProvider_1 = __decorate([
68
- (0, inversify_binding_decorators_1.provide)(EnvValidatorProvider_1)
72
+ exports.EnvValidatorProvider = EnvValidatorProvider;
73
+ exports.EnvValidatorProvider = EnvValidatorProvider = EnvValidatorProvider_1 = __decorate([
74
+ (0, inversify_binding_decorators_1.provide)(EnvValidatorProvider_1),
75
+ __metadata("design:paramtypes", [])
69
76
  ], EnvValidatorProvider);
70
77
  String.prototype.AsBoolean = function () {
71
78
  switch (this.toLowerCase().trim()) {
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidateDTO = exports.EnvValidatorProvider = exports.Logger = exports.Provider = void 0;
4
+ var provider_service_1 = require("./provider-service");
5
+ Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return provider_service_1.Provider; } });
6
+ var logger_service_1 = require("./logger/logger-service");
7
+ Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_service_1.Logger; } });
8
+ var env_validator_provider_1 = require("./environment/env-validator.provider");
9
+ Object.defineProperty(exports, "EnvValidatorProvider", { enumerable: true, get: function () { return env_validator_provider_1.EnvValidatorProvider; } });
10
+ var dto_validator_provider_1 = require("./dto-validator/dto-validator.provider");
11
+ Object.defineProperty(exports, "ValidateDTO", { enumerable: true, get: function () { return dto_validator_provider_1.ValidateDTO; } });