bootifyjs 1.4.0 → 2.0.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 (125) hide show
  1. package/dist/BootifyApp.d.ts +48 -0
  2. package/dist/BootifyApp.d.ts.map +1 -0
  3. package/dist/BootifyApp.js +153 -0
  4. package/dist/BootifyApp.js.map +1 -0
  5. package/dist/api.d.ts +10 -3
  6. package/dist/api.d.ts.map +1 -1
  7. package/dist/api.js +54 -37
  8. package/dist/api.js.map +1 -1
  9. package/dist/core/decorators.d.ts +27 -1
  10. package/dist/core/decorators.d.ts.map +1 -1
  11. package/dist/core/decorators.js +26 -3
  12. package/dist/core/decorators.js.map +1 -1
  13. package/dist/core/router.d.ts.map +1 -1
  14. package/dist/core/router.js +17 -2
  15. package/dist/core/router.js.map +1 -1
  16. package/dist/examples/controllers/todo.controller.d.ts.map +1 -1
  17. package/dist/examples/controllers/todo.controller.js +16 -0
  18. package/dist/examples/controllers/todo.controller.js.map +1 -1
  19. package/dist/examples/enhanced-logger-example.d.ts +2 -0
  20. package/dist/examples/enhanced-logger-example.d.ts.map +1 -0
  21. package/dist/examples/enhanced-logger-example.js +143 -0
  22. package/dist/examples/enhanced-logger-example.js.map +1 -0
  23. package/dist/examples/index.d.ts +1 -0
  24. package/dist/examples/index.d.ts.map +1 -1
  25. package/dist/examples/index.js +117 -51
  26. package/dist/examples/index.js.map +1 -1
  27. package/dist/examples/scheduled-jobs-example.d.ts +10 -0
  28. package/dist/examples/scheduled-jobs-example.d.ts.map +1 -0
  29. package/dist/examples/scheduled-jobs-example.js +134 -0
  30. package/dist/examples/scheduled-jobs-example.js.map +1 -0
  31. package/dist/examples/services/scheduled-tasks.service.d.ts +17 -0
  32. package/dist/examples/services/scheduled-tasks.service.d.ts.map +1 -0
  33. package/dist/examples/services/scheduled-tasks.service.js +77 -0
  34. package/dist/examples/services/scheduled-tasks.service.js.map +1 -0
  35. package/dist/examples/services/todo.service.d.ts.map +1 -1
  36. package/dist/examples/services/todo.service.js.map +1 -1
  37. package/dist/examples/simple-scheduler-test.d.ts +6 -0
  38. package/dist/examples/simple-scheduler-test.d.ts.map +1 -0
  39. package/dist/examples/simple-scheduler-test.js +57 -0
  40. package/dist/examples/simple-scheduler-test.js.map +1 -0
  41. package/dist/examples/streaming-logger-example.d.ts +2 -0
  42. package/dist/examples/streaming-logger-example.d.ts.map +1 -0
  43. package/dist/examples/streaming-logger-example.js +124 -0
  44. package/dist/examples/streaming-logger-example.js.map +1 -0
  45. package/dist/index.d.ts +5 -3
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +5 -3
  48. package/dist/index.js.map +1 -1
  49. package/dist/logging/core/adapters/index.d.ts +2 -0
  50. package/dist/logging/core/adapters/index.d.ts.map +1 -0
  51. package/dist/logging/core/adapters/index.js +18 -0
  52. package/dist/logging/core/adapters/index.js.map +1 -0
  53. package/dist/logging/core/adapters/pino.adapter.d.ts +32 -0
  54. package/dist/logging/core/adapters/pino.adapter.d.ts.map +1 -0
  55. package/dist/logging/core/adapters/pino.adapter.js +82 -0
  56. package/dist/logging/core/adapters/pino.adapter.js.map +1 -0
  57. package/dist/logging/core/base-logger.d.ts +44 -0
  58. package/dist/logging/core/base-logger.d.ts.map +1 -0
  59. package/dist/logging/core/base-logger.js +147 -0
  60. package/dist/logging/core/base-logger.js.map +1 -0
  61. package/dist/logging/core/context-providers/index.d.ts +2 -0
  62. package/dist/logging/core/context-providers/index.d.ts.map +1 -0
  63. package/dist/logging/core/context-providers/index.js +18 -0
  64. package/dist/logging/core/context-providers/index.js.map +1 -0
  65. package/dist/logging/core/context-providers/request-context.provider.d.ts +5 -0
  66. package/dist/logging/core/context-providers/request-context.provider.d.ts.map +1 -0
  67. package/dist/logging/core/context-providers/request-context.provider.js +19 -0
  68. package/dist/logging/core/context-providers/request-context.provider.js.map +1 -0
  69. package/dist/logging/core/enhanced-startup-logger.d.ts +48 -0
  70. package/dist/logging/core/enhanced-startup-logger.d.ts.map +1 -0
  71. package/dist/logging/core/enhanced-startup-logger.js +537 -0
  72. package/dist/logging/core/enhanced-startup-logger.js.map +1 -0
  73. package/dist/logging/core/interfaces.d.ts +75 -0
  74. package/dist/logging/core/interfaces.d.ts.map +1 -0
  75. package/dist/logging/core/interfaces.js +9 -0
  76. package/dist/logging/core/interfaces.js.map +1 -0
  77. package/dist/logging/core/logger-builder.d.ts +58 -0
  78. package/dist/logging/core/logger-builder.d.ts.map +1 -0
  79. package/dist/logging/core/logger-builder.js +121 -0
  80. package/dist/logging/core/logger-builder.js.map +1 -0
  81. package/dist/logging/core/startup.logger.d.ts +1 -0
  82. package/dist/logging/core/startup.logger.d.ts.map +1 -1
  83. package/dist/logging/core/startup.logger.js +28 -3
  84. package/dist/logging/core/startup.logger.js.map +1 -1
  85. package/dist/logging/core/streaming-startup-logger.d.ts +21 -0
  86. package/dist/logging/core/streaming-startup-logger.d.ts.map +1 -0
  87. package/dist/logging/core/streaming-startup-logger.js +209 -0
  88. package/dist/logging/core/streaming-startup-logger.js.map +1 -0
  89. package/dist/logging/core/transports/console.transport.d.ts +19 -0
  90. package/dist/logging/core/transports/console.transport.d.ts.map +1 -0
  91. package/dist/logging/core/transports/console.transport.js +67 -0
  92. package/dist/logging/core/transports/console.transport.js.map +1 -0
  93. package/dist/logging/core/transports/index.d.ts +2 -0
  94. package/dist/logging/core/transports/index.d.ts.map +1 -0
  95. package/dist/logging/core/transports/index.js +18 -0
  96. package/dist/logging/core/transports/index.js.map +1 -0
  97. package/dist/logging/index.d.ts +73 -2
  98. package/dist/logging/index.d.ts.map +1 -1
  99. package/dist/logging/index.js +115 -16
  100. package/dist/logging/index.js.map +1 -1
  101. package/dist/middleware/auth.middleware.d.ts +2 -2
  102. package/dist/middleware/auth.middleware.d.ts.map +1 -1
  103. package/dist/middleware/auth.middleware.js +12 -23
  104. package/dist/middleware/auth.middleware.js.map +1 -1
  105. package/dist/middleware/index.d.ts +1 -2
  106. package/dist/middleware/index.d.ts.map +1 -1
  107. package/dist/middleware/index.js +0 -1
  108. package/dist/middleware/index.js.map +1 -1
  109. package/dist/scheduling/index.d.ts +25 -0
  110. package/dist/scheduling/index.d.ts.map +1 -0
  111. package/dist/scheduling/index.js +41 -0
  112. package/dist/scheduling/index.js.map +1 -0
  113. package/dist/scheduling/scheduled.decorator.d.ts +25 -0
  114. package/dist/scheduling/scheduled.decorator.d.ts.map +1 -0
  115. package/dist/scheduling/scheduled.decorator.js +52 -0
  116. package/dist/scheduling/scheduled.decorator.js.map +1 -0
  117. package/dist/scheduling/scheduler.service.d.ts +39 -0
  118. package/dist/scheduling/scheduler.service.d.ts.map +1 -0
  119. package/dist/scheduling/scheduler.service.js +341 -0
  120. package/dist/scheduling/scheduler.service.js.map +1 -0
  121. package/dist/scheduling/scheduler.types.d.ts +47 -0
  122. package/dist/scheduling/scheduler.types.d.ts.map +1 -0
  123. package/dist/scheduling/scheduler.types.js +6 -0
  124. package/dist/scheduling/scheduler.types.js.map +1 -0
  125. package/package.json +16 -1
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./console.transport"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/logging/core/transports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
@@ -1,9 +1,80 @@
1
+ /**
2
+ * BootifyJS Logging Module
3
+ *
4
+ * A flexible, extensible logging system using Builder and Strategy patterns.
5
+ *
6
+ * Quick Start:
7
+ * ```typescript
8
+ * import { createLogger, RequestContextProvider } from 'bootifyjs/logging'
9
+ *
10
+ * // Simple usage
11
+ * const logger = createLogger()
12
+ * .setLevel('debug')
13
+ * .setServiceName('my-api')
14
+ * .build()
15
+ *
16
+ * logger.info('Hello world')
17
+ * ```
18
+ *
19
+ * Custom Transport:
20
+ * ```typescript
21
+ * import { ILogTransport, LogEntry } from 'bootifyjs/logging'
22
+ *
23
+ * class MyTransport implements ILogTransport {
24
+ * name = 'my-transport'
25
+ * write(entry: LogEntry) {
26
+ * // Send to your logging service
27
+ * }
28
+ * }
29
+ *
30
+ * createLogger()
31
+ * .addTransport(new MyTransport())
32
+ * .build()
33
+ * ```
34
+ *
35
+ * Using Pino:
36
+ * ```typescript
37
+ * import { createLogger, PinoAdapter } from 'bootifyjs/logging'
38
+ *
39
+ * createLogger()
40
+ * .useCustomLogger(PinoAdapter)
41
+ * ```
42
+ */
43
+ export * from './core/interfaces';
44
+ export { createLogger, getLogger, LOGGER_TOKEN, LoggerBuilder } from './core/logger-builder';
45
+ export { BaseLogger } from './core/base-logger';
46
+ export { ConsoleTransport, ConsoleTransportOptions } from './core/transports/console.transport';
47
+ export { RequestContextProvider } from './core/context-providers/request-context.provider';
48
+ export { PinoAdapter, PinoAdapterOptions } from './core/adapters/pino.adapter';
49
+ export { EnhancedStartupLogger } from './core/enhanced-startup-logger';
50
+ export { StartupLoggerService } from './core/startup.logger';
51
+ export { StreamingStartupLogger } from './core/streaming-startup-logger';
52
+ export { Logger } from './core/logger';
53
+ export { loggerFactory, LOGGER_TOKEN as PINO_LOGGER_TOKEN } from './core/logger.provider';
54
+ export * from './core/decorators';
55
+ import { EnhancedStartupLogger } from './core/enhanced-startup-logger';
1
56
  import { Logger } from './core/logger';
2
57
  import { StartupLoggerService } from './core/startup.logger';
58
+ import { StreamingStartupLogger } from './core/streaming-startup-logger';
59
+ /**
60
+ * @deprecated Use createLogger() builder instead
61
+ */
3
62
  export declare function intitializeLogging(): Promise<{
4
63
  logger: Logger;
5
64
  startupLogger: StartupLoggerService;
6
65
  }>;
7
- export * from './core/decorators';
8
- export * from './core/logger';
66
+ /**
67
+ * @deprecated Use createLogger() builder instead
68
+ */
69
+ export declare function initializeEnhancedLogging(): Promise<{
70
+ logger: Logger;
71
+ startupLogger: EnhancedStartupLogger;
72
+ }>;
73
+ /**
74
+ * Initialize streaming startup logger (Spring Boot style)
75
+ */
76
+ export declare function initializeStreamingLogging(): Promise<{
77
+ logger: Logger;
78
+ startupLogger: StreamingStartupLogger;
79
+ }>;
9
80
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAE5D,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,oBAAoB,CAAA;CACpC,CAAC,CAgBD;AAGD,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAGH,cAAc,mBAAmB,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAG5F,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAG/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAA;AAG1F,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAG9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAGxE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAGzF,cAAc,mBAAmB,CAAA;AAOjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAExE;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,oBAAoB,CAAA;CACpC,CAAC,CAMD;AAED;;GAEG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC;IACzD,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,qBAAqB,CAAA;CACrC,CAAC,CAMD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,sBAAsB,CAAA;CACtC,CAAC,CAMD"}
@@ -1,4 +1,46 @@
1
1
  "use strict";
2
+ /**
3
+ * BootifyJS Logging Module
4
+ *
5
+ * A flexible, extensible logging system using Builder and Strategy patterns.
6
+ *
7
+ * Quick Start:
8
+ * ```typescript
9
+ * import { createLogger, RequestContextProvider } from 'bootifyjs/logging'
10
+ *
11
+ * // Simple usage
12
+ * const logger = createLogger()
13
+ * .setLevel('debug')
14
+ * .setServiceName('my-api')
15
+ * .build()
16
+ *
17
+ * logger.info('Hello world')
18
+ * ```
19
+ *
20
+ * Custom Transport:
21
+ * ```typescript
22
+ * import { ILogTransport, LogEntry } from 'bootifyjs/logging'
23
+ *
24
+ * class MyTransport implements ILogTransport {
25
+ * name = 'my-transport'
26
+ * write(entry: LogEntry) {
27
+ * // Send to your logging service
28
+ * }
29
+ * }
30
+ *
31
+ * createLogger()
32
+ * .addTransport(new MyTransport())
33
+ * .build()
34
+ * ```
35
+ *
36
+ * Using Pino:
37
+ * ```typescript
38
+ * import { createLogger, PinoAdapter } from 'bootifyjs/logging'
39
+ *
40
+ * createLogger()
41
+ * .useCustomLogger(PinoAdapter)
42
+ * ```
43
+ */
2
44
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
45
  if (k2 === undefined) k2 = k;
4
46
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -14,25 +56,82 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
56
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
57
  };
16
58
  Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.PINO_LOGGER_TOKEN = exports.loggerFactory = exports.Logger = exports.StreamingStartupLogger = exports.StartupLoggerService = exports.EnhancedStartupLogger = exports.PinoAdapter = exports.RequestContextProvider = exports.ConsoleTransport = exports.BaseLogger = exports.LoggerBuilder = exports.LOGGER_TOKEN = exports.getLogger = exports.createLogger = void 0;
17
60
  exports.intitializeLogging = intitializeLogging;
18
- const core_1 = require("../core");
19
- const logger_1 = require("./core/logger");
20
- const logger_provider_1 = require("./core/logger.provider");
21
- const startup_logger_1 = require("./core/startup.logger");
61
+ exports.initializeEnhancedLogging = initializeEnhancedLogging;
62
+ exports.initializeStreamingLogging = initializeStreamingLogging;
63
+ // Core interfaces (Strategy pattern contracts)
64
+ __exportStar(require("./core/interfaces"), exports);
65
+ // Builder pattern
66
+ var logger_builder_1 = require("./core/logger-builder");
67
+ Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_builder_1.createLogger; } });
68
+ Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_builder_1.getLogger; } });
69
+ Object.defineProperty(exports, "LOGGER_TOKEN", { enumerable: true, get: function () { return logger_builder_1.LOGGER_TOKEN; } });
70
+ Object.defineProperty(exports, "LoggerBuilder", { enumerable: true, get: function () { return logger_builder_1.LoggerBuilder; } });
71
+ // Default implementations
72
+ var base_logger_1 = require("./core/base-logger");
73
+ Object.defineProperty(exports, "BaseLogger", { enumerable: true, get: function () { return base_logger_1.BaseLogger; } });
74
+ // Transports
75
+ var console_transport_1 = require("./core/transports/console.transport");
76
+ Object.defineProperty(exports, "ConsoleTransport", { enumerable: true, get: function () { return console_transport_1.ConsoleTransport; } });
77
+ // Context providers
78
+ var request_context_provider_1 = require("./core/context-providers/request-context.provider");
79
+ Object.defineProperty(exports, "RequestContextProvider", { enumerable: true, get: function () { return request_context_provider_1.RequestContextProvider; } });
80
+ // Adapters (for using external logging libraries)
81
+ var pino_adapter_1 = require("./core/adapters/pino.adapter");
82
+ Object.defineProperty(exports, "PinoAdapter", { enumerable: true, get: function () { return pino_adapter_1.PinoAdapter; } });
83
+ // Startup loggers
84
+ var enhanced_startup_logger_1 = require("./core/enhanced-startup-logger");
85
+ Object.defineProperty(exports, "EnhancedStartupLogger", { enumerable: true, get: function () { return enhanced_startup_logger_1.EnhancedStartupLogger; } });
86
+ var startup_logger_1 = require("./core/startup.logger");
87
+ Object.defineProperty(exports, "StartupLoggerService", { enumerable: true, get: function () { return startup_logger_1.StartupLoggerService; } });
88
+ var streaming_startup_logger_1 = require("./core/streaming-startup-logger");
89
+ Object.defineProperty(exports, "StreamingStartupLogger", { enumerable: true, get: function () { return streaming_startup_logger_1.StreamingStartupLogger; } });
90
+ // Legacy exports (for backward compatibility)
91
+ var logger_1 = require("./core/logger");
92
+ Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
93
+ var logger_provider_1 = require("./core/logger.provider");
94
+ Object.defineProperty(exports, "loggerFactory", { enumerable: true, get: function () { return logger_provider_1.loggerFactory; } });
95
+ Object.defineProperty(exports, "PINO_LOGGER_TOKEN", { enumerable: true, get: function () { return logger_provider_1.LOGGER_TOKEN; } });
96
+ // Decorators
97
+ __exportStar(require("./core/decorators"), exports);
98
+ // ============================================================================
99
+ // Initialization Functions
100
+ // ============================================================================
101
+ const di_container_1 = require("../core/di-container");
102
+ const enhanced_startup_logger_2 = require("./core/enhanced-startup-logger");
103
+ const logger_2 = require("./core/logger");
104
+ const logger_provider_2 = require("./core/logger.provider");
105
+ const startup_logger_2 = require("./core/startup.logger");
106
+ const streaming_startup_logger_2 = require("./core/streaming-startup-logger");
107
+ /**
108
+ * @deprecated Use createLogger() builder instead
109
+ */
22
110
  async function intitializeLogging() {
23
- console.log('🔄 Bootstrapping Logging System...');
24
- console.log('NODE_ENV', process.env.NODE_ENV);
25
- // First, ensure the config service itself is registered as a component.
26
- // Our @Service decorator already handles this.
27
- // Now, register the factory that DEPENDS on the config service.
28
- core_1.container.register(logger_provider_1.LOGGER_TOKEN, { useFactory: logger_provider_1.loggerFactory });
29
- console.log('✅ Logging System bootstrapped successfully!\n');
111
+ di_container_1.container.register(logger_provider_2.LOGGER_TOKEN, { useFactory: logger_provider_2.loggerFactory });
30
112
  return {
31
- logger: core_1.container.resolve(logger_1.Logger),
32
- startupLogger: core_1.container.resolve(startup_logger_1.StartupLoggerService),
113
+ logger: di_container_1.container.resolve(logger_2.Logger),
114
+ startupLogger: di_container_1.container.resolve(startup_logger_2.StartupLoggerService),
115
+ };
116
+ }
117
+ /**
118
+ * @deprecated Use createLogger() builder instead
119
+ */
120
+ async function initializeEnhancedLogging() {
121
+ di_container_1.container.register(logger_provider_2.LOGGER_TOKEN, { useFactory: logger_provider_2.loggerFactory });
122
+ return {
123
+ logger: di_container_1.container.resolve(logger_2.Logger),
124
+ startupLogger: di_container_1.container.resolve(enhanced_startup_logger_2.EnhancedStartupLogger),
125
+ };
126
+ }
127
+ /**
128
+ * Initialize streaming startup logger (Spring Boot style)
129
+ */
130
+ async function initializeStreamingLogging() {
131
+ di_container_1.container.register(logger_provider_2.LOGGER_TOKEN, { useFactory: logger_provider_2.loggerFactory });
132
+ return {
133
+ logger: di_container_1.container.resolve(logger_2.Logger),
134
+ startupLogger: di_container_1.container.resolve(streaming_startup_logger_2.StreamingStartupLogger),
33
135
  };
34
136
  }
35
- // export const logger = container.resolve<pino.Logger>(LOGGER_TOKEN)
36
- __exportStar(require("./core/decorators"), exports);
37
- __exportStar(require("./core/logger"), exports);
38
137
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,gDAmBC;AAxBD,kCAAmC;AACnC,0CAAsC;AACtC,4DAAoE;AACpE,0DAA4D;AAErD,KAAK,UAAU,kBAAkB;IAItC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;IAEjD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAE7C,wEAAwE;IACxE,+CAA+C;IAE/C,gEAAgE;IAChE,gBAAS,CAAC,QAAQ,CAAC,8BAAY,EAAE,EAAE,UAAU,EAAE,+BAAa,EAAE,CAAC,CAAA;IAE/D,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;IAC5D,OAAO;QACL,MAAM,EAAE,gBAAS,CAAC,OAAO,CAAS,eAAM,CAAC;QACzC,aAAa,EAAE,gBAAS,CAAC,OAAO,CAAuB,qCAAoB,CAAC;KAC7E,CAAA;AACH,CAAC;AAED,qEAAqE;AACrE,oDAAiC;AACjC,gDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;;;;;;;;;;;;;;;;;AA8CH,gDASC;AAKD,8DASC;AAKD,gEASC;AAjFD,+CAA+C;AAC/C,oDAAiC;AAEjC,kBAAkB;AAClB,wDAA4F;AAAnF,8GAAA,YAAY,OAAA;AAAE,2GAAA,SAAS,OAAA;AAAE,8GAAA,YAAY,OAAA;AAAE,+GAAA,aAAa,OAAA;AAE7D,0BAA0B;AAC1B,kDAA+C;AAAtC,yGAAA,UAAU,OAAA;AAEnB,aAAa;AACb,yEAA+F;AAAtF,qHAAA,gBAAgB,OAAA;AAEzB,oBAAoB;AACpB,8FAA0F;AAAjF,kIAAA,sBAAsB,OAAA;AAE/B,kDAAkD;AAClD,6DAA8E;AAArE,2GAAA,WAAW,OAAA;AAEpB,kBAAkB;AAClB,0EAAsE;AAA7D,gIAAA,qBAAqB,OAAA;AAC9B,wDAA4D;AAAnD,sHAAA,oBAAoB,OAAA;AAC7B,4EAAwE;AAA/D,kIAAA,sBAAsB,OAAA;AAE/B,8CAA8C;AAC9C,wCAAsC;AAA7B,gGAAA,MAAM,OAAA;AACf,0DAAyF;AAAhF,gHAAA,aAAa,OAAA;AAAE,oHAAA,YAAY,OAAqB;AAEzD,aAAa;AACb,oDAAiC;AAEjC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E,uDAAgD;AAChD,4EAAsE;AACtE,0CAAsC;AACtC,4DAAoE;AACpE,0DAA4D;AAC5D,8EAAwE;AAExE;;GAEG;AACI,KAAK,UAAU,kBAAkB;IAItC,wBAAS,CAAC,QAAQ,CAAC,8BAAY,EAAE,EAAE,UAAU,EAAE,+BAAa,EAAE,CAAC,CAAA;IAC/D,OAAO;QACL,MAAM,EAAE,wBAAS,CAAC,OAAO,CAAS,eAAM,CAAC;QACzC,aAAa,EAAE,wBAAS,CAAC,OAAO,CAAuB,qCAAoB,CAAC;KAC7E,CAAA;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,yBAAyB;IAI7C,wBAAS,CAAC,QAAQ,CAAC,8BAAY,EAAE,EAAE,UAAU,EAAE,+BAAa,EAAE,CAAC,CAAA;IAC/D,OAAO;QACL,MAAM,EAAE,wBAAS,CAAC,OAAO,CAAS,eAAM,CAAC;QACzC,aAAa,EAAE,wBAAS,CAAC,OAAO,CAAwB,+CAAqB,CAAC;KAC/E,CAAA;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,0BAA0B;IAI9C,wBAAS,CAAC,QAAQ,CAAC,8BAAY,EAAE,EAAE,UAAU,EAAE,+BAAa,EAAE,CAAC,CAAA;IAC/D,OAAO;QACL,MAAM,EAAE,wBAAS,CAAC,OAAO,CAAS,eAAM,CAAC;QACzC,aAAa,EAAE,wBAAS,CAAC,OAAO,CAAyB,iDAAsB,CAAC;KACjF,CAAA;AACH,CAAC"}
@@ -11,7 +11,7 @@ declare class TokenCache {
11
11
  * @param tokenSecret JWT secret for token verification
12
12
  * @returns Fastify middleware function
13
13
  */
14
- declare function authenticate(tokenSecret: string): (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
14
+ export declare function authenticate(tokenSecret: string): (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
15
+ export { TokenCache };
15
16
  export default authenticate;
16
- export { authenticate, TokenCache };
17
17
  //# sourceMappingURL=auth.middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMvD,cAAM,UAAU;IACd,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAAqC;IAEnD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAkB5D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAIrB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAQ1B;AAwBD;;;;GAIG;AACH,iBAAS,YAAY,CAAC,WAAW,EAAE,MAAM,IAChB,SAAS,cAAc,EAAE,OAAO,YAAY,mBA0DpE;AAED,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"auth.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIvD,cAAM,UAAU;IACZ,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAAqC;IAEnD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAkB5D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAIrB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAQ5B;AAcD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,IACrB,SAAS,cAAc,EAAE,OAAO,YAAY,mBAoDtE;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,eAAe,YAAY,CAAC"}
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TokenCache = void 0;
7
7
  exports.authenticate = authenticate;
8
8
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
9
- const config_1 = require("../config");
10
- const core_1 = require("../core");
11
9
  // Simple in-memory cache for demonstration (replace with Redis in production)
12
10
  class TokenCache {
13
11
  constructor() {
@@ -42,19 +40,13 @@ class TokenCache {
42
40
  }
43
41
  exports.TokenCache = TokenCache;
44
42
  const tokenCache = new TokenCache();
45
- // JWT verification function (replace with your worker implementation)
43
+ // JWT verification function
46
44
  const verifyJwtToken = async ({ token, tokenSecret }) => {
47
- const appConfig = config_1.AppConfig.getInstance();
48
- const jwtSecret = appConfig.get('JWT_SECRET');
49
- console.log(`Verifying token: ${token}`);
50
- console.log(`Token secret: ${tokenSecret}`);
51
- console.log(`Token JWT secret: ${jwtSecret}`);
52
45
  try {
53
- const decoded = jsonwebtoken_1.default.verify(token, jwtSecret);
46
+ const decoded = jsonwebtoken_1.default.verify(token, tokenSecret);
54
47
  return decoded;
55
48
  }
56
49
  catch (error) {
57
- console.log(error);
58
50
  throw new Error('Invalid token');
59
51
  }
60
52
  };
@@ -66,46 +58,43 @@ const verifyJwtToken = async ({ token, tokenSecret }) => {
66
58
  function authenticate(tokenSecret) {
67
59
  return async function (request, reply) {
68
60
  try {
69
- // Extract token from headers
70
- const contextService = new core_1.RequestContextService();
71
- console.log('Token Secret', tokenSecret);
72
61
  const accessToken = request.headers.Authorization || request.headers.authorization;
73
62
  if (!accessToken) {
74
63
  request.authenticated = false;
75
64
  return;
76
65
  }
77
- console.log(`Access token: ${accessToken}`);
66
+ // Remove 'Bearer ' prefix if present
67
+ const token = String(accessToken).replace(/^Bearer\s+/i, '');
78
68
  // Check cache first
79
- const cachedToken = tokenCache.get(`token:${accessToken}`);
69
+ const cachedToken = tokenCache.get(`token:${token}`);
80
70
  if (cachedToken) {
81
- // Token found in cache
82
71
  request.user = cachedToken;
83
72
  request.authenticated = true;
84
- console.log('Token found in cache');
85
73
  return;
86
74
  }
87
75
  // Verify token if not in cache
88
76
  try {
89
77
  const verifiedToken = await verifyJwtToken({
90
- token: Array.isArray(accessToken) ? accessToken[0] : accessToken || "",
78
+ token,
91
79
  tokenSecret
92
80
  });
93
81
  // Calculate expiration time
94
- const expiresIn = verifiedToken.exp - Math.floor(Date.now() / 1000);
82
+ const expiresIn = verifiedToken.exp
83
+ ? verifiedToken.exp - Math.floor(Date.now() / 1000)
84
+ : 3600; // Default 1 hour
95
85
  // Cache the verified token
96
- tokenCache.set(`token:${accessToken}`, verifiedToken, expiresIn);
86
+ if (expiresIn > 0) {
87
+ tokenCache.set(`token:${token}`, verifiedToken, expiresIn);
88
+ }
97
89
  request.user = verifiedToken;
98
90
  request.authenticated = true;
99
- contextService.set('user', verifiedToken);
100
91
  }
101
92
  catch (error) {
102
- console.error('Error verifying token:', error);
103
93
  request.authenticated = false;
104
94
  request.user = null;
105
95
  }
106
96
  }
107
97
  catch (error) {
108
- console.error('Authentication middleware error:', error);
109
98
  request.authenticated = false;
110
99
  request.user = null;
111
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.middleware.js","sourceRoot":"","sources":["../../src/middleware/auth.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.middleware.js","sourceRoot":"","sources":["../../src/middleware/auth.middleware.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- export * from './auth.middleware';
1
+ export { FastifyMiddleware } from '../core/decorators';
2
2
  export * from './context.middleware';
3
3
  export * from './request-logger.middleware';
4
- export { FastifyMiddleware } from '../core/decorators';
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA"}
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./auth.middleware"), exports);
18
17
  __exportStar(require("./context.middleware"), exports);
19
18
  __exportStar(require("./request-logger.middleware"), exports);
20
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,uDAAoC;AACpC,8DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,uDAAoC;AACpC,8DAA2C"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * BootifyJS Scheduling Module
3
+ *
4
+ * Provides @Scheduled decorator for cron jobs and interval-based task execution.
5
+ *
6
+ * @example
7
+ * import { Service, Scheduled, SchedulerService } from 'bootifyjs'
8
+ *
9
+ * @Service()
10
+ * class CleanupService {
11
+ * @Scheduled('0 0 * * *') // Daily at midnight
12
+ * async dailyCleanup() {
13
+ * console.log('Running cleanup...')
14
+ * }
15
+ *
16
+ * @Scheduled({ interval: 60000, preventOverlap: true })
17
+ * async healthCheck() {
18
+ * console.log('Health check...')
19
+ * }
20
+ * }
21
+ */
22
+ export * from './scheduled.decorator';
23
+ export * from './scheduler.service';
24
+ export * from './scheduler.types';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scheduling/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * BootifyJS Scheduling Module
4
+ *
5
+ * Provides @Scheduled decorator for cron jobs and interval-based task execution.
6
+ *
7
+ * @example
8
+ * import { Service, Scheduled, SchedulerService } from 'bootifyjs'
9
+ *
10
+ * @Service()
11
+ * class CleanupService {
12
+ * @Scheduled('0 0 * * *') // Daily at midnight
13
+ * async dailyCleanup() {
14
+ * console.log('Running cleanup...')
15
+ * }
16
+ *
17
+ * @Scheduled({ interval: 60000, preventOverlap: true })
18
+ * async healthCheck() {
19
+ * console.log('Health check...')
20
+ * }
21
+ * }
22
+ */
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
35
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ __exportStar(require("./scheduled.decorator"), exports);
39
+ __exportStar(require("./scheduler.service"), exports);
40
+ __exportStar(require("./scheduler.types"), exports);
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduling/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;AAEH,wDAAqC;AACrC,sDAAmC;AACnC,oDAAiC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @Scheduled Decorator
3
+ *
4
+ * Marks a method to be executed on a schedule using cron expressions or intervals.
5
+ */
6
+ import 'reflect-metadata';
7
+ import { ScheduledJobOptions } from './scheduler.types';
8
+ export declare const SCHEDULED_METADATA_KEY = "bootify:scheduled-jobs";
9
+ /**
10
+ * Decorator to schedule method execution.
11
+ *
12
+ * Usage with cron expression:
13
+ * @Scheduled('0 0 * * *') // Daily at midnight
14
+ * async dailyCleanup() { }
15
+ *
16
+ * Usage with options object:
17
+ * @Scheduled({ cron: '0 0 * * *', preventOverlap: true })
18
+ * async healthCheck() { }
19
+ *
20
+ * Usage with interval:
21
+ * @Scheduled({ interval: 60000, runOnInit: true })
22
+ * async syncData() { }
23
+ */
24
+ export declare function Scheduled(cronOrOptions: string | ScheduledJobOptions): MethodDecorator;
25
+ //# sourceMappingURL=scheduled.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled.decorator.d.ts","sourceRoot":"","sources":["../../src/scheduling/scheduled.decorator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAwB,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAE7E,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAE9D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB,GAAG,eAAe,CA6BtF"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SCHEDULED_METADATA_KEY = void 0;
4
+ exports.Scheduled = Scheduled;
5
+ /**
6
+ * @Scheduled Decorator
7
+ *
8
+ * Marks a method to be executed on a schedule using cron expressions or intervals.
9
+ */
10
+ require("reflect-metadata");
11
+ exports.SCHEDULED_METADATA_KEY = 'bootify:scheduled-jobs';
12
+ /**
13
+ * Decorator to schedule method execution.
14
+ *
15
+ * Usage with cron expression:
16
+ * @Scheduled('0 0 * * *') // Daily at midnight
17
+ * async dailyCleanup() { }
18
+ *
19
+ * Usage with options object:
20
+ * @Scheduled({ cron: '0 0 * * *', preventOverlap: true })
21
+ * async healthCheck() { }
22
+ *
23
+ * Usage with interval:
24
+ * @Scheduled({ interval: 60000, runOnInit: true })
25
+ * async syncData() { }
26
+ */
27
+ function Scheduled(cronOrOptions) {
28
+ return (target, propertyKey, descriptor) => {
29
+ const options = typeof cronOrOptions === 'string'
30
+ ? { cron: cronOrOptions }
31
+ : cronOrOptions;
32
+ // Get existing scheduled jobs for this class
33
+ const existingJobs = Reflect.getMetadata(exports.SCHEDULED_METADATA_KEY, target.constructor) || [];
34
+ // Add this job
35
+ existingJobs.push({
36
+ methodName: String(propertyKey),
37
+ options: {
38
+ enabled: true,
39
+ preventOverlap: false,
40
+ runOnInit: false,
41
+ maxRetries: 0,
42
+ retryDelay: 1000,
43
+ ...options,
44
+ name: options.name || String(propertyKey),
45
+ },
46
+ target: target.constructor,
47
+ });
48
+ Reflect.defineMetadata(exports.SCHEDULED_METADATA_KEY, existingJobs, target.constructor);
49
+ return descriptor;
50
+ };
51
+ }
52
+ //# sourceMappingURL=scheduled.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled.decorator.js","sourceRoot":"","sources":["../../src/scheduling/scheduled.decorator.ts"],"names":[],"mappings":";;;AAyBA,8BA6BC;AAtDD;;;;GAIG;AACH,4BAAyB;AAGZ,QAAA,sBAAsB,GAAG,wBAAwB,CAAA;AAE9D;;;;;;;;;;;;;;GAcG;AACH,SAAgB,SAAS,CAAC,aAA2C;IACjE,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACjF,MAAM,OAAO,GAAwB,OAAO,aAAa,KAAK,QAAQ;YAClE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;YACzB,CAAC,CAAC,aAAa,CAAA;QAEnB,6CAA6C;QAC7C,MAAM,YAAY,GACd,OAAO,CAAC,WAAW,CAAC,8BAAsB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QAEzE,eAAe;QACf,YAAY,CAAC,IAAI,CAAC;YACd,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC;YAC/B,OAAO,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,cAAc,EAAE,KAAK;gBACrB,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,IAAI;gBAChB,GAAG,OAAO;gBACV,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC;aAC5C;YACD,MAAM,EAAE,MAAM,CAAC,WAAW;SAC7B,CAAC,CAAA;QAEF,OAAO,CAAC,cAAc,CAAC,8BAAsB,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;QAEhF,OAAO,UAAU,CAAA;IACrB,CAAC,CAAA;AACL,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { JobStatus, SchedulerStats } from './scheduler.types';
2
+ export declare class SchedulerService {
3
+ private jobs;
4
+ private isStarted;
5
+ private nodeCron;
6
+ /**
7
+ * Initialize and start all scheduled jobs
8
+ */
9
+ start(): Promise<void>;
10
+ /**
11
+ * Stop all scheduled jobs gracefully
12
+ */
13
+ stop(): Promise<void>;
14
+ /**
15
+ * Manually trigger a job by name
16
+ */
17
+ trigger(jobName: string): Promise<void>;
18
+ /**
19
+ * Enable a job
20
+ */
21
+ enable(jobName: string): void;
22
+ /**
23
+ * Disable a job
24
+ */
25
+ disable(jobName: string): void;
26
+ /**
27
+ * Get status of all jobs
28
+ */
29
+ getStats(): SchedulerStats;
30
+ /**
31
+ * Get status of a specific job
32
+ */
33
+ getJobStatus(jobName: string): JobStatus | undefined;
34
+ private discoverJobs;
35
+ private startJob;
36
+ private executeJob;
37
+ private getNextCronRun;
38
+ }
39
+ //# sourceMappingURL=scheduler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.service.d.ts","sourceRoot":"","sources":["../../src/scheduling/scheduler.service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAwB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAYnF,qBACa,gBAAgB;IACzB,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAY;IAE5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C3B;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW7B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAkB9B;;OAEG;IACH,QAAQ,IAAI,cAAc;IAU1B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIpD,OAAO,CAAC,YAAY;IA+CpB,OAAO,CAAC,QAAQ;YA8DF,UAAU;IAiExB,OAAO,CAAC,cAAc;CAMzB"}