@shadimakhoul/ggcoach 1.0.19 → 1.0.21
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/dist/middleware/admin-auth.js +0 -25
- package/dist/middleware/admin-auth.js.map +1 -1
- package/dist/middleware/auth.js +3 -4
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/errorHandler.js +0 -1
- package/dist/middleware/errorHandler.js.map +1 -1
- package/dist/middleware/internalAuth.js +0 -1
- package/dist/middleware/internalAuth.js.map +1 -1
- package/dist/middleware/rateLimiter.js +2 -2
- package/dist/middleware/rateLimiter.js.map +1 -1
- package/dist/middleware/validation.js +0 -1
- package/dist/middleware/validation.js.map +1 -1
- package/dist/utils/logger.d.ts +9 -5
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +49 -20
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/openapi.js +0 -10
- package/dist/utils/openapi.js.map +1 -1
- package/package.json +1 -1
|
@@ -52,29 +52,4 @@ const requireSuperAdmin = (req, res, next) => {
|
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
54
|
exports.requireSuperAdmin = requireSuperAdmin;
|
|
55
|
-
// export const requirePermission = (permission: string) => {
|
|
56
|
-
// return (req: Request, res: Response, next: NextFunction) => {
|
|
57
|
-
// try {
|
|
58
|
-
// const user = req.user;
|
|
59
|
-
// if (!user) {
|
|
60
|
-
// return res.status(401).json({
|
|
61
|
-
// success: false,
|
|
62
|
-
// error: "Unauthorized: User not authenticated",
|
|
63
|
-
// } as IApiResponse);
|
|
64
|
-
// }
|
|
65
|
-
// if (!user.permissions || !user.permissions.includes(permission)) {
|
|
66
|
-
// return res.status(403).json({
|
|
67
|
-
// success: false,
|
|
68
|
-
// error: `Forbidden: Permission '${permission}' required`,
|
|
69
|
-
// } as IApiResponse);
|
|
70
|
-
// }
|
|
71
|
-
// return next();
|
|
72
|
-
// } catch (error: any) {
|
|
73
|
-
// return res.status(500).json({
|
|
74
|
-
// success: false,
|
|
75
|
-
// error: "Permission check failed",
|
|
76
|
-
// } as IApiResponse);
|
|
77
|
-
// }
|
|
78
|
-
// };
|
|
79
|
-
// };
|
|
80
55
|
//# sourceMappingURL=admin-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-auth.js","sourceRoot":"","sources":["../../middleware/admin-auth.ts"],"names":[],"mappings":";;;AAAA,oCAAqD;AAG9C,MAAM,YAAY,GAAG,CAC1B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sCAAsC;aAC9B,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,mBAAW,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,mBAAW,CAAC,UAAU,EAAE,CAAC;YAC1F,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kCAAkC;aAC1B,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,4BAA4B;SACpB,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,YAAY,gBA6BvB;AAEK,MAAM,iBAAiB,GAAG,CAC/B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sCAAsC;aAC9B,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,mBAAW,CAAC,UAAU,EAAE,CAAC;YAChD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,wCAAwC;aAChC,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,4BAA4B;SACpB,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,iBAAiB,qBA6B5B
|
|
1
|
+
{"version":3,"file":"admin-auth.js","sourceRoot":"","sources":["../../middleware/admin-auth.ts"],"names":[],"mappings":";;;AAAA,oCAAqD;AAG9C,MAAM,YAAY,GAAG,CAC1B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sCAAsC;aAC9B,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,mBAAW,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,mBAAW,CAAC,UAAU,EAAE,CAAC;YAC1F,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kCAAkC;aAC1B,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,4BAA4B;SACpB,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,YAAY,gBA6BvB;AAEK,MAAM,iBAAiB,GAAG,CAC/B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sCAAsC;aAC9B,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,mBAAW,CAAC,UAAU,EAAE,CAAC;YAChD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,wCAAwC;aAChC,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,4BAA4B;SACpB,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,iBAAiB,qBA6B5B"}
|
package/dist/middleware/auth.js
CHANGED
|
@@ -11,7 +11,7 @@ const TOKEN_VERSION_PREFIX = "auth:token-version:";
|
|
|
11
11
|
const authenticateToken = (JWT_SECRET) => {
|
|
12
12
|
return async function authenticateToken(req, res, next) {
|
|
13
13
|
const authHeader = req.headers["authorization"];
|
|
14
|
-
const token = authHeader && authHeader.split(" ")[1];
|
|
14
|
+
const token = authHeader && authHeader.split(" ")[1];
|
|
15
15
|
if (!token) {
|
|
16
16
|
res.status(401).json({
|
|
17
17
|
success: false,
|
|
@@ -26,7 +26,7 @@ const authenticateToken = (JWT_SECRET) => {
|
|
|
26
26
|
});
|
|
27
27
|
const isValid = await validateTokenWithRedis(decoded);
|
|
28
28
|
if (!isValid) {
|
|
29
|
-
res.status(
|
|
29
|
+
res.status(401).json({
|
|
30
30
|
success: false,
|
|
31
31
|
message: "Invalid or expired token",
|
|
32
32
|
});
|
|
@@ -36,7 +36,7 @@ const authenticateToken = (JWT_SECRET) => {
|
|
|
36
36
|
next();
|
|
37
37
|
}
|
|
38
38
|
catch (error) {
|
|
39
|
-
res.status(
|
|
39
|
+
res.status(401).json({
|
|
40
40
|
success: false,
|
|
41
41
|
message: "Invalid or expired token",
|
|
42
42
|
});
|
|
@@ -78,7 +78,6 @@ const optionalAuth = (JWT_SECRET) => {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
catch (error) {
|
|
81
|
-
// Token is invalid, but we continue without user info
|
|
82
81
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
83
82
|
utils_1.logger.warn(`Invalid token in optional auth: ${err.message}`);
|
|
84
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../middleware/auth.ts"],"names":[],"mappings":";;;;;;AACA,gEAA+B;AAE/B,oCAAkC;AAClC,sCAA2C;AAI3C,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAE5C,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACtD,OAAO,KAAK,UAAU,iBAAiB,CAAE,GAAY,EAAE,GAAa,EAAE,IAAkB;QACtF,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../middleware/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ exports.errorHandler = void 0;
|
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
5
|
const errorHandler = (err, req, res, next) => {
|
|
6
6
|
utils_1.logger.error(`Error: ${err}`);
|
|
7
|
-
// Handle specific error types
|
|
8
7
|
if (err.code === 'ECONNREFUSED') {
|
|
9
8
|
res.status(503).json({
|
|
10
9
|
success: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../middleware/errorHandler.ts"],"names":[],"mappings":";;;AACA,oCAAkC;AAE3B,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;IAC9F,cAAM,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../middleware/errorHandler.ts"],"names":[],"mappings":";;;AACA,oCAAkC;AAE3B,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;IAC9F,cAAM,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAG9B,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,iCAAiC;YAC1C,IAAI,EAAE,qBAAqB;SAC5B,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,kBAAkB;YAC3B,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;SACrC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,kBAAkB;YAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SAC9C,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,gCAAgC,EAAE,CAAC;QAClD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,yBAAyB;YAClC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS;SACxC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACjC,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,uBAAuB;QAC/C,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,gBAAgB;QAClC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI;YAC5C,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;SACvC,CAAC;KACH,CAAC,CAAC;AACL,CAAC,CAAC;AA1DW,QAAA,YAAY,gBA0DvB"}
|
|
@@ -9,7 +9,6 @@ const requireInternalToken = (ALLOW_DIRECT_ACCESS, INTERNAL_SERVICE_TOKEN) => {
|
|
|
9
9
|
}
|
|
10
10
|
const token = INTERNAL_SERVICE_TOKEN;
|
|
11
11
|
if (!token) {
|
|
12
|
-
// If token isn't set, reject to be safe
|
|
13
12
|
res.status(403).json({ success: false, message: 'Internal access token not configured' });
|
|
14
13
|
return;
|
|
15
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalAuth.js","sourceRoot":"","sources":["../../middleware/internalAuth.ts"],"names":[],"mappings":";;;AAEO,MAAM,oBAAoB,GAAG,CAAC,mBAA4B,EAAE,sBAA8B,EAAE,EAAE;IACnG,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAC/D,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,sBAAsB,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"internalAuth.js","sourceRoot":"","sources":["../../middleware/internalAuth.ts"],"names":[],"mappings":";;;AAEO,MAAM,oBAAoB,GAAG,CAAC,mBAA4B,EAAE,sBAA8B,EAAE,EAAE;IACnG,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAC/D,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,sBAAsB,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YAEX,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAY,IAAI,EAAE,CAAC;QACnE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,oBAAoB,wBAsB/B;AAEF,kBAAe,4BAAoB,CAAC"}
|
|
@@ -19,6 +19,6 @@ const createRateLimiter = (windowMs = 15 * 60 * 1000, max = 1000) => {
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
exports.createRateLimiter = createRateLimiter;
|
|
22
|
-
exports.authRateLimiter = (0, exports.createRateLimiter)(15 * 60 * 1000, 5);
|
|
23
|
-
exports.generalRateLimiter = (0, exports.createRateLimiter)(15 * 60 * 1000, 1000);
|
|
22
|
+
exports.authRateLimiter = (0, exports.createRateLimiter)(15 * 60 * 1000, 5);
|
|
23
|
+
exports.generalRateLimiter = (0, exports.createRateLimiter)(15 * 60 * 1000, 1000);
|
|
24
24
|
//# sourceMappingURL=rateLimiter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../middleware/rateLimiter.ts"],"names":[],"mappings":";;;;;;AAAA,4EAA2C;AAEpC,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAc,IAAI,EAAE,EAAE;IACzF,OAAO,IAAA,4BAAS,EAAC;QACf,QAAQ;QACR,GAAG;QACH,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,yDAAyD;YAClE,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU;SACrD;QACD,eAAe,EAAE,IAAI;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,iBAAiB,qBAY5B;AAEW,QAAA,eAAe,GAAG,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../middleware/rateLimiter.ts"],"names":[],"mappings":";;;;;;AAAA,4EAA2C;AAEpC,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAc,IAAI,EAAE,EAAE;IACzF,OAAO,IAAA,4BAAS,EAAC;QACf,QAAQ;QACR,GAAG;QACH,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,yDAAyD;YAClE,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU;SACrD;QACD,eAAe,EAAE,IAAI;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,iBAAiB,qBAY5B;AAEW,QAAA,eAAe,GAAG,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACvD,QAAA,kBAAkB,GAAG,IAAA,yBAAiB,EAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC"}
|
|
@@ -70,7 +70,6 @@ const validateRequestZod = (schema, targetOrContentType, contentTypeArg) => {
|
|
|
70
70
|
req[target] = result.data;
|
|
71
71
|
next();
|
|
72
72
|
});
|
|
73
|
-
// Attach schema metadata for OpenAPI generation.
|
|
74
73
|
middleware.__schema = schema;
|
|
75
74
|
middleware.__schemaType = 'zod';
|
|
76
75
|
middleware.__schemaTarget = target;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../middleware/validation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../middleware/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import winston from 'winston';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
export interface TelegramConfig {
|
|
3
|
+
botToken: string;
|
|
4
|
+
chatIds: {
|
|
5
|
+
alert: string;
|
|
6
|
+
crit: string;
|
|
7
|
+
error: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export declare const initLogger: (logsDir?: string, telegramConfig?: TelegramConfig) => winston.Logger;
|
|
7
11
|
export declare const logger: winston.Logger;
|
|
8
12
|
export declare const stream: {
|
|
9
13
|
write: (message: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAuB9B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AA6DD,eAAO,MAAM,UAAU,aACZ,MAAM,mBACE,cAAc,KAC9B,QAAQ,MA4DV,CAAC;AAGF,eAAO,MAAM,MAAM,gBAQjB,CAAC;AAGH,eAAO,MAAM,MAAM;qBACA,MAAM;CAIxB,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -5,51 +5,79 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.stream = exports.logger = exports.initLogger = void 0;
|
|
7
7
|
const winston_1 = __importDefault(require("winston"));
|
|
8
|
+
const winston_transport_1 = __importDefault(require("winston-transport"));
|
|
8
9
|
const path_1 = __importDefault(require("path"));
|
|
9
10
|
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
|
|
11
|
+
const https_1 = __importDefault(require("https"));
|
|
11
12
|
const customLevels = {
|
|
12
13
|
levels: {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
alert: 0,
|
|
15
|
+
crit: 1,
|
|
16
|
+
error: 2,
|
|
17
|
+
warn: 3,
|
|
18
|
+
info: 4
|
|
17
19
|
},
|
|
18
20
|
colors: {
|
|
21
|
+
alert: 'cyan',
|
|
19
22
|
crit: 'magenta',
|
|
20
23
|
error: 'red',
|
|
21
24
|
warn: 'yellow',
|
|
22
25
|
info: 'green'
|
|
23
26
|
}
|
|
24
27
|
};
|
|
28
|
+
function sendTelegramMessage(botToken, chatId, text) {
|
|
29
|
+
const body = JSON.stringify({ chat_id: chatId, text, parse_mode: 'HTML' });
|
|
30
|
+
const req = https_1.default.request({
|
|
31
|
+
hostname: 'api.telegram.org',
|
|
32
|
+
path: `/bot${botToken}/sendMessage`,
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(body) }
|
|
35
|
+
}, (res) => {
|
|
36
|
+
if (res.statusCode && res.statusCode >= 400) {
|
|
37
|
+
console.warn(`Telegram transport: HTTP ${res.statusCode} for chat ${chatId}`);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
req.on('error', (err) => {
|
|
41
|
+
console.warn('Telegram transport error:', err.message);
|
|
42
|
+
});
|
|
43
|
+
req.write(body);
|
|
44
|
+
req.end();
|
|
45
|
+
}
|
|
46
|
+
class TelegramTransport extends winston_transport_1.default {
|
|
47
|
+
constructor(opts) {
|
|
48
|
+
super({ level: opts.matchLevel });
|
|
49
|
+
this.botToken = opts.botToken;
|
|
50
|
+
this.chatId = opts.chatId;
|
|
51
|
+
this.matchLevel = opts.matchLevel;
|
|
52
|
+
}
|
|
53
|
+
log(info, callback) {
|
|
54
|
+
setImmediate(() => this.emit('logged', info));
|
|
55
|
+
if (info.level === this.matchLevel) {
|
|
56
|
+
const text = `<b>[${info.level.toUpperCase()}]</b> ${info.message}`;
|
|
57
|
+
sendTelegramMessage(this.botToken, this.chatId, text);
|
|
58
|
+
}
|
|
59
|
+
callback();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
25
62
|
const { combine, timestamp, printf, colorize } = winston_1.default.format;
|
|
26
63
|
const logFormat = printf(({ level, message, timestamp: ts, ...meta }) => {
|
|
27
64
|
const metaString = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : '';
|
|
28
65
|
return `${ts} [${level}]: ${message}${metaString}`;
|
|
29
66
|
});
|
|
30
67
|
let loggerInstance = null;
|
|
31
|
-
|
|
32
|
-
* Initialize the logger with a specific log directory
|
|
33
|
-
* @param logsDir - Path to the logs directory (absolute or relative)
|
|
34
|
-
*/
|
|
35
|
-
const initLogger = (logsDir = path_1.default.resolve(process.cwd(), 'logs')) => {
|
|
36
|
-
// Ensure logs directory exists
|
|
68
|
+
const initLogger = (logsDir = path_1.default.resolve(process.cwd(), 'logs'), telegramConfig) => {
|
|
37
69
|
if (!fs_1.default.existsSync(logsDir)) {
|
|
38
70
|
try {
|
|
39
71
|
fs_1.default.mkdirSync(logsDir, { recursive: true });
|
|
40
72
|
}
|
|
41
73
|
catch (err) {
|
|
42
|
-
// eslint-disable-next-line no-console
|
|
43
74
|
console.warn('Could not create logs directory:', err);
|
|
44
75
|
}
|
|
45
76
|
}
|
|
46
|
-
// Create transports
|
|
47
77
|
const transports = [];
|
|
48
|
-
// Console transport (always available)
|
|
49
78
|
transports.push(new winston_1.default.transports.Console({
|
|
50
79
|
format: combine(colorize({ all: true }), timestamp(), logFormat)
|
|
51
80
|
}));
|
|
52
|
-
// File transports (if logs directory is available)
|
|
53
81
|
try {
|
|
54
82
|
transports.push(new winston_1.default.transports.File({
|
|
55
83
|
filename: path_1.default.join(logsDir, 'error.log'),
|
|
@@ -63,9 +91,14 @@ const initLogger = (logsDir = path_1.default.resolve(process.cwd(), 'logs')) =>
|
|
|
63
91
|
}));
|
|
64
92
|
}
|
|
65
93
|
catch (err) {
|
|
66
|
-
// eslint-disable-next-line no-console
|
|
67
94
|
console.warn('File transports unavailable, using console only for logging.');
|
|
68
95
|
}
|
|
96
|
+
if (telegramConfig) {
|
|
97
|
+
const { botToken, chatIds } = telegramConfig;
|
|
98
|
+
for (const level of ['alert', 'crit', 'error']) {
|
|
99
|
+
transports.push(new TelegramTransport({ botToken, chatId: chatIds[level], matchLevel: level }));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
69
102
|
loggerInstance = winston_1.default.createLogger({
|
|
70
103
|
levels: customLevels.levels,
|
|
71
104
|
level: process.env.LOG_LEVEL || 'info',
|
|
@@ -76,20 +109,16 @@ const initLogger = (logsDir = path_1.default.resolve(process.cwd(), 'logs')) =>
|
|
|
76
109
|
return loggerInstance;
|
|
77
110
|
};
|
|
78
111
|
exports.initLogger = initLogger;
|
|
79
|
-
// Proxy logger that lazily initializes if not already initialized
|
|
80
112
|
exports.logger = new Proxy({}, {
|
|
81
113
|
get(target, prop) {
|
|
82
114
|
if (!loggerInstance) {
|
|
83
|
-
// Auto-initialize with default path if not already initialized
|
|
84
115
|
(0, exports.initLogger)();
|
|
85
116
|
}
|
|
86
117
|
return loggerInstance[prop];
|
|
87
118
|
}
|
|
88
119
|
});
|
|
89
|
-
// Attach a stream for morgan or other logging middleware
|
|
90
120
|
exports.stream = {
|
|
91
121
|
write: (message) => {
|
|
92
|
-
// morgan adds a newline at the end
|
|
93
122
|
exports.logger.info(message.trim());
|
|
94
123
|
}
|
|
95
124
|
};
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../utils/logger.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,4CAAoB;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../utils/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/openapi.js
CHANGED
|
@@ -36,7 +36,6 @@ const extractSchemasFromApp = (app) => {
|
|
|
36
36
|
const inspectLayer = (layer, prefix = "") => {
|
|
37
37
|
if (!layer)
|
|
38
38
|
return;
|
|
39
|
-
// If this layer has a route
|
|
40
39
|
if (layer.route) {
|
|
41
40
|
const routePath = normalizePath(prefix + layer.route.path);
|
|
42
41
|
layer.route.stack.forEach((handler) => {
|
|
@@ -53,7 +52,6 @@ const extractSchemasFromApp = (app) => {
|
|
|
53
52
|
}
|
|
54
53
|
});
|
|
55
54
|
}
|
|
56
|
-
// If this layer is a router
|
|
57
55
|
else if (layer.handle && layer.handle.stack) {
|
|
58
56
|
let newPrefix = prefix;
|
|
59
57
|
if (layer.regexp && layer.regexp.source !== "^\\/?$") {
|
|
@@ -70,7 +68,6 @@ const extractSchemasFromApp = (app) => {
|
|
|
70
68
|
});
|
|
71
69
|
}
|
|
72
70
|
};
|
|
73
|
-
// Traverse the app's router stack
|
|
74
71
|
if (app._router && app._router.stack) {
|
|
75
72
|
app._router.stack.forEach((layer) => {
|
|
76
73
|
inspectLayer(layer);
|
|
@@ -83,7 +80,6 @@ const extractMiddlewaresFromApp = (app) => {
|
|
|
83
80
|
const inspectLayer = (layer, prefix = "") => {
|
|
84
81
|
if (!layer)
|
|
85
82
|
return;
|
|
86
|
-
// If this layer has a route
|
|
87
83
|
if (layer.route) {
|
|
88
84
|
const routePath = normalizePath(prefix + layer.route.path);
|
|
89
85
|
layer.route.stack.forEach((handler) => {
|
|
@@ -92,11 +88,9 @@ const extractMiddlewaresFromApp = (app) => {
|
|
|
92
88
|
if (!middlewares[middlewareKey]) {
|
|
93
89
|
middlewares[middlewareKey] = [];
|
|
94
90
|
}
|
|
95
|
-
// Collect middleware names from the handler
|
|
96
91
|
if (handler.name && handler.name !== 'anonymous' && handler.name !== '<anonymous>') {
|
|
97
92
|
middlewares[middlewareKey].push(handler.name);
|
|
98
93
|
}
|
|
99
|
-
// Also check the handle function name
|
|
100
94
|
if (handler.handle && handler.handle.name &&
|
|
101
95
|
handler.handle.name !== 'anonymous' &&
|
|
102
96
|
handler.handle.name !== '<anonymous>') {
|
|
@@ -104,7 +98,6 @@ const extractMiddlewaresFromApp = (app) => {
|
|
|
104
98
|
}
|
|
105
99
|
});
|
|
106
100
|
}
|
|
107
|
-
// If this layer is a router
|
|
108
101
|
else if (layer.handle && layer.handle.stack) {
|
|
109
102
|
let newPrefix = prefix;
|
|
110
103
|
if (layer.regexp && layer.regexp.source !== "^\\/?$") {
|
|
@@ -121,7 +114,6 @@ const extractMiddlewaresFromApp = (app) => {
|
|
|
121
114
|
});
|
|
122
115
|
}
|
|
123
116
|
};
|
|
124
|
-
// Traverse the app's router stack
|
|
125
117
|
if (app._router && app._router.stack) {
|
|
126
118
|
app._router.stack.forEach((layer) => {
|
|
127
119
|
inspectLayer(layer);
|
|
@@ -150,7 +142,6 @@ const buildPathsFromEndpoints = (endpoints, tagResolver, schemas, middlewares) =
|
|
|
150
142
|
return;
|
|
151
143
|
}
|
|
152
144
|
const tags = tagResolver ? tagResolver(path, methodKey) : undefined;
|
|
153
|
-
// Check middlewares specific to this method and path
|
|
154
145
|
const middlewareKey = `${methodKey}_${path}`;
|
|
155
146
|
const methodMiddlewares = middlewares?.[middlewareKey] || [];
|
|
156
147
|
const requiresAuth = methodMiddlewares.some((m) => AUTH_MIDDLEWARES.has(m));
|
|
@@ -164,7 +155,6 @@ const buildPathsFromEndpoints = (endpoints, tagResolver, schemas, middlewares) =
|
|
|
164
155
|
},
|
|
165
156
|
},
|
|
166
157
|
};
|
|
167
|
-
// Add requestBody if schema exists
|
|
168
158
|
if (schemas != null) {
|
|
169
159
|
const schemaKey = `${methodKey}_${path}`;
|
|
170
160
|
const schemaData = schemas[schemaKey];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../utils/openapi.ts"],"names":[],"mappings":";;;;;;AACA,oFAAmD;AAGnD,iDAA8C;AAG9C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,mBAAmB;IACnB,cAAc;IACd,mBAAmB;CACpB,CAAC,CAAC;AAEI,MAAM,2BAA2B,GAAG,CACzC,GAAY,EACZ,QAAqB,EACrB,UAAwB,EAAE,EACb,EAAE;IACf,MAAM,SAAS,GAAG,IAAA,gCAAa,EAAC,GAAG,CAAe,CAAC;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAiB,CAAC;IAC5D,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAEnD,MAAM,cAAc,GAAG,uBAAuB,CAC5C,SAAS,EACT,OAAO,CAAC,WAAW,EACnB,OAAO,EACP,WAAW,CACZ,CAAC;IAEF,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,GAAG,UAAU,CAAC,SAAS,EAAE,cAAc,CAAC;SACzC;KACF,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,2BAA2B,+BAuBtC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAc,EAA2B,EAAE;IAC5D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAgC,CAAC;IAC1C,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAGF,MAAM,qBAAqB,GAAG,CAAC,GAAY,EAAa,EAAE;IACxD,MAAM,OAAO,GAAc,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,SAAiB,EAAE,EAAQ,EAAE;QAC7D,IAAI,CAAC,KAAK;YAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../utils/openapi.ts"],"names":[],"mappings":";;;;;;AACA,oFAAmD;AAGnD,iDAA8C;AAG9C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,mBAAmB;IACnB,cAAc;IACd,mBAAmB;CACpB,CAAC,CAAC;AAEI,MAAM,2BAA2B,GAAG,CACzC,GAAY,EACZ,QAAqB,EACrB,UAAwB,EAAE,EACb,EAAE;IACf,MAAM,SAAS,GAAG,IAAA,gCAAa,EAAC,GAAG,CAAe,CAAC;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAiB,CAAC;IAC5D,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAEnD,MAAM,cAAc,GAAG,uBAAuB,CAC5C,SAAS,EACT,OAAO,CAAC,WAAW,EACnB,OAAO,EACP,WAAW,CACZ,CAAC;IAEF,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,GAAG,UAAU,CAAC,SAAS,EAAE,cAAc,CAAC;SACzC;KACF,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,2BAA2B,+BAuBtC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAc,EAA2B,EAAE;IAC5D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAgC,CAAC;IAC1C,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAGF,MAAM,qBAAqB,GAAG,CAAC,GAAY,EAAa,EAAE;IACxD,MAAM,OAAO,GAAc,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,SAAiB,EAAE,EAAQ,EAAE;QAC7D,IAAI,CAAC,KAAK;YAAE,OAAO;QAGnB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE3D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAa,CAAC;gBAErC,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;oBAE9B,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;oBAE3C,OAAO,CAAC,SAAS,CAAC,GAAG;wBACnB,MAAM,EAAE,MAAM,CAAC,QAAQ;wBACvB,IAAI,EAAE,MAAM,CAAC,YAAY;wBACzB,MAAM,EAAE,MAAM,CAAC,cAAc;wBAC7B,WAAW,EAAE,MAAM,CAAC,aAAa;qBAClC,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAGI,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,SAAS,GAAG,MAAM,CAAC;YAEvB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM;qBAC9B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;qBACnB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;qBACxB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;qBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;qBAChB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAEzB,SAAS,GAAG,aAAa,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAC3C,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;YACvC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,GAAY,EAA4B,EAAE;IAC3E,MAAM,WAAW,GAA6B,EAAE,CAAC;IAEjD,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,SAAiB,EAAE,EAAQ,EAAE;QAC7D,IAAI,CAAC,KAAK;YAAE,OAAO;QAGnB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE3D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC9B,MAAM,aAAa,GAAG,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;gBAE/C,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;oBAChC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;gBAClC,CAAC;gBAGD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACnF,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChD,CAAC;gBAGD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI;oBACrC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;oBACnC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC1C,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAGI,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,SAAS,GAAG,MAAM,CAAC;YAEvB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM;qBAC9B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;qBACnB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;qBACxB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;qBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;qBAChB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAEzB,SAAS,GAAG,aAAa,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAC3C,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAGF,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;YACvC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC9B,SAAqB,EACrB,WAAyB,EACzB,OAAmB,EACnB,WAAsC,EACxB,EAAE;IAEhB,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1E,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,OAAO;aACb,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;aACrC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aAC9C,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAClB,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAGpE,MAAM,aAAa,GAAG,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;YAC7C,MAAM,iBAAiB,GAAG,WAAW,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC7D,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAChD,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CACxB,CAAC;YAEF,MAAM,QAAQ,GAA4B;gBACxC,OAAO,EAAE,GAAG,MAAM,IAAI,WAAW,EAAE;gBACnC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,WAAW,EAAE,SAAS;qBACvB;iBACF;aACF,CAAC;YAGF,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,SAAkC,CAAC;oBACvC,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wBAC9B,SAAS,GAAG,IAAA,2BAAY,EAAC,UAAU,CAAC,MAAmB,CAAC,CAAC;oBAC3D,CAAC;yBAAM,CAAC;wBACN,OAAO;oBACT,CAAC;oBACD,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;wBACpE,MAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;wBAC1E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC1B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;wBACnC,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,WAAW,GACf,UAAU,CAAC,WAAW;4BACtB,CAAC,mBAAmB,CAAC,SAAS,CAAC;gCAC7B,CAAC,CAAC,qBAAqB;gCACvB,CAAC,CAAC,kBAAkB,CAAC,CAAC;wBAE1B,QAAQ,CAAC,WAAW,GAAG;4BACrB,QAAQ,EAAE,IAAI;4BACd,OAAO,EAAE;gCACP,CAAC,WAAW,CAAC,EAAE;oCACb,MAAM,EAAE,SAAS;iCAClB;6BACF;yBACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAW,EAAE;IAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;IAC7C,MAAM,OAAO,GACX,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,OAAO,OAAO,IAAI,GAAG,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;IAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,MAA+B,EAC/B,MAA0B,EACM,EAAE;IAClC,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QAC7F,CAAC,CAAE,MAAM,CAAC,UAAsC;QAChD,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAC5E,CAAC,CAAC,EAAE,CACP,CAAC;IAEF,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACtD,MAAM,SAAS,GAA4B;YACzC,IAAI;YACJ,EAAE,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAC1C,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;YAC5D,MAAM,EACJ,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzD,CAAC,CAAE,KAAiC;gBACpC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,SAAuB,EACvB,cAA4B,EACd,EAAE;IAChB,MAAM,MAAM,GAAiB,EAAE,GAAG,cAAc,EAAE,CAAC;IAEnD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;QACpD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,GAAG,gBAAgB;YACnB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,MAAe,EAAW,EAAE;IACvD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,MAAiC,CAAC;IAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|