@sustaina/iam-middleware 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @sustaina/iam-middleware
2
+ ## Installation
3
+ ```
4
+ npm install @sustaina/iam-middleware
5
+ ```
2
6
 
7
+ ## ENV
8
+ If you don't provide ```redisUrl/redisInstance ``` or ```jwtSecret``` directly in a class constructor, you can provide these by env including:
9
+
10
+ ```IAM_REDIS_URL``` and ```IAM_JWT_SECRET```
3
11
  ## For CD
4
12
  add these line in ```kustomization.yaml``` file in ```*-deploy``` repository
5
13
  ```
@@ -13,14 +21,78 @@ add these line in ```kustomization.yaml``` file in ```*-deploy``` repository
13
21
  name: iam-middleware-dev-secret # <--- add this
14
22
  # change dev to -> sit / uat
15
23
  ```
16
- now you good to go.
24
+ now you're good to go.
25
+ ## Information Attached to Request Object
26
+ This package extends FastifyRequest interface to include ```user property``` and ```jwt payload```.
27
+
28
+ you can get ```tenantId``` from ```request.payload?.tenantId```.
29
+
30
+ ```
31
+ declare module "fastify" {
32
+ interface FastifyRequest {
33
+ user?: UserInfo;
34
+ payload?: JwtPayload;
35
+ isAuthenticated?: boolean;
36
+
37
+ admin?: AdminInfo;
38
+ adminPayload?: AdminJwtPayload;
39
+ isAuthenticatedAdmin?: boolean;
40
+ }
41
+ }
42
+
43
+ export interface UserInfo {
44
+ id: string;
45
+ name: string;
46
+ email: string;
47
+ type: string;
48
+ }
49
+
50
+
51
+ export interface AdminJwtPayload {
52
+ id: string;
53
+ name: string;
54
+ email: string;
55
+ isPlatformAdmin: true;
56
+ }
57
+
58
+ export interface JwtPayload {
59
+ id: string;
60
+ name: string;
61
+ email: string;
62
+ tenantId: string;
63
+ type: string;
64
+ tenantLocale: string;
65
+ passwordPolicy: string;
66
+ isDenyPasswordChange: boolean;
67
+ isPasswordSendEmail: boolean;
68
+ }
69
+
70
+ export interface AdminInfo {
71
+ id: string;
72
+ name: string;
73
+ email: string;
74
+ }
75
+ ```
76
+
77
+ ## Available Method
78
+ ```
79
+ const authMiddleware = new AuthMiddleware();
80
+ const implementMode = new ImplementModeMiddleware();
81
+
82
+ authMiddleware.authenticate
83
+ authMiddleware.optionalAuthenticate // don't abort and don't return 401
84
+ authMiddleware.authenticateAdmin
85
+ authMiddleware.optionalAuthenticateAdmin // don't abort and don't return 401
86
+ authMiddleware.permissionGuard([{ access: "canRead", subProgram: "test" }]);
87
+ implementMode.authorise
88
+ ```
89
+
17
90
  ## Example Usage
18
91
  ```
19
92
  import "dotenv/config";
20
93
  import fastify from "fastify";
21
94
  import pino from "pino";
22
- import { AuthMiddleware } from "./auth/AuthMiddleware";
23
- import { ImplementModeMiddleware } from "./auth/ImplementModeMiddleware";
95
+ import { AuthMiddleware, ImplementModeMiddleware } from "@sustaina/iam-middleware";
24
96
 
25
97
  const logger = pino({
26
98
  level: process.env.LOG_LEVEL || "info",
@@ -33,7 +105,28 @@ async function createApp() {
33
105
  const authMiddleware = new AuthMiddleware();
34
106
  const implementMode = new ImplementModeMiddleware();
35
107
 
36
- // Register standardized routes
108
+ // Register middlewares to GROUP OF routes
109
+ await app.register(
110
+ async (appInstance) => {
111
+ appInstance.addHook("preHandler", authMiddleware.authenticate.bind(authMiddleware)); // required for implementMode.authorise and authMiddleware.
112
+ appInstance.addHook("preHandler", implementMode.authorise.bind(implementMode));
113
+ appInstance.addHook("preHandler", authMiddleware.permissionGuard([{ access: "canRead", subProgram: "test" }]).bind(authMiddleware));
114
+ appInstance.get("/test", {}, async (request, reply) => {
115
+ return reply.send({
116
+ success: true,
117
+ });
118
+ });
119
+ appInstance.get("/test2", {}, async (request, reply) => {
120
+ return reply.send({
121
+ success: false,
122
+ });
123
+ });
124
+ },
125
+ { prefix: "/api/v1" }
126
+ );
127
+
128
+
129
+ // Register middlewares to each route
37
130
  await app.register(
38
131
  async (appInstance) => {
39
132
  appInstance.get(
@@ -1,10 +1,14 @@
1
1
  import { FastifyRequest, FastifyReply } from "fastify";
2
- import { AuthMiddlewareOptions, JwtPayload, UserInfo, PermissionGuardParams } from "../types/AuthTypes";
2
+ import { AuthMiddlewareOptions, JwtPayload, UserInfo, PermissionGuardParams, AdminJwtPayload, AdminInfo } from "../types/AuthTypes";
3
3
  import { BaseMiddleware } from "../base/BaseMiddleware";
4
4
  declare module "fastify" {
5
5
  interface FastifyRequest {
6
6
  user?: UserInfo;
7
7
  payload?: JwtPayload;
8
+ isAuthenticated?: boolean;
9
+ admin?: AdminInfo;
10
+ adminPayload?: AdminJwtPayload;
11
+ isAuthenticatedAdmin?: boolean;
8
12
  }
9
13
  }
10
14
  export declare class AuthMiddleware extends BaseMiddleware {
@@ -23,8 +27,6 @@ export declare class AuthMiddleware extends BaseMiddleware {
23
27
  * @param {AuthMiddlewareOptions} [options.jwtSecret] - A optional jwt secret.
24
28
  */
25
29
  constructor(options?: AuthMiddlewareOptions);
26
- private verifyJwt;
27
- private checkAllowList;
28
30
  /**
29
31
  * A middleware to check if jwt token is valid and **populate request object with user and payload info**.
30
32
  * @example
@@ -32,7 +34,31 @@ export declare class AuthMiddleware extends BaseMiddleware {
32
34
  * const prehandler = [authMiddleware.authenticate.bind(authMiddleware)]
33
35
  */
34
36
  authenticate: (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
35
- private checkPermission;
37
+ /**
38
+ * A middleware to check if jwt token is valid and populate request object with user and payload info.
39
+ *
40
+ * **This middleware does not return error responses, it just skips authentication on failure.**
41
+ * @example
42
+ * const authMiddleware = new AuthMiddleware()
43
+ * const prehandler = [authMiddleware.optionalAuthenticate.bind(authMiddleware)]
44
+ */
45
+ optionalAuthenticate: (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
46
+ /**
47
+ * A middleware to check if jwt token is valid and **populate request object with admin and payload info**.
48
+ * @example
49
+ * const authMiddleware = new AuthMiddleware()
50
+ * const prehandler = [authMiddleware.authenticateAdmin.bind(authMiddleware)]
51
+ */
52
+ authenticateAdmin: (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
53
+ /**
54
+ * A middleware to check if jwt token is valid and populate request object with admin and payload info.
55
+ *
56
+ * **This middleware does not return error responses, it just skips authentication on failure.**
57
+ * @example
58
+ * const authMiddleware = new AuthMiddleware()
59
+ * const prehandler = [authMiddleware.optionalAuthenticateAdmin.bind(authMiddleware)]
60
+ */
61
+ optionalAuthenticateAdmin: (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
36
62
  /**
37
63
  * A middleware to check if user has permissions.
38
64
  * @example
@@ -46,6 +72,11 @@ export declare class AuthMiddleware extends BaseMiddleware {
46
72
  * ]
47
73
  */
48
74
  permissionGuard: (params: PermissionGuardParams) => (request: FastifyRequest, reply: FastifyReply) => Promise<undefined>;
49
- optionalAuth: (request: FastifyRequest) => Promise<void>;
75
+ private internalAuthenticate;
76
+ private internalAuthenticateAdmin;
77
+ private optionalReply;
78
+ private verifyJwt;
79
+ private checkAllowList;
80
+ private checkPermission;
50
81
  }
51
82
  //# sourceMappingURL=AuthMiddleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthMiddleware.d.ts","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvD,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,QAAQ,EAER,qBAAqB,EAEtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKxD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,cAAc;QACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,OAAO,CAAC,EAAE,UAAU,CAAC;KACtB;CACF;AAED,qBAAa,cAAe,SAAQ,cAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;;;;;;;;;;OAYG;gBACS,OAAO,CAAC,EAAE,qBAAqB;IAK3C,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,cAAc,CAqBpB;IAEF;;;;;OAKG;IACH,YAAY,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,wBA8HhE;IAEF,OAAO,CAAC,eAAe,CA2ErB;IAEF;;;;;;;;;;;OAWG;IACH,eAAe,GAAI,QAAQ,qBAAqB,MAAY,SAAS,cAAc,EAAE,OAAO,YAAY,wBAwBtG;IAEF,YAAY,GAAU,SAAS,cAAc,mBAqD3C;CACH"}
1
+ {"version":3,"file":"AuthMiddleware.d.ts","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvD,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,QAAQ,EAER,qBAAqB,EAErB,eAAe,EACf,SAAS,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKxD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,cAAc;QACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,OAAO,CAAC,EAAE,UAAU,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAE1B,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,YAAY,CAAC,EAAE,eAAe,CAAC;QAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC;CACF;AAED,qBAAa,cAAe,SAAQ,cAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;;;;;;;;;;OAYG;gBACS,OAAO,CAAC,EAAE,qBAAqB;IAK3C;;;;;OAKG;IACH,YAAY,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,wBAIhE;IACF;;;;;;;OAOG;IACH,oBAAoB,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,wBAIxE;IACF;;;;;OAKG;IACH,iBAAiB,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,wBAIrE;IACF;;;;;;;OAOG;IACH,yBAAyB,GAAU,SAAS,cAAc,EAAE,OAAO,YAAY,wBAI7E;IACF;;;;;;;;;;;OAWG;IACH,eAAe,GAAI,QAAQ,qBAAqB,MAAY,SAAS,cAAc,EAAE,OAAO,YAAY,wBAwBtG;IAEF,OAAO,CAAC,oBAAoB,CA8I1B;IAEF,OAAO,CAAC,yBAAyB,CA2G/B;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,cAAc,CAqBpB;IAEF,OAAO,CAAC,eAAe,CA2ErB;CACH"}
@@ -25,27 +25,6 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
25
25
  */
26
26
  constructor(options) {
27
27
  super({ ...options, name: "AuthMiddleware" });
28
- this.verifyJwt = (token) => {
29
- return jsonwebtoken_1.default.verify(token, this.jwtSecret);
30
- };
31
- this.checkAllowList = async (payload, token) => {
32
- const allowlistKey = `auth:session:${payload.id}`;
33
- const tokenJti = payload.jti;
34
- if (!tokenJti) {
35
- logger.warn({ token }, "Missing jti in token");
36
- return false;
37
- }
38
- try {
39
- const jtiInRedis = await this.redisClient.get(allowlistKey);
40
- const isAllowlisted = jtiInRedis === tokenJti;
41
- logger.debug({ allowlistKey, tokenJti, jtiInRedis, isAllowlisted }, "Checked Token allowlist in Redis");
42
- return isAllowlisted;
43
- }
44
- catch (err) {
45
- logger.error({ err, allowlistKey }, "Redis allowlist check failed");
46
- throw err;
47
- }
48
- };
49
28
  /**
50
29
  * A middleware to check if jwt token is valid and **populate request object with user and payload info**.
51
30
  * @example
@@ -55,6 +34,76 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
55
34
  this.authenticate = async (request, reply) => {
56
35
  const tracer = api_1.trace.getTracer(this.serviceName);
57
36
  const span = tracer.startSpan("AuthMiddleware.authenticate");
37
+ return this.internalAuthenticate(request, reply, span, false);
38
+ };
39
+ /**
40
+ * A middleware to check if jwt token is valid and populate request object with user and payload info.
41
+ *
42
+ * **This middleware does not return error responses, it just skips authentication on failure.**
43
+ * @example
44
+ * const authMiddleware = new AuthMiddleware()
45
+ * const prehandler = [authMiddleware.optionalAuthenticate.bind(authMiddleware)]
46
+ */
47
+ this.optionalAuthenticate = async (request, reply) => {
48
+ const tracer = api_1.trace.getTracer(this.serviceName);
49
+ const span = tracer.startSpan("AuthMiddleware.optionalAuthenticate");
50
+ return this.internalAuthenticate(request, reply, span, true);
51
+ };
52
+ /**
53
+ * A middleware to check if jwt token is valid and **populate request object with admin and payload info**.
54
+ * @example
55
+ * const authMiddleware = new AuthMiddleware()
56
+ * const prehandler = [authMiddleware.authenticateAdmin.bind(authMiddleware)]
57
+ */
58
+ this.authenticateAdmin = async (request, reply) => {
59
+ const tracer = api_1.trace.getTracer(this.serviceName);
60
+ const span = tracer.startSpan("AuthMiddleware.authenticateAdmin");
61
+ return this.internalAuthenticateAdmin(request, reply, span, false);
62
+ };
63
+ /**
64
+ * A middleware to check if jwt token is valid and populate request object with admin and payload info.
65
+ *
66
+ * **This middleware does not return error responses, it just skips authentication on failure.**
67
+ * @example
68
+ * const authMiddleware = new AuthMiddleware()
69
+ * const prehandler = [authMiddleware.optionalAuthenticateAdmin.bind(authMiddleware)]
70
+ */
71
+ this.optionalAuthenticateAdmin = async (request, reply) => {
72
+ const tracer = api_1.trace.getTracer(this.serviceName);
73
+ const span = tracer.startSpan("AuthMiddleware.optionalAuthenticateAdmin");
74
+ return this.internalAuthenticateAdmin(request, reply, span, true);
75
+ };
76
+ /**
77
+ * A middleware to check if user has permissions.
78
+ * @example
79
+ * const authMiddleware = new AuthMiddleware()
80
+ * const prehandler = [
81
+ * authMiddleware.authenticate.bind(authMiddleware), // required
82
+ * authMiddleware.permissionGuard([
83
+ * { access: "canRead", subProgram: "sub1" },
84
+ * { access: "canRead", subProgram: "sub2" }
85
+ * ]).bind(authMiddleware)
86
+ * ]
87
+ */
88
+ this.permissionGuard = (params) => async (request, reply) => {
89
+ let pool = [];
90
+ if (!Array.isArray(params)) {
91
+ pool = [params];
92
+ }
93
+ else {
94
+ pool = params;
95
+ }
96
+ if (!request.user) {
97
+ logger.error("permissionGuard: no user info from AuthMiddleware.authenticate");
98
+ return reply.status(401).send({ error: "Authentication Error", message: "User not authenticated" });
99
+ }
100
+ await Promise.all(pool.map((v) => this.checkPermission({
101
+ userId: request.user.id,
102
+ subProgram: v.subProgram,
103
+ access: v.access,
104
+ }, reply, request.payload)));
105
+ };
106
+ this.internalAuthenticate = async (request, reply, span, optional) => {
58
107
  try {
59
108
  const authHeader = request.headers.authorization;
60
109
  if (!authHeader || !authHeader.startsWith("Bearer ")) {
@@ -63,10 +112,10 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
63
112
  "error.message": "No authorization token provided",
64
113
  });
65
114
  logger.warn({ url: request.url }, "Authentication failed: No token provided");
66
- return reply.status(401).send({
115
+ return this.optionalReply(reply.status(401).send({
67
116
  error: "Authentication Error",
68
117
  message: "Authorization token is required",
69
- });
118
+ }), optional);
70
119
  }
71
120
  const token = authHeader.substring(7);
72
121
  // Verify JWT token
@@ -84,10 +133,10 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
84
133
  url: request.url,
85
134
  error: jwtError instanceof Error ? jwtError.message : "Unknown JWT error",
86
135
  }, "Authentication failed: Invalid token");
87
- return reply.status(401).send({
136
+ return this.optionalReply(reply.status(401).send({
88
137
  error: "Authentication Error",
89
138
  message: "Invalid or expired token",
90
- });
139
+ }), optional);
91
140
  }
92
141
  // Validate payload structure
93
142
  if (!payload.id ||
@@ -104,23 +153,24 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
104
153
  "error.message": "Token payload is incomplete",
105
154
  });
106
155
  logger.warn({ url: request.url, payload }, "Authentication failed: Invalid token payload");
107
- return reply.status(401).send({
156
+ return this.optionalReply(reply.status(401).send({
108
157
  error: "Authentication Error",
109
158
  message: "Invalid token payload",
110
- });
159
+ }), optional);
111
160
  }
112
161
  // Check allowlist (Redis)
113
162
  try {
114
163
  const result = await this.checkAllowList(payload, token);
115
164
  if (!result) {
116
- return reply.status(401).send({
165
+ return this.optionalReply(reply.status(401).send({
117
166
  error: "Authentication Error",
118
167
  message: "Token is not in allow list",
119
- });
168
+ }), optional);
120
169
  }
121
170
  }
122
171
  catch (error) {
123
172
  logger.error({ error: error.message, url: request.url }, "Token validation failed in AuthMiddleware");
173
+ // no optional reply here, as this is a server error
124
174
  return reply.status(500).send({
125
175
  error: "Internal Server Error",
126
176
  message: "Error while checking token validity",
@@ -133,11 +183,11 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
133
183
  email: payload.email,
134
184
  type: payload.type,
135
185
  };
186
+ request.isAuthenticated = true;
136
187
  span.setAttributes({
137
188
  "user.id": payload.id,
138
189
  "user.email": payload.email,
139
190
  "user.name": payload.name,
140
- "user.username": payload.username,
141
191
  "auth.success": true,
142
192
  });
143
193
  logger.debug({
@@ -152,6 +202,89 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
152
202
  "error.type": "middleware_error",
153
203
  });
154
204
  logger.error({ error, url: request.url }, "Error in authentication middleware");
205
+ // no optional reply here, as this is a server error
206
+ return reply.status(500).send({
207
+ error: "Internal Server Error",
208
+ message: "Authentication service error",
209
+ });
210
+ }
211
+ finally {
212
+ span.end();
213
+ }
214
+ };
215
+ this.internalAuthenticateAdmin = async (request, reply, span, optional) => {
216
+ try {
217
+ const authHeader = request.headers.authorization;
218
+ if (!authHeader || !authHeader.startsWith("Bearer ")) {
219
+ span.setAttributes({
220
+ "error.type": "missing_token",
221
+ "error.message": "No authorization token provided",
222
+ });
223
+ logger.warn({ url: request.url }, "Admin authentication failed: No token provided");
224
+ return this.optionalReply(reply.status(401).send({
225
+ error: "Authentication Error",
226
+ message: "Authorization token is required",
227
+ }), optional);
228
+ }
229
+ const token = authHeader.substring(7);
230
+ // Verify JWT token
231
+ let payload;
232
+ try {
233
+ payload = this.verifyJwt(token);
234
+ request.adminPayload = payload;
235
+ }
236
+ catch (jwtError) {
237
+ span.setAttributes({
238
+ "error.type": "invalid_token",
239
+ "error.message": "Token verification failed",
240
+ });
241
+ logger.warn({
242
+ url: request.url,
243
+ error: jwtError instanceof Error ? jwtError.message : "Unknown JWT error",
244
+ }, "Admin authentication failed: Invalid token");
245
+ return this.optionalReply(reply.status(401).send({
246
+ error: "Authentication Error",
247
+ message: "Invalid or expired token",
248
+ }), optional);
249
+ }
250
+ // Validate payload structure
251
+ if (!payload.id || !payload.name || !payload.email || !payload.isPlatformAdmin) {
252
+ span.setAttributes({
253
+ "error.type": "invalid_payload",
254
+ "error.message": "Token payload is incomplete",
255
+ });
256
+ logger.warn({ url: request.url, payload }, "Admin authentication failed: Invalid token payload");
257
+ return this.optionalReply(reply.status(401).send({
258
+ error: "Authentication Error",
259
+ message: "Invalid token payload",
260
+ }), optional);
261
+ }
262
+ // Attach admin info to request
263
+ request.admin = {
264
+ id: payload.id,
265
+ name: payload.name,
266
+ email: payload.email,
267
+ };
268
+ request.isAuthenticatedAdmin = true;
269
+ span.setAttributes({
270
+ "user.id": payload.id,
271
+ "user.email": payload.email,
272
+ "user.name": payload.name,
273
+ "auth.success": true,
274
+ });
275
+ logger.debug({
276
+ userId: payload.id,
277
+ email: payload.email,
278
+ url: request.url,
279
+ }, "Admin authenticated successfully");
280
+ }
281
+ catch (error) {
282
+ span.recordException(error);
283
+ span.setAttributes({
284
+ "error.type": "middleware_error",
285
+ });
286
+ logger.error({ error, url: request.url }, "Error in admin authentication middleware");
287
+ // no optional reply here, as this is a server error
155
288
  return reply.status(500).send({
156
289
  error: "Internal Server Error",
157
290
  message: "Authentication service error",
@@ -161,6 +294,27 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
161
294
  span.end();
162
295
  }
163
296
  };
297
+ this.optionalReply = (reply, optional) => {
298
+ return optional ? undefined : reply;
299
+ };
300
+ this.checkAllowList = async (payload, token) => {
301
+ const allowlistKey = `auth:session:${payload.id}`;
302
+ const tokenJti = payload.jti;
303
+ if (!tokenJti) {
304
+ logger.warn({ token }, "Missing jti in token");
305
+ return false;
306
+ }
307
+ try {
308
+ const jtiInRedis = await this.redisClient.get(allowlistKey);
309
+ const isAllowlisted = jtiInRedis === tokenJti;
310
+ logger.debug({ allowlistKey, tokenJti, jtiInRedis, isAllowlisted }, "Checked Token allowlist in Redis");
311
+ return isAllowlisted;
312
+ }
313
+ catch (err) {
314
+ logger.error({ err, allowlistKey }, "Redis allowlist check failed");
315
+ throw err;
316
+ }
317
+ };
164
318
  this.checkPermission = async ({ userId, access, subProgram }, reply, payload) => {
165
319
  // skip if user is admin
166
320
  if (payload.type === "administrator") {
@@ -226,87 +380,11 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
226
380
  });
227
381
  }
228
382
  };
229
- /**
230
- * A middleware to check if user has permissions.
231
- * @example
232
- * const authMiddleware = new AuthMiddleware()
233
- * const prehandler = [
234
- * authMiddleware.authenticate.bind(authMiddleware), // required
235
- * authMiddleware.permissionGuard([
236
- * { access: "canRead", subProgram: "sub1" },
237
- * { access: "canRead", subProgram: "sub2" }
238
- * ]).bind(authMiddleware)
239
- * ]
240
- */
241
- this.permissionGuard = (params) => async (request, reply) => {
242
- let pool = [];
243
- if (!Array.isArray(params)) {
244
- pool = [params];
245
- }
246
- else {
247
- pool = params;
248
- }
249
- if (!request.user) {
250
- logger.error("permissionGuard: no user info from AuthMiddleware.authenticate");
251
- return reply.status(401).send({ error: "Authentication Error", message: "User not authenticated" });
252
- }
253
- await Promise.all(pool.map((v) => this.checkPermission({
254
- userId: request.user.id,
255
- subProgram: v.subProgram,
256
- access: v.access,
257
- }, reply, request.payload)));
258
- };
259
- this.optionalAuth = async (request) => {
260
- const tracer = api_1.trace.getTracer(this.serviceName);
261
- const span = tracer.startSpan("AuthMiddleware.optionalAuth");
262
- try {
263
- const authHeader = request.headers.authorization;
264
- if (!authHeader || !authHeader.startsWith("Bearer ")) {
265
- span.setAttributes({
266
- "auth.optional": true,
267
- "auth.token_present": false,
268
- });
269
- return;
270
- }
271
- const token = authHeader.substring(7);
272
- try {
273
- const payload = this.verifyJwt(token);
274
- if (payload.id &&
275
- payload.name &&
276
- payload.email &&
277
- payload.tenantId &&
278
- payload.type &&
279
- payload.tenantLocale &&
280
- payload.passwordPolicy &&
281
- payload.isDenyPasswordChange !== undefined &&
282
- payload.isPasswordSendEmail !== undefined) {
283
- request.user = { id: payload.id, name: payload.name, email: payload.email, type: payload.type };
284
- span.setAttributes({
285
- "auth.optional": true,
286
- "auth.token_present": true,
287
- "user.id": payload.id,
288
- });
289
- }
290
- }
291
- catch (jwtError) {
292
- logger.debug({ error: jwtError }, "Optional auth: Invalid token provided");
293
- span.setAttributes({
294
- "auth.optional": true,
295
- "auth.token_present": true,
296
- "auth.token_valid": false,
297
- });
298
- }
299
- }
300
- catch (error) {
301
- span.recordException(error);
302
- logger.error({ error: error.message || error }, "Error in optional authentication middleware");
303
- }
304
- finally {
305
- span.end();
306
- }
307
- };
308
383
  this.jwtSecret = options?.jwtSecret ?? process.env.IAM_JWT_SECRET ?? "your_secret";
309
384
  }
385
+ verifyJwt(token) {
386
+ return jsonwebtoken_1.default.verify(token, this.jwtSecret);
387
+ }
310
388
  }
311
389
  exports.AuthMiddleware = AuthMiddleware;
312
390
  //# sourceMappingURL=AuthMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthMiddleware.js","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":";;;;;;AACA,gEAA+B;AAC/B,4CAA2C;AAC3C,gDAAwB;AASxB,2DAAwD;AAExD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAUhD,MAAa,cAAe,SAAQ,+BAAc;IAGhD;;;;;;;;;;;;OAYG;IACH,YAAY,OAA+B;QACzC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAIxC,cAAS,GAAG,CAAC,KAAa,EAAc,EAAE;YAChD,OAAO,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAe,CAAC;QACzD,CAAC,CAAC;QAEM,mBAAc,GAAG,KAAK,EAAE,OAAmB,EAAE,KAAc,EAAoB,EAAE;YACvF,MAAM,YAAY,GAAG,gBAAgB,OAAO,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YAE7B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAE5D,MAAM,aAAa,GAAG,UAAU,KAAK,QAAQ,CAAC;gBAE9C,MAAM,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,kCAAkC,CAAC,CAAC;gBAExG,OAAO,aAAa,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBACpE,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QAEF;;;;;WAKG;QACH,iBAAY,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;YACpE,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;YAE7D,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;gBAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC;wBACjB,YAAY,EAAE,eAAe;wBAC7B,eAAe,EAAE,iCAAiC;qBACnD,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,0CAA0C,CAAC,CAAC;oBAC9E,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC5B,KAAK,EAAE,sBAAsB;wBAC7B,OAAO,EAAE,iCAAiC;qBAC3C,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAEtC,mBAAmB;gBACnB,IAAI,OAAmB,CAAC;gBACxB,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAChC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC5B,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,aAAa,CAAC;wBACjB,YAAY,EAAE,eAAe;wBAC7B,eAAe,EAAE,2BAA2B;qBAC7C,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CACT;wBACE,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,KAAK,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB;qBAC1E,EACD,sCAAsC,CACvC,CAAC;oBACF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC5B,KAAK,EAAE,sBAAsB;wBAC7B,OAAO,EAAE,0BAA0B;qBACpC,CAAC,CAAC;gBACL,CAAC;gBAED,6BAA6B;gBAC7B,IACE,CAAC,OAAO,CAAC,EAAE;oBACX,CAAC,OAAO,CAAC,IAAI;oBACb,CAAC,OAAO,CAAC,KAAK;oBACd,CAAC,OAAO,CAAC,QAAQ;oBACjB,CAAC,OAAO,CAAC,IAAI;oBACb,CAAC,OAAO,CAAC,YAAY;oBACrB,CAAC,OAAO,CAAC,cAAc;oBACvB,OAAO,CAAC,oBAAoB,KAAK,SAAS;oBAC1C,OAAO,CAAC,mBAAmB,KAAK,SAAS,EACzC,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC;wBACjB,YAAY,EAAE,iBAAiB;wBAC/B,eAAe,EAAE,6BAA6B;qBAC/C,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,8CAA8C,CAAC,CAAC;oBAC3F,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC5B,KAAK,EAAE,sBAAsB;wBAC7B,OAAO,EAAE,uBAAuB;qBACjC,CAAC,CAAC;gBACL,CAAC;gBAED,0BAA0B;gBAC1B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBACzD,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BAC5B,KAAK,EAAE,sBAAsB;4BAC7B,OAAO,EAAE,4BAA4B;yBACtC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EACrD,2CAA2C,CAC5C,CAAC;oBACF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC5B,KAAK,EAAE,uBAAuB;wBAC9B,OAAO,EAAE,qCAAqC;qBAC/C,CAAC,CAAC;gBACL,CAAC;gBAED,8BAA8B;gBAC9B,OAAO,CAAC,IAAI,GAAG;oBACb,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB,CAAC;gBAEF,IAAI,CAAC,aAAa,CAAC;oBACjB,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,YAAY,EAAE,OAAO,CAAC,KAAK;oBAC3B,WAAW,EAAE,OAAO,CAAC,IAAI;oBACzB,eAAe,EAAE,OAAO,CAAC,QAAQ;oBACjC,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CACV;oBACE,MAAM,EAAE,OAAO,CAAC,EAAE;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;iBACjB,EACD,iCAAiC,CAClC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC;oBACjB,YAAY,EAAE,kBAAkB;iBACjC,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAC;gBAEhF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EAAE,8BAA8B;iBACxC,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,KAAK,EAC7B,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAyB,EACrD,KAAmB,EACnB,OAAmB,EACnB,EAAE;YACF,wBAAwB;YACxB,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBAE/B,MAAM,QAAQ,GAAG,mBAAmB,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;gBAE/E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC5B,KAAK,EAAE,oBAAoB;wBAC3B,OAAO,EAAE,uCAAuC,UAAU,EAAE;qBAC7D,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEtB,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CACtC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,kBAAkB;oBACzB,OAAO;iBACR,CAAC,CAAC;gBAEL,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,WAAW;wBACd,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;4BACzB,OAAO,WAAW,CAAC,kCAAkC,CAAC,CAAC;wBACzD,CAAC;wBACD,MAAM;oBACR,KAAK,SAAS;wBACZ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;4BACvB,OAAO,WAAW,CAAC,gCAAgC,CAAC,CAAC;wBACvD,CAAC;wBACD,MAAM;oBACR,KAAK,SAAS;wBACZ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;4BACvB,OAAO,WAAW,CAAC,gCAAgC,CAAC,CAAC;wBACvD,CAAC;wBACD,MAAM;oBACR,KAAK,WAAW;wBACd,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;4BACzB,OAAO,WAAW,CAAC,kCAAkC,CAAC,CAAC;wBACzD,CAAC;wBACD,MAAM;oBACR,KAAK,WAAW;wBACd,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;4BACzB,OAAO,WAAW,CAAC,kCAAkC,CAAC,CAAC;wBACzD,CAAC;wBACD,MAAM;oBACR,KAAK,gBAAgB;wBACnB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;4BAC9B,OAAO,WAAW,CAAC,wCAAwC,CAAC,CAAC;wBAC/D,CAAC;wBACD,MAAM;oBACR;wBACE,OAAO,WAAW,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,yCAAyC,CAAC,CAAC;gBACzE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EAAE,wCAAwC;iBAClD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF;;;;;;;;;;;WAWG;QACH,oBAAe,GAAG,CAAC,MAA6B,EAAE,EAAE,CAAC,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;YAC1G,IAAI,IAAI,GAAyB,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;gBAC/E,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACtG,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAI,CAAC,eAAe,CAClB;gBACE,MAAM,EAAE,OAAO,CAAC,IAAK,CAAC,EAAE;gBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,EACD,KAAK,EACL,OAAO,CAAC,OAAqB,CAC9B,CACF,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,iBAAY,GAAG,KAAK,EAAE,OAAuB,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;YAE7D,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;gBAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC;wBACjB,eAAe,EAAE,IAAI;wBACrB,oBAAoB,EAAE,KAAK;qBAC5B,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAEtC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAEtC,IACE,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,IAAI;wBACZ,OAAO,CAAC,KAAK;wBACb,OAAO,CAAC,QAAQ;wBAChB,OAAO,CAAC,IAAI;wBACZ,OAAO,CAAC,YAAY;wBACpB,OAAO,CAAC,cAAc;wBACtB,OAAO,CAAC,oBAAoB,KAAK,SAAS;wBAC1C,OAAO,CAAC,mBAAmB,KAAK,SAAS,EACzC,CAAC;wBACD,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;wBAEhG,IAAI,CAAC,aAAa,CAAC;4BACjB,eAAe,EAAE,IAAI;4BACrB,oBAAoB,EAAE,IAAI;4BAC1B,SAAS,EAAE,OAAO,CAAC,EAAE;yBACtB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,uCAAuC,CAAC,CAAC;oBAC3E,IAAI,CAAC,aAAa,CAAC;wBACjB,eAAe,EAAE,IAAI;wBACrB,oBAAoB,EAAE,IAAI;wBAC1B,kBAAkB,EAAE,KAAK;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,IAAI,KAAK,EAAE,EAAE,6CAA6C,CAAC,CAAC;YAC5G,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC;QA5UA,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,aAAa,CAAC;IACrF,CAAC;CA4UF;AA/VD,wCA+VC"}
1
+ {"version":3,"file":"AuthMiddleware.js","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":";;;;;;AACA,gEAA+B;AAC/B,4CAAiD;AACjD,gDAAwB;AAWxB,2DAAwD;AAExD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAehD,MAAa,cAAe,SAAQ,+BAAc;IAGhD;;;;;;;;;;;;OAYG;IACH,YAAY,OAA+B;QACzC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAIhD;;;;;WAKG;QACH,iBAAY,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;YACpE,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC;QACF;;;;;;;WAOG;QACH,yBAAoB,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;YAC5E,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC,CAAC;QACF;;;;;WAKG;QACH,sBAAiB,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;YACzE,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACrE,CAAC,CAAC;QACF;;;;;;;WAOG;QACH,8BAAyB,GAAG,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;YACjF,MAAM,MAAM,GAAG,WAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC;QACF;;;;;;;;;;;WAWG;QACH,oBAAe,GAAG,CAAC,MAA6B,EAAE,EAAE,CAAC,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAE,EAAE;YAC1G,IAAI,IAAI,GAAyB,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;gBAC/E,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACtG,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAI,CAAC,eAAe,CAClB;gBACE,MAAM,EAAE,OAAO,CAAC,IAAK,CAAC,EAAE;gBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,EACD,KAAK,EACL,OAAO,CAAC,OAAqB,CAC9B,CACF,CACF,CAAC;QACJ,CAAC,CAAC;QAEM,yBAAoB,GAAG,KAAK,EAClC,OAAuB,EACvB,KAAmB,EACnB,IAAU,EACV,QAAiB,EACjB,EAAE;YACF,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;gBAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC;wBACjB,YAAY,EAAE,eAAe;wBAC7B,eAAe,EAAE,iCAAiC;qBACnD,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,0CAA0C,CAAC,CAAC;oBAC9E,OAAO,IAAI,CAAC,aAAa,CACvB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,sBAAsB;wBAC7B,OAAO,EAAE,iCAAiC;qBAC3C,CAAC,EACF,QAAQ,CACT,CAAC;gBACJ,CAAC;gBAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAEtC,mBAAmB;gBACnB,IAAI,OAAmB,CAAC;gBACxB,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAa,KAAK,CAAC,CAAC;oBAC5C,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC5B,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,aAAa,CAAC;wBACjB,YAAY,EAAE,eAAe;wBAC7B,eAAe,EAAE,2BAA2B;qBAC7C,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CACT;wBACE,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,KAAK,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB;qBAC1E,EACD,sCAAsC,CACvC,CAAC;oBACF,OAAO,IAAI,CAAC,aAAa,CACvB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,sBAAsB;wBAC7B,OAAO,EAAE,0BAA0B;qBACpC,CAAC,EACF,QAAQ,CACT,CAAC;gBACJ,CAAC;gBAED,6BAA6B;gBAC7B,IACE,CAAC,OAAO,CAAC,EAAE;oBACX,CAAC,OAAO,CAAC,IAAI;oBACb,CAAC,OAAO,CAAC,KAAK;oBACd,CAAC,OAAO,CAAC,QAAQ;oBACjB,CAAC,OAAO,CAAC,IAAI;oBACb,CAAC,OAAO,CAAC,YAAY;oBACrB,CAAC,OAAO,CAAC,cAAc;oBACvB,OAAO,CAAC,oBAAoB,KAAK,SAAS;oBAC1C,OAAO,CAAC,mBAAmB,KAAK,SAAS,EACzC,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC;wBACjB,YAAY,EAAE,iBAAiB;wBAC/B,eAAe,EAAE,6BAA6B;qBAC/C,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,8CAA8C,CAAC,CAAC;oBAC3F,OAAO,IAAI,CAAC,aAAa,CACvB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,sBAAsB;wBAC7B,OAAO,EAAE,uBAAuB;qBACjC,CAAC,EACF,QAAQ,CACT,CAAC;gBACJ,CAAC;gBAED,0BAA0B;gBAC1B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBACzD,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,OAAO,IAAI,CAAC,aAAa,CACvB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BACrB,KAAK,EAAE,sBAAsB;4BAC7B,OAAO,EAAE,4BAA4B;yBACtC,CAAC,EACF,QAAQ,CACT,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EACrD,2CAA2C,CAC5C,CAAC;oBACF,oDAAoD;oBACpD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC5B,KAAK,EAAE,uBAAuB;wBAC9B,OAAO,EAAE,qCAAqC;qBAC/C,CAAC,CAAC;gBACL,CAAC;gBAED,8BAA8B;gBAC9B,OAAO,CAAC,IAAI,GAAG;oBACb,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB,CAAC;gBAEF,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;gBAE/B,IAAI,CAAC,aAAa,CAAC;oBACjB,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,YAAY,EAAE,OAAO,CAAC,KAAK;oBAC3B,WAAW,EAAE,OAAO,CAAC,IAAI;oBACzB,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CACV;oBACE,MAAM,EAAE,OAAO,CAAC,EAAE;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;iBACjB,EACD,iCAAiC,CAClC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC;oBACjB,YAAY,EAAE,kBAAkB;iBACjC,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAC;gBAChF,oDAAoD;gBACpD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EAAE,8BAA8B;iBACxC,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC;QAEM,8BAAyB,GAAG,KAAK,EACvC,OAAuB,EACvB,KAAmB,EACnB,IAAU,EACV,QAAiB,EACjB,EAAE;YACF,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;gBAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC;wBACjB,YAAY,EAAE,eAAe;wBAC7B,eAAe,EAAE,iCAAiC;qBACnD,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,gDAAgD,CAAC,CAAC;oBACpF,OAAO,IAAI,CAAC,aAAa,CACvB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,sBAAsB;wBAC7B,OAAO,EAAE,iCAAiC;qBAC3C,CAAC,EACF,QAAQ,CACT,CAAC;gBACJ,CAAC;gBAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAEtC,mBAAmB;gBACnB,IAAI,OAAwB,CAAC;gBAC7B,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAChC,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;gBACjC,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,aAAa,CAAC;wBACjB,YAAY,EAAE,eAAe;wBAC7B,eAAe,EAAE,2BAA2B;qBAC7C,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CACT;wBACE,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,KAAK,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB;qBAC1E,EACD,4CAA4C,CAC7C,CAAC;oBACF,OAAO,IAAI,CAAC,aAAa,CACvB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,sBAAsB;wBAC7B,OAAO,EAAE,0BAA0B;qBACpC,CAAC,EACF,QAAQ,CACT,CAAC;gBACJ,CAAC;gBAED,6BAA6B;gBAC7B,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;oBAC/E,IAAI,CAAC,aAAa,CAAC;wBACjB,YAAY,EAAE,iBAAiB;wBAC/B,eAAe,EAAE,6BAA6B;qBAC/C,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,oDAAoD,CAAC,CAAC;oBACjG,OAAO,IAAI,CAAC,aAAa,CACvB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,sBAAsB;wBAC7B,OAAO,EAAE,uBAAuB;qBACjC,CAAC,EACF,QAAQ,CACT,CAAC;gBACJ,CAAC;gBAED,+BAA+B;gBAC/B,OAAO,CAAC,KAAK,GAAG;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC;gBAEF,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBAEpC,IAAI,CAAC,aAAa,CAAC;oBACjB,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,YAAY,EAAE,OAAO,CAAC,KAAK;oBAC3B,WAAW,EAAE,OAAO,CAAC,IAAI;oBACzB,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CACV;oBACE,MAAM,EAAE,OAAO,CAAC,EAAE;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;iBACjB,EACD,kCAAkC,CACnC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC;oBACjB,YAAY,EAAE,kBAAkB;iBACjC,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,0CAA0C,CAAC,CAAC;gBACtF,oDAAoD;gBACpD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EAAE,8BAA8B;iBACxC,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,KAAmB,EAAE,QAAiB,EAAE,EAAE;YACjE,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QACtC,CAAC,CAAC;QAMM,mBAAc,GAAG,KAAK,EAAE,OAAmB,EAAE,KAAc,EAAoB,EAAE;YACvF,MAAM,YAAY,GAAG,gBAAgB,OAAO,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YAE7B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAE5D,MAAM,aAAa,GAAG,UAAU,KAAK,QAAQ,CAAC;gBAE9C,MAAM,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,kCAAkC,CAAC,CAAC;gBAExG,OAAO,aAAa,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBACpE,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QAEM,oBAAe,GAAG,KAAK,EAC7B,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAyB,EACrD,KAAmB,EACnB,OAAmB,EACnB,EAAE;YACF,wBAAwB;YACxB,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBAE/B,MAAM,QAAQ,GAAG,mBAAmB,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;gBAE/E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC5B,KAAK,EAAE,oBAAoB;wBAC3B,OAAO,EAAE,uCAAuC,UAAU,EAAE;qBAC7D,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEtB,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CACtC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,kBAAkB;oBACzB,OAAO;iBACR,CAAC,CAAC;gBAEL,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,WAAW;wBACd,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;4BACzB,OAAO,WAAW,CAAC,kCAAkC,CAAC,CAAC;wBACzD,CAAC;wBACD,MAAM;oBACR,KAAK,SAAS;wBACZ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;4BACvB,OAAO,WAAW,CAAC,gCAAgC,CAAC,CAAC;wBACvD,CAAC;wBACD,MAAM;oBACR,KAAK,SAAS;wBACZ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;4BACvB,OAAO,WAAW,CAAC,gCAAgC,CAAC,CAAC;wBACvD,CAAC;wBACD,MAAM;oBACR,KAAK,WAAW;wBACd,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;4BACzB,OAAO,WAAW,CAAC,kCAAkC,CAAC,CAAC;wBACzD,CAAC;wBACD,MAAM;oBACR,KAAK,WAAW;wBACd,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;4BACzB,OAAO,WAAW,CAAC,kCAAkC,CAAC,CAAC;wBACzD,CAAC;wBACD,MAAM;oBACR,KAAK,gBAAgB;wBACnB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;4BAC9B,OAAO,WAAW,CAAC,wCAAwC,CAAC,CAAC;wBAC/D,CAAC;wBACD,MAAM;oBACR;wBACE,OAAO,WAAW,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,yCAAyC,CAAC,CAAC;gBACzE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EAAE,wCAAwC;iBAClD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAhcA,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,aAAa,CAAC;IACrF,CAAC;IAyVO,SAAS,CAAU,KAAa;QACtC,OAAO,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAM,CAAC;IAChD,CAAC;CAqGF;AAndD,wCAmdC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AuthMiddleware.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthMiddleware.test.d.ts","sourceRoot":"","sources":["../../src/auth/AuthMiddleware.test.ts"],"names":[],"mappings":""}