@flusys/nestjs-auth 7.0.2 → 8.0.0-beta.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 (237) hide show
  1. package/README.md +68 -1
  2. package/config/auth.constants.d.ts +2 -0
  3. package/config/event-actions.d.ts +2 -0
  4. package/config/index.d.ts +3 -3
  5. package/config/message-keys.d.ts +23 -0
  6. package/controllers/authentication.controller.d.ts +5 -5
  7. package/controllers/branch.controller.d.ts +2 -2
  8. package/controllers/company-selection.controller.d.ts +4 -4
  9. package/controllers/company.controller.d.ts +2 -2
  10. package/controllers/email-verification.controller.d.ts +6 -6
  11. package/controllers/index.d.ts +9 -7
  12. package/controllers/social-auth-config.controller.d.ts +22 -0
  13. package/controllers/social-auth.controller.d.ts +11 -0
  14. package/controllers/user-permission.controller.d.ts +5 -4
  15. package/controllers/user.controller.d.ts +7 -7
  16. package/docs/auth-swagger.config.d.ts +2 -2
  17. package/docs/index.d.ts +1 -1
  18. package/dtos/index.d.ts +6 -5
  19. package/dtos/social-auth.dto.d.ts +42 -0
  20. package/entities/company-branch.entity.d.ts +1 -1
  21. package/entities/company.entity.d.ts +1 -1
  22. package/entities/index.d.ts +15 -13
  23. package/entities/pending-registration.entity.d.ts +1 -1
  24. package/entities/social-auth-config.entity.d.ts +9 -0
  25. package/entities/user-company-permission.entity.d.ts +4 -4
  26. package/enums/index.d.ts +2 -1
  27. package/enums/social-provider-type.enum.d.ts +6 -0
  28. package/fesm/118.js +1230 -0
  29. package/fesm/120.js +2197 -0
  30. package/fesm/24.js +4389 -0
  31. package/fesm/370.js +1163 -0
  32. package/fesm/446.js +877 -0
  33. package/fesm/chunks/117.js +69 -0
  34. package/fesm/config/index.js +244 -3
  35. package/fesm/controllers/index.js +27 -7
  36. package/fesm/docs/index.js +479 -1
  37. package/fesm/dtos/index.js +123 -5
  38. package/fesm/entities/index.js +68 -19
  39. package/fesm/enums/index.js +53 -1
  40. package/fesm/helpers/index.js +115 -2
  41. package/fesm/index.js +1437 -12
  42. package/fesm/interceptors/index.js +508 -2
  43. package/fesm/interfaces/index.js +75 -7
  44. package/fesm/modules/index.js +546 -1
  45. package/fesm/runtime.js +134 -0
  46. package/fesm/services/index.js +67 -9
  47. package/helpers/auth-response.mapper.d.ts +3 -3
  48. package/helpers/index.d.ts +2 -2
  49. package/helpers/token.helper.d.ts +2 -2
  50. package/index.d.ts +13 -12
  51. package/interceptors/clear-token.interceptor.d.ts +2 -2
  52. package/interceptors/index.d.ts +2 -2
  53. package/interceptors/set-token.interceptor.d.ts +2 -2
  54. package/interfaces/auth-module-options.interface.d.ts +3 -3
  55. package/interfaces/authentication.interface.d.ts +3 -3
  56. package/interfaces/company-branch.interface.d.ts +2 -2
  57. package/interfaces/company.interface.d.ts +1 -1
  58. package/interfaces/index.d.ts +8 -7
  59. package/interfaces/social-auth.interface.d.ts +43 -0
  60. package/interfaces/user-enricher.interface.d.ts +3 -3
  61. package/modules/auth.module.d.ts +4 -4
  62. package/modules/index.d.ts +1 -1
  63. package/package.json +32 -39
  64. package/providers/facebook.social-provider.d.ts +10 -0
  65. package/providers/google.social-provider.d.ts +10 -0
  66. package/providers/index.d.ts +1 -0
  67. package/providers/linkedin.social-provider.d.ts +10 -0
  68. package/providers/microsoft.social-provider.d.ts +10 -0
  69. package/providers/oauth-http.util.d.ts +10 -0
  70. package/providers/social-provider.registry.d.ts +3 -0
  71. package/services/auth-config.service.d.ts +4 -3
  72. package/services/auth-datasource.provider.d.ts +4 -3
  73. package/services/auth-email.service.d.ts +3 -3
  74. package/services/authentication.service.d.ts +15 -11
  75. package/services/branch.service.d.ts +7 -7
  76. package/services/company.service.d.ts +6 -6
  77. package/services/index.d.ts +11 -9
  78. package/services/social-auth-config.service.d.ts +21 -0
  79. package/services/social-auth.service.d.ts +24 -0
  80. package/services/user-permission.service.d.ts +8 -4
  81. package/services/user.service.d.ts +7 -7
  82. package/strategies/jwt.strategy.d.ts +4 -4
  83. package/validators/password.validator.d.ts +1 -1
  84. package/cjs/config/auth.constants.js +0 -41
  85. package/cjs/config/event-actions.js +0 -45
  86. package/cjs/config/index.js +0 -20
  87. package/cjs/config/message-keys.js +0 -108
  88. package/cjs/controllers/authentication.controller.js +0 -427
  89. package/cjs/controllers/authentication.controller.spec.js +0 -219
  90. package/cjs/controllers/branch.controller.js +0 -102
  91. package/cjs/controllers/branch.controller.spec.js +0 -134
  92. package/cjs/controllers/company-selection.controller.js +0 -198
  93. package/cjs/controllers/company-selection.controller.spec.js +0 -84
  94. package/cjs/controllers/company.controller.js +0 -102
  95. package/cjs/controllers/company.controller.spec.js +0 -131
  96. package/cjs/controllers/email-verification.controller.js +0 -224
  97. package/cjs/controllers/email-verification.controller.spec.js +0 -142
  98. package/cjs/controllers/index.js +0 -24
  99. package/cjs/controllers/user-permission.controller.js +0 -223
  100. package/cjs/controllers/user-permission.controller.spec.js +0 -138
  101. package/cjs/controllers/user.controller.js +0 -438
  102. package/cjs/controllers/user.controller.spec.js +0 -204
  103. package/cjs/docs/auth-swagger.config.js +0 -453
  104. package/cjs/docs/auth-swagger.config.spec.js +0 -130
  105. package/cjs/docs/index.js +0 -18
  106. package/cjs/dtos/authentication.dto.js +0 -755
  107. package/cjs/dtos/company-branch.dto.js +0 -294
  108. package/cjs/dtos/company.dto.js +0 -298
  109. package/cjs/dtos/index.js +0 -22
  110. package/cjs/dtos/user-permission.dto.js +0 -358
  111. package/cjs/dtos/user.dto.js +0 -413
  112. package/cjs/entities/app-user.entity.js +0 -25
  113. package/cjs/entities/company-branch.entity.js +0 -163
  114. package/cjs/entities/company.entity.js +0 -146
  115. package/cjs/entities/index.js +0 -65
  116. package/cjs/entities/index.spec.js +0 -73
  117. package/cjs/entities/pending-registration.entity.js +0 -135
  118. package/cjs/entities/user-company-permission.entity.js +0 -153
  119. package/cjs/entities/user-token.entity.js +0 -120
  120. package/cjs/enums/index.js +0 -18
  121. package/cjs/enums/user-org-permission-type.enum.js +0 -15
  122. package/cjs/helpers/auth-response.mapper.js +0 -46
  123. package/cjs/helpers/auth-response.mapper.spec.js +0 -139
  124. package/cjs/helpers/index.js +0 -19
  125. package/cjs/helpers/token.helper.js +0 -58
  126. package/cjs/helpers/token.helper.spec.js +0 -86
  127. package/cjs/index.js +0 -29
  128. package/cjs/interceptors/clear-token.interceptor.js +0 -73
  129. package/cjs/interceptors/clear-token.interceptor.spec.js +0 -107
  130. package/cjs/interceptors/index.js +0 -19
  131. package/cjs/interceptors/set-token.interceptor.js +0 -107
  132. package/cjs/interceptors/set-token.interceptor.spec.js +0 -165
  133. package/cjs/interfaces/auth-email-provider.interface.js +0 -45
  134. package/cjs/interfaces/auth-module-options.interface.js +0 -4
  135. package/cjs/interfaces/authentication.interface.js +0 -4
  136. package/cjs/interfaces/company-branch.interface.js +0 -4
  137. package/cjs/interfaces/company.interface.js +0 -4
  138. package/cjs/interfaces/index.js +0 -24
  139. package/cjs/interfaces/user-enricher.interface.js +0 -4
  140. package/cjs/interfaces/user.interface.js +0 -4
  141. package/cjs/modules/auth.module.js +0 -202
  142. package/cjs/modules/auth.module.spec.js +0 -243
  143. package/cjs/modules/index.js +0 -18
  144. package/cjs/services/auth-config.service.js +0 -110
  145. package/cjs/services/auth-config.service.spec.js +0 -97
  146. package/cjs/services/auth-datasource.provider.js +0 -134
  147. package/cjs/services/auth-datasource.provider.spec.js +0 -161
  148. package/cjs/services/auth-email.service.js +0 -539
  149. package/cjs/services/auth-email.service.spec.js +0 -456
  150. package/cjs/services/authentication.service.js +0 -1173
  151. package/cjs/services/authentication.service.spec.js +0 -962
  152. package/cjs/services/branch.service.js +0 -153
  153. package/cjs/services/branch.service.spec.js +0 -169
  154. package/cjs/services/company-selection-session.service.js +0 -121
  155. package/cjs/services/company-selection-session.service.spec.js +0 -90
  156. package/cjs/services/company.service.js +0 -140
  157. package/cjs/services/company.service.spec.js +0 -127
  158. package/cjs/services/index.js +0 -26
  159. package/cjs/services/user-permission.service.js +0 -236
  160. package/cjs/services/user-permission.service.spec.js +0 -254
  161. package/cjs/services/user.service.js +0 -671
  162. package/cjs/services/user.service.spec.js +0 -718
  163. package/cjs/strategies/jwt.strategy.js +0 -140
  164. package/cjs/strategies/jwt.strategy.spec.js +0 -166
  165. package/cjs/validators/password.validator.js +0 -45
  166. package/cjs/validators/password.validator.spec.js +0 -161
  167. package/fesm/config/auth.constants.js +0 -11
  168. package/fesm/config/event-actions.js +0 -24
  169. package/fesm/config/message-keys.js +0 -78
  170. package/fesm/controllers/authentication.controller.js +0 -417
  171. package/fesm/controllers/authentication.controller.spec.js +0 -215
  172. package/fesm/controllers/branch.controller.js +0 -92
  173. package/fesm/controllers/branch.controller.spec.js +0 -130
  174. package/fesm/controllers/company-selection.controller.js +0 -188
  175. package/fesm/controllers/company-selection.controller.spec.js +0 -80
  176. package/fesm/controllers/company.controller.js +0 -92
  177. package/fesm/controllers/company.controller.spec.js +0 -127
  178. package/fesm/controllers/email-verification.controller.js +0 -214
  179. package/fesm/controllers/email-verification.controller.spec.js +0 -138
  180. package/fesm/controllers/user-permission.controller.js +0 -213
  181. package/fesm/controllers/user-permission.controller.spec.js +0 -134
  182. package/fesm/controllers/user.controller.js +0 -428
  183. package/fesm/controllers/user.controller.spec.js +0 -200
  184. package/fesm/docs/auth-swagger.config.js +0 -446
  185. package/fesm/docs/auth-swagger.config.spec.js +0 -126
  186. package/fesm/dtos/authentication.dto.js +0 -683
  187. package/fesm/dtos/company-branch.dto.js +0 -279
  188. package/fesm/dtos/company.dto.js +0 -283
  189. package/fesm/dtos/user-permission.dto.js +0 -339
  190. package/fesm/dtos/user.dto.js +0 -391
  191. package/fesm/entities/app-user.entity.js +0 -15
  192. package/fesm/entities/company-branch.entity.js +0 -153
  193. package/fesm/entities/company.entity.js +0 -136
  194. package/fesm/entities/index.spec.js +0 -69
  195. package/fesm/entities/pending-registration.entity.js +0 -125
  196. package/fesm/entities/user-company-permission.entity.js +0 -136
  197. package/fesm/entities/user-token.entity.js +0 -104
  198. package/fesm/enums/user-org-permission-type.enum.js +0 -5
  199. package/fesm/helpers/auth-response.mapper.js +0 -25
  200. package/fesm/helpers/auth-response.mapper.spec.js +0 -135
  201. package/fesm/helpers/token.helper.js +0 -40
  202. package/fesm/helpers/token.helper.spec.js +0 -82
  203. package/fesm/interceptors/clear-token.interceptor.js +0 -63
  204. package/fesm/interceptors/clear-token.interceptor.spec.js +0 -103
  205. package/fesm/interceptors/set-token.interceptor.js +0 -98
  206. package/fesm/interceptors/set-token.interceptor.spec.js +0 -161
  207. package/fesm/interfaces/auth-email-provider.interface.js +0 -38
  208. package/fesm/interfaces/auth-module-options.interface.js +0 -3
  209. package/fesm/interfaces/authentication.interface.js +0 -1
  210. package/fesm/interfaces/company-branch.interface.js +0 -1
  211. package/fesm/interfaces/company.interface.js +0 -1
  212. package/fesm/interfaces/user-enricher.interface.js +0 -4
  213. package/fesm/interfaces/user.interface.js +0 -1
  214. package/fesm/modules/auth.module.js +0 -192
  215. package/fesm/modules/auth.module.spec.js +0 -239
  216. package/fesm/services/auth-config.service.js +0 -100
  217. package/fesm/services/auth-config.service.spec.js +0 -93
  218. package/fesm/services/auth-datasource.provider.js +0 -83
  219. package/fesm/services/auth-datasource.provider.spec.js +0 -157
  220. package/fesm/services/auth-email.service.js +0 -488
  221. package/fesm/services/auth-email.service.spec.js +0 -411
  222. package/fesm/services/authentication.service.js +0 -1122
  223. package/fesm/services/authentication.service.spec.js +0 -917
  224. package/fesm/services/branch.service.js +0 -143
  225. package/fesm/services/branch.service.spec.js +0 -165
  226. package/fesm/services/company-selection-session.service.js +0 -111
  227. package/fesm/services/company-selection-session.service.spec.js +0 -86
  228. package/fesm/services/company.service.js +0 -130
  229. package/fesm/services/company.service.spec.js +0 -123
  230. package/fesm/services/user-permission.service.js +0 -226
  231. package/fesm/services/user-permission.service.spec.js +0 -250
  232. package/fesm/services/user.service.js +0 -620
  233. package/fesm/services/user.service.spec.js +0 -673
  234. package/fesm/strategies/jwt.strategy.js +0 -130
  235. package/fesm/strategies/jwt.strategy.spec.js +0 -162
  236. package/fesm/validators/password.validator.js +0 -48
  237. package/fesm/validators/password.validator.spec.js +0 -157
@@ -1,9 +1,67 @@
1
- export * from './authentication.service';
2
- export * from './auth-email.service';
3
- export * from './company-selection-session.service';
4
- export * from './user.service';
5
- export * from './company.service';
6
- export * from './branch.service';
7
- export * from './user-permission.service';
8
- export * from './auth-config.service';
9
- export * from './auth-datasource.provider';
1
+ export const __rspack_esm_id = 995;
2
+ export const __rspack_esm_ids = [995];
3
+ export const __webpack_modules__ = {
4
+ 8811(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+ /* import */ var _authentication_service_js__rspack_import_0 = __webpack_require__(4722);
6
+ /* import */ var _auth_email_service_js__rspack_import_1 = __webpack_require__(3221);
7
+ /* import */ var _company_selection_session_service_js__rspack_import_2 = __webpack_require__(5811);
8
+ /* import */ var _social_auth_service_js__rspack_import_3 = __webpack_require__(2786);
9
+ /* import */ var _social_auth_config_service_js__rspack_import_4 = __webpack_require__(8275);
10
+ /* import */ var _user_service_js__rspack_import_5 = __webpack_require__(7229);
11
+ /* import */ var _company_service_js__rspack_import_6 = __webpack_require__(9201);
12
+ /* import */ var _branch_service_js__rspack_import_7 = __webpack_require__(5402);
13
+ /* import */ var _user_permission_service_js__rspack_import_8 = __webpack_require__(5291);
14
+ /* import */ var _auth_config_service_js__rspack_import_9 = __webpack_require__(6514);
15
+ /* import */ var _auth_datasource_provider_js__rspack_import_10 = __webpack_require__(2732);
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+ __webpack_require__.d(__webpack_exports__, {
29
+ Bl: () => (/* reexport safe */ _company_service_js__rspack_import_6.B),
30
+ DL: () => (/* reexport safe */ _user_service_js__rspack_import_5.D),
31
+ Gw: () => (/* reexport safe */ _auth_email_service_js__rspack_import_1.G),
32
+ Jn: () => (/* reexport safe */ _social_auth_service_js__rspack_import_3.J),
33
+ OE: () => (/* reexport safe */ _user_permission_service_js__rspack_import_8.O),
34
+ O_: () => (/* reexport safe */ _branch_service_js__rspack_import_7.O),
35
+ WE: () => (/* reexport safe */ _auth_config_service_js__rspack_import_9.W),
36
+ kX: () => (/* reexport safe */ _authentication_service_js__rspack_import_0.k),
37
+ t_: () => (/* reexport safe */ _social_auth_config_service_js__rspack_import_4.t),
38
+ vB: () => (/* reexport safe */ _company_selection_session_service_js__rspack_import_2.v),
39
+ vS: () => (/* reexport safe */ _auth_datasource_provider_js__rspack_import_10.v)
40
+ });
41
+
42
+
43
+ },
44
+
45
+ };
46
+ import { __webpack_require__ } from '../runtime.js';
47
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
48
+ import * as __rspack_chunk_1 from '../370.js';
49
+ __webpack_require__.C(__rspack_chunk_1);
50
+ import * as __rspack_chunk_2 from '../446.js';
51
+ __webpack_require__.C(__rspack_chunk_2);
52
+ import * as __rspack_chunk_3 from '../24.js';
53
+ __webpack_require__.C(__rspack_chunk_3);
54
+ import * as __rspack_chunk_4 from './index.js';
55
+ __webpack_require__.C(__rspack_chunk_4);
56
+ var __webpack_exports__ = __webpack_exec__(8811);var __webpack_exports__AuthConfigService = __webpack_exports__.WE;
57
+ var __webpack_exports__AuthDataSourceProvider = __webpack_exports__.vS;
58
+ var __webpack_exports__AuthEmailService = __webpack_exports__.Gw;
59
+ var __webpack_exports__AuthenticationService = __webpack_exports__.kX;
60
+ var __webpack_exports__BranchService = __webpack_exports__.O_;
61
+ var __webpack_exports__CompanySelectionSessionService = __webpack_exports__.vB;
62
+ var __webpack_exports__CompanyService = __webpack_exports__.Bl;
63
+ var __webpack_exports__SocialAuthConfigService = __webpack_exports__.t_;
64
+ var __webpack_exports__SocialAuthService = __webpack_exports__.Jn;
65
+ var __webpack_exports__UserPermissionService = __webpack_exports__.OE;
66
+ var __webpack_exports__UserService = __webpack_exports__.DL;
67
+ export { __webpack_exports__AuthConfigService as AuthConfigService, __webpack_exports__AuthDataSourceProvider as AuthDataSourceProvider, __webpack_exports__AuthEmailService as AuthEmailService, __webpack_exports__AuthenticationService as AuthenticationService, __webpack_exports__BranchService as BranchService, __webpack_exports__CompanySelectionSessionService as CompanySelectionSessionService, __webpack_exports__CompanyService as CompanyService, __webpack_exports__SocialAuthConfigService as SocialAuthConfigService, __webpack_exports__SocialAuthService as SocialAuthService, __webpack_exports__UserPermissionService as UserPermissionService, __webpack_exports__UserService as UserService };
@@ -1,6 +1,6 @@
1
- import { AppUser } from '../entities/app-user.entity';
2
- import { CompanyBranch } from '../entities/company-branch.entity';
3
- import { Company } from '../entities/company.entity';
1
+ import { AppUser } from '../entities/app-user.entity.js';
2
+ import { CompanyBranch } from '../entities/company-branch.entity.js';
3
+ import { Company } from '../entities/company.entity.js';
4
4
  export declare function toUserInfo(user: AppUser): {
5
5
  id: string;
6
6
  email: string;
@@ -1,2 +1,2 @@
1
- export * from './auth-response.mapper';
2
- export * from './token.helper';
1
+ export * from './auth-response.mapper.js';
2
+ export * from './token.helper.js';
@@ -1,6 +1,6 @@
1
1
  import { JwtService } from '@nestjs/jwt';
2
- import { TokenPayload, TokenPayloadWithCompany } from '../interfaces/authentication.interface';
3
- import { AuthConfigService } from '../services/auth-config.service';
2
+ import { type TokenPayload, type TokenPayloadWithCompany } from '../interfaces/authentication.interface.js';
3
+ import { AuthConfigService } from '../services/auth-config.service.js';
4
4
  export declare function generateTokens(jwtService: JwtService, authConfig: AuthConfigService, payload: TokenPayload | TokenPayloadWithCompany): {
5
5
  accessToken: string;
6
6
  refreshToken: string;
package/index.d.ts CHANGED
@@ -1,12 +1,13 @@
1
- export * from './config';
2
- export * from './controllers';
3
- export * from './docs';
4
- export * from './dtos';
5
- export * from './entities';
6
- export * from './enums';
7
- export * from './helpers';
8
- export * from './interceptors';
9
- export * from './interfaces';
10
- export * from './modules';
11
- export * from './services';
12
- export * from './strategies/jwt.strategy';
1
+ export * from './config/index.js';
2
+ export * from './controllers/index.js';
3
+ export * from './docs/index.js';
4
+ export * from './dtos/index.js';
5
+ export * from './entities/index.js';
6
+ export * from './enums/index.js';
7
+ export * from './helpers/index.js';
8
+ export * from './interceptors/index.js';
9
+ export * from './interfaces/index.js';
10
+ export * from './modules/index.js';
11
+ export * from './providers/index.js';
12
+ export * from './services/index.js';
13
+ export * from './strategies/jwt.strategy.js';
@@ -1,6 +1,6 @@
1
- import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
1
+ import { type CallHandler, type ExecutionContext, type NestInterceptor } from '@nestjs/common';
2
2
  import { Observable } from 'rxjs';
3
- import { AuthConfigService } from '../services/auth-config.service';
3
+ import { AuthConfigService } from '../services/auth-config.service.js';
4
4
  export declare class ClearToken implements NestInterceptor {
5
5
  private readonly authConfig?;
6
6
  constructor(authConfig?: AuthConfigService | undefined);
@@ -1,2 +1,2 @@
1
- export * from './clear-token.interceptor';
2
- export * from './set-token.interceptor';
1
+ export * from './clear-token.interceptor.js';
2
+ export * from './set-token.interceptor.js';
@@ -1,6 +1,6 @@
1
- import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
1
+ import { type CallHandler, type ExecutionContext, type NestInterceptor } from '@nestjs/common';
2
2
  import { Observable } from 'rxjs';
3
- import { AuthConfigService } from '../services/auth-config.service';
3
+ import { AuthConfigService } from '../services/auth-config.service.js';
4
4
  export declare class SetToken implements NestInterceptor {
5
5
  private readonly authConfig?;
6
6
  constructor(authConfig?: AuthConfigService | undefined);
@@ -1,6 +1,6 @@
1
- import { IBootstrapAppConfig, IDataSourceServiceOptions, IDynamicModuleConfig } from '@flusys/nestjs-core';
2
- import { IModuleEventsConfig } from '@flusys/nestjs-shared/interfaces';
3
- import { ModuleMetadata, Provider, Type } from '@nestjs/common';
1
+ import { type IBootstrapAppConfig, type IDataSourceServiceOptions, type IDynamicModuleConfig } from '@flusys/nestjs-core';
2
+ import { type IModuleEventsConfig } from '@flusys/nestjs-shared/interfaces';
3
+ import { type ModuleMetadata, type Provider, type Type } from '@nestjs/common';
4
4
  export interface IAuthModuleConfig extends IDataSourceServiceOptions {
5
5
  jwtSecret?: string;
6
6
  jwtExpiration?: string;
@@ -1,6 +1,6 @@
1
- import { ICompanyBranchMini } from './company-branch.interface';
2
- import { ICompanyMini } from './company.interface';
3
- import { IUserMini } from './user.interface';
1
+ import { type ICompanyBranchMini } from './company-branch.interface.js';
2
+ import { type ICompanyMini } from './company.interface.js';
3
+ import { type IUserMini } from './user.interface.js';
4
4
  export interface TokenPayload {
5
5
  id: string;
6
6
  email: string;
@@ -1,5 +1,5 @@
1
- import { IIdentity } from '@flusys/nestjs-shared';
2
- import { ICompanyMini } from './company.interface';
1
+ import { type IIdentity } from '@flusys/nestjs-shared';
2
+ import { type ICompanyMini } from './company.interface.js';
3
3
  export interface ICompanyBranchMini {
4
4
  id: string;
5
5
  name: string;
@@ -1,4 +1,4 @@
1
- import { IIdentity } from '@flusys/nestjs-shared';
1
+ import { type IIdentity } from '@flusys/nestjs-shared';
2
2
  export interface ICompanyMini {
3
3
  id: string;
4
4
  name: string;
@@ -1,7 +1,8 @@
1
- export * from './authentication.interface';
2
- export * from './auth-email-provider.interface';
3
- export * from './company-branch.interface';
4
- export * from './company.interface';
5
- export * from './user.interface';
6
- export * from './user-enricher.interface';
7
- export * from './auth-module-options.interface';
1
+ export * from './authentication.interface.js';
2
+ export * from './auth-email-provider.interface.js';
3
+ export * from './company-branch.interface.js';
4
+ export * from './company.interface.js';
5
+ export * from './social-auth.interface.js';
6
+ export * from './user.interface.js';
7
+ export * from './user-enricher.interface.js';
8
+ export * from './auth-module-options.interface.js';
@@ -0,0 +1,43 @@
1
+ import { type IIdentity } from '@flusys/nestjs-shared/interfaces';
2
+ import { SocialProviderTypeEnum } from '../enums/social-provider-type.enum.js';
3
+ export interface ISocialAuthConfig extends IIdentity {
4
+ provider: SocialProviderTypeEnum;
5
+ isEnabled: boolean;
6
+ clientId: string | null;
7
+ hasClientSecret: boolean;
8
+ scopes: string[] | null;
9
+ extraConfig: Record<string, unknown> | null;
10
+ }
11
+ export interface ISocialProviderInfo {
12
+ provider: SocialProviderTypeEnum;
13
+ redirectUri: string;
14
+ }
15
+ export interface ISocialAuthorization {
16
+ provider: SocialProviderTypeEnum;
17
+ authorizationUrl: string;
18
+ state: string;
19
+ }
20
+ export interface ISocialProfile {
21
+ providerUserId: string;
22
+ email: string | null;
23
+ emailVerified: boolean;
24
+ name: string | null;
25
+ avatarUrl: string | null;
26
+ }
27
+ export interface ISocialProviderCredentials {
28
+ clientId: string;
29
+ clientSecret: string;
30
+ redirectUri: string;
31
+ scopes?: string[] | null;
32
+ extraConfig?: Record<string, unknown> | null;
33
+ }
34
+ export interface ISocialAuthProvider {
35
+ readonly provider: SocialProviderTypeEnum;
36
+ readonly defaultScopes: string[];
37
+ buildAuthorizationUrl(credentials: ISocialProviderCredentials, state: string): string;
38
+ fetchProfile(credentials: ISocialProviderCredentials, code: string): Promise<ISocialProfile>;
39
+ }
40
+ export interface ISocialAuthState {
41
+ provider: SocialProviderTypeEnum;
42
+ redirectUri: string;
43
+ }
@@ -1,6 +1,6 @@
1
- import { ILoggedUserInfo, IPermissionLogic } from '@flusys/nestjs-shared/interfaces';
2
- import { QueryRunner } from 'typeorm';
3
- import { IUser } from './user.interface';
1
+ import { type ILoggedUserInfo, type IPermissionLogic } from '@flusys/nestjs-shared/interfaces';
2
+ import { type QueryRunner } from 'typeorm';
3
+ import { type IUser } from './user.interface.js';
4
4
  export interface IProfileSection {
5
5
  id: string;
6
6
  name: string;
@@ -1,7 +1,7 @@
1
- import { IBootstrapAppConfig } from '@flusys/nestjs-core';
2
- import { DynamicModule } from '@nestjs/common';
3
- import { getAuthEntitiesByConfig } from '../entities';
4
- import { AuthModuleAsyncOptions, AuthModuleOptions } from '../interfaces/auth-module-options.interface';
1
+ import { type IBootstrapAppConfig } from '@flusys/nestjs-core';
2
+ import { type DynamicModule } from '@nestjs/common';
3
+ import { getAuthEntitiesByConfig } from '../entities/index.js';
4
+ import { type AuthModuleAsyncOptions, type AuthModuleOptions } from '../interfaces/auth-module-options.interface.js';
5
5
  export declare class AuthModule {
6
6
  static forRoot(options: AuthModuleOptions): DynamicModule;
7
7
  static forRootAsync(options: AuthModuleAsyncOptions): DynamicModule;
@@ -1 +1 @@
1
- export * from './auth.module';
1
+ export * from './auth.module.js';
package/package.json CHANGED
@@ -1,91 +1,84 @@
1
1
  {
2
2
  "name": "@flusys/nestjs-auth",
3
- "version": "7.0.2",
3
+ "version": "8.0.0-beta.1",
4
4
  "description": "Authentication and authorization infrastructure for NestJS applications",
5
- "main": "cjs/index.js",
6
- "module": "fesm/index.js",
7
- "types": "index.d.ts",
5
+ "type": "module",
6
+ "main": "./fesm/index.js",
7
+ "module": "./fesm/index.js",
8
+ "types": "./index.d.ts",
8
9
  "sideEffects": false,
9
10
  "keywords": [
10
11
  "nestjs",
12
+ "@flusys",
11
13
  "authentication",
12
14
  "authorization",
13
15
  "jwt",
14
16
  "otp",
15
- "auth",
16
- "@flusys"
17
+ "auth"
17
18
  ],
18
19
  "license": "UNLICENSED",
19
20
  "exports": {
20
21
  ".": {
21
22
  "types": "./index.d.ts",
22
- "import": "./fesm/index.js",
23
- "require": "./cjs/index.js"
23
+ "import": "./fesm/index.js"
24
24
  },
25
25
  "./config": {
26
26
  "types": "./config/index.d.ts",
27
- "import": "./fesm/config/index.js",
28
- "require": "./cjs/config/index.js"
27
+ "import": "./fesm/config/index.js"
29
28
  },
30
29
  "./controllers": {
31
30
  "types": "./controllers/index.d.ts",
32
- "import": "./fesm/controllers/index.js",
33
- "require": "./cjs/controllers/index.js"
31
+ "import": "./fesm/controllers/index.js"
34
32
  },
35
33
  "./docs": {
36
34
  "types": "./docs/index.d.ts",
37
- "import": "./fesm/docs/index.js",
38
- "require": "./cjs/docs/index.js"
35
+ "import": "./fesm/docs/index.js"
39
36
  },
40
37
  "./dtos": {
41
38
  "types": "./dtos/index.d.ts",
42
- "import": "./fesm/dtos/index.js",
43
- "require": "./cjs/dtos/index.js"
39
+ "import": "./fesm/dtos/index.js"
44
40
  },
45
41
  "./entities": {
46
42
  "types": "./entities/index.d.ts",
47
- "import": "./fesm/entities/index.js",
48
- "require": "./cjs/entities/index.js"
43
+ "import": "./fesm/entities/index.js"
49
44
  },
50
45
  "./enums": {
51
46
  "types": "./enums/index.d.ts",
52
- "import": "./fesm/enums/index.js",
53
- "require": "./cjs/enums/index.js"
47
+ "import": "./fesm/enums/index.js"
54
48
  },
55
49
  "./helpers": {
56
50
  "types": "./helpers/index.d.ts",
57
- "import": "./fesm/helpers/index.js",
58
- "require": "./cjs/helpers/index.js"
51
+ "import": "./fesm/helpers/index.js"
59
52
  },
60
53
  "./interceptors": {
61
54
  "types": "./interceptors/index.d.ts",
62
- "import": "./fesm/interceptors/index.js",
63
- "require": "./cjs/interceptors/index.js"
55
+ "import": "./fesm/interceptors/index.js"
64
56
  },
65
57
  "./interfaces": {
66
58
  "types": "./interfaces/index.d.ts",
67
- "import": "./fesm/interfaces/index.js",
68
- "require": "./cjs/interfaces/index.js"
59
+ "import": "./fesm/interfaces/index.js"
69
60
  },
70
61
  "./modules": {
71
62
  "types": "./modules/index.d.ts",
72
- "import": "./fesm/modules/index.js",
73
- "require": "./cjs/modules/index.js"
63
+ "import": "./fesm/modules/index.js"
74
64
  },
75
65
  "./services": {
76
66
  "types": "./services/index.d.ts",
77
- "import": "./fesm/services/index.js",
78
- "require": "./cjs/services/index.js"
67
+ "import": "./fesm/services/index.js"
68
+ },
69
+ "./*": {
70
+ "types": "./*.d.ts",
71
+ "import": "./fesm/*.js"
79
72
  }
80
73
  },
81
74
  "peerDependencies": {
82
- "@nestjs/common": "^11.0.0",
83
- "@nestjs/config": "^4.0.0",
84
- "@nestjs/core": "^11.0.0",
85
- "@nestjs/jwt": "^11.0.0",
86
- "@nestjs/passport": "^11.0.0",
87
- "@nestjs/swagger": "^11.0.0",
88
- "@nestjs/typeorm": "^11.0.0",
75
+ "@nestjs/common": "^12.0.0",
76
+ "@nestjs/config": "^12.0.0",
77
+ "@nestjs/core": "^12.0.0",
78
+ "@nestjs/jwt": "^12.0.0",
79
+ "@nestjs/passport": "^12.0.0",
80
+ "@nestjs/swagger": "^12.0.0",
81
+ "@nestjs/typeorm": "^12.0.0",
89
82
  "bcrypt": "^6.0.0",
90
83
  "class-transformer": "^0.5.1",
91
84
  "class-validator": "^0.15.0",
@@ -98,7 +91,7 @@
98
91
  "rxjs": "^7.8.0"
99
92
  },
100
93
  "dependencies": {
101
- "@flusys/nestjs-core": "7.0.2",
102
- "@flusys/nestjs-shared": "7.0.2"
94
+ "@flusys/nestjs-core": "8.0.0-beta.1",
95
+ "@flusys/nestjs-shared": "8.0.0-beta.1"
103
96
  }
104
97
  }
@@ -0,0 +1,10 @@
1
+ import { SocialProviderTypeEnum } from '../enums/social-provider-type.enum.js';
2
+ import { type ISocialAuthProvider, type ISocialProfile, type ISocialProviderCredentials } from '../interfaces/social-auth.interface.js';
3
+ declare class FacebookSocialProvider implements ISocialAuthProvider {
4
+ readonly provider = SocialProviderTypeEnum.FACEBOOK;
5
+ readonly defaultScopes: string[];
6
+ buildAuthorizationUrl(credentials: ISocialProviderCredentials, state: string): string;
7
+ fetchProfile(credentials: ISocialProviderCredentials, code: string): Promise<ISocialProfile>;
8
+ }
9
+ export declare const facebookSocialProvider: FacebookSocialProvider;
10
+ export {};
@@ -0,0 +1,10 @@
1
+ import { SocialProviderTypeEnum } from '../enums/social-provider-type.enum.js';
2
+ import { type ISocialAuthProvider, type ISocialProfile, type ISocialProviderCredentials } from '../interfaces/social-auth.interface.js';
3
+ declare class GoogleSocialProvider implements ISocialAuthProvider {
4
+ readonly provider = SocialProviderTypeEnum.GOOGLE;
5
+ readonly defaultScopes: string[];
6
+ buildAuthorizationUrl(credentials: ISocialProviderCredentials, state: string): string;
7
+ fetchProfile(credentials: ISocialProviderCredentials, code: string): Promise<ISocialProfile>;
8
+ }
9
+ export declare const googleSocialProvider: GoogleSocialProvider;
10
+ export {};
@@ -0,0 +1 @@
1
+ export * from './social-provider.registry.js';
@@ -0,0 +1,10 @@
1
+ import { SocialProviderTypeEnum } from '../enums/social-provider-type.enum.js';
2
+ import { type ISocialAuthProvider, type ISocialProfile, type ISocialProviderCredentials } from '../interfaces/social-auth.interface.js';
3
+ declare class LinkedInSocialProvider implements ISocialAuthProvider {
4
+ readonly provider = SocialProviderTypeEnum.LINKEDIN;
5
+ readonly defaultScopes: string[];
6
+ buildAuthorizationUrl(credentials: ISocialProviderCredentials, state: string): string;
7
+ fetchProfile(credentials: ISocialProviderCredentials, code: string): Promise<ISocialProfile>;
8
+ }
9
+ export declare const linkedInSocialProvider: LinkedInSocialProvider;
10
+ export {};
@@ -0,0 +1,10 @@
1
+ import { SocialProviderTypeEnum } from '../enums/social-provider-type.enum.js';
2
+ import { type ISocialAuthProvider, type ISocialProfile, type ISocialProviderCredentials } from '../interfaces/social-auth.interface.js';
3
+ declare class MicrosoftSocialProvider implements ISocialAuthProvider {
4
+ readonly provider = SocialProviderTypeEnum.MICROSOFT;
5
+ readonly defaultScopes: string[];
6
+ buildAuthorizationUrl(credentials: ISocialProviderCredentials, state: string): string;
7
+ fetchProfile(credentials: ISocialProviderCredentials, code: string): Promise<ISocialProfile>;
8
+ }
9
+ export declare const microsoftSocialProvider: MicrosoftSocialProvider;
10
+ export {};
@@ -0,0 +1,10 @@
1
+ type JsonRecord = Record<string, unknown>;
2
+ export declare function postForm(provider: string, url: string, form: Record<string, string>): Promise<JsonRecord>;
3
+ export declare function getJson(provider: string, url: string, accessToken: string): Promise<JsonRecord>;
4
+ export declare function readAccessToken(provider: string, token: JsonRecord): string;
5
+ export declare function readString(source: JsonRecord, key: string): string | null;
6
+ export declare function buildQuery(params: Record<string, string | undefined>): string;
7
+ export declare function resolveScopes(credentials: {
8
+ scopes?: string[] | null;
9
+ }, defaults: string[], separator?: string): string;
10
+ export {};
@@ -0,0 +1,3 @@
1
+ import { SocialProviderTypeEnum } from '../enums/social-provider-type.enum.js';
2
+ import { type ISocialAuthProvider } from '../interfaces/social-auth.interface.js';
3
+ export declare function getSocialProvider(provider: SocialProviderTypeEnum): ISocialAuthProvider;
@@ -1,6 +1,6 @@
1
- import { DatabaseMode } from '@flusys/nestjs-core';
2
- import { IModuleConfigService } from '@flusys/nestjs-shared/interfaces';
3
- import { AuthModuleOptions } from '../interfaces/auth-module-options.interface';
1
+ import { type DatabaseMode } from '@flusys/nestjs-core';
2
+ import { type IModuleConfigService } from '@flusys/nestjs-shared/interfaces';
3
+ import { type AuthModuleOptions } from '../interfaces/auth-module-options.interface.js';
4
4
  export declare class AuthConfigService implements IModuleConfigService {
5
5
  private readonly options;
6
6
  private readonly config;
@@ -9,6 +9,7 @@ export declare class AuthConfigService implements IModuleConfigService {
9
9
  isMultiTenant(): boolean;
10
10
  isCompanyFeatureEnabled(): boolean;
11
11
  isEmailVerificationEnabled(): boolean;
12
+ isSignUpEnabled(): boolean;
12
13
  isPermissionModeFound(): boolean;
13
14
  getJwtSecret(): string;
14
15
  getJwtExpiration(): string;
@@ -1,8 +1,8 @@
1
- import { IDatabaseConfig, ITenantDatabaseConfig } from '@flusys/nestjs-core';
1
+ import { type IDatabaseConfig, type ITenantDatabaseConfig } from '@flusys/nestjs-core';
2
2
  import { MultiTenantDataSourceService } from '@flusys/nestjs-shared';
3
- import { Request } from 'express';
3
+ import { type Request } from 'express';
4
4
  import { DataSource } from 'typeorm';
5
- import { AuthModuleOptions } from '../interfaces/auth-module-options.interface';
5
+ import { type AuthModuleOptions } from '../interfaces/auth-module-options.interface.js';
6
6
  export declare class AuthDataSourceProvider extends MultiTenantDataSourceService {
7
7
  private readonly authOptions;
8
8
  protected static readonly tenantConnections: Map<string, DataSource>;
@@ -15,6 +15,7 @@ export declare class AuthDataSourceProvider extends MultiTenantDataSourceService
15
15
  private static buildParentOptions;
16
16
  isCompanyFeatureEnabled(tenant?: ITenantDatabaseConfig): boolean;
17
17
  isEmailVerificationEnabled(tenant?: ITenantDatabaseConfig): boolean;
18
+ isSignUpEnabled(tenant?: ITenantDatabaseConfig): boolean;
18
19
  getAuthEntities(): Promise<any[]>;
19
20
  protected createDataSourceFromConfig(config: IDatabaseConfig): Promise<DataSource>;
20
21
  }
@@ -1,6 +1,6 @@
1
- import { PendingRegistration } from '../entities/pending-registration.entity';
2
- import { IAuthEmailProvider } from '../interfaces';
3
- import { AuthDataSourceProvider } from './auth-datasource.provider';
1
+ import { PendingRegistration } from '../entities/pending-registration.entity.js';
2
+ import { type IAuthEmailProvider } from '../interfaces/index.js';
3
+ import { AuthDataSourceProvider } from './auth-datasource.provider.js';
4
4
  export declare class AuthEmailService {
5
5
  private readonly dataSourceProvider?;
6
6
  private readonly emailProvider?;
@@ -1,16 +1,17 @@
1
1
  import { HybridCache } from '@flusys/nestjs-shared/classes';
2
- import { INotificationAdapter } from '@flusys/nestjs-shared/interfaces';
2
+ import { type INotificationAdapter } from '@flusys/nestjs-shared/interfaces';
3
3
  import { JwtService } from '@nestjs/jwt';
4
- import { RegistrationDto } from '../dtos/authentication.dto';
5
- import { CompanyBranch } from '../entities/company-branch.entity';
6
- import { Company } from '../entities/company.entity';
7
- import { PendingRegistration } from '../entities/pending-registration.entity';
8
- import { LoginResponse, LoginResponseRequiresEmailVerification, LoginResponseRequiresSelection, MeResponse, RegistrationResponse } from '../interfaces/authentication.interface';
9
- import { IUserEnricher } from '../interfaces/user-enricher.interface';
10
- import { AuthConfigService } from './auth-config.service';
11
- import { AuthDataSourceProvider } from './auth-datasource.provider';
12
- import { AuthEmailService } from './auth-email.service';
13
- import { CompanySelectionSessionService } from './company-selection-session.service';
4
+ import { RegistrationDto } from '../dtos/authentication.dto.js';
5
+ import { AppUser } from '../entities/app-user.entity.js';
6
+ import { CompanyBranch } from '../entities/company-branch.entity.js';
7
+ import { Company } from '../entities/company.entity.js';
8
+ import { PendingRegistration } from '../entities/pending-registration.entity.js';
9
+ import { type LoginResponse, type LoginResponseRequiresEmailVerification, type LoginResponseRequiresSelection, type MeResponse, type RegistrationResponse } from '../interfaces/authentication.interface.js';
10
+ import { type IUserEnricher } from '../interfaces/user-enricher.interface.js';
11
+ import { AuthConfigService } from './auth-config.service.js';
12
+ import { AuthDataSourceProvider } from './auth-datasource.provider.js';
13
+ import { AuthEmailService } from './auth-email.service.js';
14
+ import { CompanySelectionSessionService } from './company-selection-session.service.js';
14
15
  export declare class AuthenticationService {
15
16
  private readonly jwtService;
16
17
  private readonly authConfig;
@@ -23,9 +24,12 @@ export declare class AuthenticationService {
23
24
  constructor(jwtService: JwtService, authConfig: AuthConfigService, cacheManager?: HybridCache | undefined, dataSourceProvider?: AuthDataSourceProvider | undefined, sessionService?: CompanySelectionSessionService | undefined, authEmailService?: AuthEmailService | undefined, userEnricher?: IUserEnricher | undefined, notificationAdapter?: INotificationAdapter | undefined);
24
25
  private isCompanyFeatureEnabled;
25
26
  private isEmailVerificationEnabled;
27
+ private isSignUpEnabled;
26
28
  private getUserRepository;
27
29
  private getCompanyScopedRepository;
28
30
  login(email: string, password: string): Promise<LoginResponse | LoginResponseRequiresSelection | LoginResponseRequiresEmailVerification>;
31
+ issueLoginForUser(user: AppUser): Promise<LoginResponse | LoginResponseRequiresSelection>;
32
+ private ensureUserActive;
29
33
  private handleCompanyBasedLogin;
30
34
  register(dto: RegistrationDto, verifyUrlBase?: string): Promise<RegistrationResponse | {
31
35
  requiresEmailVerification: true;
@@ -1,13 +1,13 @@
1
1
  import { ApiService, HybridCache } from '@flusys/nestjs-shared/classes';
2
2
  import { DeleteDto, FilterAndPaginationDto } from '@flusys/nestjs-shared/dtos';
3
- import { ILoggedUserInfo, IPermissionSyncAdapter } from '@flusys/nestjs-shared/interfaces';
3
+ import { type ILoggedUserInfo, type IPermissionSyncAdapter } from '@flusys/nestjs-shared/interfaces';
4
4
  import { UtilsService } from '@flusys/nestjs-shared/modules';
5
- import { QueryRunner, SelectQueryBuilder } from 'typeorm';
6
- import { CreateCompanyBranchDto, UpdateCompanyBranchDto } from '../dtos/company-branch.dto';
7
- import { CompanyBranch } from '../entities/company-branch.entity';
8
- import { ICompanyBranch } from '../interfaces/company-branch.interface';
9
- import { AuthConfigService } from './auth-config.service';
10
- import { AuthDataSourceProvider } from './auth-datasource.provider';
5
+ import { type QueryRunner, SelectQueryBuilder } from 'typeorm';
6
+ import { CreateCompanyBranchDto, UpdateCompanyBranchDto } from '../dtos/company-branch.dto.js';
7
+ import { CompanyBranch } from '../entities/company-branch.entity.js';
8
+ import { type ICompanyBranch } from '../interfaces/company-branch.interface.js';
9
+ import { AuthConfigService } from './auth-config.service.js';
10
+ import { AuthDataSourceProvider } from './auth-datasource.provider.js';
11
11
  export declare class BranchService extends ApiService<CreateCompanyBranchDto, UpdateCompanyBranchDto, ICompanyBranch, CompanyBranch> {
12
12
  protected cacheManager: HybridCache;
13
13
  protected utilsService: UtilsService;