bootifyjs 0.0.3 → 0.1.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 (188) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +116 -510
  3. package/dist/api.d.ts +32 -0
  4. package/dist/api.js +149 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/config/app.config.d.ts +29 -0
  7. package/dist/config/app.config.js +55 -0
  8. package/dist/config/app.config.js.map +1 -0
  9. package/dist/controllers/config.controller.d.ts +16 -0
  10. package/dist/controllers/config.controller.js +66 -0
  11. package/dist/controllers/config.controller.js.map +1 -0
  12. package/dist/controllers/events.controller.d.ts +66 -0
  13. package/dist/controllers/events.controller.js +145 -0
  14. package/dist/controllers/events.controller.js.map +1 -0
  15. package/dist/controllers/health.controller.d.ts +20 -0
  16. package/dist/controllers/health.controller.js +92 -0
  17. package/dist/controllers/health.controller.js.map +1 -0
  18. package/dist/controllers/user.controller.d.ts +13 -0
  19. package/dist/controllers/user.controller.js +209 -0
  20. package/dist/controllers/user.controller.js.map +1 -0
  21. package/dist/core/application.d.ts +21 -0
  22. package/dist/core/application.js +90 -0
  23. package/dist/core/application.js.map +1 -0
  24. package/dist/core/config.d.ts +3 -0
  25. package/dist/core/config.js +78 -0
  26. package/dist/core/config.js.map +1 -0
  27. package/dist/core/container.d.ts +17 -0
  28. package/dist/core/container.js +92 -0
  29. package/dist/core/container.js.map +1 -0
  30. package/dist/core/decorators.d.ts +28 -0
  31. package/dist/core/decorators.js +204 -0
  32. package/dist/core/decorators.js.map +1 -0
  33. package/dist/core/errors.d.ts +18 -0
  34. package/dist/core/errors.js +74 -0
  35. package/dist/core/errors.js.map +1 -0
  36. package/dist/core/middleware.d.ts +8 -0
  37. package/dist/core/middleware.js +23 -0
  38. package/dist/core/middleware.js.map +1 -0
  39. package/dist/core/openapi.d.ts +80 -0
  40. package/dist/core/openapi.js +189 -0
  41. package/dist/core/openapi.js.map +1 -0
  42. package/dist/core/router.d.ts +32 -0
  43. package/dist/core/router.js +266 -0
  44. package/dist/core/router.js.map +1 -0
  45. package/dist/core/utils.d.ts +7 -0
  46. package/dist/core/utils.js +75 -0
  47. package/dist/core/utils.js.map +1 -0
  48. package/dist/core/validation.d.ts +15 -0
  49. package/dist/core/validation.js +161 -0
  50. package/dist/core/validation.js.map +1 -0
  51. package/dist/events/core/event-bus.d.ts +26 -0
  52. package/dist/events/core/event-bus.js +253 -0
  53. package/dist/events/core/event-bus.js.map +1 -0
  54. package/dist/events/core/event-registry.d.ts +31 -0
  55. package/dist/events/core/event-registry.js +170 -0
  56. package/dist/events/core/event-registry.js.map +1 -0
  57. package/dist/events/decorators/event.decorators.d.ts +11 -0
  58. package/dist/events/decorators/event.decorators.js +123 -0
  59. package/dist/events/decorators/event.decorators.js.map +1 -0
  60. package/dist/events/examples/system.events.d.ts +15 -0
  61. package/dist/events/examples/system.events.js +28 -0
  62. package/dist/events/examples/system.events.js.map +1 -0
  63. package/dist/events/examples/user.events.d.ts +68 -0
  64. package/dist/events/examples/user.events.js +73 -0
  65. package/dist/events/examples/user.events.js.map +1 -0
  66. package/dist/events/examples/user.handlers.d.ts +20 -0
  67. package/dist/events/examples/user.handlers.js +157 -0
  68. package/dist/events/examples/user.handlers.js.map +1 -0
  69. package/dist/events/index.d.ts +13 -0
  70. package/dist/events/index.js +71 -0
  71. package/dist/events/index.js.map +1 -0
  72. package/dist/events/middleware/logging.middleware.d.ts +7 -0
  73. package/dist/events/middleware/logging.middleware.js +44 -0
  74. package/dist/events/middleware/logging.middleware.js.map +1 -0
  75. package/dist/events/middleware/metrics.middleware.d.ts +11 -0
  76. package/dist/events/middleware/metrics.middleware.js +87 -0
  77. package/dist/events/middleware/metrics.middleware.js.map +1 -0
  78. package/dist/events/middleware/validation.middleware.d.ts +8 -0
  79. package/dist/events/middleware/validation.middleware.js +63 -0
  80. package/dist/events/middleware/validation.middleware.js.map +1 -0
  81. package/dist/events/store/memory-event-store.d.ts +21 -0
  82. package/dist/events/store/memory-event-store.js +81 -0
  83. package/dist/events/store/memory-event-store.js.map +1 -0
  84. package/dist/events/types/event.types.d.ts +57 -0
  85. package/dist/{decorators/cache/ICacheClient.js → events/types/event.types.js} +1 -1
  86. package/dist/events/types/event.types.js.map +1 -0
  87. package/dist/examples/basic-api.d.ts +1 -0
  88. package/dist/examples/basic-api.js +120 -0
  89. package/dist/examples/basic-api.js.map +1 -0
  90. package/dist/index.d.ts +17 -11
  91. package/dist/index.js +95 -31
  92. package/dist/index.js.map +1 -1
  93. package/dist/logging/config/logging.config.d.ts +5 -0
  94. package/dist/logging/config/logging.config.js +101 -0
  95. package/dist/logging/config/logging.config.js.map +1 -0
  96. package/dist/logging/core/log-context.service.d.ts +11 -0
  97. package/dist/logging/core/log-context.service.js +40 -0
  98. package/dist/logging/core/log-context.service.js.map +1 -0
  99. package/dist/logging/core/logger.service.d.ts +29 -0
  100. package/dist/logging/core/logger.service.js +178 -0
  101. package/dist/logging/core/logger.service.js.map +1 -0
  102. package/dist/logging/core/startup-logger.service.d.ts +17 -0
  103. package/dist/logging/core/startup-logger.service.js +156 -0
  104. package/dist/logging/core/startup-logger.service.js.map +1 -0
  105. package/dist/logging/decorators/log.decorator.d.ts +11 -0
  106. package/dist/logging/decorators/log.decorator.js +80 -0
  107. package/dist/logging/decorators/log.decorator.js.map +1 -0
  108. package/dist/logging/index.d.ts +15 -0
  109. package/dist/logging/index.js +46 -0
  110. package/dist/logging/index.js.map +1 -0
  111. package/dist/logging/middleware/context.middleware.d.ts +2 -0
  112. package/dist/logging/middleware/context.middleware.js +29 -0
  113. package/dist/logging/middleware/context.middleware.js.map +1 -0
  114. package/dist/logging/middleware/request-logging.middleware.d.ts +3 -0
  115. package/dist/logging/middleware/request-logging.middleware.js +78 -0
  116. package/dist/logging/middleware/request-logging.middleware.js.map +1 -0
  117. package/dist/logging/types/logging.types.d.ts +79 -0
  118. package/dist/{decorators/transaction/IDatabaseClient.js → logging/types/logging.types.js} +1 -1
  119. package/dist/logging/types/logging.types.js.map +1 -0
  120. package/dist/middlewares/auth.middleware.d.ts +2 -0
  121. package/dist/middlewares/auth.middleware.js +20 -0
  122. package/dist/middlewares/auth.middleware.js.map +1 -0
  123. package/dist/middlewares/cors.middleware.d.ts +2 -0
  124. package/dist/middlewares/cors.middleware.js +16 -0
  125. package/dist/middlewares/cors.middleware.js.map +1 -0
  126. package/dist/middlewares/swagger.middleware.d.ts +6 -0
  127. package/dist/middlewares/swagger.middleware.js +84 -0
  128. package/dist/middlewares/swagger.middleware.js.map +1 -0
  129. package/dist/repositories/user.repository.d.ts +16 -0
  130. package/dist/repositories/user.repository.js +110 -0
  131. package/dist/repositories/user.repository.js.map +1 -0
  132. package/dist/schemas/user.schemas.d.ts +214 -0
  133. package/dist/schemas/user.schemas.js +71 -0
  134. package/dist/schemas/user.schemas.js.map +1 -0
  135. package/dist/services/config-demo.service.d.ts +10 -0
  136. package/dist/services/config-demo.service.js +88 -0
  137. package/dist/services/config-demo.service.js.map +1 -0
  138. package/dist/services/user.service.d.ts +21 -0
  139. package/dist/services/user.service.js +201 -0
  140. package/dist/services/user.service.js.map +1 -0
  141. package/package.json +49 -14
  142. package/dist/application/Application.d.ts +0 -43
  143. package/dist/application/Application.d.ts.map +0 -1
  144. package/dist/application/Application.js +0 -283
  145. package/dist/application/Application.js.map +0 -1
  146. package/dist/container/container.d.ts +0 -9
  147. package/dist/container/container.d.ts.map +0 -1
  148. package/dist/container/container.js +0 -23
  149. package/dist/container/container.js.map +0 -1
  150. package/dist/decorators/cache/ICacheClient.d.ts +0 -6
  151. package/dist/decorators/cache/ICacheClient.d.ts.map +0 -1
  152. package/dist/decorators/cache/ICacheClient.js.map +0 -1
  153. package/dist/decorators/cache/cache.decorator.d.ts +0 -2
  154. package/dist/decorators/cache/cache.decorator.d.ts.map +0 -1
  155. package/dist/decorators/cache/cache.decorator.js +0 -38
  156. package/dist/decorators/cache/cache.decorator.js.map +0 -1
  157. package/dist/decorators/controller.decorator.d.ts +0 -9
  158. package/dist/decorators/controller.decorator.d.ts.map +0 -1
  159. package/dist/decorators/controller.decorator.js +0 -99
  160. package/dist/decorators/controller.decorator.js.map +0 -1
  161. package/dist/decorators/http.decorator.d.ts +0 -7
  162. package/dist/decorators/http.decorator.d.ts.map +0 -1
  163. package/dist/decorators/http.decorator.js +0 -26
  164. package/dist/decorators/http.decorator.js.map +0 -1
  165. package/dist/decorators/timing.decorator.d.ts +0 -2
  166. package/dist/decorators/timing.decorator.d.ts.map +0 -1
  167. package/dist/decorators/timing.decorator.js +0 -26
  168. package/dist/decorators/timing.decorator.js.map +0 -1
  169. package/dist/decorators/transaction/IDatabaseClient.d.ts +0 -9
  170. package/dist/decorators/transaction/IDatabaseClient.d.ts.map +0 -1
  171. package/dist/decorators/transaction/IDatabaseClient.js.map +0 -1
  172. package/dist/decorators/transaction/transactional.decorator.d.ts +0 -2
  173. package/dist/decorators/transaction/transactional.decorator.d.ts.map +0 -1
  174. package/dist/decorators/transaction/transactional.decorator.js +0 -27
  175. package/dist/decorators/transaction/transactional.decorator.js.map +0 -1
  176. package/dist/index.d.ts.map +0 -1
  177. package/dist/logger/Logger.d.ts +0 -37
  178. package/dist/logger/Logger.d.ts.map +0 -1
  179. package/dist/logger/Logger.js +0 -142
  180. package/dist/logger/Logger.js.map +0 -1
  181. package/dist/middleware/http.d.ts +0 -2
  182. package/dist/middleware/http.d.ts.map +0 -1
  183. package/dist/middleware/http.js +0 -80
  184. package/dist/middleware/http.js.map +0 -1
  185. package/dist/middleware/requestcontext.d.ts +0 -12
  186. package/dist/middleware/requestcontext.d.ts.map +0 -1
  187. package/dist/middleware/requestcontext.js +0 -6
  188. package/dist/middleware/requestcontext.js.map +0 -1
@@ -1,7 +0,0 @@
1
- export declare function createMethodDecorator(method: string): (path?: string, options?: any) => MethodDecorator;
2
- export declare const Get: (path?: string, options?: any) => MethodDecorator;
3
- export declare const Post: (path?: string, options?: any) => MethodDecorator;
4
- export declare const Put: (path?: string, options?: any) => MethodDecorator;
5
- export declare const Delete: (path?: string, options?: any) => MethodDecorator;
6
- export declare const Patch: (path?: string, options?: any) => MethodDecorator;
7
- //# sourceMappingURL=http.decorator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/http.decorator.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,IAC1C,OAAM,MAAW,EAAE,UAAU,GAAG,KAAG,eAAe,CAe3D;AAED,eAAO,MAAM,GAAG,UAjBA,MAAM,YAAiB,GAAG,KAAG,eAiBE,CAAC;AAChD,eAAO,MAAM,IAAI,UAlBD,MAAM,YAAiB,GAAG,KAAG,eAkBI,CAAC;AAClD,eAAO,MAAM,GAAG,UAnBA,MAAM,YAAiB,GAAG,KAAG,eAmBE,CAAC;AAChD,eAAO,MAAM,MAAM,UApBH,MAAM,YAAiB,GAAG,KAAG,eAoBQ,CAAC;AACtD,eAAO,MAAM,KAAK,UArBF,MAAM,YAAiB,GAAG,KAAG,eAqBM,CAAC"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Patch = exports.Delete = exports.Put = exports.Post = exports.Get = void 0;
4
- exports.createMethodDecorator = createMethodDecorator;
5
- const controller_decorator_1 = require("./controller.decorator");
6
- function createMethodDecorator(method) {
7
- return (path = '', options) => {
8
- return (target, propertyKey, descriptor) => {
9
- const routes = Reflect.getMetadata(controller_decorator_1.ROUTE_METADATA, target.constructor) || [];
10
- routes.push({
11
- path,
12
- method: method.toUpperCase(),
13
- handlerName: propertyKey,
14
- options
15
- });
16
- Reflect.defineMetadata(controller_decorator_1.ROUTE_METADATA, routes, target.constructor);
17
- return descriptor;
18
- };
19
- };
20
- }
21
- exports.Get = createMethodDecorator('GET');
22
- exports.Post = createMethodDecorator('POST');
23
- exports.Put = createMethodDecorator('PUT');
24
- exports.Delete = createMethodDecorator('DELETE');
25
- exports.Patch = createMethodDecorator('PATCH');
26
- //# sourceMappingURL=http.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.decorator.js","sourceRoot":"","sources":["../../src/decorators/http.decorator.ts"],"names":[],"mappings":";;;AAEA,sDAgBC;AAlBD,iEAAwD;AAExD,SAAgB,qBAAqB,CAAC,MAAc;IAClD,OAAO,CAAC,OAAe,EAAE,EAAE,OAAa,EAAmB,EAAE;QAC3D,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;YACnF,MAAM,MAAM,GAAU,OAAO,CAAC,WAAW,CAAC,qCAAc,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAEpF,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;gBAC5B,WAAW,EAAE,WAAW;gBACxB,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,CAAC,cAAc,CAAC,qCAAc,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YACnE,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAEY,QAAA,GAAG,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACrC,QAAA,GAAG,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACzC,QAAA,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function Timed(): MethodDecorator;
2
- //# sourceMappingURL=timing.decorator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timing.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/timing.decorator.ts"],"names":[],"mappings":"AAAA,wBAAgB,KAAK,IAAI,eAAe,CAsBvC"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Timed = Timed;
4
- function Timed() {
5
- return (target, propertyKey, descriptor) => {
6
- const originalMethod = descriptor.value;
7
- descriptor.value = async function (...args) {
8
- const start = process.hrtime.bigint();
9
- try {
10
- const result = await originalMethod.apply(this, args);
11
- const end = process.hrtime.bigint();
12
- const duration = Number(end - start) / 1000000;
13
- console.log(`[TIMED] ${target.constructor.name}.${String(propertyKey)} took ${duration.toFixed(2)}ms`);
14
- return result;
15
- }
16
- catch (error) {
17
- const end = process.hrtime.bigint();
18
- const duration = Number(end - start) / 1000000;
19
- console.error(`[TIMED-ERROR] ${target.constructor.name}.${String(propertyKey)} failed after ${duration.toFixed(2)}ms`, error);
20
- throw error;
21
- }
22
- };
23
- return descriptor;
24
- };
25
- }
26
- //# sourceMappingURL=timing.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timing.decorator.js","sourceRoot":"","sources":["../../src/decorators/timing.decorator.ts"],"names":[],"mappings":";;AAAA,sBAsBC;AAtBD,SAAgB,KAAK;IACjB,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACjF,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,OAAS,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvG,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,OAAS,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,iBAAiB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC9H,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC"}
@@ -1,9 +0,0 @@
1
- export interface ITransaction {
2
- transaction: any;
3
- commit: () => Promise<void>;
4
- rollback: () => Promise<void>;
5
- }
6
- export interface IDatabaseClient {
7
- startTransaction(): Promise<ITransaction>;
8
- }
9
- //# sourceMappingURL=IDatabaseClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IDatabaseClient.d.ts","sourceRoot":"","sources":["../../../src/decorators/transaction/IDatabaseClient.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC5B,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CAC7C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IDatabaseClient.js","sourceRoot":"","sources":["../../../src/decorators/transaction/IDatabaseClient.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export declare function Transactional(): MethodDecorator;
2
- //# sourceMappingURL=transactional.decorator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactional.decorator.d.ts","sourceRoot":"","sources":["../../../src/decorators/transaction/transactional.decorator.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,IAAI,eAAe,CAoB/C"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Transactional = Transactional;
7
- const container_1 = __importDefault(require("../../container/container"));
8
- function Transactional() {
9
- return (target, propertyKey, descriptor) => {
10
- const originalMethod = descriptor.value;
11
- descriptor.value = async function (...args) {
12
- const dbClient = container_1.default.get('DatabaseClient');
13
- const transaction = await dbClient.startTransaction();
14
- try {
15
- const result = await originalMethod.apply(this, [...args, transaction.transaction]);
16
- await transaction.commit();
17
- return result;
18
- }
19
- catch (error) {
20
- await transaction.rollback();
21
- throw error;
22
- }
23
- };
24
- return descriptor;
25
- };
26
- }
27
- //# sourceMappingURL=transactional.decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactional.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transaction/transactional.decorator.ts"],"names":[],"mappings":";;;;;AAGA,sCAoBC;AAvBD,0EAAkD;AAGlD,SAAgB,aAAa;IACzB,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACjF,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC7C,MAAM,QAAQ,GAAG,mBAAS,CAAC,GAAG,CAAkB,gBAAgB,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAEtD,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;gBACpF,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC3B,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACnE,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kDAAkD,CAAC;AACjE,cAAc,0CAA0C,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,GAAG,MAAM,iBAAiB,CAAC"}
@@ -1,37 +0,0 @@
1
- import pino from 'pino';
2
- import { LogContext } from '../middleware/requestcontext';
3
- interface AuditLogPayload {
4
- action: string;
5
- resources: string[];
6
- details: any;
7
- [key: string]: any;
8
- }
9
- interface EventLogPayload {
10
- eventName: string;
11
- status: 'success' | 'failure' | 'pending';
12
- metadata: any;
13
- [key: string]: any;
14
- }
15
- declare class Logger {
16
- private pinoInstance;
17
- private static instance;
18
- private constructor();
19
- static getInstance(): Logger;
20
- /**
21
- * Provides access to the raw pino instance, primarily for use with pino-http.
22
- */
23
- getPinoInstance(): pino.Logger;
24
- private appLog;
25
- info(message: string, data?: Record<string, any>): void;
26
- error(message: string, error?: Error, data?: Record<string, any>): void;
27
- warn(message: string, data?: Record<string, any>): void;
28
- debug(message: string, data?: Record<string, any>): void;
29
- fatal(message: string, error?: Error, data?: Record<string, any>): void;
30
- trace(message: string, data?: Record<string, any>): void;
31
- audit(payload: AuditLogPayload): void;
32
- event(payload: EventLogPayload): void;
33
- child(bindings?: Partial<LogContext> & Record<string, any>): Logger;
34
- }
35
- declare const logger: Logger;
36
- export default logger;
37
- //# sourceMappingURL=Logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/logger/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,UAAU,EAAkB,MAAM,8BAA8B,CAAA;AAUzE,UAAU,eAAe;IAErB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,EAAE,GAAG,CAAA;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AAED,UAAU,eAAe;IAErB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;IACzC,QAAQ,EAAE,GAAG,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AAID,cAAM,MAAM;IACR,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAQ;IAE/B,OAAO;WA+DO,WAAW,IAAI,MAAM;IAoBnC;;OAEG;IACI,eAAe,IAAI,IAAI,CAAC,MAAM;IAKrC,OAAO,CAAC,MAAM;IAGP,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAGvD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAOvE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAGvD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAGxD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAOvE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAKxD,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAMrC,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAKrC,KAAK,CAAC,QAAQ,GAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,MAAM;CAQjF;AAED,QAAA,MAAM,MAAM,QAAuB,CAAA;AAEnC,eAAe,MAAM,CAAA"}
@@ -1,142 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const pino_1 = __importDefault(require("pino"));
7
- const requestcontext_1 = require("../middleware/requestcontext");
8
- // (HttpLogPayload is implicitly handled by pino-http)
9
- class Logger {
10
- constructor() {
11
- const basePinoOptions = {
12
- level: process.env.LOG_LEVEL || 'info',
13
- timestamp: () => `,"time":"${new Date().toISOString()}"`,
14
- messageKey: 'message', // Consistent message key
15
- base: {
16
- // Remove default pino fields if not needed
17
- pid: undefined,
18
- hostname: undefined,
19
- },
20
- formatters: {
21
- level: (label) => ({ level: label.toLowerCase() }), // Ensure lowercase level
22
- },
23
- mixin: () => {
24
- const store = requestcontext_1.requestContext.getStore();
25
- return {
26
- // Common context fields from AsyncLocalStorage
27
- requestId: store?.requestId,
28
- userId: store?.userId, // This might be overridden by specific log methods like audit
29
- traceId: store?.traceId,
30
- username: store?.username,
31
- // 'additionalContext' from ALS will be merged into the 'context' field for ClickHouse by the transport
32
- // context: store?.additionalContext || {},
33
- };
34
- },
35
- };
36
- const transports = [];
37
- // const clickHouseTransportPath = path.resolve(__dirname, 'pino-clickhouse-transport.js')
38
- transports.push({
39
- level: 'info', // Minimum level for ClickHouse transport
40
- // target: clickHouseTransportPath,
41
- options: {
42
- url: process.env.CLICKHOUSE_URL || 'http://localhost:8123',
43
- username: process.env.CLICKHOUSE_USER || 'default',
44
- password: process.env.CLICKHOUSE_PASSWORD || '',
45
- database: process.env.CLICKHOUSE_DB || 'default',
46
- maxBatchSize: parseInt(process.env.CLICKHOUSE_MAX_BATCH_SIZE || '1000', 10),
47
- flushInterval: parseInt(process.env.CLICKHOUSE_FLUSH_INTERVAL || '3000', 10),
48
- application: process.env.APP_NAME || 'my-application',
49
- },
50
- });
51
- if (process.env.NODE_ENV !== 'production') {
52
- transports.push({
53
- level: 'debug',
54
- target: 'pino-pretty',
55
- options: {
56
- colorize: true,
57
- translateTime: 'SYS:standard',
58
- ignore: 'pid,hostname,context,username,requestId,userId,traceId,application',
59
- messageKey: 'message', // Ensure pino-pretty uses the same messageKey
60
- },
61
- });
62
- }
63
- this.pinoInstance = (0, pino_1.default)({
64
- ...basePinoOptions,
65
- // transport: transports.length > 0 ? { targets: transports } : undefined,
66
- });
67
- }
68
- static getInstance() {
69
- if (!Logger.instance) {
70
- try {
71
- Logger.instance = new Logger();
72
- }
73
- catch (error) {
74
- console.error('CRITICAL: Error creating logger instance:', error.message);
75
- // Fallback to a very basic console logger if main setup fails
76
- const fallbackPino = (0, pino_1.default)({ level: 'info', messageKey: 'message' });
77
- fallbackPino.error({ err: error }, 'Fallback console logger activated due to error in primary logger setup.');
78
- const fallbackInstance = Object.create(Logger.prototype);
79
- fallbackInstance.pinoInstance = fallbackPino;
80
- Logger.instance = fallbackInstance;
81
- }
82
- }
83
- return Logger.instance;
84
- }
85
- /**
86
- * Provides access to the raw pino instance, primarily for use with pino-http.
87
- */
88
- getPinoInstance() {
89
- return this.pinoInstance;
90
- }
91
- // --- Application Logging Methods ---
92
- appLog(level, payload) {
93
- this.pinoInstance[level]({ ...payload, logType: 'application' });
94
- }
95
- info(message, data) {
96
- this.appLog('info', { message, ...data });
97
- }
98
- error(message, error, data) {
99
- const payload = { message, ...data };
100
- if (error) {
101
- payload.err = error; // pino stdSerializers.err will handle this
102
- }
103
- this.appLog('error', payload);
104
- }
105
- warn(message, data) {
106
- this.appLog('warn', { message, ...data });
107
- }
108
- debug(message, data) {
109
- this.appLog('debug', { message, ...data });
110
- }
111
- fatal(message, error, data) {
112
- const payload = { message, ...data };
113
- if (error) {
114
- payload.err = error;
115
- }
116
- this.appLog('fatal', payload);
117
- }
118
- trace(message, data) {
119
- this.appLog('trace', { message, ...data });
120
- }
121
- // --- Audit Logging Method ---
122
- audit(payload) {
123
- // userId from payload will override userId from mixin if both exist
124
- this.pinoInstance.info({ ...payload, logType: 'audit' });
125
- }
126
- // --- Event Logging Method ---
127
- event(payload) {
128
- this.pinoInstance.info({ ...payload, logType: 'event' });
129
- }
130
- // --- Child Logger ---
131
- child(bindings = {}) {
132
- // Create a new pino child logger instance with additional static bindings
133
- const pinoChild = this.pinoInstance.child(bindings);
134
- // Create a new Logger wrapper for this pino child
135
- const childLoggerInstance = Object.create(Logger.prototype);
136
- childLoggerInstance.pinoInstance = pinoChild;
137
- return childLoggerInstance;
138
- }
139
- }
140
- const logger = Logger.getInstance();
141
- exports.default = logger;
142
- //# sourceMappingURL=Logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/logger/Logger.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const httpLoggerMiddleware: import("pino-http").HttpLogger<import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, never>;
2
- //# sourceMappingURL=http.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/middleware/http.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,sIA6E/B,CAAA"}
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.httpLoggerMiddleware = void 0;
7
- const pino_http_1 = __importDefault(require("pino-http"));
8
- const pino_1 = __importDefault(require("pino"));
9
- const Logger_1 = __importDefault(require("../logger/Logger"));
10
- exports.httpLoggerMiddleware = (0, pino_http_1.default)({
11
- logger: Logger_1.default.getPinoInstance(), // Use the main pino instance
12
- customLogLevel: (req, res, err) => {
13
- if (res.statusCode >= 500 || err)
14
- return 'error';
15
- if (res.statusCode >= 400)
16
- return 'warn';
17
- return 'info';
18
- },
19
- serializers: {
20
- req: (req) => ({
21
- id: req.id, // Made available as objFromPinoHttp.req.id
22
- method: req.method,
23
- url: req.url,
24
- remoteAddress: req.remoteAddress || req.socket?.remoteAddress,
25
- }),
26
- res: (res) => ({
27
- statusCode: res.statusCode,
28
- }),
29
- err: pino_1.default.stdSerializers.err,
30
- },
31
- // This formatter *must* return the complete, flat object you want to log.
32
- formatters: {
33
- log: (objFromPinoHttp) => {
34
- // objFromPinoHttp contains:
35
- // - .req, .res, .err (from serializers above)
36
- // - .responseTime (number)
37
- // - .level (string, from customLogLevel)
38
- // - .message (string, from customSuccessMessage/customErrorMessage)
39
- // - properties from `customProps` (e.g., .requestId from req.id fallback)
40
- // - IMPORTANT: It ALSO contains properties from the parent `appLogger`'s `mixin`
41
- // because pino-http uses the parent logger, and its mixin will have run.
42
- const finalHttpLog = {
43
- // Standard fields (time will be added by parent pino instance when it actually logs)
44
- level: 'hello',
45
- test: '123',
46
- message: objFromPinoHttp.message,
47
- // Contextual fields (these should be present in objFromPinoHttp thanks to parent logger's mixin)
48
- requestId: objFromPinoHttp.requestId, // This should be the definitive one after mixin
49
- userId: objFromPinoHttp.userId,
50
- username: objFromPinoHttp.username,
51
- traceId: objFromPinoHttp.traceId,
52
- context: objFromPinoHttp.context, // from ALS additionalContext
53
- application: objFromPinoHttp.application, // from parent logger or transport default
54
- // HTTP specific data, flattened:
55
- logType: 'http',
56
- method: objFromPinoHttp.req?.method,
57
- url: objFromPinoHttp.req?.url,
58
- remoteAddress: objFromPinoHttp.req?.remoteAddress,
59
- statusCode: objFromPinoHttp.res?.statusCode,
60
- responseTimeMs: objFromPinoHttp.responseTime,
61
- // If you need req.id specifically, and it's different from the main requestId:
62
- // originalHttpRequestId: objFromPinoHttp.req?.id,
63
- // Error object (already serialized)
64
- err: objFromPinoHttp.err,
65
- };
66
- // Clean up any top-level undefined properties from the explicitly built object
67
- Object.keys(finalHttpLog).forEach((key) => {
68
- if (finalHttpLog[key] === undefined) {
69
- delete finalHttpLog[key];
70
- }
71
- });
72
- // DEBUG: Log what this formatter is about to return
73
- // console.log('--- pino-http formatters.log IS RETURNING: ---', JSON.stringify(finalHttpLog, null, 2));
74
- return finalHttpLog;
75
- },
76
- },
77
- customSuccessMessage: (req, res) => `${req.method} ${req.url} request_completed`,
78
- customErrorMessage: (req, res, err) => `${req.method} ${req.url} request_errored`,
79
- });
80
- //# sourceMappingURL=http.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/middleware/http.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { AsyncLocalStorage } from 'async_hooks';
2
- export interface LogContext {
3
- requestId: string;
4
- userId?: string;
5
- traceId?: string;
6
- username?: string;
7
- additionalContext?: {
8
- [key: string]: any;
9
- };
10
- }
11
- export declare const requestContext: AsyncLocalStorage<LogContext>;
12
- //# sourceMappingURL=requestcontext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestcontext.d.ts","sourceRoot":"","sources":["../../src/middleware/requestcontext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAG/C,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;CAC7C;AAED,eAAO,MAAM,cAAc,+BAAsC,CAAA"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.requestContext = void 0;
4
- const async_hooks_1 = require("async_hooks");
5
- exports.requestContext = new async_hooks_1.AsyncLocalStorage();
6
- //# sourceMappingURL=requestcontext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestcontext.js","sourceRoot":"","sources":["../../src/middleware/requestcontext.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAWlC,QAAA,cAAc,GAAG,IAAI,+BAAiB,EAAc,CAAA"}