@ackplus/nest-auth 0.0.36 → 0.0.38

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 (178) hide show
  1. package/index.cjs.d.ts +1 -0
  2. package/index.cjs.js +105236 -0
  3. package/package.json +11 -5
  4. package/src/lib/core/entities.d.ts +1 -1
  5. package/README.md +0 -226
  6. package/src/index.js +0 -12
  7. package/src/index.js.map +0 -1
  8. package/src/lib/auth/auth.module.js +0 -52
  9. package/src/lib/auth/auth.module.js.map +0 -1
  10. package/src/lib/auth/controllers/auth.controller.js +0 -189
  11. package/src/lib/auth/controllers/auth.controller.js.map +0 -1
  12. package/src/lib/auth/controllers/mfa.controller.js +0 -130
  13. package/src/lib/auth/controllers/mfa.controller.js.map +0 -1
  14. package/src/lib/auth/dto/index.js +0 -1
  15. package/src/lib/auth/dto/index.js.map +0 -1
  16. package/src/lib/auth/dto/requests/forgot-password.request.dto.js +0 -30
  17. package/src/lib/auth/dto/requests/forgot-password.request.dto.js.map +0 -1
  18. package/src/lib/auth/dto/requests/login.request.dto.js +0 -34
  19. package/src/lib/auth/dto/requests/login.request.dto.js.map +0 -1
  20. package/src/lib/auth/dto/requests/refresh-token.request.dto.js +0 -15
  21. package/src/lib/auth/dto/requests/refresh-token.request.dto.js.map +0 -1
  22. package/src/lib/auth/dto/requests/reset-password.request.dto.js +0 -42
  23. package/src/lib/auth/dto/requests/reset-password.request.dto.js.map +0 -1
  24. package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js +0 -16
  25. package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js.map +0 -1
  26. package/src/lib/auth/dto/requests/signup.request.dto.js +0 -37
  27. package/src/lib/auth/dto/requests/signup.request.dto.js.map +0 -1
  28. package/src/lib/auth/dto/requests/social-login.request.dto.js +0 -16
  29. package/src/lib/auth/dto/requests/social-login.request.dto.js.map +0 -1
  30. package/src/lib/auth/dto/requests/verify-2fa.request.dto.js +0 -21
  31. package/src/lib/auth/dto/requests/verify-2fa.request.dto.js.map +0 -1
  32. package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js +0 -20
  33. package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js.map +0 -1
  34. package/src/lib/auth/dto/responses/auth.response.dto.js +0 -50
  35. package/src/lib/auth/dto/responses/auth.response.dto.js.map +0 -1
  36. package/src/lib/auth/entities/mfa-secret.entity.js +0 -50
  37. package/src/lib/auth/entities/mfa-secret.entity.js.map +0 -1
  38. package/src/lib/auth/entities/otp.entity.js +0 -50
  39. package/src/lib/auth/entities/otp.entity.js.map +0 -1
  40. package/src/lib/auth/events/logged-out-all.event.js +0 -10
  41. package/src/lib/auth/events/logged-out-all.event.js.map +0 -1
  42. package/src/lib/auth/events/logged-out.event.js +0 -10
  43. package/src/lib/auth/events/logged-out.event.js.map +0 -1
  44. package/src/lib/auth/events/password-reset-requested.event.js +0 -10
  45. package/src/lib/auth/events/password-reset-requested.event.js.map +0 -1
  46. package/src/lib/auth/events/password-reset.event.js +0 -10
  47. package/src/lib/auth/events/password-reset.event.js.map +0 -1
  48. package/src/lib/auth/events/user-2fa-verified.event.js +0 -10
  49. package/src/lib/auth/events/user-2fa-verified.event.js.map +0 -1
  50. package/src/lib/auth/events/user-logged-in.event.js +0 -10
  51. package/src/lib/auth/events/user-logged-in.event.js.map +0 -1
  52. package/src/lib/auth/events/user-refresh-token.event.js +0 -10
  53. package/src/lib/auth/events/user-refresh-token.event.js.map +0 -1
  54. package/src/lib/auth/index.js +0 -20
  55. package/src/lib/auth/index.js.map +0 -1
  56. package/src/lib/auth/services/auth.service.js +0 -396
  57. package/src/lib/auth/services/auth.service.js.map +0 -1
  58. package/src/lib/auth/services/cookie.service.js +0 -43
  59. package/src/lib/auth/services/cookie.service.js.map +0 -1
  60. package/src/lib/auth/services/mfa.service.js +0 -255
  61. package/src/lib/auth/services/mfa.service.js.map +0 -1
  62. package/src/lib/auth.constants.js +0 -43
  63. package/src/lib/auth.constants.js.map +0 -1
  64. package/src/lib/core/core.module.js +0 -67
  65. package/src/lib/core/core.module.js.map +0 -1
  66. package/src/lib/core/decorators/role.decorator.js +0 -14
  67. package/src/lib/core/decorators/role.decorator.js.map +0 -1
  68. package/src/lib/core/decorators/skip-mfa.decorator.js +0 -8
  69. package/src/lib/core/decorators/skip-mfa.decorator.js.map +0 -1
  70. package/src/lib/core/dto/message.response.dto.js +0 -13
  71. package/src/lib/core/dto/message.response.dto.js.map +0 -1
  72. package/src/lib/core/entities.js +0 -34
  73. package/src/lib/core/entities.js.map +0 -1
  74. package/src/lib/core/guards/auth.guard.js +0 -135
  75. package/src/lib/core/guards/auth.guard.js.map +0 -1
  76. package/src/lib/core/guards/role.guard.js +0 -40
  77. package/src/lib/core/guards/role.guard.js.map +0 -1
  78. package/src/lib/core/index.js +0 -27
  79. package/src/lib/core/index.js.map +0 -1
  80. package/src/lib/core/interfaces/auth-module-options.interface.js +0 -3
  81. package/src/lib/core/interfaces/auth-module-options.interface.js.map +0 -1
  82. package/src/lib/core/interfaces/mfa-options.interface.js +0 -10
  83. package/src/lib/core/interfaces/mfa-options.interface.js.map +0 -1
  84. package/src/lib/core/interfaces/otp.interface.js +0 -10
  85. package/src/lib/core/interfaces/otp.interface.js.map +0 -1
  86. package/src/lib/core/interfaces/session-options.interface.js +0 -9
  87. package/src/lib/core/interfaces/session-options.interface.js.map +0 -1
  88. package/src/lib/core/interfaces/token-payload.interface.js +0 -3
  89. package/src/lib/core/interfaces/token-payload.interface.js.map +0 -1
  90. package/src/lib/core/providers/apple-auth.provider.js +0 -58
  91. package/src/lib/core/providers/apple-auth.provider.js.map +0 -1
  92. package/src/lib/core/providers/base-auth.provider.js +0 -41
  93. package/src/lib/core/providers/base-auth.provider.js.map +0 -1
  94. package/src/lib/core/providers/email-auth.provider.js +0 -42
  95. package/src/lib/core/providers/email-auth.provider.js.map +0 -1
  96. package/src/lib/core/providers/facebook-auth.provider.js +0 -58
  97. package/src/lib/core/providers/facebook-auth.provider.js.map +0 -1
  98. package/src/lib/core/providers/google-auth.provider.js +0 -60
  99. package/src/lib/core/providers/google-auth.provider.js.map +0 -1
  100. package/src/lib/core/providers/jwt-auth.provider.js +0 -51
  101. package/src/lib/core/providers/jwt-auth.provider.js.map +0 -1
  102. package/src/lib/core/providers/phone-auth.provider.js +0 -45
  103. package/src/lib/core/providers/phone-auth.provider.js.map +0 -1
  104. package/src/lib/core/services/auth-provider-registry.service.js +0 -72
  105. package/src/lib/core/services/auth-provider-registry.service.js.map +0 -1
  106. package/src/lib/core/services/jwt.service.js +0 -93
  107. package/src/lib/core/services/jwt.service.js.map +0 -1
  108. package/src/lib/nest-auth.module.js +0 -118
  109. package/src/lib/nest-auth.module.js.map +0 -1
  110. package/src/lib/request-context/request-context.js +0 -108
  111. package/src/lib/request-context/request-context.js.map +0 -1
  112. package/src/lib/request-context/request-context.middleware.js +0 -16
  113. package/src/lib/request-context/request-context.middleware.js.map +0 -1
  114. package/src/lib/role/entities/permission.entity.js +0 -42
  115. package/src/lib/role/entities/permission.entity.js.map +0 -1
  116. package/src/lib/role/entities/role.entity.js +0 -106
  117. package/src/lib/role/entities/role.entity.js.map +0 -1
  118. package/src/lib/role/index.js +0 -6
  119. package/src/lib/role/index.js.map +0 -1
  120. package/src/lib/role/role.module.js +0 -22
  121. package/src/lib/role/role.module.js.map +0 -1
  122. package/src/lib/role/services/role.service.js +0 -220
  123. package/src/lib/role/services/role.service.js.map +0 -1
  124. package/src/lib/session/entities/session.entity.js +0 -63
  125. package/src/lib/session/entities/session.entity.js.map +0 -1
  126. package/src/lib/session/index.js +0 -8
  127. package/src/lib/session/index.js.map +0 -1
  128. package/src/lib/session/services/base-session.service.js +0 -66
  129. package/src/lib/session/services/base-session.service.js.map +0 -1
  130. package/src/lib/session/services/database-session.service.js +0 -55
  131. package/src/lib/session/services/database-session.service.js.map +0 -1
  132. package/src/lib/session/services/redis-session.service.js +0 -120
  133. package/src/lib/session/services/redis-session.service.js.map +0 -1
  134. package/src/lib/session/session.module.js +0 -33
  135. package/src/lib/session/session.module.js.map +0 -1
  136. package/src/lib/tenant/entities/tenant.entity.js +0 -44
  137. package/src/lib/tenant/entities/tenant.entity.js.map +0 -1
  138. package/src/lib/tenant/events/tenant-created.event.js +0 -10
  139. package/src/lib/tenant/events/tenant-created.event.js.map +0 -1
  140. package/src/lib/tenant/events/tenant-deleted.event.js +0 -10
  141. package/src/lib/tenant/events/tenant-deleted.event.js.map +0 -1
  142. package/src/lib/tenant/events/tenant-updated.event.js +0 -10
  143. package/src/lib/tenant/events/tenant-updated.event.js.map +0 -1
  144. package/src/lib/tenant/index.js +0 -7
  145. package/src/lib/tenant/index.js.map +0 -1
  146. package/src/lib/tenant/services/tenant.service.js +0 -136
  147. package/src/lib/tenant/services/tenant.service.js.map +0 -1
  148. package/src/lib/tenant/tenant.module.js +0 -27
  149. package/src/lib/tenant/tenant.module.js.map +0 -1
  150. package/src/lib/user/dto/requests/update-user.dto.js +0 -24
  151. package/src/lib/user/dto/requests/update-user.dto.js.map +0 -1
  152. package/src/lib/user/entities/access-key.entity.js +0 -63
  153. package/src/lib/user/entities/access-key.entity.js.map +0 -1
  154. package/src/lib/user/entities/auth-identity.entity.js +0 -47
  155. package/src/lib/user/entities/auth-identity.entity.js.map +0 -1
  156. package/src/lib/user/entities/user.entity.js +0 -189
  157. package/src/lib/user/entities/user.entity.js.map +0 -1
  158. package/src/lib/user/events/user-created.event.js +0 -10
  159. package/src/lib/user/events/user-created.event.js.map +0 -1
  160. package/src/lib/user/events/user-deleted.event.js +0 -10
  161. package/src/lib/user/events/user-deleted.event.js.map +0 -1
  162. package/src/lib/user/events/user-registered.event.js +0 -10
  163. package/src/lib/user/events/user-registered.event.js.map +0 -1
  164. package/src/lib/user/events/user-updated.event.js +0 -10
  165. package/src/lib/user/events/user-updated.event.js.map +0 -1
  166. package/src/lib/user/index.js +0 -8
  167. package/src/lib/user/index.js.map +0 -1
  168. package/src/lib/user/services/access-key.service.js +0 -119
  169. package/src/lib/user/services/access-key.service.js.map +0 -1
  170. package/src/lib/user/services/user.service.js +0 -217
  171. package/src/lib/user/services/user.service.js.map +0 -1
  172. package/src/lib/user/user.module.js +0 -32
  173. package/src/lib/user/user.module.js.map +0 -1
  174. package/src/lib/utils/database.utils.js +0 -8
  175. package/src/lib/utils/database.utils.js.map +0 -1
  176. package/src/lib/utils/otp.js +0 -7
  177. package/src/lib/utils/otp.js.map +0 -1
  178. package/tsconfig.tsbuildinfo +0 -1
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JwtService = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const jsonwebtoken_1 = tslib_1.__importDefault(require("jsonwebtoken"));
7
- const auth_constants_1 = require("../../auth.constants");
8
- const ms_1 = tslib_1.__importDefault(require("ms"));
9
- let JwtService = class JwtService {
10
- constructor(options) {
11
- this.options = options;
12
- }
13
- async generateAccessToken(payload) {
14
- return new Promise((resolve, reject) => {
15
- jsonwebtoken_1.default.sign({
16
- ...payload,
17
- type: 'access',
18
- exp: Math.floor(Date.now() / 1000) + (0, ms_1.default)(this.options.session.sessionExpiry),
19
- iat: Math.floor(Date.now() / 1000),
20
- }, this.options.jwt.secret, (err, token) => {
21
- if (err)
22
- reject(err);
23
- else
24
- resolve(token);
25
- });
26
- });
27
- }
28
- async generateRefreshToken(payload) {
29
- return new Promise((resolve, reject) => {
30
- jsonwebtoken_1.default.sign({
31
- ...payload,
32
- type: 'refresh',
33
- exp: Math.floor(Date.now() / 1000) + (0, ms_1.default)(this.options.session.refreshTokenExpiry),
34
- iat: Math.floor(Date.now() / 1000),
35
- }, this.options.jwt.secret, (err, token) => {
36
- if (err)
37
- reject(err);
38
- else
39
- resolve(token);
40
- });
41
- });
42
- }
43
- async verifyToken(token) {
44
- return new Promise((resolve, reject) => {
45
- jsonwebtoken_1.default.verify(token, this.options.jwt.secret, (err, decoded) => {
46
- if (err)
47
- reject(err);
48
- else
49
- resolve(decoded);
50
- });
51
- });
52
- }
53
- async generateTokens(payload) {
54
- const [accessToken, refreshToken] = await Promise.all([
55
- this.generateAccessToken(payload),
56
- this.generateRefreshToken(payload),
57
- ]);
58
- return {
59
- accessToken,
60
- refreshToken,
61
- };
62
- }
63
- updateToken(token, payload) {
64
- return new Promise((resolve, reject) => {
65
- const decoded = this.decodeToken(token);
66
- if (!decoded)
67
- reject(new Error('Invalid token'));
68
- else {
69
- jsonwebtoken_1.default.sign({ ...decoded, ...payload }, this.options.jwt.secret, { expiresIn: this.options.session.sessionExpiry }, (err, token) => {
70
- if (err)
71
- reject(err);
72
- else
73
- resolve(token);
74
- });
75
- }
76
- });
77
- }
78
- decodeToken(token) {
79
- try {
80
- return jsonwebtoken_1.default.decode(token);
81
- }
82
- catch (error) {
83
- return null;
84
- }
85
- }
86
- };
87
- exports.JwtService = JwtService;
88
- exports.JwtService = JwtService = tslib_1.__decorate([
89
- (0, common_1.Injectable)(),
90
- tslib_1.__param(0, (0, common_1.Inject)(auth_constants_1.AUTH_MODULE_OPTIONS)),
91
- tslib_1.__metadata("design:paramtypes", [Object])
92
- ], JwtService);
93
- //# sourceMappingURL=jwt.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/core/services/jwt.service.ts"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
1
- "use strict";
2
- var NestAuthModule_1;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.NestAuthModule = void 0;
5
- const tslib_1 = require("tslib");
6
- const common_1 = require("@nestjs/common");
7
- const typeorm_1 = require("@nestjs/typeorm");
8
- const core_1 = require("./core");
9
- const event_emitter_1 = require("@nestjs/event-emitter");
10
- const request_context_middleware_1 = require("./request-context/request-context.middleware");
11
- const auth_module_1 = require("./auth/auth.module");
12
- const user_module_1 = require("./user/user.module");
13
- const role_module_1 = require("./role/role.module");
14
- const session_module_1 = require("./session/session.module");
15
- const tenant_module_1 = require("./tenant/tenant.module");
16
- const mfa_options_interface_1 = require("./core/interfaces/mfa-options.interface");
17
- const core_module_1 = require("./core/core.module");
18
- const deepmerge_1 = tslib_1.__importDefault(require("deepmerge"));
19
- let NestAuthModule = NestAuthModule_1 = class NestAuthModule {
20
- static forRoot(options) {
21
- const mergedOptions = this.getOptions(options);
22
- return {
23
- module: NestAuthModule_1,
24
- imports: [
25
- core_module_1.CoreModule.forRoot(mergedOptions),
26
- auth_module_1.AuthModule,
27
- tenant_module_1.TenantModule,
28
- user_module_1.UserModule,
29
- role_module_1.RoleModule,
30
- session_module_1.SessionModule,
31
- ],
32
- exports: [
33
- core_module_1.CoreModule,
34
- auth_module_1.AuthModule,
35
- tenant_module_1.TenantModule,
36
- user_module_1.UserModule,
37
- role_module_1.RoleModule,
38
- session_module_1.SessionModule,
39
- ],
40
- };
41
- }
42
- static forRootAsync(options) {
43
- return {
44
- module: NestAuthModule_1,
45
- imports: [
46
- core_module_1.CoreModule.forRoot(options.useFactory()),
47
- auth_module_1.AuthModule,
48
- user_module_1.UserModule,
49
- role_module_1.RoleModule,
50
- session_module_1.SessionModule,
51
- ...options.imports || [],
52
- ],
53
- exports: [
54
- core_module_1.CoreModule,
55
- auth_module_1.AuthModule,
56
- user_module_1.UserModule,
57
- role_module_1.RoleModule,
58
- session_module_1.SessionModule,
59
- ],
60
- };
61
- }
62
- static getOptions(options) {
63
- return (0, deepmerge_1.default)(this.moduleDefaultOptions, options);
64
- }
65
- configure(consumer) {
66
- consumer.apply(request_context_middleware_1.RequestContextMiddleware).forRoutes('auth/*');
67
- }
68
- };
69
- exports.NestAuthModule = NestAuthModule;
70
- NestAuthModule.moduleDefaultOptions = {
71
- passwordResetOtpExpiresIn: '15m',
72
- session: {
73
- storageType: core_1.SessionStorageType.DATABASE,
74
- sessionExpiry: '1h',
75
- refreshTokenExpiry: '30d',
76
- },
77
- jwt: {
78
- secret: 'secret',
79
- },
80
- accessTokenType: 'header',
81
- cookieOptions: {
82
- httpOnly: true,
83
- secure: false,
84
- },
85
- emailAuth: {
86
- enabled: true,
87
- },
88
- mfa: {
89
- enabled: false,
90
- methods: [mfa_options_interface_1.MFAMethodEnum.EMAIL, mfa_options_interface_1.MFAMethodEnum.TOTP],
91
- allowUserToggle: true,
92
- allowMethodSelection: true,
93
- otpLength: 6,
94
- otpExpiresIn: '15m',
95
- },
96
- };
97
- exports.NestAuthModule = NestAuthModule = NestAuthModule_1 = tslib_1.__decorate([
98
- (0, common_1.Module)({
99
- imports: [
100
- typeorm_1.TypeOrmModule.forFeature(core_1.NestAuthEntities),
101
- event_emitter_1.EventEmitterModule,
102
- core_module_1.CoreModule,
103
- auth_module_1.AuthModule,
104
- tenant_module_1.TenantModule,
105
- user_module_1.UserModule,
106
- role_module_1.RoleModule,
107
- session_module_1.SessionModule,
108
- ],
109
- exports: [
110
- auth_module_1.AuthModule,
111
- tenant_module_1.TenantModule,
112
- user_module_1.UserModule,
113
- role_module_1.RoleModule,
114
- session_module_1.SessionModule,
115
- ],
116
- })
117
- ], NestAuthModule);
118
- //# sourceMappingURL=nest-auth.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nest-auth.module.js","sourceRoot":"","sources":["../../../../../packages/nest-auth/src/lib/nest-auth.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAA2E;AAC3E,6CAAgD;AAChD,iCAA8D;AAE9D,yDAA2D;AAC3D,6FAAwF;AACxF,oDAAgD;AAChD,oDAAgD;AAChD,oDAAgD;AAChD,6DAAyD;AACzD,0DAAsD;AACtD,mFAAwE;AACxE,oDAAgD;AAChD,kEAAkC;AAqB3B,IAAM,cAAc,sBAApB,MAAM,cAAc;IA6BzB,MAAM,CAAC,OAAO,CAAC,OAA0B;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/C,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,OAAO,EAAE;gBACP,wBAAU,CAAC,OAAO,CAAC,aAAa,CAAC;gBACjC,wBAAU;gBACV,4BAAY;gBACZ,wBAAU;gBACV,wBAAU;gBACV,8BAAa;aACd;YACD,OAAO,EAAE;gBACP,wBAAU;gBACV,wBAAU;gBACV,4BAAY;gBACZ,wBAAU;gBACV,wBAAU;gBACV,8BAAa;aACd;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAA+B;QACjD,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,OAAO,EAAE;gBACP,wBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAuB,CAAC;gBAC7D,wBAAU;gBACV,wBAAU;gBACV,wBAAU;gBACV,8BAAa;gBACb,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE;aACzB;YACD,OAAO,EAAE;gBACP,wBAAU;gBACV,wBAAU;gBACV,wBAAU;gBACV,wBAAU;gBACV,8BAAa;aACd;SACF,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,OAA0B;QAClD,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,QAAQ,CAAC,KAAK,CAAC,qDAAwB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;;AAhFU,wCAAc;AAClB,mCAAoB,GAA+B;IACxD,yBAAyB,EAAE,KAAK;IAChC,OAAO,EAAE;QACP,WAAW,EAAE,yBAAkB,CAAC,QAAQ;QACxC,aAAa,EAAE,IAAI;QACnB,kBAAkB,EAAE,KAAK;KAC1B;IACD,GAAG,EAAE;QACH,MAAM,EAAE,QAAQ;KACjB;IACD,eAAe,EAAE,QAAQ;IACzB,aAAa,EAAE;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,KAAK;KACd;IACD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACH,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,CAAC,qCAAa,CAAC,KAAK,EAAE,qCAAa,CAAC,IAAI,CAAC;QAClD,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,IAAI;QAC1B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,KAAK;KACpB;CACF,AA1B0B,CA0BzB;yBA3BS,cAAc;IAnB1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,uBAAgB,CAAC;YAC1C,kCAAkB;YAClB,wBAAU;YACV,wBAAU;YACV,4BAAY;YACZ,wBAAU;YACV,wBAAU;YACV,8BAAa;SACd;QACD,OAAO,EAAE;YACP,wBAAU;YACV,4BAAY;YACZ,wBAAU;YACV,wBAAU;YACV,8BAAa;SACd;KACF,CAAC;GACW,cAAc,CAiF1B"}
@@ -1,108 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RequestContext = void 0;
4
- const async_hooks_1 = require("async_hooks");
5
- class RequestContext {
6
- constructor(request, response) {
7
- this.id = Math.random();
8
- this.request = request;
9
- this.response = response;
10
- }
11
- static create(request, response, next) {
12
- const context = new RequestContext(request, response);
13
- RequestContext.storage.run(context, () => next());
14
- }
15
- static current() {
16
- return RequestContext.storage.getStore();
17
- }
18
- static currentRequest() {
19
- const requestContext = RequestContext.current();
20
- return requestContext ? requestContext.request : null;
21
- }
22
- static currentUser() {
23
- const request = RequestContext.currentRequest();
24
- if (!request['user']) {
25
- return null;
26
- }
27
- return {
28
- id: request['user'].sub,
29
- ...request['user']
30
- };
31
- }
32
- static currentSession() {
33
- const request = RequestContext.currentRequest();
34
- return request ? request['session'] : null;
35
- }
36
- static getDeviceInfo() {
37
- return {
38
- deviceName: this.getDeviceName(),
39
- ipAddress: this.getIpAddress(),
40
- browser: this.getBrowser(),
41
- };
42
- }
43
- static getDeviceName() {
44
- const request = this.currentRequest();
45
- if (!request) {
46
- return 'Unknown Device';
47
- }
48
- const userAgent = request.headers['user-agent'] || 'unknown';
49
- if (userAgent.includes('Windows')) {
50
- return 'Windows';
51
- }
52
- else if (userAgent.includes('Macintosh')) {
53
- return 'Mac';
54
- }
55
- else if (userAgent.includes('Linux')) {
56
- return 'Linux';
57
- }
58
- else if (userAgent.includes('Android')) {
59
- return 'Android';
60
- }
61
- else if (userAgent.includes('iPhone') || userAgent.includes('iPad')) {
62
- return 'iOS';
63
- }
64
- return 'Unknown Device';
65
- }
66
- static getBrowser() {
67
- const request = this.currentRequest();
68
- if (!request) {
69
- return 'unknown';
70
- }
71
- const userAgent = request.headers['user-agent'] || 'unknown';
72
- if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {
73
- return 'Chrome';
74
- }
75
- if (userAgent.includes('Firefox')) {
76
- return 'Firefox';
77
- }
78
- if (userAgent.includes('Safari') && !userAgent.includes('Chrome')) {
79
- return 'Safari';
80
- }
81
- if (userAgent.includes('Edg')) {
82
- return 'Edge';
83
- }
84
- if (userAgent.includes('Opera') || userAgent.includes('OPR')) {
85
- return 'Opera';
86
- }
87
- if (userAgent.includes('MSIE') || userAgent.includes('Trident/')) {
88
- return 'Internet Explorer';
89
- }
90
- if (userAgent.includes('Brave')) {
91
- return 'Brave';
92
- }
93
- return 'Unknown Browser';
94
- }
95
- static getIpAddress() {
96
- const request = this.currentRequest();
97
- if (request) {
98
- return request.ip ||
99
- request.headers['x-forwarded-for']?.toString() ||
100
- request.connection.remoteAddress ||
101
- 'unknown';
102
- }
103
- return 'unknown';
104
- }
105
- }
106
- exports.RequestContext = RequestContext;
107
- RequestContext.storage = new async_hooks_1.AsyncLocalStorage();
108
- //# sourceMappingURL=request-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/request-context/request-context.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RequestContextMiddleware = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const request_context_1 = require("./request-context");
7
- let RequestContextMiddleware = class RequestContextMiddleware {
8
- use(req, res, next) {
9
- request_context_1.RequestContext.create(req, res, next);
10
- }
11
- };
12
- exports.RequestContextMiddleware = RequestContextMiddleware;
13
- exports.RequestContextMiddleware = RequestContextMiddleware = tslib_1.__decorate([
14
- (0, common_1.Injectable)()
15
- ], RequestContextMiddleware);
16
- //# sourceMappingURL=request-context.middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-context.middleware.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/request-context/request-context.middleware.ts"],"names":[],"mappings":";;;;AAAA,2CAA4D;AAE5D,uDAAmD;AAI5C,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAEjC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QACd,gCAAc,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CAEJ,CAAA;AANY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;GACA,wBAAwB,CAMpC"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Permission = void 0;
4
- const tslib_1 = require("tslib");
5
- const typeorm_1 = require("typeorm");
6
- const role_entity_1 = require("./role.entity");
7
- const auth_constants_1 = require("../../auth.constants");
8
- let Permission = class Permission extends typeorm_1.BaseEntity {
9
- };
10
- exports.Permission = Permission;
11
- tslib_1.__decorate([
12
- (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
13
- tslib_1.__metadata("design:type", String)
14
- ], Permission.prototype, "id", void 0);
15
- tslib_1.__decorate([
16
- (0, typeorm_1.Column)(),
17
- tslib_1.__metadata("design:type", String)
18
- ], Permission.prototype, "name", void 0);
19
- tslib_1.__decorate([
20
- (0, typeorm_1.Column)({ nullable: true }),
21
- tslib_1.__metadata("design:type", String)
22
- ], Permission.prototype, "description", void 0);
23
- tslib_1.__decorate([
24
- (0, typeorm_1.Column)({ nullable: true, default: auth_constants_1.DEFAULT_GUARD_NAME }),
25
- tslib_1.__metadata("design:type", String)
26
- ], Permission.prototype, "guard", void 0);
27
- tslib_1.__decorate([
28
- (0, typeorm_1.CreateDateColumn)(),
29
- tslib_1.__metadata("design:type", Date)
30
- ], Permission.prototype, "createdAt", void 0);
31
- tslib_1.__decorate([
32
- (0, typeorm_1.UpdateDateColumn)(),
33
- tslib_1.__metadata("design:type", Date)
34
- ], Permission.prototype, "updatedAt", void 0);
35
- tslib_1.__decorate([
36
- (0, typeorm_1.ManyToMany)(() => role_entity_1.Role, role => role.permissions),
37
- tslib_1.__metadata("design:type", Array)
38
- ], Permission.prototype, "roles", void 0);
39
- exports.Permission = Permission = tslib_1.__decorate([
40
- (0, typeorm_1.Entity)('nest_auth_permissions')
41
- ], Permission);
42
- //# sourceMappingURL=permission.entity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/role/entities/permission.entity.ts"],"names":[],"mappings":";;;;AAAA,qCAA6H;AAC7H,+CAAqC;AACrC,yDAA0D;AAGnD,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,oBAAU;CAqBzC,CAAA;AArBY,gCAAU;AAEnB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;sCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;wCACI;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACP;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAkB,EAAE,CAAC;;yCAC1C;AAGd;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;6CAAC;AAGhB;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;6CAAC;AAGhB;IADC,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;;yCACnC;qBApBL,UAAU;IADtB,IAAA,gBAAM,EAAC,uBAAuB,CAAC;GACnB,UAAU,CAqBtB"}
@@ -1,106 +0,0 @@
1
- "use strict";
2
- var Role_1;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Role = void 0;
5
- const tslib_1 = require("tslib");
6
- const typeorm_1 = require("typeorm");
7
- const lodash_1 = require("lodash");
8
- const auth_constants_1 = require("../../auth.constants");
9
- const tenant_entity_1 = require("../../tenant/entities/tenant.entity");
10
- const common_1 = require("@nestjs/common");
11
- const user_entity_1 = require("../../user/entities/user.entity");
12
- const permission_entity_1 = require("./permission.entity");
13
- let Role = Role_1 = class Role extends typeorm_1.BaseEntity {
14
- static async createRole(name, guard = auth_constants_1.DEFAULT_GUARD_NAME, isSystem = false, tenantId) {
15
- const existingSystemRole = await Role_1.findOne({
16
- where: { name, isSystem: true }
17
- });
18
- if (existingSystemRole) {
19
- throw new common_1.ConflictException(`Cannot create role with name '${name}' as it conflicts with a system role`);
20
- }
21
- const role = new Role_1();
22
- role.name = name;
23
- role.guard = guard;
24
- role.isSystem = isSystem;
25
- role.tenantId = isSystem ? null : tenantId;
26
- await role.save();
27
- return role;
28
- }
29
- async syncPermissions(permissionIds) {
30
- const newPermissions = Array.isArray(permissionIds) ? permissionIds : [permissionIds];
31
- this.permissions = newPermissions.map(permissionId => permission_entity_1.Permission.create({
32
- id: permissionId,
33
- }));
34
- }
35
- async removePermissions(permissionIds) {
36
- const removingPermissions = Array.isArray(permissionIds) ? permissionIds : [permissionIds];
37
- this.permissions = this.permissions.filter(permission => !removingPermissions.includes(permission.id));
38
- }
39
- async attachPermissions(permissionsIds) {
40
- const existingPermissions = await this.permissions.map(permission => permission_entity_1.Permission.create({
41
- id: permission.id,
42
- }));
43
- const newPermissions = Array.isArray(permissionsIds) ? permissionsIds : [permissionsIds];
44
- const newPermissionsEntities = newPermissions.map(permissionId => permission_entity_1.Permission.create({
45
- id: permissionId,
46
- }));
47
- this.permissions = (0, lodash_1.uniqBy)([...existingPermissions, ...newPermissionsEntities], 'id');
48
- }
49
- };
50
- exports.Role = Role;
51
- tslib_1.__decorate([
52
- (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
53
- tslib_1.__metadata("design:type", String)
54
- ], Role.prototype, "id", void 0);
55
- tslib_1.__decorate([
56
- (0, typeorm_1.Column)(),
57
- tslib_1.__metadata("design:type", String)
58
- ], Role.prototype, "name", void 0);
59
- tslib_1.__decorate([
60
- (0, typeorm_1.Column)({ nullable: true, default: auth_constants_1.DEFAULT_GUARD_NAME }),
61
- tslib_1.__metadata("design:type", String)
62
- ], Role.prototype, "guard", void 0);
63
- tslib_1.__decorate([
64
- (0, typeorm_1.Column)({ nullable: true }),
65
- (0, typeorm_1.RelationId)((role) => role.tenant),
66
- tslib_1.__metadata("design:type", String)
67
- ], Role.prototype, "tenantId", void 0);
68
- tslib_1.__decorate([
69
- (0, typeorm_1.ManyToOne)(() => tenant_entity_1.Tenant),
70
- tslib_1.__metadata("design:type", tenant_entity_1.Tenant)
71
- ], Role.prototype, "tenant", void 0);
72
- tslib_1.__decorate([
73
- (0, typeorm_1.Column)({ default: false }),
74
- tslib_1.__metadata("design:type", Boolean)
75
- ], Role.prototype, "isSystem", void 0);
76
- tslib_1.__decorate([
77
- (0, typeorm_1.Column)({ default: true }),
78
- tslib_1.__metadata("design:type", Boolean)
79
- ], Role.prototype, "isActive", void 0);
80
- tslib_1.__decorate([
81
- (0, typeorm_1.CreateDateColumn)(),
82
- tslib_1.__metadata("design:type", Date)
83
- ], Role.prototype, "createdAt", void 0);
84
- tslib_1.__decorate([
85
- (0, typeorm_1.UpdateDateColumn)(),
86
- tslib_1.__metadata("design:type", Date)
87
- ], Role.prototype, "updatedAt", void 0);
88
- tslib_1.__decorate([
89
- (0, typeorm_1.ManyToMany)(() => permission_entity_1.Permission, permission => permission.roles),
90
- (0, typeorm_1.JoinTable)({
91
- name: 'nest_auth_role_nest_auth_permissions'
92
- }),
93
- tslib_1.__metadata("design:type", Array)
94
- ], Role.prototype, "permissions", void 0);
95
- tslib_1.__decorate([
96
- (0, typeorm_1.ManyToMany)(() => user_entity_1.User, user => user.roles),
97
- (0, typeorm_1.JoinTable)({
98
- name: 'nest_auth_role_nest_auth_users'
99
- }),
100
- tslib_1.__metadata("design:type", Array)
101
- ], Role.prototype, "users", void 0);
102
- exports.Role = Role = Role_1 = tslib_1.__decorate([
103
- (0, typeorm_1.Entity)('nest_auth_roles'),
104
- (0, typeorm_1.Unique)(['name', 'guard', 'tenantId'])
105
- ], Role);
106
- //# sourceMappingURL=role.entity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"role.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/role/entities/role.entity.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./services/role.service"), exports);
5
- tslib_1.__exportStar(require("./role.module"), exports);
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/role/index.ts"],"names":[],"mappings":";;;AAOA,kEAAwC;AAGxC,wDAA8B"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RoleModule = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const typeorm_1 = require("@nestjs/typeorm");
7
- const role_entity_1 = require("./entities/role.entity");
8
- const permission_entity_1 = require("./entities/permission.entity");
9
- const role_service_1 = require("./services/role.service");
10
- let RoleModule = class RoleModule {
11
- };
12
- exports.RoleModule = RoleModule;
13
- exports.RoleModule = RoleModule = tslib_1.__decorate([
14
- (0, common_1.Module)({
15
- imports: [
16
- typeorm_1.TypeOrmModule.forFeature([role_entity_1.Role, permission_entity_1.Permission]),
17
- ],
18
- providers: [role_service_1.RoleService],
19
- exports: [role_service_1.RoleService],
20
- })
21
- ], RoleModule);
22
- //# sourceMappingURL=role.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"role.module.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/role/role.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,wDAA8C;AAC9C,oEAA0D;AAC1D,0DAAsD;AAS/C,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAI,CAAA;AAAd,gCAAU;qBAAV,UAAU;IAPtB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,uBAAa,CAAC,UAAU,CAAC,CAAC,kBAAI,EAAE,8BAAU,CAAC,CAAC;SAC/C;QACD,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,OAAO,EAAE,CAAC,0BAAW,CAAC;KACzB,CAAC;GACW,UAAU,CAAI"}