arkos 0.0.1

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 (114) hide show
  1. package/README.md +161 -0
  2. package/dist/src/app.d.ts +10 -0
  3. package/dist/src/app.d.ts.map +1 -0
  4. package/dist/src/app.js +114 -0
  5. package/dist/src/app.js.map +1 -0
  6. package/dist/src/index.d.ts +21 -0
  7. package/dist/src/index.d.ts.map +1 -0
  8. package/dist/src/index.js +51 -0
  9. package/dist/src/index.js.map +1 -0
  10. package/dist/src/modules/auth/auth.controller.d.ts +23 -0
  11. package/dist/src/modules/auth/auth.controller.d.ts.map +1 -0
  12. package/dist/src/modules/auth/auth.controller.js +317 -0
  13. package/dist/src/modules/auth/auth.controller.js.map +1 -0
  14. package/dist/src/modules/auth/auth.router.d.ts +4 -0
  15. package/dist/src/modules/auth/auth.router.d.ts.map +1 -0
  16. package/dist/src/modules/auth/auth.router.js +64 -0
  17. package/dist/src/modules/auth/auth.router.js.map +1 -0
  18. package/dist/src/modules/auth/auth.service.d.ts +16 -0
  19. package/dist/src/modules/auth/auth.service.d.ts.map +1 -0
  20. package/dist/src/modules/auth/auth.service.js +122 -0
  21. package/dist/src/modules/auth/auth.service.js.map +1 -0
  22. package/dist/src/modules/base/base.controller.d.ts +17 -0
  23. package/dist/src/modules/base/base.controller.d.ts.map +1 -0
  24. package/dist/src/modules/base/base.controller.js +296 -0
  25. package/dist/src/modules/base/base.controller.js.map +1 -0
  26. package/dist/src/modules/base/base.middlewares.d.ts +20 -0
  27. package/dist/src/modules/base/base.middlewares.d.ts.map +1 -0
  28. package/dist/src/modules/base/base.middlewares.js +86 -0
  29. package/dist/src/modules/base/base.middlewares.js.map +1 -0
  30. package/dist/src/modules/base/base.router.d.ts +4 -0
  31. package/dist/src/modules/base/base.router.d.ts.map +1 -0
  32. package/dist/src/modules/base/base.router.js +74 -0
  33. package/dist/src/modules/base/base.router.js.map +1 -0
  34. package/dist/src/modules/base/base.service.d.ts +32 -0
  35. package/dist/src/modules/base/base.service.d.ts.map +1 -0
  36. package/dist/src/modules/base/base.service.js +149 -0
  37. package/dist/src/modules/base/base.service.js.map +1 -0
  38. package/dist/src/modules/base/utils/base.helpers.d.ts +29 -0
  39. package/dist/src/modules/base/utils/base.helpers.d.ts.map +1 -0
  40. package/dist/src/modules/base/utils/base.helpers.js +106 -0
  41. package/dist/src/modules/base/utils/base.helpers.js.map +1 -0
  42. package/dist/src/modules/email/email.service.d.ts +22 -0
  43. package/dist/src/modules/email/email.service.d.ts.map +1 -0
  44. package/dist/src/modules/email/email.service.js +45 -0
  45. package/dist/src/modules/email/email.service.js.map +1 -0
  46. package/dist/src/modules/email/utils/email.helpers.d.ts +9 -0
  47. package/dist/src/modules/email/utils/email.helpers.d.ts.map +1 -0
  48. package/dist/src/modules/email/utils/email.helpers.js +25 -0
  49. package/dist/src/modules/email/utils/email.helpers.js.map +1 -0
  50. package/dist/src/modules/error-handler/error-handler.controller.d.ts +4 -0
  51. package/dist/src/modules/error-handler/error-handler.controller.d.ts.map +1 -0
  52. package/dist/src/modules/error-handler/error-handler.controller.js +182 -0
  53. package/dist/src/modules/error-handler/error-handler.controller.js.map +1 -0
  54. package/dist/src/modules/error-handler/utils/app-error.d.ts +11 -0
  55. package/dist/src/modules/error-handler/utils/app-error.d.ts.map +1 -0
  56. package/dist/src/modules/error-handler/utils/app-error.js +23 -0
  57. package/dist/src/modules/error-handler/utils/app-error.js.map +1 -0
  58. package/dist/src/modules/error-handler/utils/catch-async.d.ts +4 -0
  59. package/dist/src/modules/error-handler/utils/catch-async.d.ts.map +1 -0
  60. package/dist/src/modules/error-handler/utils/catch-async.js +9 -0
  61. package/dist/src/modules/error-handler/utils/catch-async.js.map +1 -0
  62. package/dist/src/modules/error-handler/utils/error-handler.helpers.d.ts +43 -0
  63. package/dist/src/modules/error-handler/utils/error-handler.helpers.d.ts.map +1 -0
  64. package/dist/src/modules/error-handler/utils/error-handler.helpers.js +209 -0
  65. package/dist/src/modules/error-handler/utils/error-handler.helpers.js.map +1 -0
  66. package/dist/src/modules/file-uploader/file-uploader.service.d.ts +20 -0
  67. package/dist/src/modules/file-uploader/file-uploader.service.d.ts.map +1 -0
  68. package/dist/src/modules/file-uploader/file-uploader.service.js +114 -0
  69. package/dist/src/modules/file-uploader/file-uploader.service.js.map +1 -0
  70. package/dist/src/paths.d.ts +2 -0
  71. package/dist/src/paths.d.ts.map +1 -0
  72. package/dist/src/paths.js +9 -0
  73. package/dist/src/paths.js.map +1 -0
  74. package/dist/src/utils/features/api.features.d.ts +20 -0
  75. package/dist/src/utils/features/api.features.d.ts.map +1 -0
  76. package/dist/src/utils/features/api.features.js +177 -0
  77. package/dist/src/utils/features/api.features.js.map +1 -0
  78. package/dist/src/utils/features/prisma.helpers.d.ts +3 -0
  79. package/dist/src/utils/features/prisma.helpers.d.ts.map +1 -0
  80. package/dist/src/utils/features/prisma.helpers.js +20 -0
  81. package/dist/src/utils/features/prisma.helpers.js.map +1 -0
  82. package/dist/src/utils/helpers/api.features.helpers.d.ts +41 -0
  83. package/dist/src/utils/helpers/api.features.helpers.d.ts.map +1 -0
  84. package/dist/src/utils/helpers/api.features.helpers.js +161 -0
  85. package/dist/src/utils/helpers/api.features.helpers.js.map +1 -0
  86. package/dist/src/utils/helpers/models.helpers.d.ts +21 -0
  87. package/dist/src/utils/helpers/models.helpers.d.ts.map +1 -0
  88. package/dist/src/utils/helpers/models.helpers.js +195 -0
  89. package/dist/src/utils/helpers/models.helpers.js.map +1 -0
  90. package/dist/src/utils/helpers/text.helpers.d.ts +2 -0
  91. package/dist/src/utils/helpers/text.helpers.d.ts.map +1 -0
  92. package/dist/src/utils/helpers/text.helpers.js +12 -0
  93. package/dist/src/utils/helpers/text.helpers.js.map +1 -0
  94. package/dist/src/utils/permissions/index.d.ts +3 -0
  95. package/dist/src/utils/permissions/index.d.ts.map +1 -0
  96. package/dist/src/utils/permissions/index.js +17 -0
  97. package/dist/src/utils/permissions/index.js.map +1 -0
  98. package/dist/src/utils/scripts/export-prisma-types.d.ts +2 -0
  99. package/dist/src/utils/scripts/export-prisma-types.d.ts.map +1 -0
  100. package/dist/src/utils/scripts/export-prisma-types.js +152 -0
  101. package/dist/src/utils/scripts/export-prisma-types.js.map +1 -0
  102. package/dist/src/utils/scripts/generate-zod-schemas.d.ts +2 -0
  103. package/dist/src/utils/scripts/generate-zod-schemas.d.ts.map +1 -0
  104. package/dist/src/utils/scripts/generate-zod-schemas.js +121 -0
  105. package/dist/src/utils/scripts/generate-zod-schemas.js.map +1 -0
  106. package/dist/src/utils/scripts/prisma-db-push.d.ts +2 -0
  107. package/dist/src/utils/scripts/prisma-db-push.d.ts.map +1 -0
  108. package/dist/src/utils/scripts/prisma-db-push.js +24 -0
  109. package/dist/src/utils/scripts/prisma-db-push.js.map +1 -0
  110. package/dist/src/utils/validate-dto.d.ts +3 -0
  111. package/dist/src/utils/validate-dto.d.ts.map +1 -0
  112. package/dist/src/utils/validate-dto.js +17 -0
  113. package/dist/src/utils/validate-dto.js.map +1 -0
  114. package/package.json +91 -0
@@ -0,0 +1,317 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.authControllerFactory = exports.excludedUserFields = void 0;
7
+ const catch_async_1 = __importDefault(require("../error-handler/utils/catch-async"));
8
+ const app_error_1 = __importDefault(require("../error-handler/utils/app-error"));
9
+ const auth_service_1 = __importDefault(require("./auth.service"));
10
+ const base_service_1 = __importDefault(require("../base/base.service"));
11
+ const app_1 = require("../../app");
12
+ exports.excludedUserFields = {
13
+ password: false,
14
+ passwordChangedAt: false,
15
+ passwordResetOtp: false,
16
+ passwordResetOtpExpiresAt: false,
17
+ verificationOtp: false,
18
+ verificationOptExpiresAt: false,
19
+ isVerified: false,
20
+ deletedSelfAccount: false,
21
+ active: false,
22
+ };
23
+ const authControllerFactory = (middlewares = {}) => {
24
+ const prisma = app_1.initConfigs.prisma;
25
+ return {
26
+ getMe: (0, catch_async_1.default)(async (req, res, next) => {
27
+ Object.keys(exports.excludedUserFields).forEach((key) => {
28
+ if (req.user)
29
+ delete req.user[key];
30
+ });
31
+ if (middlewares?.afterGetMe) {
32
+ ;
33
+ req.responseData = req.user;
34
+ req.responseStatus = 200;
35
+ return next();
36
+ }
37
+ res.status(200).json(req.user);
38
+ }),
39
+ logout: (0, catch_async_1.default)(async (req, res, next) => {
40
+ res.cookie('jwt', 'no-token', {
41
+ expires: new Date(Date.now() + 10 * 1000),
42
+ httpOnly: true,
43
+ });
44
+ if (middlewares?.afterLogout) {
45
+ ;
46
+ req.responseData = null;
47
+ req.responseStatus = 204;
48
+ return next();
49
+ }
50
+ res.status(204).json();
51
+ }),
52
+ login: (0, catch_async_1.default)(async (req, res, next) => {
53
+ const { email, password } = req.body;
54
+ if (!email || !password) {
55
+ return next(new app_error_1.default('Please provide an email and a password', 400));
56
+ }
57
+ const user = await prisma.user.findUnique({ where: { email } });
58
+ if (!user ||
59
+ !(await auth_service_1.default.isCorrectPassword(password, user.password))) {
60
+ return next(new app_error_1.default('Incorrect email or password', 401));
61
+ }
62
+ if (!user.isVerified)
63
+ return next(new app_error_1.default('You must verifiy your email in order to proceed!', 423));
64
+ const token = auth_service_1.default.signJwtToken(user.id);
65
+ const cookieOptions = {
66
+ expires: new Date(Date.now() +
67
+ Number(process.env.JWT_COOKIE_EXPIRES_IN) * 24 * 60 * 60 * 1000),
68
+ httpOnly: true,
69
+ secure: req.secure || req.headers['x-forwarded-proto'] === 'https',
70
+ sameSite: process.env.JWT_SECURE != 'false' ? 'lax' : 'none',
71
+ };
72
+ if (process.env.NODE_ENV === 'production')
73
+ cookieOptions.secure = true;
74
+ res.cookie('jwt', token, cookieOptions);
75
+ if (middlewares?.afterLogin) {
76
+ ;
77
+ req.responseData = { token };
78
+ req.responseStatus = 200;
79
+ return next();
80
+ }
81
+ res.status(200).send();
82
+ }),
83
+ signup: (0, catch_async_1.default)(async (req, res, next) => {
84
+ const userService = base_service_1.default['user'];
85
+ const user = await userService.createOne(req.body);
86
+ // const user = await prisma.user.create({
87
+ // data: {
88
+ // ...req.body,
89
+ // password: await authService.hashPassword(req.body.password),
90
+ // } as any,
91
+ // })
92
+ if (middlewares?.afterSignup) {
93
+ ;
94
+ req.responseData = { data: user };
95
+ req.responseStatus = 201;
96
+ return next();
97
+ }
98
+ Object.keys(exports.excludedUserFields).forEach((key) => {
99
+ delete user[key];
100
+ });
101
+ res.status(201).json({ data: user });
102
+ }),
103
+ verifyEmail: (0, catch_async_1.default)(async (req, res, next) => {
104
+ const { otp, email } = req.body;
105
+ // Check if email and OTP are provided
106
+ if (!email || !otp) {
107
+ return next(new app_error_1.default('Email and otp are required', 400, {
108
+ error: 'Missing parameters',
109
+ }));
110
+ }
111
+ const user = await prisma.user.findUnique({
112
+ where: { email },
113
+ });
114
+ if (!user) {
115
+ return next(new app_error_1.default('No account found with this email.', 400, {
116
+ error: 'user_not_found',
117
+ }));
118
+ }
119
+ if (user.isVerified)
120
+ return next(new app_error_1.default('Your email is already verified.', 400, {
121
+ error: 'already_verified',
122
+ }));
123
+ if (user.verificationOtp !== otp)
124
+ return next(new app_error_1.default('The OTP is incorrect.', 400, {
125
+ error: 'invalid_otp',
126
+ }));
127
+ if (user.verificationOptExpiresAt &&
128
+ new Date() > user.verificationOptExpiresAt)
129
+ return next(new app_error_1.default('The OTP has expired. Please request a new one.', 400, {
130
+ error: 'expired_otp',
131
+ }));
132
+ await prisma.user.update({
133
+ where: { email },
134
+ data: {
135
+ isVerified: true,
136
+ verificationOtp: null,
137
+ verificationOptExpiresAt: null,
138
+ },
139
+ });
140
+ if (middlewares?.afterVerifyEmail) {
141
+ ;
142
+ req.additionalData = {
143
+ user,
144
+ };
145
+ req.responseData = {
146
+ message: 'Email verified successfully.',
147
+ };
148
+ req.responseStatus = 200;
149
+ return next();
150
+ }
151
+ res.status(200).json({
152
+ message: 'Email verified successfully.',
153
+ });
154
+ }),
155
+ forgotPassword: (0, catch_async_1.default)(async (req, res, next) => {
156
+ if (!req.body.email)
157
+ return next(new app_error_1.default('Email is required in order to trigger forgot password', 400));
158
+ const user = await prisma.user.findUnique({
159
+ where: {
160
+ email: req.body.email,
161
+ },
162
+ });
163
+ if (!user ||
164
+ user?.active === false ||
165
+ user?.deletedSelfAccount === true)
166
+ return next(new app_error_1.default('User not found!', 404));
167
+ if (!user.isVerified)
168
+ return next(new app_error_1.default('You need to verify your account to proceed', 423, {
169
+ error: 'email_verification_required',
170
+ }));
171
+ // Verifica se um OTP foi solicitado recentemente
172
+ if (user.passwordResetOtpExpiresAt) {
173
+ const now = new Date();
174
+ const lastOtpRequestedAt = new Date(new Date(user.passwordResetOtpExpiresAt).getTime() - 15 * 60 * 1000);
175
+ const timeElapsed = (now.getTime() - lastOtpRequestedAt.getTime()) / 1000;
176
+ const minInterval = 2 * 60; // 2 minutos em segundos
177
+ if (timeElapsed < minInterval)
178
+ return next(new app_error_1.default(`Please wait ${Math.ceil(minInterval - timeElapsed)} seconds before requesting a new OTP.`, 429, {
179
+ remainingTime: Math.ceil(minInterval - timeElapsed),
180
+ }));
181
+ }
182
+ const resetOtp = Math.floor(100000 + Math.random() * 900000).toString();
183
+ const resetOtpExpiresAt = new Date(Date.now() + 15 * 60 * 1000);
184
+ await prisma.user.update({
185
+ where: {
186
+ id: user.id,
187
+ },
188
+ data: {
189
+ passwordResetOtp: resetOtp,
190
+ passwordResetOtpExpiresAt: resetOtpExpiresAt,
191
+ },
192
+ });
193
+ if (middlewares?.afterForgotPassword) {
194
+ ;
195
+ req.additionalData = {
196
+ user,
197
+ resetOtp,
198
+ };
199
+ req.responseData = {
200
+ status: 'success',
201
+ message: 'OTP code sent successfully!',
202
+ };
203
+ req.responseStatus = 200;
204
+ return next();
205
+ }
206
+ res.status(200).json({
207
+ status: 'success',
208
+ message: 'OTP code sent successfully!',
209
+ });
210
+ }),
211
+ resetPassword: (0, catch_async_1.default)(async (req, res, next) => {
212
+ const { email, otp, newPassword } = req.body;
213
+ if (!otp || !email || !newPassword)
214
+ return next(new app_error_1.default('email, otp and newPassword are required to reset password', 400));
215
+ if (!auth_service_1.default.isPasswordStrong(newPassword))
216
+ return next(new app_error_1.default('Password must contain at least one uppercase letter, one lowercase letter, and one number', 400));
217
+ const user = await prisma.user.findUnique({
218
+ where: { email },
219
+ });
220
+ if (!user?.passwordResetOtp)
221
+ return next(new app_error_1.default('You must request an otp in order to reset password!', 400, {
222
+ error: 'no_requested_otp',
223
+ }));
224
+ if (await auth_service_1.default.isCorrectPassword(newPassword, user?.password))
225
+ return next(new app_error_1.default('New password must not be the same as last one!', 400, {
226
+ error: 'new_password_equals_last_password',
227
+ }));
228
+ if (!user ||
229
+ user?.active === false ||
230
+ user?.deletedSelfAccount === true)
231
+ return next(new app_error_1.default('User not found!', 404));
232
+ if (!user.isVerified)
233
+ return next(new app_error_1.default('You need to verify your account to proceed', 423, {
234
+ error: 'email_verification_required',
235
+ }));
236
+ if (!user.passwordResetOtp || !user.passwordResetOtpExpiresAt)
237
+ return next(new app_error_1.default('Invalid or expired OTP.', 400));
238
+ const now = new Date();
239
+ if (now > new Date(user.passwordResetOtpExpiresAt))
240
+ return next(new app_error_1.default('OTP expired. Please request a new one.', 400));
241
+ if (user.passwordResetOtp != otp)
242
+ return next(new app_error_1.default('Invalid OTP. Please try again.', 400));
243
+ await prisma.user.update({
244
+ where: { id: user.id },
245
+ data: {
246
+ password: await auth_service_1.default.hashPassword(newPassword),
247
+ passwordResetOtp: null,
248
+ passwordResetOtpExpiresAt: null,
249
+ passwordChangedAt: new Date(),
250
+ },
251
+ });
252
+ if (middlewares?.afterResetPassword) {
253
+ ;
254
+ req.additionalData = {
255
+ user,
256
+ };
257
+ req.responseData = {
258
+ status: 'success',
259
+ message: 'Password reset successfully!',
260
+ };
261
+ req.responseStatus = 200;
262
+ return next();
263
+ }
264
+ res.status(200).json({
265
+ status: 'success',
266
+ message: 'Password reset successfully!',
267
+ });
268
+ }),
269
+ updatePassword: (0, catch_async_1.default)(async (req, res, next) => {
270
+ const { currentPassword, newPassword } = req.body;
271
+ if (!currentPassword || !newPassword)
272
+ return next(new app_error_1.default('currentPassword and newPassword are required', 400));
273
+ const user = req.user;
274
+ if (!user ||
275
+ user?.active === false ||
276
+ user?.deletedSelfAccount === true)
277
+ return next(new app_error_1.default('User not found!', 404));
278
+ if (!user.isVerified)
279
+ return next(new app_error_1.default('You need to verify your account to proceed', 423, {
280
+ error: 'email_verification_required',
281
+ }));
282
+ // Check if the current password is correct
283
+ const isPasswordCorrect = await auth_service_1.default.isCorrectPassword(String(currentPassword), String(user.password));
284
+ if (!isPasswordCorrect)
285
+ return next(new app_error_1.default('Current password is incorrect.', 400));
286
+ // Check password strength (optional but recommended)
287
+ if (!auth_service_1.default.isPasswordStrong(String(newPassword)))
288
+ return next(new app_error_1.default('Password must contain at least one uppercase letter, one lowercase letter, and one number', 400));
289
+ // Update the password
290
+ await prisma.user.update({
291
+ where: { id: user.id },
292
+ data: {
293
+ password: await auth_service_1.default.hashPassword(newPassword),
294
+ passwordChangedAt: new Date(),
295
+ },
296
+ });
297
+ if (middlewares?.afterUpdatePassword) {
298
+ ;
299
+ req.additionalData = {
300
+ user,
301
+ };
302
+ req.responseData = {
303
+ status: 'success',
304
+ message: 'Password updated successfully!',
305
+ };
306
+ req.responseStatus = 200;
307
+ return next();
308
+ }
309
+ res.status(200).json({
310
+ status: 'success',
311
+ message: 'Password updated successfully!',
312
+ });
313
+ }),
314
+ };
315
+ };
316
+ exports.authControllerFactory = authControllerFactory;
317
+ //# sourceMappingURL=auth.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../src/modules/auth/auth.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Router } from "express";
2
+ declare const router: Router;
3
+ export default router;
4
+ //# sourceMappingURL=auth.router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.router.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/auth.router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAOjC,QAAA,MAAM,MAAM,EAAE,MAAiB,CAAC;AAmHhC,eAAe,MAAM,CAAC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_1 = require("express");
7
+ const auth_controller_1 = require("./auth.controller");
8
+ const auth_service_1 = __importDefault(require("./auth.service"));
9
+ const express_rate_limit_1 = __importDefault(require("express-rate-limit"));
10
+ const models_helpers_1 = require("../../utils/helpers/models.helpers");
11
+ const base_middlewares_1 = require("../base/base.middlewares");
12
+ const router = (0, express_1.Router)();
13
+ (async function () {
14
+ const { middlewares } = await (0, models_helpers_1.importPrismaModelModules)("auth");
15
+ const authController = (0, auth_controller_1.authControllerFactory)(middlewares);
16
+ router.get("/users/me", auth_service_1.default.authenticate, middlewares?.beforeGetMe ?? authController.getMe, middlewares?.beforeGetMe
17
+ ? authController.getMe
18
+ : middlewares?.afterGetMe ?? base_middlewares_1.sendResponse, middlewares?.beforeGetMe && middlewares?.afterGetMe
19
+ ? middlewares?.afterGetMe
20
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
21
+ router.use((0, express_rate_limit_1.default)({
22
+ windowMs: 5000,
23
+ limit: 10,
24
+ standardHeaders: "draft-7",
25
+ legacyHeaders: false,
26
+ }));
27
+ router.post("/auth/login", middlewares?.beforeLogin ?? authController.login, middlewares?.beforeLogin
28
+ ? authController.login
29
+ : middlewares?.afterLogin ?? base_middlewares_1.sendResponse, middlewares?.beforeLogin && middlewares?.afterLogin
30
+ ? middlewares?.afterLogin
31
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
32
+ router.delete("/auth/logout", auth_service_1.default.authenticate, middlewares?.beforeLogout ?? authController.logout, middlewares?.beforeLogout
33
+ ? authController.logout
34
+ : middlewares?.afterLogout ?? base_middlewares_1.sendResponse, middlewares?.beforeLogout && middlewares?.afterLogout
35
+ ? middlewares?.afterLogout
36
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
37
+ router.post("/auth/signup", middlewares?.beforeSignup ?? authController.signup, middlewares?.beforeSignup
38
+ ? authController.signup
39
+ : middlewares?.afterSignup ?? base_middlewares_1.sendResponse, middlewares?.beforeSignup && middlewares?.afterSignup
40
+ ? middlewares?.afterSignup
41
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
42
+ router.post("/auth/verify-email", middlewares?.beforeVerifyEmail ?? authController.verifyEmail, middlewares?.beforeVerifyEmail
43
+ ? authController.verifyEmail
44
+ : middlewares?.afterVerifyEmail ?? base_middlewares_1.sendResponse, middlewares?.beforeVerifyEmail && middlewares?.afterVerifyEmail
45
+ ? middlewares?.afterVerifyEmail
46
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
47
+ router.post("/auth/forgot-password", middlewares?.beforeForgotPassword ?? authController.forgotPassword, middlewares?.beforeForgotPassword
48
+ ? authController.forgotPassword
49
+ : middlewares?.afterForgotPassword ?? base_middlewares_1.sendResponse, middlewares?.beforeForgotPassword && middlewares?.afterForgotPassword
50
+ ? middlewares?.afterForgotPassword
51
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
52
+ router.post("/auth/reset-password", middlewares?.beforeResetPassword ?? authController.resetPassword, middlewares?.beforeResetPassword
53
+ ? authController.resetPassword
54
+ : middlewares?.afterResetPassword ?? base_middlewares_1.sendResponse, middlewares?.beforeResetPassword && middlewares?.afterResetPassword
55
+ ? middlewares?.afterResetPassword
56
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
57
+ router.post("/auth/update-password", auth_service_1.default.authenticate, middlewares?.beforeUpdatePassword ?? authController.updatePassword, middlewares?.beforeUpdatePassword
58
+ ? authController.updatePassword
59
+ : middlewares?.afterUpdatePassword ?? base_middlewares_1.sendResponse, middlewares?.beforeUpdatePassword && middlewares?.afterUpdatePassword
60
+ ? middlewares?.afterUpdatePassword
61
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
62
+ })();
63
+ exports.default = router;
64
+ //# sourceMappingURL=auth.router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.router.js","sourceRoot":"","sources":["../../../../src/modules/auth/auth.router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { AuthConfigs, AuthJwtPayload, ControllerActions, User } from "../../types";
2
+ import { NextFunction, Request, Response } from "express";
3
+ declare class AuthService {
4
+ signJwtToken(id: number | string, expiresIn?: string | number, secret?: string): string;
5
+ isCorrectPassword(candidatePassword: string, userPassword: string): Promise<boolean>;
6
+ hashPassword(password: string): Promise<string>;
7
+ isPasswordStrong(password: string): boolean;
8
+ userChangedPasswordAfter(user: User, JWTTimestamp: number): boolean;
9
+ verifyJwtToken(token: string, secret?: string): Promise<AuthJwtPayload>;
10
+ handleActionAccessControl(authConfigs: AuthConfigs, action: ControllerActions, modelName: string): (req: Request, res: Response, next: NextFunction) => void;
11
+ authenticate: (req: Request, res: Response, next: NextFunction) => void;
12
+ handleAuthenticationControl(authConfigs: AuthConfigs | undefined, action: ControllerActions, modelName: string): (req: Request, res: Response, next: NextFunction) => void;
13
+ }
14
+ declare const authService: AuthService;
15
+ export default authService;
16
+ //# sourceMappingURL=auth.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/auth.service.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,IAAI,EAEL,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK1D,cAAM,WAAW;IACf,YAAY,CACV,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,SAAS,GAAE,MAAM,GAAG,MAA2C,EAC/D,MAAM,GAAE,MAAwD,GAC/D,MAAM;IAMH,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAIjE,YAAY,CAAC,QAAQ,EAAE,MAAM;IAInC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAQjC,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM;IAYnD,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAgC,GACvC,OAAO,CAAC,cAAc,CAAC;IAS1B,yBAAyB,CACvB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,MAAM;IAgCnB,YAAY,4DA4EV;IAEF,2BAA2B,CACzB,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,MAAM;CAapB;AAED,QAAA,MAAM,WAAW,aAAoB,CAAC;AAEtC,eAAe,WAAW,CAAC"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
7
+ const bcrypt_1 = __importDefault(require("bcrypt"));
8
+ const catch_async_1 = __importDefault(require("../error-handler/utils/catch-async"));
9
+ const app_error_1 = __importDefault(require("../error-handler/utils/app-error"));
10
+ const base_middlewares_1 = require("../base/base.middlewares");
11
+ const app_1 = require("../../app");
12
+ class AuthService {
13
+ signJwtToken(id, expiresIn = process.env.JWT_EXPIRES_IN || "1h", secret = process.env.JWT_SECRET || "your_default_secret") {
14
+ return jsonwebtoken_1.default.sign({ id }, secret, {
15
+ expiresIn: expiresIn,
16
+ });
17
+ }
18
+ async isCorrectPassword(candidatePassword, userPassword) {
19
+ return await bcrypt_1.default.compare(candidatePassword, userPassword);
20
+ }
21
+ async hashPassword(password) {
22
+ return await bcrypt_1.default.hash(password, 12);
23
+ }
24
+ isPasswordStrong(password) {
25
+ const hasUppercase = /[A-Z]/.test(password);
26
+ const hasLowercase = /[a-z]/.test(password);
27
+ const hasNumber = /\d/.test(password);
28
+ return hasUppercase && hasLowercase && hasNumber;
29
+ }
30
+ userChangedPasswordAfter(user, JWTTimestamp) {
31
+ if (user.passwordChangedAt) {
32
+ const convertedTimestamp = parseInt(String(user.passwordChangedAt.getTime() / 1000), 10);
33
+ return JWTTimestamp < convertedTimestamp;
34
+ }
35
+ return false;
36
+ }
37
+ async verifyJwtToken(token, secret = process.env.JWT_SECRET) {
38
+ return new Promise((resolve, reject) => {
39
+ jsonwebtoken_1.default.verify(token, secret, (err, decoded) => {
40
+ if (err)
41
+ reject(err);
42
+ else
43
+ resolve(decoded);
44
+ });
45
+ });
46
+ }
47
+ handleActionAccessControl(authConfigs, action, modelName) {
48
+ const prisma = app_1.initConfigs.prisma;
49
+ return (0, catch_async_1.default)(async (req, res, next) => {
50
+ if (req.user) {
51
+ const user = req.user;
52
+ const permissions = await prisma.authPermission.count({
53
+ where: {
54
+ resource: modelName,
55
+ action,
56
+ roleId: { in: user.roles.map((role) => role.roleId) },
57
+ },
58
+ });
59
+ if (!permissions) {
60
+ return next(new app_error_1.default("You do not have permission to perfom this action", 403));
61
+ }
62
+ }
63
+ next();
64
+ });
65
+ }
66
+ authenticate = (0, catch_async_1.default)(async (req, res, next) => {
67
+ let token;
68
+ const prisma = app_1.initConfigs.prisma;
69
+ if (req?.headers?.authorization &&
70
+ req?.headers?.authorization.startsWith("Bearer")) {
71
+ token = req?.headers?.authorization.split(" ")[1];
72
+ }
73
+ else if (req?.cookies?.jwt !== "no-token" && req.cookies) {
74
+ token = req?.cookies?.jwt;
75
+ }
76
+ if (!token)
77
+ return next(new app_error_1.default("You are not logged in! please log in to get access", 401));
78
+ let decoded;
79
+ try {
80
+ decoded = await this.verifyJwtToken(token);
81
+ }
82
+ catch (err) {
83
+ return next(new app_error_1.default("Your auth token is invalid, please login again.", 401));
84
+ }
85
+ if (!decoded?.id)
86
+ return next(new app_error_1.default("Your auth token is invalid, please login again.", 401));
87
+ const user = await prisma.user.findUnique({
88
+ where: { id: String(decoded.id) },
89
+ include: {
90
+ roles: true,
91
+ },
92
+ });
93
+ if (!user)
94
+ return next(new app_error_1.default("The user belonging to this token does no longer exists", 401));
95
+ if (this.userChangedPasswordAfter(user, decoded.iat) &&
96
+ !req.path.includes("logout"))
97
+ return next(new app_error_1.default("User recently changed password! Please log in again.", 401));
98
+ if (!user.isVerified && !req.path.includes("logout"))
99
+ return next(new app_error_1.default("You must verifiy your email in order to proceed!", 423, {
100
+ error: "email_verification_required",
101
+ }));
102
+ req.user = user;
103
+ next();
104
+ });
105
+ handleAuthenticationControl(authConfigs, action, modelName) {
106
+ const authenticationControl = authConfigs?.authenticationControl;
107
+ if (app_1.initConfigs?.authentication === false)
108
+ return base_middlewares_1.callNext;
109
+ if (authenticationControl && typeof authenticationControl === "object") {
110
+ if (authenticationControl[action] === false)
111
+ return base_middlewares_1.callNext;
112
+ else if (authenticationControl[action] === true)
113
+ return this.authenticate;
114
+ }
115
+ else
116
+ return this.authenticate;
117
+ return this.authenticate;
118
+ }
119
+ }
120
+ const authService = new AuthService();
121
+ exports.default = authService;
122
+ //# sourceMappingURL=auth.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../../src/modules/auth/auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { NextFunction, Request, Response } from "express";
2
+ export declare function handlerFactory(modelName: string, middlewares: any): Promise<{
3
+ createOne: (req: Request, res: Response, next: NextFunction) => void;
4
+ createMany: (req: Request, res: Response, next: NextFunction) => void;
5
+ findMany: (req: Request, res: Response, next: NextFunction) => void;
6
+ findOne: (req: Request, res: Response, next: NextFunction) => void;
7
+ updateOne: (req: Request, res: Response, next: NextFunction) => void;
8
+ updateMany: (req: Request, res: Response, next: NextFunction) => void;
9
+ deleteOne: (req: Request, res: Response, next: NextFunction) => void;
10
+ deleteMany: (req: Request, res: Response, next: NextFunction) => void;
11
+ }>;
12
+ export declare function getAvalibleRoutes(req: Request, res: Response, next: NextFunction): void;
13
+ export declare const uploadFile: (req: Request, res: Response, next: NextFunction) => void;
14
+ export declare const deleteFile: (req: Request, res: Response, next: NextFunction) => void;
15
+ export declare const streamFile: (req: Request, res: Response, next: NextFunction) => void;
16
+ export declare const getDatabaseModels: (req: Request, res: Response, next: NextFunction) => void;
17
+ //# sourceMappingURL=base.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.controller.d.ts","sourceRoot":"","sources":["../../../../src/modules/base/base.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAyB1D,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG;;;;;;;;;GA2KvE;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,QAgCnB;AAED,eAAO,MAAM,UAAU,2DA2GtB,CAAC;AAEF,eAAO,MAAM,UAAU,2DAgBtB,CAAC;AAEF,eAAO,MAAM,UAAU,2DA2CtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,2DAE5B,CAAC"}