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,81 +1,81 @@
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
- exports.deleteSession = exports.clearSessionCookie = exports.setSessionCookie = exports.compareSessionTokenVersion = exports.bumpSessionToken = exports.verifySessionToken = exports.createSessionToken = void 0;
13
- const jsonwebtoken_1 = require("jsonwebtoken");
14
- const Session_1 = require("../Entities/Session");
15
- const createSessionToken = (payload, version) => {
16
- return (0, jsonwebtoken_1.sign)({
17
- user_id: payload.user_id,
18
- version: version || 0,
19
- session_id: payload.session_id,
20
- }, process.env.SESSION_TOKEN_KEY, {
21
- expiresIn: '7d',
22
- });
23
- };
24
- exports.createSessionToken = createSessionToken;
25
- const verifySessionToken = (token) => {
26
- return (0, jsonwebtoken_1.verify)(token, process.env.SESSION_TOKEN_KEY);
27
- };
28
- exports.verifySessionToken = verifySessionToken;
29
- const bumpSessionToken = (jwtSession) => {
30
- return new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () {
31
- const session = yield Session_1.Session.findOne({
32
- session_id: jwtSession.session_id,
33
- });
34
- if (!session)
35
- return reject('Token not found');
36
- try {
37
- const newToken = (0, exports.createSessionToken)({ user_id: session.user_id, session_id: session.session_id }, session.version + 1);
38
- Session_1.Session.update({ session_id: session.session_id }, {
39
- version: session.version + 1,
40
- last_used: (Date.now() / 1000).toFixed(0).toString(),
41
- });
42
- resolve(newToken);
43
- }
44
- catch (err) {
45
- reject(err);
46
- }
47
- }));
48
- };
49
- exports.bumpSessionToken = bumpSessionToken;
50
- const compareSessionTokenVersion = (jwtSession) => __awaiter(void 0, void 0, void 0, function* () {
51
- const session = yield Session_1.Session.findOne({ session_id: jwtSession.session_id });
52
- if (!session)
53
- throw 'Session not found';
54
- if (session.version > jwtSession.version)
55
- throw 'Token expired';
56
- });
57
- exports.compareSessionTokenVersion = compareSessionTokenVersion;
58
- const setSessionCookie = (res, value) => __awaiter(void 0, void 0, void 0, function* () {
59
- const currentTime = Math.floor(new Date().getTime() / 1000);
60
- const weekExpiration = currentTime + 86400 * 7; // adds 7 days to timestamp
61
- res.cookie('pid', value, {
62
- sameSite: 'none',
63
- expires: new Date(weekExpiration * 1000),
64
- httpOnly: true,
65
- secure: process.env.NODE_ENV === 'production' ? true : false,
66
- });
67
- });
68
- exports.setSessionCookie = setSessionCookie;
69
- const clearSessionCookie = (res) => __awaiter(void 0, void 0, void 0, function* () {
70
- return res.clearCookie('pid');
71
- });
72
- exports.clearSessionCookie = clearSessionCookie;
73
- const deleteSession = (session_id) => __awaiter(void 0, void 0, void 0, function* () {
74
- const session = yield Session_1.Session.findOne({ session_id });
75
- if (!session) {
76
- throw 'Session not found';
77
- }
78
- session.remove();
79
- return session;
80
- });
81
- exports.deleteSession = deleteSession;
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
+ exports.deleteSession = exports.clearSessionCookie = exports.setSessionCookie = exports.compareSessionTokenVersion = exports.bumpSessionToken = exports.verifySessionToken = exports.createSessionToken = void 0;
13
+ const jsonwebtoken_1 = require("jsonwebtoken");
14
+ const Session_1 = require("../Entities/Session");
15
+ const createSessionToken = (payload, version) => {
16
+ return (0, jsonwebtoken_1.sign)({
17
+ user_id: payload.user_id,
18
+ version: version || 0,
19
+ session_id: payload.session_id,
20
+ }, process.env.SESSION_TOKEN_KEY, {
21
+ expiresIn: '7d',
22
+ });
23
+ };
24
+ exports.createSessionToken = createSessionToken;
25
+ const verifySessionToken = (token) => {
26
+ return (0, jsonwebtoken_1.verify)(token, process.env.SESSION_TOKEN_KEY);
27
+ };
28
+ exports.verifySessionToken = verifySessionToken;
29
+ const bumpSessionToken = (jwtSession) => {
30
+ return new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () {
31
+ const session = yield Session_1.Session.findOne({
32
+ where: { session_id: jwtSession.session_id },
33
+ });
34
+ if (!session)
35
+ return reject('Token not found');
36
+ try {
37
+ const newToken = (0, exports.createSessionToken)({ user_id: session.user_id, session_id: session.session_id }, session.version + 1);
38
+ Session_1.Session.update({ session_id: session.session_id }, {
39
+ version: session.version + 1,
40
+ last_used: (Date.now() / 1000).toFixed(0).toString(),
41
+ });
42
+ resolve(newToken);
43
+ }
44
+ catch (err) {
45
+ reject(err);
46
+ }
47
+ }));
48
+ };
49
+ exports.bumpSessionToken = bumpSessionToken;
50
+ const compareSessionTokenVersion = (jwtSession) => __awaiter(void 0, void 0, void 0, function* () {
51
+ const session = yield Session_1.Session.findOne({ where: { session_id: jwtSession.session_id } });
52
+ if (!session)
53
+ throw 'Session not found';
54
+ if (session.version > jwtSession.version)
55
+ throw 'Token expired';
56
+ });
57
+ exports.compareSessionTokenVersion = compareSessionTokenVersion;
58
+ const setSessionCookie = (res, value) => __awaiter(void 0, void 0, void 0, function* () {
59
+ const currentTime = Math.floor(new Date().getTime() / 1000);
60
+ const weekExpiration = currentTime + 86400 * 7; // adds 7 days to timestamp
61
+ res.cookie('pid', value, {
62
+ sameSite: 'none',
63
+ expires: new Date(weekExpiration * 1000),
64
+ httpOnly: true,
65
+ secure: process.env.NODE_ENV === 'production' ? true : false,
66
+ });
67
+ });
68
+ exports.setSessionCookie = setSessionCookie;
69
+ const clearSessionCookie = (res) => __awaiter(void 0, void 0, void 0, function* () {
70
+ return res.clearCookie('pid');
71
+ });
72
+ exports.clearSessionCookie = clearSessionCookie;
73
+ const deleteSession = (session_id) => __awaiter(void 0, void 0, void 0, function* () {
74
+ const session = yield Session_1.Session.findOne({ where: { session_id } });
75
+ if (!session) {
76
+ throw 'Session not found';
77
+ }
78
+ session.remove();
79
+ return session;
80
+ });
81
+ exports.deleteSession = deleteSession;
package/package.json CHANGED
@@ -1,46 +1,52 @@
1
- {
2
- "name": "protonfile-auth",
3
- "version": "1.6.4",
4
- "description": "protonfile-auth",
5
- "main": "lib/index.js",
6
- "types": "lib/index.d.ts",
7
- "scripts": {
8
- "build": "tsc",
9
- "test": "echo \"Error: no test specified\" && exit 1",
10
- "prepare": "npm run build"
11
- },
12
- "keywords": [],
13
- "author": "",
14
- "license": "ISC",
15
- "devDependencies": {
16
- "@types/bcryptjs": "^2.4.2",
17
- "@types/better-sqlite3": "^7.5.0",
18
- "@types/express": "^4.17.13",
19
- "@types/jsonwebtoken": "^8.5.5",
20
- "@types/nodemailer": "^6.4.4",
21
- "@types/pg": "^8.6.1",
22
- "@types/uuid": "^8.3.1",
23
- "better-sqlite3": "^7.6.2",
24
- "typescript": "^4.4.4"
25
- },
26
- "files": [
27
- "lib"
28
- ],
29
- "dependencies": {
30
- "@types/cookie-parser": "^1.4.2",
31
- "bcryptjs": "^2.4.3",
32
- "body-parser": "^1.19.0",
33
- "cookie-parser": "^1.4.5",
34
- "cors": "^2.8.5",
35
- "dotenv": "^10.0.0",
36
- "express": "^4.17.1",
37
- "handlebars": "^4.7.7",
38
- "jsonwebtoken": "^8.5.1",
39
- "nanoid": "^3.3.4",
40
- "node-cache": "^5.1.2",
41
- "nodemailer": "^6.7.0",
42
- "pg": "^8.7.1",
43
- "typeorm": "^0.2.38",
44
- "uuid": "^8.3.2"
45
- }
46
- }
1
+ {
2
+ "name": "protonfile-auth",
3
+ "version": "1.6.5",
4
+ "description": "protonfile-auth",
5
+ "main": "lib/index.js",
6
+ "types": "lib/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc --project tsconfig.build.json",
9
+ "test": "jest --runInBand",
10
+ "prepare": "npm run build"
11
+ },
12
+ "keywords": [],
13
+ "author": "",
14
+ "license": "ISC",
15
+ "devDependencies": {
16
+ "@types/bcryptjs": "^2.4.2",
17
+ "@types/better-sqlite3": "^7.5.0",
18
+ "@types/express": "^4.17.13",
19
+ "@types/jest": "^28.1.6",
20
+ "@types/jsonwebtoken": "^8.5.5",
21
+ "@types/nodemailer": "^6.4.4",
22
+ "@types/pg": "^8.6.1",
23
+ "@types/supertest": "^2.0.12",
24
+ "@types/uuid": "^8.3.1",
25
+ "better-sqlite3": "^8.7.0",
26
+ "jest": "^28.1.3",
27
+ "supertest": "^6.2.4",
28
+ "ts-jest": "^28.0.7",
29
+ "typed-emitter": "^2.1.0",
30
+ "typescript": "4.5"
31
+ },
32
+ "files": [
33
+ "lib"
34
+ ],
35
+ "dependencies": {
36
+ "@types/cookie-parser": "^1.4.2",
37
+ "bcryptjs": "^2.4.3",
38
+ "body-parser": "^1.19.0",
39
+ "cookie-parser": "^1.4.5",
40
+ "cors": "^2.8.5",
41
+ "dotenv": "^10.0.0",
42
+ "express": "^4.17.1",
43
+ "handlebars": "^4.7.7",
44
+ "jsonwebtoken": "^9.0.3",
45
+ "nanoid": "^3.3.4",
46
+ "node-cache": "^5.1.2",
47
+ "nodemailer": "^7.0.12",
48
+ "pg": "^8.7.1",
49
+ "typeorm": "^0.3.28",
50
+ "uuid": "^8.3.2"
51
+ }
52
+ }