protonfile-auth 1.6.4 → 1.6.5

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 (50) hide show
  1. package/README.md +22 -18
  2. package/lib/Entities/OTP.d.ts +10 -10
  3. package/lib/Entities/OTP.js +48 -48
  4. package/lib/Entities/Session.d.ts +10 -10
  5. package/lib/Entities/Session.js +36 -36
  6. package/lib/Entities/TempToken.d.ts +5 -5
  7. package/lib/Entities/TempToken.js +22 -22
  8. package/lib/Entities/User.d.ts +9 -9
  9. package/lib/Entities/User.js +34 -34
  10. package/lib/controllers/change_password.d.ts +3 -3
  11. package/lib/controllers/change_password.js +59 -58
  12. package/lib/controllers/login.d.ts +3 -3
  13. package/lib/controllers/login.js +40 -40
  14. package/lib/controllers/logout.d.ts +3 -3
  15. package/lib/controllers/logout.js +26 -26
  16. package/lib/controllers/qr.d.ts +3 -3
  17. package/lib/controllers/qr.js +55 -55
  18. package/lib/controllers/refresh_token.d.ts +3 -3
  19. package/lib/controllers/refresh_token.js +43 -43
  20. package/lib/controllers/register.d.ts +3 -3
  21. package/lib/controllers/register.js +57 -58
  22. package/lib/controllers/registerOtp.d.ts +3 -3
  23. package/lib/controllers/registerOtp.js +30 -30
  24. package/lib/index.d.ts +31 -29
  25. package/lib/index.js +58 -58
  26. package/lib/middlewares/appendSessionCache.d.ts +4 -4
  27. package/lib/middlewares/appendSessionCache.js +7 -7
  28. package/lib/middlewares/appendUms.d.ts +4 -4
  29. package/lib/middlewares/appendUms.js +7 -7
  30. package/lib/middlewares/verifyToken.d.ts +4 -4
  31. package/lib/middlewares/verifyToken.js +34 -34
  32. package/lib/services/OTPVacuum.d.ts +7 -7
  33. package/lib/services/OTPVacuum.js +31 -31
  34. package/lib/services/SessionCache.d.ts +8 -8
  35. package/lib/services/SessionCache.js +25 -25
  36. package/lib/services/SessionCleaner.d.ts +7 -7
  37. package/lib/services/SessionCleaner.js +35 -35
  38. package/lib/services/TempToken.d.ts +12 -9
  39. package/lib/services/TempToken.js +47 -40
  40. package/lib/services/UMS.d.ts +12 -12
  41. package/lib/services/UMS.js +31 -31
  42. package/lib/services/auth.d.ts +8 -8
  43. package/lib/services/auth.js +60 -60
  44. package/lib/services/mail/index.d.ts +36 -36
  45. package/lib/services/mail/index.js +101 -101
  46. package/lib/services/mail/templates/default.d.ts +2 -2
  47. package/lib/services/mail/templates/default.js +268 -268
  48. package/lib/services/session.d.ts +10 -10
  49. package/lib/services/session.js +81 -81
  50. package/package.json +52 -46
@@ -1,26 +1,26 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const session_1 = require("../services/session");
13
- exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
14
- yield (0, session_1.clearSessionCookie)(res);
15
- const sessionCache = req.sessionCache;
16
- try {
17
- const session = (0, session_1.verifySessionToken)(req.cookies.pid);
18
- sessionCache.set(session.session_id, 60 * 15);
19
- yield (0, session_1.deleteSession)(session.session_id);
20
- }
21
- catch (err) {
22
- console.log(err);
23
- return res.sendStatus(500);
24
- }
25
- res.sendStatus(200);
26
- });
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const session_1 = require("../services/session");
13
+ exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
14
+ yield (0, session_1.clearSessionCookie)(res);
15
+ const sessionCache = req.sessionCache;
16
+ try {
17
+ const session = (0, session_1.verifySessionToken)(req.cookies.pid);
18
+ sessionCache.set(session.session_id, 60 * 15);
19
+ yield (0, session_1.deleteSession)(session.session_id);
20
+ }
21
+ catch (err) {
22
+ console.log(err);
23
+ return res.sendStatus(500);
24
+ }
25
+ res.sendStatus(200);
26
+ });
@@ -1,3 +1,3 @@
1
- import { Request, Response } from 'express';
2
- export declare const get: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
3
- export declare const post: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
1
+ import { Request, Response } from 'express';
2
+ export declare const get: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
3
+ export declare const post: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
@@ -1,55 +1,55 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.post = exports.get = void 0;
16
- const auth_1 = require("../services/auth");
17
- const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
18
- const events_1 = __importDefault(require("events"));
19
- const User_1 = require("../Entities/User");
20
- const emitter = new events_1.default();
21
- const get = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
22
- if (!req.query.request_id) {
23
- const request = yield (0, auth_1.generateQrAuth)();
24
- return res.send(request);
25
- }
26
- const request_id = req.query.request_id;
27
- if (typeof request_id !== 'string') {
28
- return res.sendStatus(400);
29
- }
30
- const handler = (user) => __awaiter(void 0, void 0, void 0, function* () {
31
- const token = yield (0, auth_1.performLogin)(req, res, user);
32
- res.status(200).json(Object.assign(Object.assign({}, user), { token }));
33
- });
34
- emitter.on(request_id, handler);
35
- req.on('close', () => emitter.removeListener(request_id, handler));
36
- });
37
- exports.get = get;
38
- const post = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
39
- try {
40
- const token = jsonwebtoken_1.default.verify(req.body.qr_token, process.env.ACCESS_TOKEN_KEY);
41
- if (typeof token === 'string') {
42
- return res.sendStatus(500);
43
- }
44
- const user = yield User_1.User.findOne({ user_id: req.user.user_id });
45
- if (!user) {
46
- throw 'User not found';
47
- }
48
- emitter.emit(token.auth_id, user);
49
- res.sendStatus(200);
50
- }
51
- catch (err) {
52
- res.status(500).send(err);
53
- }
54
- });
55
- exports.post = post;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.post = exports.get = void 0;
16
+ const auth_1 = require("../services/auth");
17
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
18
+ const events_1 = __importDefault(require("events"));
19
+ const User_1 = require("../Entities/User");
20
+ const emitter = new events_1.default();
21
+ const get = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
22
+ if (!req.query.request_id) {
23
+ const request = yield (0, auth_1.generateQrAuth)();
24
+ return res.send(request);
25
+ }
26
+ const request_id = req.query.request_id;
27
+ if (typeof request_id !== 'string') {
28
+ return res.sendStatus(400);
29
+ }
30
+ const handler = (user) => __awaiter(void 0, void 0, void 0, function* () {
31
+ const token = yield (0, auth_1.performLogin)(req, res, user);
32
+ res.status(200).json(Object.assign(Object.assign({}, user), { token }));
33
+ });
34
+ emitter.on(request_id, handler);
35
+ req.on('close', () => emitter.removeListener(request_id, handler));
36
+ });
37
+ exports.get = get;
38
+ const post = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
39
+ try {
40
+ const token = jsonwebtoken_1.default.verify(req.body.qr_token, process.env.ACCESS_TOKEN_KEY);
41
+ if (typeof token === 'string') {
42
+ return res.sendStatus(500);
43
+ }
44
+ const user = yield User_1.User.findOne({ where: { user_id: req.user.user_id } });
45
+ if (!user) {
46
+ throw 'User not found';
47
+ }
48
+ emitter.emit(token.auth_id, user);
49
+ res.sendStatus(200);
50
+ }
51
+ catch (err) {
52
+ res.status(500).send(err);
53
+ }
54
+ });
55
+ exports.post = post;
@@ -1,3 +1,3 @@
1
- import { Request, Response } from 'express';
2
- declare const _default: (req: Request, res: Response) => Promise<Response<any, Record<string, any>>>;
3
- export default _default;
1
+ import { Request, Response } from 'express';
2
+ declare const _default: (req: Request, res: Response) => Promise<Response<any, Record<string, any>>>;
3
+ export default _default;
@@ -1,43 +1,43 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const User_1 = require("../Entities/User");
13
- const auth_1 = require("../services/auth");
14
- const session_1 = require("../services/session");
15
- exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
16
- const session = req.cookies.pid;
17
- if (!session) {
18
- return res.sendStatus(400);
19
- }
20
- let decodedSession;
21
- try {
22
- decodedSession = (0, session_1.verifySessionToken)(session);
23
- yield (0, session_1.compareSessionTokenVersion)(decodedSession);
24
- const newSession = yield (0, session_1.bumpSessionToken)(decodedSession);
25
- (0, session_1.setSessionCookie)(res, newSession);
26
- }
27
- catch (err) {
28
- console.log(err);
29
- yield (0, session_1.clearSessionCookie)(res);
30
- return res.sendStatus(403);
31
- }
32
- const user = yield User_1.User.findOne({ user_id: decodedSession.user_id });
33
- if (!user) {
34
- return res.sendStatus(404);
35
- }
36
- return res.send({
37
- ok: true,
38
- accessToken: (0, auth_1.createAccessToken)({
39
- user_id: user.user_id,
40
- session_id: decodedSession.session_id,
41
- }),
42
- });
43
- });
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const User_1 = require("../Entities/User");
13
+ const auth_1 = require("../services/auth");
14
+ const session_1 = require("../services/session");
15
+ exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
16
+ const session = req.cookies.pid;
17
+ if (!session) {
18
+ return res.sendStatus(400);
19
+ }
20
+ let decodedSession;
21
+ try {
22
+ decodedSession = (0, session_1.verifySessionToken)(session);
23
+ yield (0, session_1.compareSessionTokenVersion)(decodedSession);
24
+ const newSession = yield (0, session_1.bumpSessionToken)(decodedSession);
25
+ (0, session_1.setSessionCookie)(res, newSession);
26
+ }
27
+ catch (err) {
28
+ console.log(err);
29
+ yield (0, session_1.clearSessionCookie)(res);
30
+ return res.sendStatus(403);
31
+ }
32
+ const user = yield User_1.User.findOne({ where: { user_id: decodedSession.user_id } });
33
+ if (!user) {
34
+ return res.sendStatus(404);
35
+ }
36
+ return res.send({
37
+ ok: true,
38
+ accessToken: (0, auth_1.createAccessToken)({
39
+ user_id: user.user_id,
40
+ session_id: decodedSession.session_id,
41
+ }),
42
+ });
43
+ });
@@ -1,3 +1,3 @@
1
- import { Request, Response } from 'express';
2
- declare const _default: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
3
- export default _default;
1
+ import { Request, Response } from 'express';
2
+ declare const _default: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
3
+ export default _default;
@@ -1,58 +1,57 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const bcryptjs_1 = __importDefault(require("bcryptjs"));
16
- const User_1 = require("../Entities/User");
17
- const mail_1 = require("../services/mail");
18
- const OTP_1 = require("../Entities/OTP");
19
- exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
20
- try {
21
- const { first_name, last_name, email, password } = req.body;
22
- if (!(email && password && first_name && last_name)) {
23
- res.status(400).send('All input is required');
24
- }
25
- const oldUser = yield User_1.User.findOne({ email });
26
- if (oldUser) {
27
- return res.status(409).send('User Already Exist. Please Login');
28
- }
29
- const encryptedPassword = yield bcryptjs_1.default.hash(password, 10);
30
- yield User_1.User.insert({
31
- first_name,
32
- last_name,
33
- email: email.toLowerCase(),
34
- password: encryptedPassword,
35
- });
36
- const user = yield User_1.User.findOne({ email });
37
- if (!user) {
38
- return;
39
- }
40
- const otpEnt = new OTP_1.OTP();
41
- otpEnt.scope = 'registration';
42
- otpEnt.user_id = user.user_id;
43
- const queryRes = yield OTP_1.OTP.save(otpEnt);
44
- const otp = queryRes;
45
- if (!otp || !otp.code) {
46
- return res.sendStatus(500);
47
- }
48
- const mail = new mail_1.WelcomeMail(user, otp.code);
49
- mail.send();
50
- const response = Object.assign({}, user);
51
- // remove unnecessary properties
52
- delete response.password;
53
- res.status(201).json(response);
54
- }
55
- catch (err) {
56
- console.log(err);
57
- }
58
- });
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const bcryptjs_1 = __importDefault(require("bcryptjs"));
16
+ const User_1 = require("../Entities/User");
17
+ const OTP_1 = require("../Entities/OTP");
18
+ exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
19
+ try {
20
+ const { first_name, last_name, email, password } = req.body;
21
+ if (!(email && password && first_name && last_name)) {
22
+ res.status(400).send('All input is required');
23
+ }
24
+ const oldUser = yield User_1.User.findOne({ where: { email } });
25
+ if (oldUser) {
26
+ return res.status(409).send('User Already Exist. Please Login');
27
+ }
28
+ const encryptedPassword = yield bcryptjs_1.default.hash(password, 10);
29
+ yield User_1.User.insert({
30
+ first_name,
31
+ last_name,
32
+ email: email.toLowerCase(),
33
+ password: encryptedPassword,
34
+ });
35
+ const user = yield User_1.User.findOne({ where: { email } });
36
+ if (!user) {
37
+ return;
38
+ }
39
+ const otpEnt = new OTP_1.OTP();
40
+ otpEnt.scope = 'registration';
41
+ otpEnt.user_id = user.user_id;
42
+ const queryRes = yield OTP_1.OTP.save(otpEnt);
43
+ const otp = queryRes;
44
+ if (!otp || !otp.code) {
45
+ return res.sendStatus(500);
46
+ }
47
+ const ums = req.ums;
48
+ ums.send('register', { user, otp });
49
+ const response = Object.assign({}, user);
50
+ // remove unnecessary properties
51
+ delete response.password;
52
+ res.status(201).json(response);
53
+ }
54
+ catch (err) {
55
+ console.log(err);
56
+ }
57
+ });
@@ -1,3 +1,3 @@
1
- import { Request, Response } from 'express';
2
- declare const _default: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
3
- export default _default;
1
+ import { Request, Response } from 'express';
2
+ declare const _default: (req: Request, res: Response) => Promise<Response<any, Record<string, any>> | undefined>;
3
+ export default _default;
@@ -1,30 +1,30 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const OTP_1 = require("../Entities/OTP");
13
- const User_1 = require("../Entities/User");
14
- exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
15
- try {
16
- const { email, code } = req.query;
17
- const user = yield User_1.User.findOne({ email });
18
- if (!user)
19
- return res.sendStatus(403);
20
- const otp = yield OTP_1.OTP.findOne({ code, user_id: user.user_id, scope: 'registration' });
21
- if (!otp)
22
- return res.sendStatus(404);
23
- yield OTP_1.OTP.delete({ code: otp.code });
24
- yield User_1.User.update({ user_id: user.user_id }, { email_verified: true });
25
- res.sendStatus(200);
26
- }
27
- catch (err) {
28
- console.log(err);
29
- }
30
- });
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const OTP_1 = require("../Entities/OTP");
13
+ const User_1 = require("../Entities/User");
14
+ exports.default = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
15
+ try {
16
+ const { email, code } = req.query;
17
+ const user = yield User_1.User.findOne({ where: { email } });
18
+ if (!user)
19
+ return res.sendStatus(403);
20
+ const otp = yield OTP_1.OTP.findOne({ where: { code, user_id: user.user_id, scope: 'registration' } });
21
+ if (!otp)
22
+ return res.sendStatus(404);
23
+ yield OTP_1.OTP.delete({ code: otp.code });
24
+ yield User_1.User.update({ user_id: user.user_id }, { email_verified: true });
25
+ res.sendStatus(200);
26
+ }
27
+ catch (err) {
28
+ console.log(err);
29
+ }
30
+ });
package/lib/index.d.ts CHANGED
@@ -1,29 +1,31 @@
1
- /// <reference types="qs" />
2
- import 'dotenv/config';
3
- import express from 'express';
4
- import { ConnectionOptions } from 'typeorm';
5
- import { User } from './Entities/User';
6
- import { Session } from './Entities/Session';
7
- import { TempToken } from './Entities/TempToken';
8
- import { TempTokenService } from './services/TempToken';
9
- import SessionCleaner from './services/SessionCleaner';
10
- import { OTP } from './Entities/OTP';
11
- import OTPVacuum from './services/OTPVacuum';
12
- import SessionCache from './services/SessionCache';
13
- declare const _default: {
14
- router: (typeormConfig: ConnectionOptions) => import("express-serve-static-core").Router;
15
- authMiddleware: (req: express.Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, res: express.Response<any, Record<string, any>>, next: express.NextFunction) => Promise<void | express.Response<any, Record<string, any>>>;
16
- entities: {
17
- User: typeof User;
18
- Session: typeof Session;
19
- TempToken: typeof TempToken;
20
- OTP: typeof OTP;
21
- };
22
- services: {
23
- TempTokenService: typeof TempTokenService;
24
- SessionCleaner: typeof SessionCleaner;
25
- OTPVacuum: typeof OTPVacuum;
26
- sessionCache: SessionCache;
27
- };
28
- };
29
- export default _default;
1
+ /// <reference types="qs" />
2
+ import 'dotenv/config';
3
+ import express from 'express';
4
+ import { ConnectionOptions } from 'typeorm';
5
+ import { User } from './Entities/User';
6
+ import { Session } from './Entities/Session';
7
+ import { TempToken } from './Entities/TempToken';
8
+ import { TempTokenService } from './services/TempToken';
9
+ import SessionCleaner from './services/SessionCleaner';
10
+ import { OTP } from './Entities/OTP';
11
+ import OTPVacuum from './services/OTPVacuum';
12
+ import SessionCache from './services/SessionCache';
13
+ import UMS from './services/UMS';
14
+ declare const _default: {
15
+ router: (typeormConfig: ConnectionOptions) => import("express-serve-static-core").Router;
16
+ authMiddleware: (req: express.Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>, res: express.Response<any, Record<string, any>>, next: express.NextFunction) => Promise<void | express.Response<any, Record<string, any>>>;
17
+ entities: {
18
+ User: typeof User;
19
+ Session: typeof Session;
20
+ TempToken: typeof TempToken;
21
+ OTP: typeof OTP;
22
+ };
23
+ services: {
24
+ TempTokenService: typeof TempTokenService;
25
+ SessionCleaner: typeof SessionCleaner;
26
+ OTPVacuum: typeof OTPVacuum;
27
+ sessionCache: SessionCache;
28
+ ums: UMS;
29
+ };
30
+ };
31
+ export default _default;