@ackplus/nest-auth 1.1.15 → 1.1.17

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 (34) hide show
  1. package/README.md +82 -6
  2. package/package.json +1 -1
  3. package/src/lib/admin-console/static/index.html +4736 -432
  4. package/src/lib/auth/auth.module.d.ts.map +1 -1
  5. package/src/lib/auth/auth.module.js +2 -0
  6. package/src/lib/auth/controllers/auth.controller.d.ts +1 -0
  7. package/src/lib/auth/controllers/auth.controller.d.ts.map +1 -1
  8. package/src/lib/auth/controllers/auth.controller.js +19 -2
  9. package/src/lib/auth/dto/requests/verify-2fa.request.dto.d.ts +1 -0
  10. package/src/lib/auth/dto/requests/verify-2fa.request.dto.d.ts.map +1 -1
  11. package/src/lib/auth/dto/requests/verify-2fa.request.dto.js +8 -0
  12. package/src/lib/auth/entities/trusted-device.entity.d.ts +13 -0
  13. package/src/lib/auth/entities/trusted-device.entity.d.ts.map +1 -0
  14. package/src/lib/auth/entities/trusted-device.entity.js +51 -0
  15. package/src/lib/auth/index.d.ts +1 -0
  16. package/src/lib/auth/index.d.ts.map +1 -1
  17. package/src/lib/auth/index.js +1 -0
  18. package/src/lib/auth/services/auth.service.d.ts +1 -0
  19. package/src/lib/auth/services/auth.service.d.ts.map +1 -1
  20. package/src/lib/auth/services/auth.service.js +30 -1
  21. package/src/lib/auth/services/mfa.service.d.ts +5 -1
  22. package/src/lib/auth/services/mfa.service.d.ts.map +1 -1
  23. package/src/lib/auth/services/mfa.service.js +44 -1
  24. package/src/lib/auth.constants.d.ts +1 -0
  25. package/src/lib/auth.constants.d.ts.map +1 -1
  26. package/src/lib/auth.constants.js +2 -1
  27. package/src/lib/core/entities.d.ts +2 -1
  28. package/src/lib/core/entities.d.ts.map +1 -1
  29. package/src/lib/core/entities.js +2 -0
  30. package/src/lib/core/interfaces/mfa-options.interface.d.ts +3 -0
  31. package/src/lib/core/interfaces/mfa-options.interface.d.ts.map +1 -1
  32. package/src/lib/utils/cookie.helper.d.ts +78 -0
  33. package/src/lib/utils/cookie.helper.d.ts.map +1 -0
  34. package/src/lib/utils/cookie.helper.js +115 -0
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CookieHelper = void 0;
4
+ class CookieHelper {
5
+ /**
6
+ * Parse cookies from request headers
7
+ * @param req Express Request object
8
+ * @returns Object containing all cookies
9
+ */
10
+ static parseCookies(req) {
11
+ const cookieHeader = req.headers.cookie;
12
+ if (!cookieHeader) {
13
+ return {};
14
+ }
15
+ const cookies = {};
16
+ cookieHeader.split(';').forEach(cookie => {
17
+ const [name, ...rest] = cookie.split('=');
18
+ const value = rest.join('=').trim();
19
+ if (name) {
20
+ cookies[name.trim()] = decodeURIComponent(value);
21
+ }
22
+ });
23
+ return cookies;
24
+ }
25
+ /**
26
+ * Get a specific cookie value from request
27
+ * @param req Express Request object
28
+ * @param name Cookie name
29
+ * @returns Cookie value or undefined
30
+ */
31
+ static get(req, name) {
32
+ const cookies = this.parseCookies(req);
33
+ return cookies[name];
34
+ }
35
+ /**
36
+ * Set a cookie in response
37
+ * @param res Express Response object
38
+ * @param name Cookie name
39
+ * @param value Cookie value
40
+ * @param options Cookie options
41
+ */
42
+ static set(res, name, value, options) {
43
+ const defaultOptions = {
44
+ httpOnly: true,
45
+ secure: process.env.NODE_ENV === 'production',
46
+ sameSite: 'lax',
47
+ path: '/',
48
+ };
49
+ const finalOptions = { ...defaultOptions, ...options };
50
+ res.cookie(name, value, finalOptions);
51
+ }
52
+ /**
53
+ * Update a cookie (alias for set)
54
+ * @param res Express Response object
55
+ * @param name Cookie name
56
+ * @param value New cookie value
57
+ * @param options Cookie options
58
+ */
59
+ static update(res, name, value, options) {
60
+ this.set(res, name, value, options);
61
+ }
62
+ /**
63
+ * Delete a cookie by setting its expiration to the past
64
+ * @param res Express Response object
65
+ * @param name Cookie name
66
+ * @param options Additional options (path, domain)
67
+ */
68
+ static delete(res, name, options) {
69
+ const deleteOptions = {
70
+ ...options,
71
+ expires: new Date(0),
72
+ maxAge: 0,
73
+ };
74
+ res.clearCookie(name, deleteOptions);
75
+ }
76
+ /**
77
+ * Check if a cookie exists in request
78
+ * @param req Express Request object
79
+ * @param name Cookie name
80
+ * @returns True if cookie exists
81
+ */
82
+ static exists(req, name) {
83
+ return this.get(req, name) !== undefined;
84
+ }
85
+ /**
86
+ * Get all cookies from request
87
+ * @param req Express Request object
88
+ * @returns Object containing all cookies
89
+ */
90
+ static getAll(req) {
91
+ return this.parseCookies(req);
92
+ }
93
+ /**
94
+ * Set multiple cookies at once
95
+ * @param res Express Response object
96
+ * @param cookies Object with cookie names as keys and values/options as values
97
+ */
98
+ static setMultiple(res, cookies) {
99
+ Object.entries(cookies).forEach(([name, { value, options }]) => {
100
+ this.set(res, name, value, options);
101
+ });
102
+ }
103
+ /**
104
+ * Delete multiple cookies at once
105
+ * @param res Express Response object
106
+ * @param names Array of cookie names to delete
107
+ * @param options Common options for all cookies (path, domain)
108
+ */
109
+ static deleteMultiple(res, names, options) {
110
+ names.forEach(name => {
111
+ this.delete(res, name, options);
112
+ });
113
+ }
114
+ }
115
+ exports.CookieHelper = CookieHelper;