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
@@ -88,6 +88,11 @@ __decorate([
88
88
  ], TodoController.prototype, "authManager", void 0);
89
89
  __decorate([
90
90
  (0, decorators_2.Get)('/'),
91
+ (0, decorators_2.Swagger)({
92
+ summary: 'Get all todos',
93
+ description: 'Retrieves a list of all todo items',
94
+ tags: ['Todos'],
95
+ }),
91
96
  __metadata("design:type", Function),
92
97
  __metadata("design:paramtypes", []),
93
98
  __metadata("design:returntype", void 0)
@@ -95,6 +100,11 @@ __decorate([
95
100
  __decorate([
96
101
  (0, decorators_2.Get)('/:id'),
97
102
  (0, decorators_1.Cacheable)({ key: 'todo', ttl: 60 }),
103
+ (0, decorators_2.Swagger)({
104
+ summary: 'Get todo by ID',
105
+ description: 'Retrieves a single todo item by its unique identifier',
106
+ tags: ['Todos'],
107
+ }),
98
108
  __param(0, (0, decorators_2.Param)('id')),
99
109
  __metadata("design:type", Function),
100
110
  __metadata("design:paramtypes", [String]),
@@ -115,6 +125,12 @@ __decorate([
115
125
  completed: zod_1.z.boolean(),
116
126
  }),
117
127
  },
128
+ }),
129
+ (0, decorators_2.Swagger)({
130
+ summary: 'Create a new todo',
131
+ description: 'Creates a new todo item with the provided text',
132
+ tags: ['Todos'],
133
+ operationId: 'createTodo',
118
134
  })
119
135
  // @UseMiddleware(authorize(['manager']))
120
136
  ,
@@ -1 +1 @@
1
- {"version":3,"file":"todo.controller.js","sourceRoot":"","sources":["../../../src/examples/controllers/todo.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"todo.controller.js","sourceRoot":"","sources":["../../../src/examples/controllers/todo.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import "reflect-metadata";
2
+ //# sourceMappingURL=enhanced-logger-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-logger-example.d.ts","sourceRoot":"","sources":["../../src/examples/enhanced-logger-example.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,143 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const dotenv_1 = __importDefault(require("dotenv"));
40
+ require("reflect-metadata");
41
+ const zod_1 = __importDefault(require("zod"));
42
+ const BootifyApp_1 = require("../BootifyApp");
43
+ const health_controller_1 = require("./controllers/health.controller");
44
+ const todo_controller_1 = require("./controllers/todo.controller");
45
+ dotenv_1.default.config();
46
+ // Example: Using Streaming Startup Logger (Spring Boot style)
47
+ const envSchema = zod_1.default.object({
48
+ NODE_ENV: zod_1.default.string().min(1),
49
+ JWT_SECRET: zod_1.default.string().min(1),
50
+ DATABASE_URL: zod_1.default.string().optional(),
51
+ REDIS_URL: zod_1.default.string().optional(),
52
+ });
53
+ // Mock services for demonstration
54
+ const mockDatabase = {
55
+ async connect() {
56
+ // Simulate slow connection
57
+ await new Promise(resolve => setTimeout(resolve, 800));
58
+ },
59
+ async query(sql) {
60
+ return [{ result: 1 }];
61
+ },
62
+ };
63
+ const mockRedis = {
64
+ async connect() {
65
+ await new Promise(resolve => setTimeout(resolve, 100));
66
+ },
67
+ async ping() {
68
+ return 'PONG';
69
+ },
70
+ };
71
+ async function main() {
72
+ const { app, start, startupLogger, logger } = await (0, BootifyApp_1.createBootify)()
73
+ // Configuration
74
+ .useConfig(envSchema)
75
+ .setPort(8080)
76
+ // Initialize Database with proper logging
77
+ .beforeStart(async () => {
78
+ startupLogger.logComponentStart('PostgreSQL', 'localhost:5432');
79
+ try {
80
+ await mockDatabase.connect();
81
+ startupLogger.logComponentComplete();
82
+ }
83
+ catch (error) {
84
+ startupLogger.logComponentFailed(error);
85
+ throw error;
86
+ }
87
+ })
88
+ // Initialize Redis with proper logging
89
+ .beforeStart(async () => {
90
+ startupLogger.logComponentStart('Redis', 'localhost:6379');
91
+ try {
92
+ await mockRedis.connect();
93
+ startupLogger.logComponentComplete();
94
+ }
95
+ catch (error) {
96
+ startupLogger.logComponentFailed(error);
97
+ throw error;
98
+ }
99
+ })
100
+ // Register Swagger plugin
101
+ .usePlugin(async (app) => {
102
+ startupLogger.logComponentStart('Swagger');
103
+ const fastifySwagger = await Promise.resolve().then(() => __importStar(require("@fastify/swagger")));
104
+ const fastifySwaggerUI = await Promise.resolve().then(() => __importStar(require("@fastify/swagger-ui")));
105
+ await app.register(fastifySwagger.default, {
106
+ openapi: {
107
+ info: {
108
+ title: "Enhanced Logger Example API",
109
+ description: "Demonstrating the enhanced startup logger",
110
+ version: "1.0.0",
111
+ },
112
+ servers: [{ url: `http://localhost:8080` }],
113
+ },
114
+ });
115
+ await app.register(fastifySwaggerUI.default, {
116
+ routePrefix: "/api-docs",
117
+ });
118
+ startupLogger.logComponentComplete();
119
+ })
120
+ // Register controllers
121
+ .useControllers([health_controller_1.HealthController, todo_controller_1.TodoController])
122
+ // After start - show helpful info
123
+ .afterStart(async () => {
124
+ logger.info('šŸŽ‰ Application is ready to accept requests!');
125
+ logger.info('šŸ“š API Documentation available at /api-docs');
126
+ })
127
+ .build();
128
+ await start();
129
+ }
130
+ // Graceful shutdown
131
+ process.on('SIGTERM', async () => {
132
+ console.log('\nšŸ‘‹ Shutting down gracefully...');
133
+ process.exit(0);
134
+ });
135
+ process.on('SIGINT', async () => {
136
+ console.log('\nšŸ‘‹ Shutting down gracefully...');
137
+ process.exit(0);
138
+ });
139
+ main().catch((error) => {
140
+ console.error('āŒ Failed to start application:', error);
141
+ process.exit(1);
142
+ });
143
+ //# sourceMappingURL=enhanced-logger-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-logger-example.js","sourceRoot":"","sources":["../../src/examples/enhanced-logger-example.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import "reflect-metadata";
2
2
  import "../cache/stores/redis-cache.store";
3
+ import "./services/scheduled-tasks.service";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAe1B,OAAO,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AAc1B,OAAO,mCAAmC,CAAC;AAG3C,OAAO,oCAAoC,CAAC"}
@@ -1,21 +1,56 @@
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  const dotenv_1 = __importDefault(require("dotenv"));
7
40
  require("reflect-metadata");
8
- const api_1 = require("../api");
41
+ const zod_1 = __importDefault(require("zod"));
42
+ const basic_usage_1 = require("../auth/examples/basic-usage");
43
+ const BootifyApp_1 = require("../BootifyApp");
44
+ const cache_1 = require("../cache");
9
45
  const di_container_1 = require("../core/di-container");
10
46
  const health_controller_1 = require("./controllers/health.controller");
11
47
  const todo_controller_1 = require("./controllers/todo.controller");
12
48
  dotenv_1.default.config();
13
- // import { bootstrapCache } from '../cache/bootstrap'
14
- const zod_1 = __importDefault(require("zod"));
15
- const basic_usage_1 = require("../auth/examples/basic-usage");
16
- const cache_1 = require("../cache");
17
49
  // Import the RedisCacheStore to trigger @Service decorator registration
18
50
  require("../cache/stores/redis-cache.store");
51
+ const middleware_1 = require("../middleware");
52
+ // Import scheduled tasks service to register it with DI
53
+ require("./services/scheduled-tasks.service");
19
54
  // --- Application Startup ---
20
55
  const envSchema = zod_1.default.object({
21
56
  NODE_ENV: zod_1.default.string().min(1),
@@ -51,56 +86,87 @@ const requestLoggingMiddleware = async (request, reply) => {
51
86
  console.log(`šŸ“ Request: ${request.method} ${request.url} from ${clientIP} - ${userAgent}`);
52
87
  };
53
88
  async function main() {
54
- // await intitializeLogging()
89
+ // Setup JWT authentication
55
90
  const { middleware: jwtAuthMiddleware, authManager } = await (0, basic_usage_1.setupJwtAuth)();
56
91
  // Register authManager in DI container for controller injection
57
92
  di_container_1.container.register("AuthManager", { useFactory: () => authManager });
58
- const allComponents = Array.from(di_container_1.container.getRegisteredComponents());
59
- // await bootstrapEventSystem(allComponents, { useBufferedProcessing: true })
60
- await (0, cache_1.bootstrapCache)();
61
- const { app, start } = await (0, api_1.createBootifyApp)({
62
- controllers: [health_controller_1.HealthController, todo_controller_1.TodoController],
63
- enableSwagger: true,
64
- port: 8080,
65
- configSchema: envSchema,
66
- globalMiddlewares: [
67
- // jwtAuthMiddleware.authenticate({
68
- // strategies: ['jwt', 'api-key'],
69
- // skipPaths: ['/auth/login', '/auth/refresh', '/health']
70
- // }),
71
- corsMiddleware, // 1st: Handle CORS headers
72
- securityHeadersMiddleware, // 2nd: Add security headers
73
- requestTimingMiddleware, // 3rd: Start request timing
74
- requestLoggingMiddleware, // 4th: Log request details
75
- ],
76
- enableCookie: true,
93
+ const { app, start } = await (0, BootifyApp_1.createBootify)()
94
+ // Configuration
95
+ .useConfig(envSchema)
96
+ .setPort(8080)
97
+ // Initialize services before start
98
+ .beforeStart(async () => {
99
+ console.log("šŸ”§ Initializing services...");
100
+ // Bootstrap cache
101
+ await (0, cache_1.bootstrapCache)();
102
+ console.log("āœ… Services initialized");
103
+ })
104
+ // Register Cookie plugin
105
+ .usePlugin(async (app) => {
106
+ const fastifyCookie = await Promise.resolve().then(() => __importStar(require("@fastify/cookie")));
107
+ await app.register(fastifyCookie.default, {
108
+ hook: "onRequest",
109
+ parseOptions: {},
110
+ });
111
+ })
112
+ // Register Swagger
113
+ .usePlugin(async (app) => {
114
+ await app.addHook("onRequest", (0, middleware_1.createContextMiddleware)());
115
+ const fastifySwagger = await Promise.resolve().then(() => __importStar(require("@fastify/swagger")));
116
+ const fastifySwaggerUI = await Promise.resolve().then(() => __importStar(require("@fastify/swagger-ui")));
117
+ await app.register(fastifySwagger.default, {
118
+ openapi: {
119
+ info: {
120
+ title: "Bootify (Fastify) API",
121
+ description: "API documentation",
122
+ version: "1.0.0",
123
+ },
124
+ servers: [{ url: `http://localhost:8080` }],
125
+ },
126
+ });
127
+ await app.register(fastifySwaggerUI.default, {
128
+ routePrefix: "/api-docs",
129
+ });
130
+ })
131
+ // Register global middlewares in order
132
+ .useMiddlewares([
133
+ corsMiddleware, // 1st: Handle CORS headers
134
+ securityHeadersMiddleware, // 2nd: Add security headers
135
+ requestTimingMiddleware, // 3rd: Start request timing
136
+ requestLoggingMiddleware, // 4th: Log request details
137
+ ])
138
+ // Register controllers
139
+ .useControllers([health_controller_1.HealthController, todo_controller_1.TodoController])
140
+ // Register JWT auth routes after app is built
141
+ .beforeStart(async (app) => {
142
+ await (0, basic_usage_1.registerJWTAuthRoutes)(app, authManager, jwtAuthMiddleware);
143
+ })
144
+ // After start hook
145
+ .afterStart(async (app) => {
146
+ console.log("šŸš€ BootifyJS Example Server started!");
147
+ console.log("šŸ“‹ Scheduled jobs are running in the background");
148
+ })
149
+ .build();
150
+ // Add scheduler status endpoint
151
+ app.get('/scheduler/status', async () => {
152
+ const { SchedulerService } = await Promise.resolve().then(() => __importStar(require('../scheduling')));
153
+ const scheduler = di_container_1.container.resolve(SchedulerService);
154
+ return scheduler.getStats();
155
+ });
156
+ // Add manual trigger endpoint
157
+ app.post('/scheduler/trigger/:jobName', async (request, reply) => {
158
+ const { jobName } = request.params;
159
+ try {
160
+ const { SchedulerService } = await Promise.resolve().then(() => __importStar(require('../scheduling')));
161
+ const scheduler = di_container_1.container.resolve(SchedulerService);
162
+ await scheduler.trigger(jobName);
163
+ return { success: true, message: `Job '${jobName}' triggered` };
164
+ }
165
+ catch (error) {
166
+ reply.status(404);
167
+ return { success: false, error: error.message };
168
+ }
77
169
  });
78
- await (0, basic_usage_1.registerJWTAuthRoutes)(app, authManager, jwtAuthMiddleware);
79
- // Setup context middleware with authentication
80
- // app.addHook('onRequest', createContextMiddleware(authContextExtractor));
81
- // console.log('All components:', container.getRegisteredComponents())
82
- // const animal = container.resolve<Animal>('Animal')
83
- // // console.log(animal)
84
- // const animalservice: AnimalService = container.resolve<AnimalService>(AnimalService)
85
- // console.log(animalservice.animal === animalservice.animal1)
86
- // console.log(animalservice.animal.name)
87
- // console.log('šŸš€ BootifyJS Example Server starting...');
88
- // console.log('šŸ”§ Global middlewares enabled: CORS, Security Headers, Request Timing, Request Logging');
89
- // console.log('šŸ“Š Available endpoints:');
90
- // console.log(' GET /todos - List all todos (requires authentication)');
91
- // console.log(' POST /todos - Create a new todo (requires authentication)');
92
- // console.log(' GET /todos/:id - Get a specific todo (requires authentication)');
93
- // console.log(' PUT /todos/:id - Update a todo (requires authentication)');
94
- // console.log(' DELETE /todos/:id - Delete a todo (requires authentication)');
95
- // console.log(' GET /animals - List all animals');
96
- // console.log(' POST /animals - Create a new animal');
97
- // console.log('šŸ” Authentication endpoints:');
98
- // console.log(' POST /auth/login - Login to get JWT token');
99
- // console.log(' GET /auth/info - Check authentication status');
100
- // console.log('šŸ’” Use @UseMiddleware(authenticate()) decorator for protected routes!');
101
- // console.log('šŸ”‘ Test credentials: admin/admin123, manager/manager123, user/user123');
102
- // console.log('🌐 CORS enabled for all origins');
103
- // console.log('šŸ”’ Security headers automatically added to all responses');
104
170
  await start();
105
171
  }
106
172
  main();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/examples/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @Scheduled Decorator Example
3
+ *
4
+ * Demonstrates how to use the @Scheduled decorator for background jobs.
5
+ * Run with: npx ts-node src/examples/scheduled-jobs-example.ts
6
+ *
7
+ * Note: Install node-cron for cron expressions: npm install node-cron
8
+ */
9
+ import 'reflect-metadata';
10
+ //# sourceMappingURL=scheduled-jobs-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled-jobs-example.d.ts","sourceRoot":"","sources":["../../src/examples/scheduled-jobs-example.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,kBAAkB,CAAA"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /**
13
+ * @Scheduled Decorator Example
14
+ *
15
+ * Demonstrates how to use the @Scheduled decorator for background jobs.
16
+ * Run with: npx ts-node src/examples/scheduled-jobs-example.ts
17
+ *
18
+ * Note: Install node-cron for cron expressions: npm install node-cron
19
+ */
20
+ require("reflect-metadata");
21
+ const index_1 = require("../index");
22
+ // Example 1: Simple cron-based cleanup job
23
+ let CleanupService = class CleanupService {
24
+ constructor() {
25
+ this.cleanupCount = 0;
26
+ }
27
+ async cleanupTempFiles() {
28
+ this.cleanupCount++;
29
+ console.log(`[CleanupService] Running temp file cleanup #${this.cleanupCount}`);
30
+ // Simulate cleanup work
31
+ await new Promise(resolve => setTimeout(resolve, 500));
32
+ console.log(`[CleanupService] Cleanup complete`);
33
+ }
34
+ };
35
+ __decorate([
36
+ (0, index_1.Scheduled)('*/10 * * * * *') // Every 10 seconds (for demo)
37
+ ,
38
+ __metadata("design:type", Function),
39
+ __metadata("design:paramtypes", []),
40
+ __metadata("design:returntype", Promise)
41
+ ], CleanupService.prototype, "cleanupTempFiles", null);
42
+ CleanupService = __decorate([
43
+ (0, index_1.Service)()
44
+ ], CleanupService);
45
+ // Example 2: Interval-based health check with overlap prevention
46
+ let HealthCheckService = class HealthCheckService {
47
+ constructor() {
48
+ this.checkCount = 0;
49
+ }
50
+ async performHealthCheck() {
51
+ this.checkCount++;
52
+ console.log(`[HealthCheck] Starting health check #${this.checkCount}`);
53
+ // Simulate a slow health check
54
+ await new Promise(resolve => setTimeout(resolve, 2000));
55
+ const status = {
56
+ memory: process.memoryUsage().heapUsed / 1024 / 1024,
57
+ uptime: process.uptime(),
58
+ };
59
+ console.log(`[HealthCheck] Complete - Memory: ${status.memory.toFixed(2)}MB, Uptime: ${status.uptime.toFixed(0)}s`);
60
+ }
61
+ };
62
+ __decorate([
63
+ (0, index_1.Scheduled)({ interval: 5000, preventOverlap: true, runOnInit: true }),
64
+ __metadata("design:type", Function),
65
+ __metadata("design:paramtypes", []),
66
+ __metadata("design:returntype", Promise)
67
+ ], HealthCheckService.prototype, "performHealthCheck", null);
68
+ HealthCheckService = __decorate([
69
+ (0, index_1.Service)()
70
+ ], HealthCheckService);
71
+ // Example 3: Job with retries
72
+ let DataSyncService = class DataSyncService {
73
+ constructor() {
74
+ this.syncAttempts = 0;
75
+ }
76
+ async syncExternalData() {
77
+ this.syncAttempts++;
78
+ console.log(`[DataSync] Syncing external data (attempt total: ${this.syncAttempts})`);
79
+ // Simulate occasional failures
80
+ if (Math.random() < 0.3) {
81
+ throw new Error('External API temporarily unavailable');
82
+ }
83
+ console.log(`[DataSync] Sync successful`);
84
+ }
85
+ };
86
+ __decorate([
87
+ (0, index_1.Scheduled)({
88
+ interval: 15000,
89
+ maxRetries: 2,
90
+ retryDelay: 1000,
91
+ name: 'data-sync'
92
+ }),
93
+ __metadata("design:type", Function),
94
+ __metadata("design:paramtypes", []),
95
+ __metadata("design:returntype", Promise)
96
+ ], DataSyncService.prototype, "syncExternalData", null);
97
+ DataSyncService = __decorate([
98
+ (0, index_1.Service)()
99
+ ], DataSyncService);
100
+ // Main application
101
+ async function main() {
102
+ console.log('Starting Scheduled Jobs Example...\n');
103
+ // Create and start the app
104
+ const bootify = (0, index_1.createBootify)()
105
+ .setPort(3000)
106
+ .useScheduler(true);
107
+ const { app, start, scheduler } = await bootify.build();
108
+ // Add a simple route to check scheduler status
109
+ app.get('/scheduler/status', async () => {
110
+ return scheduler?.getStats() ?? { error: 'Scheduler not available' };
111
+ });
112
+ // Manual trigger endpoint
113
+ app.post('/scheduler/trigger/:jobName', async (request, reply) => {
114
+ const { jobName } = request.params;
115
+ try {
116
+ await scheduler?.trigger(jobName);
117
+ return { success: true, message: `Job '${jobName}' triggered` };
118
+ }
119
+ catch (error) {
120
+ reply.status(404);
121
+ return { success: false, error: error.message };
122
+ }
123
+ });
124
+ await start();
125
+ console.log('\nšŸ“‹ Available endpoints:');
126
+ console.log(' GET /scheduler/status - View all job statuses');
127
+ console.log(' POST /scheduler/trigger/:jobName - Manually trigger a job');
128
+ console.log('\nExample job names:');
129
+ console.log(' - CleanupService.cleanupTempFiles');
130
+ console.log(' - HealthCheckService.performHealthCheck');
131
+ console.log(' - DataSyncService.data-sync');
132
+ }
133
+ main().catch(console.error);
134
+ //# sourceMappingURL=scheduled-jobs-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled-jobs-example.js","sourceRoot":"","sources":["../../src/examples/scheduled-jobs-example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare class ScheduledTasksService {
2
+ private healthCheckCount;
3
+ private cleanupCount;
4
+ /**
5
+ * Health check - runs every 30 seconds
6
+ */
7
+ performHealthCheck(): Promise<void>;
8
+ /**
9
+ * Cleanup task - runs every 5 minutes with overlap prevention
10
+ */
11
+ cleanupExpiredData(): Promise<void>;
12
+ /**
13
+ * Stats reporter - runs every minute
14
+ */
15
+ reportStats(): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=scheduled-tasks.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled-tasks.service.d.ts","sourceRoot":"","sources":["../../../src/examples/services/scheduled-tasks.service.ts"],"names":[],"mappings":"AAQA,qBACa,qBAAqB;IAC9B,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,YAAY,CAAI;IAExB;;OAEG;IAEG,kBAAkB;IAOxB;;OAEG;IAMG,kBAAkB;IAQxB;;OAEG;IAEG,WAAW;CAGpB"}