@flusys/nestjs-auth 7.1.0 → 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 (270) hide show
  1. package/README.md +1 -1
  2. package/config/index.d.ts +3 -3
  3. package/config/message-keys.d.ts +2 -0
  4. package/controllers/authentication.controller.d.ts +5 -5
  5. package/controllers/branch.controller.d.ts +2 -2
  6. package/controllers/company-selection.controller.d.ts +4 -4
  7. package/controllers/company.controller.d.ts +2 -2
  8. package/controllers/email-verification.controller.d.ts +6 -6
  9. package/controllers/index.d.ts +9 -9
  10. package/controllers/social-auth-config.controller.d.ts +2 -2
  11. package/controllers/social-auth.controller.d.ts +3 -3
  12. package/controllers/user-permission.controller.d.ts +5 -4
  13. package/controllers/user.controller.d.ts +7 -7
  14. package/docs/auth-swagger.config.d.ts +2 -2
  15. package/docs/index.d.ts +1 -1
  16. package/dtos/index.d.ts +6 -6
  17. package/dtos/social-auth.dto.d.ts +1 -1
  18. package/entities/company-branch.entity.d.ts +1 -1
  19. package/entities/company.entity.d.ts +1 -1
  20. package/entities/index.d.ts +14 -14
  21. package/entities/pending-registration.entity.d.ts +1 -1
  22. package/entities/user-company-permission.entity.d.ts +4 -4
  23. package/enums/index.d.ts +2 -2
  24. package/fesm/118.js +1230 -0
  25. package/fesm/120.js +2197 -0
  26. package/fesm/24.js +4389 -0
  27. package/fesm/370.js +1163 -0
  28. package/fesm/446.js +877 -0
  29. package/fesm/chunks/117.js +69 -0
  30. package/fesm/config/index.js +244 -3
  31. package/fesm/controllers/index.js +27 -9
  32. package/fesm/docs/index.js +479 -1
  33. package/fesm/dtos/index.js +123 -6
  34. package/fesm/entities/index.js +68 -22
  35. package/fesm/enums/index.js +53 -2
  36. package/fesm/helpers/index.js +115 -2
  37. package/fesm/index.js +1437 -13
  38. package/fesm/interceptors/index.js +508 -2
  39. package/fesm/interfaces/index.js +75 -8
  40. package/fesm/modules/index.js +546 -1
  41. package/fesm/runtime.js +134 -0
  42. package/fesm/services/index.js +67 -11
  43. package/helpers/auth-response.mapper.d.ts +3 -3
  44. package/helpers/index.d.ts +2 -2
  45. package/helpers/token.helper.d.ts +2 -2
  46. package/index.d.ts +13 -13
  47. package/interceptors/clear-token.interceptor.d.ts +2 -2
  48. package/interceptors/index.d.ts +2 -2
  49. package/interceptors/set-token.interceptor.d.ts +2 -2
  50. package/interfaces/auth-module-options.interface.d.ts +3 -3
  51. package/interfaces/authentication.interface.d.ts +3 -3
  52. package/interfaces/company-branch.interface.d.ts +2 -2
  53. package/interfaces/company.interface.d.ts +1 -1
  54. package/interfaces/index.d.ts +8 -8
  55. package/interfaces/social-auth.interface.d.ts +2 -2
  56. package/interfaces/user-enricher.interface.d.ts +3 -3
  57. package/modules/auth.module.d.ts +4 -4
  58. package/modules/index.d.ts +1 -1
  59. package/package.json +32 -39
  60. package/providers/facebook.social-provider.d.ts +2 -2
  61. package/providers/google.social-provider.d.ts +2 -2
  62. package/providers/index.d.ts +1 -1
  63. package/providers/linkedin.social-provider.d.ts +2 -2
  64. package/providers/microsoft.social-provider.d.ts +2 -2
  65. package/providers/social-provider.registry.d.ts +2 -2
  66. package/services/auth-config.service.d.ts +3 -3
  67. package/services/auth-datasource.provider.d.ts +3 -3
  68. package/services/auth-email.service.d.ts +3 -3
  69. package/services/authentication.service.d.ts +12 -12
  70. package/services/branch.service.d.ts +7 -7
  71. package/services/company.service.d.ts +6 -6
  72. package/services/index.d.ts +11 -11
  73. package/services/social-auth-config.service.d.ts +6 -6
  74. package/services/social-auth.service.d.ts +5 -5
  75. package/services/user-permission.service.d.ts +8 -4
  76. package/services/user.service.d.ts +7 -7
  77. package/strategies/jwt.strategy.d.ts +4 -4
  78. package/validators/password.validator.d.ts +1 -1
  79. package/cjs/config/auth.constants.js +0 -49
  80. package/cjs/config/event-actions.js +0 -47
  81. package/cjs/config/index.js +0 -20
  82. package/cjs/config/message-keys.js +0 -135
  83. package/cjs/controllers/authentication.controller.js +0 -427
  84. package/cjs/controllers/authentication.controller.spec.js +0 -219
  85. package/cjs/controllers/branch.controller.js +0 -102
  86. package/cjs/controllers/branch.controller.spec.js +0 -134
  87. package/cjs/controllers/company-selection.controller.js +0 -198
  88. package/cjs/controllers/company-selection.controller.spec.js +0 -84
  89. package/cjs/controllers/company.controller.js +0 -102
  90. package/cjs/controllers/company.controller.spec.js +0 -131
  91. package/cjs/controllers/email-verification.controller.js +0 -224
  92. package/cjs/controllers/email-verification.controller.spec.js +0 -142
  93. package/cjs/controllers/index.js +0 -26
  94. package/cjs/controllers/social-auth-config.controller.js +0 -107
  95. package/cjs/controllers/social-auth.controller.js +0 -175
  96. package/cjs/controllers/social-auth.controller.spec.js +0 -79
  97. package/cjs/controllers/user-permission.controller.js +0 -223
  98. package/cjs/controllers/user-permission.controller.spec.js +0 -138
  99. package/cjs/controllers/user.controller.js +0 -438
  100. package/cjs/controllers/user.controller.spec.js +0 -204
  101. package/cjs/docs/auth-swagger.config.js +0 -461
  102. package/cjs/docs/auth-swagger.config.spec.js +0 -130
  103. package/cjs/docs/index.js +0 -18
  104. package/cjs/dtos/authentication.dto.js +0 -755
  105. package/cjs/dtos/company-branch.dto.js +0 -294
  106. package/cjs/dtos/company.dto.js +0 -298
  107. package/cjs/dtos/index.js +0 -23
  108. package/cjs/dtos/social-auth.dto.js +0 -318
  109. package/cjs/dtos/user-permission.dto.js +0 -358
  110. package/cjs/dtos/user.dto.js +0 -413
  111. package/cjs/entities/app-user.entity.js +0 -25
  112. package/cjs/entities/company-branch.entity.js +0 -163
  113. package/cjs/entities/company.entity.js +0 -146
  114. package/cjs/entities/index.js +0 -67
  115. package/cjs/entities/index.spec.js +0 -84
  116. package/cjs/entities/pending-registration.entity.js +0 -135
  117. package/cjs/entities/social-auth-config.entity.js +0 -102
  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 -19
  121. package/cjs/enums/social-provider-type.enum.js +0 -17
  122. package/cjs/enums/user-org-permission-type.enum.js +0 -15
  123. package/cjs/helpers/auth-response.mapper.js +0 -46
  124. package/cjs/helpers/auth-response.mapper.spec.js +0 -139
  125. package/cjs/helpers/index.js +0 -19
  126. package/cjs/helpers/token.helper.js +0 -58
  127. package/cjs/helpers/token.helper.spec.js +0 -86
  128. package/cjs/index.js +0 -30
  129. package/cjs/interceptors/clear-token.interceptor.js +0 -73
  130. package/cjs/interceptors/clear-token.interceptor.spec.js +0 -107
  131. package/cjs/interceptors/index.js +0 -19
  132. package/cjs/interceptors/set-token.interceptor.js +0 -107
  133. package/cjs/interceptors/set-token.interceptor.spec.js +0 -165
  134. package/cjs/interfaces/auth-email-provider.interface.js +0 -45
  135. package/cjs/interfaces/auth-module-options.interface.js +0 -4
  136. package/cjs/interfaces/authentication.interface.js +0 -4
  137. package/cjs/interfaces/company-branch.interface.js +0 -4
  138. package/cjs/interfaces/company.interface.js +0 -4
  139. package/cjs/interfaces/index.js +0 -25
  140. package/cjs/interfaces/social-auth.interface.js +0 -4
  141. package/cjs/interfaces/user-enricher.interface.js +0 -4
  142. package/cjs/interfaces/user.interface.js +0 -4
  143. package/cjs/modules/auth.module.js +0 -208
  144. package/cjs/modules/auth.module.spec.js +0 -258
  145. package/cjs/modules/index.js +0 -18
  146. package/cjs/providers/facebook.social-provider.js +0 -73
  147. package/cjs/providers/google.social-provider.js +0 -68
  148. package/cjs/providers/index.js +0 -18
  149. package/cjs/providers/linkedin.social-provider.js +0 -66
  150. package/cjs/providers/microsoft.social-provider.js +0 -78
  151. package/cjs/providers/oauth-http.util.js +0 -107
  152. package/cjs/providers/social-provider.registry.js +0 -24
  153. package/cjs/providers/social-provider.registry.spec.js +0 -135
  154. package/cjs/services/auth-config.service.js +0 -113
  155. package/cjs/services/auth-config.service.spec.js +0 -100
  156. package/cjs/services/auth-datasource.provider.js +0 -138
  157. package/cjs/services/auth-datasource.provider.spec.js +0 -191
  158. package/cjs/services/auth-email.service.js +0 -539
  159. package/cjs/services/auth-email.service.spec.js +0 -456
  160. package/cjs/services/authentication.service.js +0 -1203
  161. package/cjs/services/authentication.service.spec.js +0 -1020
  162. package/cjs/services/branch.service.js +0 -153
  163. package/cjs/services/branch.service.spec.js +0 -169
  164. package/cjs/services/company-selection-session.service.js +0 -121
  165. package/cjs/services/company-selection-session.service.spec.js +0 -90
  166. package/cjs/services/company.service.js +0 -140
  167. package/cjs/services/company.service.spec.js +0 -127
  168. package/cjs/services/index.js +0 -28
  169. package/cjs/services/social-auth-config.service.js +0 -103
  170. package/cjs/services/social-auth-config.service.spec.js +0 -71
  171. package/cjs/services/social-auth.service.js +0 -310
  172. package/cjs/services/social-auth.service.spec.js +0 -310
  173. package/cjs/services/user-permission.service.js +0 -236
  174. package/cjs/services/user-permission.service.spec.js +0 -254
  175. package/cjs/services/user.service.js +0 -671
  176. package/cjs/services/user.service.spec.js +0 -718
  177. package/cjs/strategies/jwt.strategy.js +0 -140
  178. package/cjs/strategies/jwt.strategy.spec.js +0 -166
  179. package/cjs/validators/password.validator.js +0 -45
  180. package/cjs/validators/password.validator.spec.js +0 -161
  181. package/fesm/config/auth.constants.js +0 -14
  182. package/fesm/config/event-actions.js +0 -26
  183. package/fesm/config/message-keys.js +0 -99
  184. package/fesm/controllers/authentication.controller.js +0 -417
  185. package/fesm/controllers/authentication.controller.spec.js +0 -215
  186. package/fesm/controllers/branch.controller.js +0 -92
  187. package/fesm/controllers/branch.controller.spec.js +0 -130
  188. package/fesm/controllers/company-selection.controller.js +0 -188
  189. package/fesm/controllers/company-selection.controller.spec.js +0 -80
  190. package/fesm/controllers/company.controller.js +0 -92
  191. package/fesm/controllers/company.controller.spec.js +0 -127
  192. package/fesm/controllers/email-verification.controller.js +0 -214
  193. package/fesm/controllers/email-verification.controller.spec.js +0 -138
  194. package/fesm/controllers/social-auth-config.controller.js +0 -97
  195. package/fesm/controllers/social-auth.controller.js +0 -165
  196. package/fesm/controllers/social-auth.controller.spec.js +0 -75
  197. package/fesm/controllers/user-permission.controller.js +0 -213
  198. package/fesm/controllers/user-permission.controller.spec.js +0 -134
  199. package/fesm/controllers/user.controller.js +0 -428
  200. package/fesm/controllers/user.controller.spec.js +0 -200
  201. package/fesm/docs/auth-swagger.config.js +0 -454
  202. package/fesm/docs/auth-swagger.config.spec.js +0 -126
  203. package/fesm/dtos/authentication.dto.js +0 -683
  204. package/fesm/dtos/company-branch.dto.js +0 -279
  205. package/fesm/dtos/company.dto.js +0 -283
  206. package/fesm/dtos/social-auth.dto.js +0 -282
  207. package/fesm/dtos/user-permission.dto.js +0 -339
  208. package/fesm/dtos/user.dto.js +0 -391
  209. package/fesm/entities/app-user.entity.js +0 -15
  210. package/fesm/entities/company-branch.entity.js +0 -153
  211. package/fesm/entities/company.entity.js +0 -136
  212. package/fesm/entities/index.spec.js +0 -80
  213. package/fesm/entities/pending-registration.entity.js +0 -125
  214. package/fesm/entities/social-auth-config.entity.js +0 -92
  215. package/fesm/entities/user-company-permission.entity.js +0 -136
  216. package/fesm/entities/user-token.entity.js +0 -104
  217. package/fesm/enums/social-provider-type.enum.js +0 -7
  218. package/fesm/enums/user-org-permission-type.enum.js +0 -5
  219. package/fesm/helpers/auth-response.mapper.js +0 -25
  220. package/fesm/helpers/auth-response.mapper.spec.js +0 -135
  221. package/fesm/helpers/token.helper.js +0 -40
  222. package/fesm/helpers/token.helper.spec.js +0 -82
  223. package/fesm/interceptors/clear-token.interceptor.js +0 -63
  224. package/fesm/interceptors/clear-token.interceptor.spec.js +0 -103
  225. package/fesm/interceptors/set-token.interceptor.js +0 -98
  226. package/fesm/interceptors/set-token.interceptor.spec.js +0 -161
  227. package/fesm/interfaces/auth-email-provider.interface.js +0 -38
  228. package/fesm/interfaces/auth-module-options.interface.js +0 -3
  229. package/fesm/interfaces/authentication.interface.js +0 -1
  230. package/fesm/interfaces/company-branch.interface.js +0 -1
  231. package/fesm/interfaces/company.interface.js +0 -1
  232. package/fesm/interfaces/social-auth.interface.js +0 -1
  233. package/fesm/interfaces/user-enricher.interface.js +0 -4
  234. package/fesm/interfaces/user.interface.js +0 -1
  235. package/fesm/modules/auth.module.js +0 -198
  236. package/fesm/modules/auth.module.spec.js +0 -254
  237. package/fesm/providers/facebook.social-provider.js +0 -63
  238. package/fesm/providers/google.social-provider.js +0 -58
  239. package/fesm/providers/index.js +0 -1
  240. package/fesm/providers/linkedin.social-provider.js +0 -56
  241. package/fesm/providers/microsoft.social-provider.js +0 -68
  242. package/fesm/providers/oauth-http.util.js +0 -77
  243. package/fesm/providers/social-provider.registry.js +0 -14
  244. package/fesm/providers/social-provider.registry.spec.js +0 -131
  245. package/fesm/services/auth-config.service.js +0 -103
  246. package/fesm/services/auth-config.service.spec.js +0 -96
  247. package/fesm/services/auth-datasource.provider.js +0 -87
  248. package/fesm/services/auth-datasource.provider.spec.js +0 -187
  249. package/fesm/services/auth-email.service.js +0 -488
  250. package/fesm/services/auth-email.service.spec.js +0 -411
  251. package/fesm/services/authentication.service.js +0 -1152
  252. package/fesm/services/authentication.service.spec.js +0 -975
  253. package/fesm/services/branch.service.js +0 -143
  254. package/fesm/services/branch.service.spec.js +0 -165
  255. package/fesm/services/company-selection-session.service.js +0 -111
  256. package/fesm/services/company-selection-session.service.spec.js +0 -86
  257. package/fesm/services/company.service.js +0 -130
  258. package/fesm/services/company.service.spec.js +0 -123
  259. package/fesm/services/social-auth-config.service.js +0 -93
  260. package/fesm/services/social-auth-config.service.spec.js +0 -67
  261. package/fesm/services/social-auth.service.js +0 -300
  262. package/fesm/services/social-auth.service.spec.js +0 -265
  263. package/fesm/services/user-permission.service.js +0 -226
  264. package/fesm/services/user-permission.service.spec.js +0 -250
  265. package/fesm/services/user.service.js +0 -620
  266. package/fesm/services/user.service.spec.js +0 -673
  267. package/fesm/strategies/jwt.strategy.js +0 -130
  268. package/fesm/strategies/jwt.strategy.spec.js +0 -162
  269. package/fesm/validators/password.validator.js +0 -48
  270. package/fesm/validators/password.validator.spec.js +0 -157
@@ -1,461 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "authSwaggerConfig", {
6
- enumerable: true,
7
- get: function() {
8
- return authSwaggerConfig;
9
- }
10
- });
11
- // ============================================================================
12
- // Company feature exclusions
13
- // ============================================================================
14
- const COMPANY_RELATED_TAGS = [
15
- 'Companies',
16
- 'Branches',
17
- 'User Permissions',
18
- 'Company Selection'
19
- ];
20
- const COMPANY_SCHEMA_EXCLUSIONS = [
21
- // Request DTOs
22
- {
23
- schemaName: 'RegistrationDto',
24
- properties: [
25
- 'companySlug',
26
- 'branchSlug',
27
- 'newCompanyName',
28
- 'newCompanyPhone',
29
- 'newCompanyAddress'
30
- ]
31
- },
32
- {
33
- schemaName: 'SelectDto',
34
- properties: [
35
- 'sessionId',
36
- 'companyId',
37
- 'branchId'
38
- ]
39
- },
40
- {
41
- schemaName: 'SwitchCompanyDto',
42
- properties: [
43
- 'companyId',
44
- 'branchId'
45
- ]
46
- },
47
- // Response DTOs
48
- {
49
- schemaName: 'RegistrationResponseDto',
50
- properties: [
51
- 'company',
52
- 'branch'
53
- ]
54
- },
55
- {
56
- schemaName: 'LoginResponseDto',
57
- properties: [
58
- 'company',
59
- 'branch'
60
- ]
61
- },
62
- {
63
- schemaName: 'MeResponseDto',
64
- properties: [
65
- 'company',
66
- 'branch'
67
- ]
68
- },
69
- // Nested helper DTOs
70
- {
71
- schemaName: 'CompanyInfoDto',
72
- properties: [
73
- 'id',
74
- 'name',
75
- 'slug',
76
- 'logoId'
77
- ]
78
- },
79
- {
80
- schemaName: 'BranchInfoDto',
81
- properties: [
82
- 'id',
83
- 'name',
84
- 'slug',
85
- 'logoId'
86
- ]
87
- },
88
- {
89
- schemaName: 'BranchSelectionInfoDto',
90
- properties: [
91
- 'id',
92
- 'name',
93
- 'slug',
94
- 'logoId'
95
- ]
96
- },
97
- {
98
- schemaName: 'CompanyWithBranchesDto',
99
- properties: [
100
- 'id',
101
- 'name',
102
- 'slug',
103
- 'logoId',
104
- 'branches'
105
- ]
106
- },
107
- {
108
- schemaName: 'CompanySelectionResponseDto',
109
- properties: [
110
- 'requiresSelection',
111
- 'sessionId',
112
- 'expiresAt',
113
- 'user',
114
- 'companies'
115
- ]
116
- },
117
- // Company management DTOs
118
- {
119
- schemaName: 'CreateCompanyDto',
120
- properties: [
121
- 'name',
122
- 'slug',
123
- 'logoId',
124
- 'address',
125
- 'phone',
126
- 'email',
127
- 'website',
128
- 'serial',
129
- 'isActive',
130
- 'settings',
131
- 'additionalFields'
132
- ]
133
- },
134
- {
135
- schemaName: 'UpdateCompanyDto',
136
- properties: [
137
- 'id',
138
- 'name',
139
- 'slug',
140
- 'logoId',
141
- 'address',
142
- 'phone',
143
- 'email',
144
- 'website',
145
- 'serial',
146
- 'isActive',
147
- 'settings',
148
- 'additionalFields'
149
- ]
150
- },
151
- {
152
- schemaName: 'CompanyResponseDto',
153
- properties: [
154
- 'id',
155
- 'name',
156
- 'slug',
157
- 'logoId',
158
- 'address',
159
- 'phone',
160
- 'email',
161
- 'website',
162
- 'serial',
163
- 'isActive',
164
- 'settings',
165
- 'additionalFields',
166
- 'readOnly',
167
- 'createdAt',
168
- 'updatedAt'
169
- ]
170
- },
171
- // Branch management DTOs
172
- {
173
- schemaName: 'CreateCompanyBranchDto',
174
- properties: [
175
- 'name',
176
- 'slug',
177
- 'companyId',
178
- 'parentId',
179
- 'logoId',
180
- 'address',
181
- 'phone',
182
- 'email',
183
- 'serial',
184
- 'isActive',
185
- 'additionalFields'
186
- ]
187
- },
188
- {
189
- schemaName: 'UpdateCompanyBranchDto',
190
- properties: [
191
- 'id',
192
- 'name',
193
- 'slug',
194
- 'companyId',
195
- 'parentId',
196
- 'logoId',
197
- 'address',
198
- 'phone',
199
- 'email',
200
- 'serial',
201
- 'isActive',
202
- 'additionalFields'
203
- ]
204
- },
205
- {
206
- schemaName: 'CompanyBranchResponseDto',
207
- properties: [
208
- 'id',
209
- 'name',
210
- 'slug',
211
- 'companyId',
212
- 'parentId',
213
- 'logoId',
214
- 'address',
215
- 'phone',
216
- 'email',
217
- 'serial',
218
- 'isActive',
219
- 'additionalFields',
220
- 'readOnly',
221
- 'createdAt',
222
- 'updatedAt'
223
- ]
224
- },
225
- // User permission DTOs
226
- {
227
- schemaName: 'UserCompanyPermissionDto',
228
- properties: [
229
- 'id',
230
- 'userId',
231
- 'companyId',
232
- 'companyName',
233
- 'companySlug'
234
- ]
235
- },
236
- {
237
- schemaName: 'UserBranchPermissionDto',
238
- properties: [
239
- 'id',
240
- 'userId',
241
- 'branchId',
242
- 'branchName',
243
- 'branchSlug',
244
- 'companyId'
245
- ]
246
- },
247
- {
248
- schemaName: 'AssignUserCompanyDto',
249
- properties: [
250
- 'userId',
251
- 'items'
252
- ]
253
- },
254
- {
255
- schemaName: 'AssignUserBranchDto',
256
- properties: [
257
- 'userId',
258
- 'items'
259
- ]
260
- },
261
- {
262
- schemaName: 'PermissionItemDto',
263
- properties: [
264
- 'targetId',
265
- 'isAdd'
266
- ]
267
- },
268
- {
269
- schemaName: 'UserCompaniesResponseDto',
270
- properties: [
271
- 'data'
272
- ]
273
- },
274
- {
275
- schemaName: 'UserBranchesResponseDto',
276
- properties: [
277
- 'data'
278
- ]
279
- }
280
- ];
281
- const COMPANY_EXAMPLE_EXCLUSIONS = [
282
- {
283
- pathPattern: '/auth/login',
284
- method: 'post',
285
- examples: [
286
- 'loginSuccessWithCompany',
287
- 'companySelection'
288
- ]
289
- }
290
- ];
291
- // ============================================================================
292
- // Email verification exclusions
293
- // ============================================================================
294
- const EMAIL_VERIFICATION_PATHS = [
295
- '/auth/forgot-password',
296
- '/auth/reset-password',
297
- '/auth/resend-verification',
298
- '/auth/verify-email'
299
- ];
300
- const EMAIL_VERIFICATION_SCHEMA_EXCLUSIONS = [
301
- {
302
- schemaName: 'RegistrationResponseDto',
303
- properties: [
304
- 'requiresEmailVerification'
305
- ]
306
- },
307
- {
308
- schemaName: 'LoginResponseRequiresEmailVerificationDto',
309
- properties: [
310
- 'requiresEmailVerification',
311
- 'email'
312
- ]
313
- }
314
- ];
315
- const EMAIL_VERIFICATION_EXAMPLE_EXCLUSIONS = [
316
- {
317
- pathPattern: '/auth/login',
318
- method: 'post',
319
- examples: [
320
- 'emailVerification'
321
- ]
322
- }
323
- ];
324
- // ============================================================================
325
- // Description builder
326
- // ============================================================================
327
- function buildDescription(enableCompanyFeature, enableEmailVerification, isMultiTenant) {
328
- const multiTenantNote = isMultiTenant ? `\n> **Multi-Tenant Mode**: Include \`x-tenant-id\` header to target a specific tenant database.\n` : '';
329
- const features = [
330
- '- User registration',
331
- '- Login with email/password',
332
- '- Social sign-in (Google, Facebook, LinkedIn, Microsoft)',
333
- '- JWT token-based authentication',
334
- ...enableEmailVerification ? [
335
- '- Email verification',
336
- '- Forgot/reset password'
337
- ] : [],
338
- ...enableCompanyFeature ? [
339
- '- Company/Branch selection flow (multi-company enabled)'
340
- ] : [],
341
- '- Token refresh',
342
- '- Password change'
343
- ].join('\n');
344
- const loginFlowSection = enableCompanyFeature ? `
345
- ### Authentication Flow
346
-
347
- #### Simple Login (single company/branch)
348
- \`\`\`
349
- POST /auth/login → { accessToken, refreshToken, user, company, branch }
350
- \`\`\`
351
-
352
- #### Multi-Company Login (multiple companies or branches)
353
- \`\`\`
354
- POST /auth/login → { requiresSelection: true, sessionId, companies }
355
- POST /auth/select → { accessToken, refreshToken, user, company, branch }
356
- \`\`\`
357
- ${enableEmailVerification ? `
358
- #### Email Verification Required
359
- \`\`\`
360
- POST /auth/login → { requiresEmailVerification: true, email }
361
- POST /auth/verify-email → { accessToken, refreshToken, user }
362
- \`\`\`
363
- ` : ''}
364
- ### Company/Branch Selection Endpoints
365
- - \`POST /auth/select\` - Complete login by selecting company and branch
366
- - \`POST /auth/switch-company\` - Switch to different company/branch while logged in
367
- ` : `
368
- ### Authentication Flow
369
- \`\`\`
370
- POST /auth/login → { accessToken, refreshToken, user }
371
- \`\`\`
372
- ${enableEmailVerification ? `
373
- #### Email Verification Required
374
- \`\`\`
375
- POST /auth/login → { requiresEmailVerification: true, email }
376
- POST /auth/verify-email → { accessToken, refreshToken, user }
377
- \`\`\`
378
- ` : ''}`;
379
- const emailVerificationSection = enableEmailVerification ? `
380
- ### Email Verification Endpoints
381
- - \`POST /auth/forgot-password\` - Request password reset email
382
- - \`POST /auth/reset-password\` - Reset password using token
383
- - \`POST /auth/resend-verification\` - Resend verification email
384
- - \`POST /auth/verify-email\` - Verify email using token
385
- ` : '';
386
- const socialSection = `
387
- ### Social Sign-In Endpoints
388
- - \`POST /auth/social/providers\` - List the providers an administrator enabled
389
- - \`POST /auth/social/authorize\` - Start a sign-in and get the provider's consent URL
390
- - \`POST /auth/social/callback\` - Exchange the provider's code for a session
391
- - \`POST /auth/social-config/*\` - Manage provider credentials
392
- `;
393
- const administrationSection = enableCompanyFeature ? `
394
- ### Administration Endpoints
395
- - \`POST /administration/users/*\` - User management
396
- - \`POST /administration/company/*\` - Company management
397
- - \`POST /administration/branch/*\` - Branch management
398
- - \`POST /administration/user-permissions/*\` - User permission management
399
- ` : `
400
- ### Administration Endpoints
401
- - \`POST /administration/users/*\` - User management
402
- `;
403
- const registrationSection = enableCompanyFeature ? `
404
- ### Registration Flow
405
-
406
- **Simple registration:**
407
- \`\`\`json
408
- { "name": "John Doe", "email": "john@example.com", "password": "password123" }
409
- \`\`\`
410
-
411
- **Join existing company:**
412
- \`\`\`json
413
- { "name": "John Doe", "email": "john@example.com", "password": "password123", "companySlug": "acme-corp", "branchSlug": "main-branch" }
414
- \`\`\`
415
-
416
- **Create new company:**
417
- \`\`\`json
418
- { "name": "John Doe", "email": "john@example.com", "password": "password123", "newCompanyName": "My New Company" }
419
- \`\`\`
420
- ` : `
421
- ### Registration Flow
422
- \`\`\`json
423
- { "name": "John Doe", "email": "john@example.com", "password": "password123" }
424
- \`\`\`
425
- `;
426
- return `
427
- ## Authentication API
428
- ${multiTenantNote}
429
- Handles user authentication${enableCompanyFeature ? ', company/branch management' : ''}, and registration.
430
-
431
- ### Features
432
- ${features}
433
- ${loginFlowSection}${emailVerificationSection}${socialSection}${administrationSection}${registrationSection}`;
434
- }
435
- function authSwaggerConfig(bootstrapConfig) {
436
- const enableCompanyFeature = bootstrapConfig?.enableCompanyFeature ?? true;
437
- const enableEmailVerification = bootstrapConfig?.enableEmailVerification ?? true;
438
- const isMultiTenant = bootstrapConfig?.databaseMode === 'multi-tenant';
439
- const excludeTags = enableCompanyFeature ? [] : COMPANY_RELATED_TAGS;
440
- const excludeSchemaProperties = [
441
- ...enableCompanyFeature ? [] : COMPANY_SCHEMA_EXCLUSIONS,
442
- ...enableEmailVerification ? [] : EMAIL_VERIFICATION_SCHEMA_EXCLUSIONS
443
- ];
444
- // Merge example exclusions — both may target /auth/login with different example names
445
- const excludeExamples = [
446
- ...enableCompanyFeature ? [] : COMPANY_EXAMPLE_EXCLUSIONS,
447
- ...enableEmailVerification ? [] : EMAIL_VERIFICATION_EXAMPLE_EXCLUSIONS
448
- ];
449
- const excludePaths = enableEmailVerification ? undefined : EMAIL_VERIFICATION_PATHS;
450
- return {
451
- title: 'Auth API',
452
- description: buildDescription(enableCompanyFeature, enableEmailVerification, isMultiTenant),
453
- version: '1.0',
454
- path: 'api/docs/auth',
455
- bearerAuth: true,
456
- excludeTags,
457
- excludeSchemaProperties: excludeSchemaProperties.length ? excludeSchemaProperties : undefined,
458
- excludeExamples: excludeExamples.length ? excludeExamples : undefined,
459
- excludePaths
460
- };
461
- }
@@ -1,130 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- const _authswaggerconfig = require("./auth-swagger.config");
6
- describe('authSwaggerConfig', ()=>{
7
- it('should default to both features enabled and single-database mode when no config is given', ()=>{
8
- const config = (0, _authswaggerconfig.authSwaggerConfig)();
9
- expect(config.title).toBe('Auth API');
10
- expect(config.path).toBe('api/docs/auth');
11
- expect(config.bearerAuth).toBe(true);
12
- expect(config.excludeTags).toEqual([]);
13
- expect(config.excludeSchemaProperties).toBeUndefined();
14
- expect(config.excludeExamples).toBeUndefined();
15
- expect(config.excludePaths).toBeUndefined();
16
- expect(config.description).not.toContain('Multi-Tenant Mode');
17
- });
18
- it('should exclude company-related tags, schema properties, and examples when the company feature is off', ()=>{
19
- const config = (0, _authswaggerconfig.authSwaggerConfig)({
20
- enableCompanyFeature: false,
21
- databaseMode: 'single'
22
- });
23
- expect(config.excludeTags).toEqual(expect.arrayContaining([
24
- 'Companies',
25
- 'Branches',
26
- 'User Permissions',
27
- 'Company Selection'
28
- ]));
29
- expect(config.excludeSchemaProperties).toEqual(expect.arrayContaining([
30
- expect.objectContaining({
31
- schemaName: 'RegistrationDto'
32
- })
33
- ]));
34
- expect(config.excludeExamples).toEqual(expect.arrayContaining([
35
- expect.objectContaining({
36
- pathPattern: '/auth/login',
37
- examples: [
38
- 'loginSuccessWithCompany',
39
- 'companySelection'
40
- ]
41
- })
42
- ]));
43
- // Email verification is still enabled by default, so its paths must not be excluded
44
- expect(config.excludePaths).toBeUndefined();
45
- });
46
- it('should exclude email-verification paths, schema properties, and examples when disabled', ()=>{
47
- const config = (0, _authswaggerconfig.authSwaggerConfig)({
48
- enableEmailVerification: false
49
- });
50
- expect(config.excludePaths).toEqual([
51
- '/auth/forgot-password',
52
- '/auth/reset-password',
53
- '/auth/resend-verification',
54
- '/auth/verify-email'
55
- ]);
56
- expect(config.excludeSchemaProperties).toEqual(expect.arrayContaining([
57
- expect.objectContaining({
58
- schemaName: 'LoginResponseRequiresEmailVerificationDto'
59
- })
60
- ]));
61
- expect(config.excludeExamples).toEqual(expect.arrayContaining([
62
- expect.objectContaining({
63
- pathPattern: '/auth/login',
64
- examples: [
65
- 'emailVerification'
66
- ]
67
- })
68
- ]));
69
- // Company feature is still enabled by default, so its tags must not be excluded
70
- expect(config.excludeTags).toEqual([]);
71
- });
72
- it('should merge exclusions from both features when both are disabled', ()=>{
73
- const config = (0, _authswaggerconfig.authSwaggerConfig)({
74
- enableCompanyFeature: false,
75
- enableEmailVerification: false
76
- });
77
- expect(config.excludeTags?.length).toBeGreaterThan(0);
78
- expect(config.excludePaths?.length).toBeGreaterThan(0);
79
- // Both feature's schema exclusions should be present together
80
- const schemaNames = config.excludeSchemaProperties?.map((e)=>e.schemaName) ?? [];
81
- expect(schemaNames).toContain('RegistrationDto');
82
- expect(schemaNames).toContain('LoginResponseRequiresEmailVerificationDto');
83
- // Both feature's example exclusions merge onto the same /auth/login path
84
- const loginExclusions = config.excludeExamples?.filter((e)=>e.pathPattern === '/auth/login');
85
- expect(loginExclusions).toHaveLength(2);
86
- });
87
- it('should mention multi-tenant mode in the description only for multi-tenant database mode', ()=>{
88
- const multiTenant = (0, _authswaggerconfig.authSwaggerConfig)({
89
- databaseMode: 'multi-tenant'
90
- });
91
- const single = (0, _authswaggerconfig.authSwaggerConfig)({
92
- databaseMode: 'single'
93
- });
94
- expect(multiTenant.description).toContain('Multi-Tenant Mode');
95
- expect(single.description).not.toContain('Multi-Tenant Mode');
96
- });
97
- it('should describe the multi-company login flow only when the company feature is enabled', ()=>{
98
- const withCompany = (0, _authswaggerconfig.authSwaggerConfig)({
99
- enableCompanyFeature: true
100
- });
101
- const withoutCompany = (0, _authswaggerconfig.authSwaggerConfig)({
102
- enableCompanyFeature: false
103
- });
104
- expect(withCompany.description).toContain('Multi-Company Login');
105
- expect(withCompany.description).toContain('/auth/switch-company');
106
- expect(withoutCompany.description).not.toContain('Multi-Company Login');
107
- expect(withoutCompany.description).not.toContain('/auth/switch-company');
108
- });
109
- it('should describe email verification endpoints only when enabled', ()=>{
110
- const withVerification = (0, _authswaggerconfig.authSwaggerConfig)({
111
- enableEmailVerification: true
112
- });
113
- const withoutVerification = (0, _authswaggerconfig.authSwaggerConfig)({
114
- enableEmailVerification: false
115
- });
116
- expect(withVerification.description).toContain('/auth/forgot-password');
117
- expect(withoutVerification.description).not.toContain('### Email Verification Endpoints');
118
- });
119
- it('should list company administration endpoints only when the company feature is enabled', ()=>{
120
- const withCompany = (0, _authswaggerconfig.authSwaggerConfig)({
121
- enableCompanyFeature: true
122
- });
123
- const withoutCompany = (0, _authswaggerconfig.authSwaggerConfig)({
124
- enableCompanyFeature: false
125
- });
126
- expect(withCompany.description).toContain('/administration/company/*');
127
- expect(withoutCompany.description).not.toContain('/administration/company/*');
128
- expect(withoutCompany.description).toContain('/administration/users/*');
129
- });
130
- });
package/cjs/docs/index.js DELETED
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- _export_star(require("./auth-swagger.config"), exports);
6
- function _export_star(from, to) {
7
- Object.keys(from).forEach(function(k) {
8
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
9
- Object.defineProperty(to, k, {
10
- enumerable: true,
11
- get: function() {
12
- return from[k];
13
- }
14
- });
15
- }
16
- });
17
- return from;
18
- }