bootifyjs 1.2.0 → 1.3.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 (123) hide show
  1. package/README.md +1 -1
  2. package/dist/api.d.ts +2 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +20 -4
  5. package/dist/api.js.map +1 -1
  6. package/dist/auth/examples/basic-usage.d.ts +2 -1
  7. package/dist/auth/examples/basic-usage.d.ts.map +1 -1
  8. package/dist/auth/examples/basic-usage.js +3 -2
  9. package/dist/auth/examples/basic-usage.js.map +1 -1
  10. package/dist/auth/index.d.ts +6 -8
  11. package/dist/auth/index.d.ts.map +1 -1
  12. package/dist/auth/index.js +11 -11
  13. package/dist/auth/index.js.map +1 -1
  14. package/dist/auth/middleware/AuthMiddleware.js.map +1 -1
  15. package/dist/cache/bootstrap.js +1 -1
  16. package/dist/cache/bootstrap.js.map +1 -1
  17. package/dist/cache/index.d.ts +2 -1
  18. package/dist/cache/index.d.ts.map +1 -1
  19. package/dist/cache/index.js +4 -1
  20. package/dist/cache/index.js.map +1 -1
  21. package/dist/cache/{in-memory-cache.store.d.ts → stores/in-memory-cache.store.d.ts} +1 -1
  22. package/dist/cache/stores/in-memory-cache.store.d.ts.map +1 -0
  23. package/dist/cache/{in-memory-cache.store.js → stores/in-memory-cache.store.js} +1 -1
  24. package/dist/cache/stores/in-memory-cache.store.js.map +1 -0
  25. package/dist/cache/stores/index.d.ts +3 -0
  26. package/dist/cache/stores/index.d.ts.map +1 -0
  27. package/dist/cache/stores/index.js +20 -0
  28. package/dist/cache/stores/index.js.map +1 -0
  29. package/dist/cache/stores/redis-cache.store.d.ts +8 -0
  30. package/dist/cache/stores/redis-cache.store.d.ts.map +1 -0
  31. package/dist/cache/stores/redis-cache.store.js +39 -0
  32. package/dist/cache/stores/redis-cache.store.js.map +1 -0
  33. package/dist/core/router.d.ts.map +1 -1
  34. package/dist/core/router.js +3 -3
  35. package/dist/core/router.js.map +1 -1
  36. package/dist/events/bootstrap.d.ts +13 -1
  37. package/dist/events/bootstrap.d.ts.map +1 -1
  38. package/dist/events/bootstrap.js +30 -2
  39. package/dist/events/bootstrap.js.map +1 -1
  40. package/dist/events/buffered-event-bus.service.d.ts +135 -0
  41. package/dist/events/buffered-event-bus.service.d.ts.map +1 -0
  42. package/dist/events/buffered-event-bus.service.js +420 -0
  43. package/dist/events/buffered-event-bus.service.js.map +1 -0
  44. package/dist/events/config/buffered-event-config.d.ts +153 -0
  45. package/dist/events/config/buffered-event-config.d.ts.map +1 -0
  46. package/dist/events/config/buffered-event-config.js +181 -0
  47. package/dist/events/config/buffered-event-config.js.map +1 -0
  48. package/dist/events/index.d.ts +3 -0
  49. package/dist/events/index.d.ts.map +1 -1
  50. package/dist/events/index.js +3 -0
  51. package/dist/events/index.js.map +1 -1
  52. package/dist/events/metrics/event-metrics.d.ts +175 -0
  53. package/dist/events/metrics/event-metrics.d.ts.map +1 -0
  54. package/dist/events/metrics/event-metrics.js +235 -0
  55. package/dist/events/metrics/event-metrics.js.map +1 -0
  56. package/dist/events/monitoring/health-monitor.d.ts +142 -0
  57. package/dist/events/monitoring/health-monitor.d.ts.map +1 -0
  58. package/dist/events/monitoring/health-monitor.js +492 -0
  59. package/dist/events/monitoring/health-monitor.js.map +1 -0
  60. package/dist/events/retry/retry-handler.d.ts +112 -0
  61. package/dist/events/retry/retry-handler.d.ts.map +1 -0
  62. package/dist/events/retry/retry-handler.js +218 -0
  63. package/dist/events/retry/retry-handler.js.map +1 -0
  64. package/dist/events/shared-buffer.d.ts +92 -0
  65. package/dist/events/shared-buffer.d.ts.map +1 -0
  66. package/dist/events/shared-buffer.js +179 -0
  67. package/dist/events/shared-buffer.js.map +1 -0
  68. package/dist/events/worker/event-processor.worker.d.ts +75 -0
  69. package/dist/events/worker/event-processor.worker.d.ts.map +1 -0
  70. package/dist/events/worker/event-processor.worker.js +293 -0
  71. package/dist/events/worker/event-processor.worker.js.map +1 -0
  72. package/dist/events/worker/worker-manager.d.ts +132 -0
  73. package/dist/events/worker/worker-manager.d.ts.map +1 -0
  74. package/dist/events/worker/worker-manager.js +436 -0
  75. package/dist/events/worker/worker-manager.js.map +1 -0
  76. package/dist/examples/auth/auth.middleware.d.ts +0 -26
  77. package/dist/examples/auth/auth.middleware.d.ts.map +1 -1
  78. package/dist/examples/auth/auth.middleware.js +0 -185
  79. package/dist/examples/auth/auth.middleware.js.map +1 -1
  80. package/dist/examples/controllers/auth.controller.d.ts +0 -63
  81. package/dist/examples/controllers/auth.controller.d.ts.map +1 -1
  82. package/dist/examples/controllers/auth.controller.js +247 -282
  83. package/dist/examples/controllers/auth.controller.js.map +1 -1
  84. package/dist/examples/events/buffered-event-example.d.ts +71 -0
  85. package/dist/examples/events/buffered-event-example.d.ts.map +1 -0
  86. package/dist/examples/events/buffered-event-example.js +182 -0
  87. package/dist/examples/events/buffered-event-example.js.map +1 -0
  88. package/dist/examples/events/integration-test.d.ts +10 -0
  89. package/dist/examples/events/integration-test.d.ts.map +1 -0
  90. package/dist/examples/events/integration-test.js +147 -0
  91. package/dist/examples/events/integration-test.js.map +1 -0
  92. package/dist/examples/index.d.ts +1 -0
  93. package/dist/examples/index.d.ts.map +1 -1
  94. package/dist/examples/index.js +11 -7
  95. package/dist/examples/index.js.map +1 -1
  96. package/dist/examples/todos/schema.d.ts +4 -4
  97. package/package.json +2 -1
  98. package/dist/cache/in-memory-cache.store.d.ts.map +0 -1
  99. package/dist/cache/in-memory-cache.store.js.map +0 -1
  100. package/dist/examples/authorization-examples.d.ts +0 -67
  101. package/dist/examples/authorization-examples.d.ts.map +0 -1
  102. package/dist/examples/authorization-examples.js +0 -202
  103. package/dist/examples/authorization-examples.js.map +0 -1
  104. package/dist/examples/controllers/todo-updated.controller.d.ts +0 -103
  105. package/dist/examples/controllers/todo-updated.controller.d.ts.map +0 -1
  106. package/dist/examples/controllers/todo-updated.controller.js +0 -328
  107. package/dist/examples/controllers/todo-updated.controller.js.map +0 -1
  108. package/dist/examples/controllers/todo-with-jwt-auth.controller.d.ts +0 -114
  109. package/dist/examples/controllers/todo-with-jwt-auth.controller.d.ts.map +0 -1
  110. package/dist/examples/controllers/todo-with-jwt-auth.controller.js +0 -329
  111. package/dist/examples/controllers/todo-with-jwt-auth.controller.js.map +0 -1
  112. package/dist/examples/jwt-auth-example.d.ts +0 -47
  113. package/dist/examples/jwt-auth-example.d.ts.map +0 -1
  114. package/dist/examples/jwt-auth-example.js +0 -316
  115. package/dist/examples/jwt-auth-example.js.map +0 -1
  116. package/dist/examples/services/user.service.d.ts +0 -99
  117. package/dist/examples/services/user.service.d.ts.map +0 -1
  118. package/dist/examples/services/user.service.js +0 -281
  119. package/dist/examples/services/user.service.js.map +0 -1
  120. package/dist/examples/test-auth-flow.d.ts +0 -56
  121. package/dist/examples/test-auth-flow.d.ts.map +0 -1
  122. package/dist/examples/test-auth-flow.js +0 -449
  123. package/dist/examples/test-auth-flow.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"auth.middleware.js","sourceRoot":"","sources":["../../../src/examples/auth/auth.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.middleware.js","sourceRoot":"","sources":["../../../src/examples/auth/auth.middleware.ts"],"names":[],"mappings":""}
@@ -1,64 +1 @@
1
- import { z } from 'zod';
2
- declare const loginSchema: z.ZodObject<{
3
- username: z.ZodString;
4
- password: z.ZodString;
5
- }, "strip", z.ZodTypeAny, {
6
- password: string;
7
- username: string;
8
- }, {
9
- password: string;
10
- username: string;
11
- }>;
12
- declare const refreshTokenSchema: z.ZodObject<{
13
- refreshToken: z.ZodString;
14
- }, "strip", z.ZodTypeAny, {
15
- refreshToken: string;
16
- }, {
17
- refreshToken: string;
18
- }>;
19
- export declare class AuthController {
20
- login(body: z.infer<typeof loginSchema>): Promise<{
21
- accessToken: string;
22
- refreshToken: string;
23
- expiresIn: number;
24
- tokenType: "Bearer" | "API-Key";
25
- user: {
26
- id: string;
27
- username: string | undefined;
28
- email: string | undefined;
29
- roles: string[];
30
- };
31
- }>;
32
- refreshToken(body: z.infer<typeof refreshTokenSchema>): Promise<{
33
- accessToken: string;
34
- refreshToken: string;
35
- expiresIn: number;
36
- tokenType: "Bearer" | "API-Key";
37
- }>;
38
- logout(body: z.infer<typeof refreshTokenSchema>): Promise<{
39
- message: string;
40
- }>;
41
- getAuthInfo(): Promise<{
42
- authenticated: boolean;
43
- message: string;
44
- instructions: {
45
- login: string;
46
- testCredentials: {
47
- admin: {
48
- username: string;
49
- password: string;
50
- };
51
- manager: {
52
- username: string;
53
- password: string;
54
- };
55
- user: {
56
- username: string;
57
- password: string;
58
- };
59
- };
60
- };
61
- }>;
62
- }
63
- export {};
64
1
  //# sourceMappingURL=auth.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../src/examples/controllers/auth.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,QAAA,MAAM,WAAW;;;;;;;;;EAGf,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;;;EAEtB,CAAC;AAwEH,qBACa,cAAc;IAqBnB,KAAK,CAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC;;;;;;;;;;;;IA8D/C,YAAY,CAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC;;;;;;IAyC7D,MAAM,CAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC;;;IA+CvD,WAAW;;;;;;;;;;;;;;;;;;;;;CAclB"}
1
+ {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../src/examples/controllers/auth.controller.ts"],"names":[],"mappings":""}
@@ -1,284 +1,249 @@
1
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
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AuthController = void 0;
16
- const zod_1 = require("zod");
17
- const decorators_1 = require("../../core/decorators");
18
- const AuthManager_1 = require("../../auth/AuthManager");
19
- const JwtStrategy_1 = require("../../auth/strategies/JwtStrategy");
20
- const RedisTokenStorage_1 = require("../../auth/storage/RedisTokenStorage");
21
- const loginSchema = zod_1.z.object({
22
- username: zod_1.z.string().min(1, 'Username is required'),
23
- password: zod_1.z.string().min(1, 'Password is required')
24
- });
25
- const refreshTokenSchema = zod_1.z.object({
26
- refreshToken: zod_1.z.string().min(1, 'Refresh token is required')
27
- });
28
- // Mock users for testing
29
- const MOCK_USERS = [
30
- {
31
- id: '1',
32
- username: 'admin',
33
- email: 'admin@example.com',
34
- roles: ['admin', 'manager', 'user'],
35
- permissions: ['read', 'write', 'delete', 'admin'],
36
- metadata: { password: 'admin123' },
37
- createdAt: new Date(),
38
- lastLoginAt: new Date()
39
- },
40
- {
41
- id: '2',
42
- username: 'manager',
43
- email: 'manager@example.com',
44
- roles: ['manager', 'user'],
45
- permissions: ['read', 'write'],
46
- metadata: { password: 'manager123' },
47
- createdAt: new Date(),
48
- lastLoginAt: new Date()
49
- },
50
- {
51
- id: '3',
52
- username: 'user',
53
- email: 'user@example.com',
54
- roles: ['user'],
55
- permissions: ['read'],
56
- metadata: { password: 'user123' },
57
- createdAt: new Date(),
58
- lastLoginAt: new Date()
59
- }
60
- ];
61
- // Mock Redis client for demo
62
- const mockRedisClient = {
63
- set: async (key, value, options) => 'OK',
64
- get: async (key) => null,
65
- del: async (key) => 1,
66
- exists: async (key) => 0
67
- };
68
- // Initialize auth system
69
- const tokenStorage = new RedisTokenStorage_1.RedisTokenStorage(mockRedisClient);
70
- const jwtStrategy = new JwtStrategy_1.JwtStrategy();
71
- const authManager = new AuthManager_1.AuthManager({
72
- defaultStrategy: 'jwt',
73
- tokenStorage
74
- });
75
- // Initialize auth system
76
- let authInitialized = false;
77
- async function initializeAuth() {
78
- if (!authInitialized) {
79
- await authManager.registerStrategy(jwtStrategy, {
80
- strategy: 'jwt',
81
- options: {
82
- secret: process.env.JWT_SECRET || 'your-secret-key',
83
- accessTokenExpiry: '15m',
84
- refreshTokenExpiry: '7d',
85
- issuer: 'bootifyjs-auth',
86
- audience: 'bootifyjs-app',
87
- isDefault: true
88
- }
89
- });
90
- authInitialized = true;
91
- }
92
- }
93
- let AuthController = class AuthController {
94
- async login(body) {
95
- await initializeAuth();
96
- const { username, password } = body;
97
- // Find user
98
- const user = MOCK_USERS.find(u => u.username === username && u.metadata?.password === password);
99
- if (!user) {
100
- throw new Error('Invalid credentials');
101
- }
102
- // Create auth context
103
- const context = {
104
- type: 'login',
105
- strategy: 'jwt',
106
- request: {},
107
- headers: {},
108
- body: { username, password },
109
- query: {}
110
- };
111
- // Authenticate using auth manager
112
- const authResult = await authManager.authenticate(context, 'jwt');
113
- if (!authResult.success || !authResult.tokens) {
114
- throw new Error('Authentication failed');
115
- }
116
- // Update last login
117
- user.lastLoginAt = new Date();
118
- return {
119
- accessToken: authResult.tokens.accessToken,
120
- refreshToken: authResult.tokens.refreshToken,
121
- expiresIn: authResult.tokens.expiresIn,
122
- tokenType: authResult.tokens.tokenType,
123
- user: {
124
- id: user.id,
125
- username: user.username,
126
- email: user.email,
127
- roles: user.roles
128
- }
129
- };
130
- }
131
- async refreshToken(body) {
132
- await initializeAuth();
133
- const { refreshToken } = body;
134
- const context = {
135
- type: 'refresh',
136
- strategy: 'jwt',
137
- request: {},
138
- headers: {},
139
- body: { refreshToken },
140
- query: {}
141
- };
142
- const refreshResult = await authManager.refresh(refreshToken, context, 'jwt');
143
- if (!refreshResult.success || !refreshResult.tokens) {
144
- throw new Error('Token refresh failed');
145
- }
146
- return {
147
- accessToken: refreshResult.tokens.accessToken,
148
- refreshToken: refreshResult.tokens.refreshToken,
149
- expiresIn: refreshResult.tokens.expiresIn,
150
- tokenType: refreshResult.tokens.tokenType
151
- };
152
- }
153
- async logout(body) {
154
- await initializeAuth();
155
- const { refreshToken } = body;
156
- const context = {
157
- type: 'revoke',
158
- strategy: 'jwt',
159
- request: {},
160
- headers: {},
161
- body: { refreshToken },
162
- query: {}
163
- };
164
- const revokeResult = await authManager.revoke(refreshToken, context, 'jwt');
165
- if (!revokeResult) {
166
- throw new Error('Logout failed');
167
- }
168
- return {
169
- message: 'Successfully logged out'
170
- };
171
- }
172
- async getAuthInfo() {
173
- return {
174
- authenticated: false,
175
- message: 'Authentication info endpoint - use middleware to get authenticated user data',
176
- instructions: {
177
- login: 'POST /auth/login with username and password',
178
- testCredentials: {
179
- admin: { username: 'admin', password: 'admin123' },
180
- manager: { username: 'manager', password: 'manager123' },
181
- user: { username: 'user', password: 'user123' }
182
- }
183
- }
184
- };
185
- }
186
- };
187
- exports.AuthController = AuthController;
188
- __decorate([
189
- (0, decorators_1.Post)('/login'),
190
- (0, decorators_1.Schema)({
191
- body: loginSchema,
192
- responses: {
193
- 200: zod_1.z.object({
194
- token: zod_1.z.string(),
195
- user: zod_1.z.object({
196
- id: zod_1.z.string(),
197
- username: zod_1.z.string(),
198
- email: zod_1.z.string(),
199
- roles: zod_1.z.array(zod_1.z.string())
200
- })
201
- }),
202
- 401: zod_1.z.object({
203
- error: zod_1.z.string(),
204
- message: zod_1.z.string()
205
- })
206
- }
207
- }),
208
- __param(0, (0, decorators_1.Body)()),
209
- __metadata("design:type", Function),
210
- __metadata("design:paramtypes", [void 0]),
211
- __metadata("design:returntype", Promise)
212
- ], AuthController.prototype, "login", null);
213
- __decorate([
214
- (0, decorators_1.Post)('/refresh'),
215
- (0, decorators_1.Schema)({
216
- body: refreshTokenSchema,
217
- responses: {
218
- 200: zod_1.z.object({
219
- accessToken: zod_1.z.string(),
220
- refreshToken: zod_1.z.string(),
221
- expiresIn: zod_1.z.number(),
222
- tokenType: zod_1.z.string()
223
- }),
224
- 401: zod_1.z.object({
225
- error: zod_1.z.string(),
226
- message: zod_1.z.string()
227
- })
228
- }
229
- }),
230
- __param(0, (0, decorators_1.Body)()),
231
- __metadata("design:type", Function),
232
- __metadata("design:paramtypes", [void 0]),
233
- __metadata("design:returntype", Promise)
234
- ], AuthController.prototype, "refreshToken", null);
235
- __decorate([
236
- (0, decorators_1.Post)('/logout'),
237
- (0, decorators_1.Schema)({
238
- body: refreshTokenSchema,
239
- responses: {
240
- 200: zod_1.z.object({
241
- message: zod_1.z.string()
242
- }),
243
- 400: zod_1.z.object({
244
- error: zod_1.z.string(),
245
- message: zod_1.z.string()
246
- })
247
- }
248
- }),
249
- __param(0, (0, decorators_1.Body)()),
250
- __metadata("design:type", Function),
251
- __metadata("design:paramtypes", [void 0]),
252
- __metadata("design:returntype", Promise)
253
- ], AuthController.prototype, "logout", null);
254
- __decorate([
255
- (0, decorators_1.Get)('/info'),
256
- (0, decorators_1.Schema)({
257
- responses: {
258
- 200: zod_1.z.object({
259
- authenticated: zod_1.z.boolean(),
260
- message: zod_1.z.string().optional(),
261
- instructions: zod_1.z.object({
262
- login: zod_1.z.string(),
263
- testCredentials: zod_1.z.record(zod_1.z.object({
264
- username: zod_1.z.string(),
265
- password: zod_1.z.string()
266
- }))
267
- }).optional(),
268
- user: zod_1.z.object({
269
- id: zod_1.z.string(),
270
- username: zod_1.z.string().optional(),
271
- email: zod_1.z.string().optional(),
272
- roles: zod_1.z.array(zod_1.z.string())
273
- }).optional()
274
- })
275
- }
276
- }),
277
- __metadata("design:type", Function),
278
- __metadata("design:paramtypes", []),
279
- __metadata("design:returntype", Promise)
280
- ], AuthController.prototype, "getAuthInfo", null);
281
- exports.AuthController = AuthController = __decorate([
282
- (0, decorators_1.Controller)('/auth')
283
- ], AuthController);
2
+ // import { z } from 'zod';
3
+ // import { FastifyRequest, FastifyReply } from 'fastify';
4
+ // import {
5
+ // Body,
6
+ // Controller,
7
+ // Get,
8
+ // Post,
9
+ // Schema
10
+ // } from '../../core/decorators';
11
+ // import { AuthManager } from '../../auth/AuthManager';
12
+ // import { JwtStrategy } from '../../auth/strategies/JwtStrategy';
13
+ // import { RedisTokenStorage } from '../../auth/storage/RedisTokenStorage';
14
+ // import { User, AuthContext } from '../../auth/types';
15
+ // const loginSchema = z.object({
16
+ // username: z.string().min(1, 'Username is required'),
17
+ // password: z.string().min(1, 'Password is required')
18
+ // });
19
+ // const refreshTokenSchema = z.object({
20
+ // refreshToken: z.string().min(1, 'Refresh token is required')
21
+ // });
22
+ // // Mock users for testing
23
+ // const MOCK_USERS: User[] = [
24
+ // {
25
+ // id: '1',
26
+ // username: 'admin',
27
+ // email: 'admin@example.com',
28
+ // roles: ['admin', 'manager', 'user'],
29
+ // permissions: ['read', 'write', 'delete', 'admin'],
30
+ // metadata: { password: 'admin123' },
31
+ // createdAt: new Date(),
32
+ // lastLoginAt: new Date()
33
+ // },
34
+ // {
35
+ // id: '2',
36
+ // username: 'manager',
37
+ // email: 'manager@example.com',
38
+ // roles: ['manager', 'user'],
39
+ // permissions: ['read', 'write'],
40
+ // metadata: { password: 'manager123' },
41
+ // createdAt: new Date(),
42
+ // lastLoginAt: new Date()
43
+ // },
44
+ // {
45
+ // id: '3',
46
+ // username: 'user',
47
+ // email: 'user@example.com',
48
+ // roles: ['user'],
49
+ // permissions: ['read'],
50
+ // metadata: { password: 'user123' },
51
+ // createdAt: new Date(),
52
+ // lastLoginAt: new Date()
53
+ // }
54
+ // ];
55
+ // // Mock Redis client for demo
56
+ // const mockRedisClient = {
57
+ // set: async (key: string, value: string, options?: any) => 'OK',
58
+ // get: async (key: string) => null,
59
+ // del: async (key: string) => 1,
60
+ // exists: async (key: string) => 0
61
+ // };
62
+ // // Initialize auth system
63
+ // const tokenStorage = new RedisTokenStorage(mockRedisClient as any);
64
+ // const jwtStrategy = new JwtStrategy();
65
+ // const authManager = new AuthManager({
66
+ // defaultStrategy: 'jwt',
67
+ // tokenStorage
68
+ // });
69
+ // // Initialize auth system
70
+ // let authInitialized = false;
71
+ // async function initializeAuth() {
72
+ // if (!authInitialized) {
73
+ // await authManager.registerStrategy(jwtStrategy, {
74
+ // strategy: 'jwt',
75
+ // options: {
76
+ // secret: process.env.JWT_SECRET || 'your-secret-key',
77
+ // accessTokenExpiry: '15m',
78
+ // refreshTokenExpiry: '7d',
79
+ // issuer: 'bootifyjs-auth',
80
+ // audience: 'bootifyjs-app',
81
+ // isDefault: true
82
+ // }
83
+ // });
84
+ // authInitialized = true;
85
+ // }
86
+ // }
87
+ // @Controller('/auth')
88
+ // export class AuthController {
89
+ // @Post('/login')
90
+ // @Schema({
91
+ // body: loginSchema,
92
+ // responses: {
93
+ // 200: z.object({
94
+ // token: z.string(),
95
+ // user: z.object({
96
+ // id: z.string(),
97
+ // username: z.string(),
98
+ // email: z.string(),
99
+ // roles: z.array(z.string())
100
+ // })
101
+ // }),
102
+ // 401: z.object({
103
+ // error: z.string(),
104
+ // message: z.string()
105
+ // })
106
+ // }
107
+ // })
108
+ // async login(@Body() body: z.infer<typeof loginSchema>) {
109
+ // const { username, password } = body;
110
+ // // Find user
111
+ // const user = MOCK_USERS.find(u => u.username === username && u.metadata?.password === password);
112
+ // if (!user) {
113
+ // throw new Error('Invalid credentials');
114
+ // }
115
+ // // Create auth context
116
+ // const context: AuthContext = {
117
+ // type: 'login',
118
+ // strategy: 'jwt',
119
+ // request: {} as any,
120
+ // headers: {},
121
+ // body: { username, password },
122
+ // query: {}
123
+ // };
124
+ // // Authenticate using auth manager
125
+ // const authResult = await authManager.authenticate(context, 'jwt');
126
+ // if (!authResult.success || !authResult.tokens) {
127
+ // throw new Error('Authentication failed');
128
+ // }
129
+ // // Update last login
130
+ // user.lastLoginAt = new Date();
131
+ // return {
132
+ // accessToken: authResult.tokens.accessToken,
133
+ // refreshToken: authResult.tokens.refreshToken,
134
+ // expiresIn: authResult.tokens.expiresIn,
135
+ // tokenType: authResult.tokens.tokenType,
136
+ // user: {
137
+ // id: user.id,
138
+ // username: user.username,
139
+ // email: user.email,
140
+ // roles: user.roles
141
+ // }
142
+ // };
143
+ // }
144
+ // @Post('/refresh')
145
+ // @Schema({
146
+ // body: refreshTokenSchema,
147
+ // responses: {
148
+ // 200: z.object({
149
+ // accessToken: z.string(),
150
+ // refreshToken: z.string(),
151
+ // expiresIn: z.number(),
152
+ // tokenType: z.string()
153
+ // }),
154
+ // 401: z.object({
155
+ // error: z.string(),
156
+ // message: z.string()
157
+ // })
158
+ // }
159
+ // })
160
+ // async refreshToken(@Body() body: z.infer<typeof refreshTokenSchema>) {
161
+ // const { refreshToken } = body;
162
+ // const context: AuthContext = {
163
+ // type: 'refresh',
164
+ // strategy: 'jwt',
165
+ // request: {} as any,
166
+ // headers: {},
167
+ // body: { refreshToken },
168
+ // query: {}
169
+ // };
170
+ // const refreshResult = await authManager.refresh(refreshToken, context, 'jwt');
171
+ // if (!refreshResult.success || !refreshResult.tokens) {
172
+ // throw new Error('Token refresh failed');
173
+ // }
174
+ // return {
175
+ // accessToken: refreshResult.tokens.accessToken,
176
+ // refreshToken: refreshResult.tokens.refreshToken,
177
+ // expiresIn: refreshResult.tokens.expiresIn,
178
+ // tokenType: refreshResult.tokens.tokenType
179
+ // };
180
+ // }
181
+ // @Post('/logout')
182
+ // @Schema({
183
+ // body: refreshTokenSchema,
184
+ // responses: {
185
+ // 200: z.object({
186
+ // message: z.string()
187
+ // }),
188
+ // 400: z.object({
189
+ // error: z.string(),
190
+ // message: z.string()
191
+ // })
192
+ // }
193
+ // })
194
+ // async logout(@Body() body: z.infer<typeof refreshTokenSchema>) {
195
+ // const { refreshToken } = body;
196
+ // const context: AuthContext = {
197
+ // type: 'revoke',
198
+ // strategy: 'jwt',
199
+ // request: {} as any,
200
+ // headers: {},
201
+ // body: { refreshToken },
202
+ // query: {}
203
+ // };
204
+ // const revokeResult = await authManager.revoke(refreshToken, context, 'jwt');
205
+ // if (!revokeResult) {
206
+ // throw new Error('Logout failed');
207
+ // }
208
+ // return {
209
+ // message: 'Successfully logged out'
210
+ // };
211
+ // }
212
+ // @Get('/info')
213
+ // @Schema({
214
+ // responses: {
215
+ // 200: z.object({
216
+ // authenticated: z.boolean(),
217
+ // message: z.string().optional(),
218
+ // instructions: z.object({
219
+ // login: z.string(),
220
+ // testCredentials: z.record(z.object({
221
+ // username: z.string(),
222
+ // password: z.string()
223
+ // }))
224
+ // }).optional(),
225
+ // user: z.object({
226
+ // id: z.string(),
227
+ // username: z.string().optional(),
228
+ // email: z.string().optional(),
229
+ // roles: z.array(z.string())
230
+ // }).optional()
231
+ // })
232
+ // }
233
+ // })
234
+ // async getAuthInfo() {
235
+ // return {
236
+ // authenticated: false,
237
+ // message: 'Authentication info endpoint - use middleware to get authenticated user data',
238
+ // instructions: {
239
+ // login: 'POST /auth/login with username and password',
240
+ // testCredentials: {
241
+ // admin: { username: 'admin', password: 'admin123' },
242
+ // manager: { username: 'manager', password: 'manager123' },
243
+ // user: { username: 'user', password: 'user123' }
244
+ // }
245
+ // }
246
+ // };
247
+ // }
248
+ // }
284
249
  //# sourceMappingURL=auth.controller.js.map