@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
package/fesm/370.js ADDED
@@ -0,0 +1,1163 @@
1
+ import * as __rspack_external__nestjs_swagger_7cd450b5 from "@nestjs/swagger";
2
+ import * as __rspack_external_class_transformer_c5a479fb from "class-transformer";
3
+ import * as __rspack_external_class_validator_7b99ef4d from "class-validator";
4
+ export const __rspack_esm_id = 370;
5
+ export const __rspack_esm_ids = [370];
6
+ export const __webpack_modules__ = {
7
+ 8978(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
8
+ /* import */ var _nestjs_swagger__rspack_import_0 = __webpack_require__(6176);
9
+ /* import */ var class_validator__rspack_import_1 = __webpack_require__(5421);
10
+ /* import */ var _validators_password_validator_js__rspack_import_2 = __webpack_require__(3139);
11
+ function _ts_decorate(decorators, target, key, desc) {
12
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
14
+ r = Reflect.decorate(decorators, target, key, desc);
15
+ } else {
16
+ for(var i = decorators.length - 1; i >= 0; i--){
17
+ if (d = decorators[i]) {
18
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19
+ }
20
+ }
21
+ }
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ }
24
+ function _ts_metadata(metadataKey, metadataValue) {
25
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
26
+ return Reflect.metadata(metadataKey, metadataValue);
27
+ }
28
+ }
29
+
30
+
31
+
32
+ class LoginDto {
33
+ email;
34
+ password;
35
+ }
36
+ _ts_decorate([
37
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
38
+ example: 'sfd.mhrana@gmail.com',
39
+ description: 'User email address'
40
+ }),
41
+ (0,class_validator__rspack_import_1.IsEmail)(),
42
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
43
+ _ts_metadata("design:type", String)
44
+ ], LoginDto.prototype, "email", void 0);
45
+ _ts_decorate([
46
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
47
+ example: 'SecureP@ss1',
48
+ description: 'User password'
49
+ }),
50
+ (0,class_validator__rspack_import_1.IsString)(),
51
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
52
+ (0,class_validator__rspack_import_1.MaxLength)(128),
53
+ _ts_metadata("design:type", String)
54
+ ], LoginDto.prototype, "password", void 0);
55
+ class RegistrationDto {
56
+ name;
57
+ email;
58
+ password;
59
+ phone;
60
+ companySlug;
61
+ branchSlug;
62
+ newCompanyName;
63
+ newCompanyPhone;
64
+ newCompanyAddress;
65
+ additionalFields;
66
+ }
67
+ _ts_decorate([
68
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
69
+ example: 'John Doe',
70
+ description: 'Full name of the user'
71
+ }),
72
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
73
+ (0,class_validator__rspack_import_1.IsString)(),
74
+ (0,class_validator__rspack_import_1.MaxLength)(255),
75
+ _ts_metadata("design:type", String)
76
+ ], RegistrationDto.prototype, "name", void 0);
77
+ _ts_decorate([
78
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
79
+ example: 'john@example.com',
80
+ description: 'Email address'
81
+ }),
82
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
83
+ (0,class_validator__rspack_import_1.IsEmail)(),
84
+ _ts_metadata("design:type", String)
85
+ ], RegistrationDto.prototype, "email", void 0);
86
+ _ts_decorate([
87
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
88
+ example: 'StrongP@ss123',
89
+ description: 'Password (min 8 chars, requires uppercase, lowercase, number, special char)'
90
+ }),
91
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
92
+ (0,class_validator__rspack_import_1.IsString)(),
93
+ (0,_validators_password_validator_js__rspack_import_2/* .IsStrongPassword */.H)(),
94
+ (0,class_validator__rspack_import_1.MaxLength)(128),
95
+ _ts_metadata("design:type", String)
96
+ ], RegistrationDto.prototype, "password", void 0);
97
+ _ts_decorate([
98
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
99
+ example: '+1234567890',
100
+ description: 'Phone number'
101
+ }),
102
+ (0,class_validator__rspack_import_1.IsOptional)(),
103
+ (0,class_validator__rspack_import_1.IsString)(),
104
+ (0,class_validator__rspack_import_1.MaxLength)(50),
105
+ _ts_metadata("design:type", String)
106
+ ], RegistrationDto.prototype, "phone", void 0);
107
+ _ts_decorate([
108
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
109
+ example: 'acme-corp',
110
+ description: 'Slug of the company to join (when joining existing company)'
111
+ }),
112
+ (0,class_validator__rspack_import_1.IsOptional)(),
113
+ (0,class_validator__rspack_import_1.IsString)(),
114
+ (0,class_validator__rspack_import_1.MaxLength)(255),
115
+ _ts_metadata("design:type", String)
116
+ ], RegistrationDto.prototype, "companySlug", void 0);
117
+ _ts_decorate([
118
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
119
+ example: 'main-branch',
120
+ description: 'Slug of the branch to join (optional)'
121
+ }),
122
+ (0,class_validator__rspack_import_1.IsOptional)(),
123
+ (0,class_validator__rspack_import_1.IsString)(),
124
+ (0,class_validator__rspack_import_1.MaxLength)(255),
125
+ _ts_metadata("design:type", String)
126
+ ], RegistrationDto.prototype, "branchSlug", void 0);
127
+ _ts_decorate([
128
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
129
+ example: 'My Company',
130
+ description: 'Name of new company to create'
131
+ }),
132
+ (0,class_validator__rspack_import_1.ValidateIf)((o)=>!o.companySlug),
133
+ (0,class_validator__rspack_import_1.IsOptional)(),
134
+ (0,class_validator__rspack_import_1.IsString)(),
135
+ (0,class_validator__rspack_import_1.MaxLength)(255),
136
+ _ts_metadata("design:type", String)
137
+ ], RegistrationDto.prototype, "newCompanyName", void 0);
138
+ _ts_decorate([
139
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
140
+ example: '+1234567890',
141
+ description: 'Phone number for new company'
142
+ }),
143
+ (0,class_validator__rspack_import_1.IsOptional)(),
144
+ (0,class_validator__rspack_import_1.IsString)(),
145
+ (0,class_validator__rspack_import_1.MaxLength)(50),
146
+ _ts_metadata("design:type", String)
147
+ ], RegistrationDto.prototype, "newCompanyPhone", void 0);
148
+ _ts_decorate([
149
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
150
+ example: '123 Main St, City',
151
+ description: 'Address for new company'
152
+ }),
153
+ (0,class_validator__rspack_import_1.IsOptional)(),
154
+ (0,class_validator__rspack_import_1.IsString)(),
155
+ (0,class_validator__rspack_import_1.MaxLength)(500),
156
+ _ts_metadata("design:type", String)
157
+ ], RegistrationDto.prototype, "newCompanyAddress", void 0);
158
+ _ts_decorate([
159
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
160
+ example: {
161
+ prevCompanyName: 'Acme Corp',
162
+ employeeId: 'EMP001'
163
+ },
164
+ description: 'Additional fields for profile extension (handled by USER_ENRICHER)'
165
+ }),
166
+ (0,class_validator__rspack_import_1.IsOptional)(),
167
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
168
+ ], RegistrationDto.prototype, "additionalFields", void 0);
169
+ class RefreshTokenDto {
170
+ refreshToken;
171
+ }
172
+ _ts_decorate([
173
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
174
+ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
175
+ description: 'Refresh token (optional for browsers - sent via cookie)'
176
+ }),
177
+ (0,class_validator__rspack_import_1.IsOptional)(),
178
+ (0,class_validator__rspack_import_1.IsString)(),
179
+ _ts_metadata("design:type", String)
180
+ ], RefreshTokenDto.prototype, "refreshToken", void 0);
181
+ class ChangePasswordDto {
182
+ currentPassword;
183
+ newPassword;
184
+ }
185
+ _ts_decorate([
186
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
187
+ example: 'oldPassword123',
188
+ description: 'Current password'
189
+ }),
190
+ (0,class_validator__rspack_import_1.IsString)(),
191
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
192
+ (0,class_validator__rspack_import_1.MaxLength)(128),
193
+ _ts_metadata("design:type", String)
194
+ ], ChangePasswordDto.prototype, "currentPassword", void 0);
195
+ _ts_decorate([
196
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
197
+ example: 'NewP@ssword456',
198
+ description: 'New password (min 8 chars, requires uppercase, lowercase, number, special char)'
199
+ }),
200
+ (0,class_validator__rspack_import_1.IsString)(),
201
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
202
+ (0,_validators_password_validator_js__rspack_import_2/* .IsStrongPassword */.H)(),
203
+ _ts_metadata("design:type", String)
204
+ ], ChangePasswordDto.prototype, "newPassword", void 0);
205
+ class SelectDto {
206
+ sessionId;
207
+ companyId;
208
+ branchId;
209
+ }
210
+ _ts_decorate([
211
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
212
+ example: 'sess_abc123def456',
213
+ description: 'Session ID from login response'
214
+ }),
215
+ (0,class_validator__rspack_import_1.IsString)(),
216
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
217
+ _ts_metadata("design:type", String)
218
+ ], SelectDto.prototype, "sessionId", void 0);
219
+ _ts_decorate([
220
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
221
+ example: '550e8400-e29b-41d4-a716-446655440001',
222
+ description: 'Company ID to select'
223
+ }),
224
+ (0,class_validator__rspack_import_1.IsUUID)(),
225
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
226
+ _ts_metadata("design:type", String)
227
+ ], SelectDto.prototype, "companyId", void 0);
228
+ _ts_decorate([
229
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
230
+ example: '550e8400-e29b-41d4-a716-446655440002',
231
+ description: 'Branch ID to select'
232
+ }),
233
+ (0,class_validator__rspack_import_1.IsUUID)(),
234
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
235
+ _ts_metadata("design:type", String)
236
+ ], SelectDto.prototype, "branchId", void 0);
237
+ class SwitchCompanyDto {
238
+ companyId;
239
+ branchId;
240
+ }
241
+ _ts_decorate([
242
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
243
+ example: '550e8400-e29b-41d4-a716-446655440001',
244
+ description: 'Company ID to switch to'
245
+ }),
246
+ (0,class_validator__rspack_import_1.IsUUID)(),
247
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
248
+ _ts_metadata("design:type", String)
249
+ ], SwitchCompanyDto.prototype, "companyId", void 0);
250
+ _ts_decorate([
251
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
252
+ example: '550e8400-e29b-41d4-a716-446655440002',
253
+ description: 'Branch ID to switch to'
254
+ }),
255
+ (0,class_validator__rspack_import_1.IsUUID)(),
256
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
257
+ _ts_metadata("design:type", String)
258
+ ], SwitchCompanyDto.prototype, "branchId", void 0);
259
+ class UserInfoDto {
260
+ id;
261
+ email;
262
+ name;
263
+ profilePictureId;
264
+ }
265
+ _ts_decorate([
266
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
267
+ example: '550e8400-e29b-41d4-a716-446655440000'
268
+ }),
269
+ _ts_metadata("design:type", String)
270
+ ], UserInfoDto.prototype, "id", void 0);
271
+ _ts_decorate([
272
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
273
+ example: 'john@example.com'
274
+ }),
275
+ _ts_metadata("design:type", String)
276
+ ], UserInfoDto.prototype, "email", void 0);
277
+ _ts_decorate([
278
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
279
+ example: 'John Doe'
280
+ }),
281
+ _ts_metadata("design:type", String)
282
+ ], UserInfoDto.prototype, "name", void 0);
283
+ _ts_decorate([
284
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
285
+ example: '550e8400-e29b-41d4-a716-446655440099',
286
+ description: 'Profile picture file ID',
287
+ nullable: true
288
+ }),
289
+ _ts_metadata("design:type", Object)
290
+ ], UserInfoDto.prototype, "profilePictureId", void 0);
291
+ class CompanyInfoDto {
292
+ id;
293
+ name;
294
+ slug;
295
+ logoId;
296
+ }
297
+ _ts_decorate([
298
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
299
+ example: '550e8400-e29b-41d4-a716-446655440001'
300
+ }),
301
+ _ts_metadata("design:type", String)
302
+ ], CompanyInfoDto.prototype, "id", void 0);
303
+ _ts_decorate([
304
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
305
+ example: 'Acme Corporation'
306
+ }),
307
+ _ts_metadata("design:type", String)
308
+ ], CompanyInfoDto.prototype, "name", void 0);
309
+ _ts_decorate([
310
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
311
+ example: 'acme-corp'
312
+ }),
313
+ _ts_metadata("design:type", String)
314
+ ], CompanyInfoDto.prototype, "slug", void 0);
315
+ _ts_decorate([
316
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
317
+ example: '550e8400-e29b-41d4-a716-446655440088',
318
+ description: 'Company logo file ID',
319
+ nullable: true
320
+ }),
321
+ _ts_metadata("design:type", Object)
322
+ ], CompanyInfoDto.prototype, "logoId", void 0);
323
+ class BranchInfoDto {
324
+ id;
325
+ name;
326
+ slug;
327
+ logoId;
328
+ }
329
+ _ts_decorate([
330
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
331
+ example: '550e8400-e29b-41d4-a716-446655440002'
332
+ }),
333
+ _ts_metadata("design:type", String)
334
+ ], BranchInfoDto.prototype, "id", void 0);
335
+ _ts_decorate([
336
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
337
+ example: 'Main Branch'
338
+ }),
339
+ _ts_metadata("design:type", String)
340
+ ], BranchInfoDto.prototype, "name", void 0);
341
+ _ts_decorate([
342
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
343
+ example: 'main-branch'
344
+ }),
345
+ _ts_metadata("design:type", String)
346
+ ], BranchInfoDto.prototype, "slug", void 0);
347
+ _ts_decorate([
348
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
349
+ example: '550e8400-e29b-41d4-a716-446655440077',
350
+ description: 'Branch logo file ID',
351
+ nullable: true
352
+ }),
353
+ _ts_metadata("design:type", Object)
354
+ ], BranchInfoDto.prototype, "logoId", void 0);
355
+ class BranchSelectionInfoDto {
356
+ id;
357
+ name;
358
+ slug;
359
+ logoId;
360
+ }
361
+ _ts_decorate([
362
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
363
+ example: '550e8400-e29b-41d4-a716-446655440002'
364
+ }),
365
+ _ts_metadata("design:type", String)
366
+ ], BranchSelectionInfoDto.prototype, "id", void 0);
367
+ _ts_decorate([
368
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
369
+ example: 'Main Branch'
370
+ }),
371
+ _ts_metadata("design:type", String)
372
+ ], BranchSelectionInfoDto.prototype, "name", void 0);
373
+ _ts_decorate([
374
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
375
+ example: 'main-branch'
376
+ }),
377
+ _ts_metadata("design:type", String)
378
+ ], BranchSelectionInfoDto.prototype, "slug", void 0);
379
+ _ts_decorate([
380
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
381
+ example: '550e8400-e29b-41d4-a716-446655440077',
382
+ description: 'Branch logo file ID',
383
+ nullable: true
384
+ }),
385
+ _ts_metadata("design:type", Object)
386
+ ], BranchSelectionInfoDto.prototype, "logoId", void 0);
387
+ class CompanyWithBranchesDto {
388
+ id;
389
+ name;
390
+ slug;
391
+ logoId;
392
+ branches;
393
+ }
394
+ _ts_decorate([
395
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
396
+ example: '550e8400-e29b-41d4-a716-446655440001'
397
+ }),
398
+ _ts_metadata("design:type", String)
399
+ ], CompanyWithBranchesDto.prototype, "id", void 0);
400
+ _ts_decorate([
401
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
402
+ example: 'Acme Corporation'
403
+ }),
404
+ _ts_metadata("design:type", String)
405
+ ], CompanyWithBranchesDto.prototype, "name", void 0);
406
+ _ts_decorate([
407
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
408
+ example: 'acme-corp'
409
+ }),
410
+ _ts_metadata("design:type", String)
411
+ ], CompanyWithBranchesDto.prototype, "slug", void 0);
412
+ _ts_decorate([
413
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
414
+ example: '550e8400-e29b-41d4-a716-446655440088',
415
+ description: 'Company logo file ID',
416
+ nullable: true
417
+ }),
418
+ _ts_metadata("design:type", Object)
419
+ ], CompanyWithBranchesDto.prototype, "logoId", void 0);
420
+ _ts_decorate([
421
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
422
+ type: [
423
+ BranchSelectionInfoDto
424
+ ],
425
+ description: 'Available branches'
426
+ }),
427
+ _ts_metadata("design:type", Array)
428
+ ], CompanyWithBranchesDto.prototype, "branches", void 0);
429
+ class LoginResponseDto {
430
+ accessToken;
431
+ refreshToken;
432
+ user;
433
+ company;
434
+ branch;
435
+ }
436
+ _ts_decorate([
437
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
438
+ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
439
+ }),
440
+ _ts_metadata("design:type", String)
441
+ ], LoginResponseDto.prototype, "accessToken", void 0);
442
+ _ts_decorate([
443
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
444
+ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
445
+ }),
446
+ _ts_metadata("design:type", String)
447
+ ], LoginResponseDto.prototype, "refreshToken", void 0);
448
+ _ts_decorate([
449
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
450
+ type: UserInfoDto,
451
+ description: 'Logged in user information'
452
+ }),
453
+ _ts_metadata("design:type", typeof UserInfoDto === "undefined" ? Object : UserInfoDto)
454
+ ], LoginResponseDto.prototype, "user", void 0);
455
+ _ts_decorate([
456
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
457
+ type: CompanyInfoDto,
458
+ description: 'Selected company information'
459
+ }),
460
+ _ts_metadata("design:type", typeof CompanyInfoDto === "undefined" ? Object : CompanyInfoDto)
461
+ ], LoginResponseDto.prototype, "company", void 0);
462
+ _ts_decorate([
463
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
464
+ type: BranchInfoDto,
465
+ description: 'Selected branch information'
466
+ }),
467
+ _ts_metadata("design:type", typeof BranchInfoDto === "undefined" ? Object : BranchInfoDto)
468
+ ], LoginResponseDto.prototype, "branch", void 0);
469
+ class RegistrationResponseDto {
470
+ accessToken;
471
+ refreshToken;
472
+ user;
473
+ company;
474
+ branch;
475
+ requiresEmailVerification;
476
+ }
477
+ _ts_decorate([
478
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
479
+ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
480
+ }),
481
+ _ts_metadata("design:type", String)
482
+ ], RegistrationResponseDto.prototype, "accessToken", void 0);
483
+ _ts_decorate([
484
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
485
+ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
486
+ }),
487
+ _ts_metadata("design:type", String)
488
+ ], RegistrationResponseDto.prototype, "refreshToken", void 0);
489
+ _ts_decorate([
490
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
491
+ type: UserInfoDto,
492
+ description: 'Registered user information'
493
+ }),
494
+ _ts_metadata("design:type", typeof UserInfoDto === "undefined" ? Object : UserInfoDto)
495
+ ], RegistrationResponseDto.prototype, "user", void 0);
496
+ _ts_decorate([
497
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
498
+ type: CompanyInfoDto,
499
+ description: 'Company information (if assigned)'
500
+ }),
501
+ _ts_metadata("design:type", typeof CompanyInfoDto === "undefined" ? Object : CompanyInfoDto)
502
+ ], RegistrationResponseDto.prototype, "company", void 0);
503
+ _ts_decorate([
504
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
505
+ type: BranchInfoDto,
506
+ description: 'Branch information (if assigned)'
507
+ }),
508
+ _ts_metadata("design:type", typeof BranchInfoDto === "undefined" ? Object : BranchInfoDto)
509
+ ], RegistrationResponseDto.prototype, "branch", void 0);
510
+ _ts_decorate([
511
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
512
+ example: true,
513
+ description: 'Whether email verification is required'
514
+ }),
515
+ _ts_metadata("design:type", Boolean)
516
+ ], RegistrationResponseDto.prototype, "requiresEmailVerification", void 0);
517
+ class MeResponseDto {
518
+ user;
519
+ company;
520
+ branch;
521
+ }
522
+ _ts_decorate([
523
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
524
+ type: UserInfoDto,
525
+ description: 'Current user information'
526
+ }),
527
+ _ts_metadata("design:type", typeof UserInfoDto === "undefined" ? Object : UserInfoDto)
528
+ ], MeResponseDto.prototype, "user", void 0);
529
+ _ts_decorate([
530
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
531
+ type: CompanyInfoDto,
532
+ description: 'Selected company (only when company feature is enabled)'
533
+ }),
534
+ _ts_metadata("design:type", typeof CompanyInfoDto === "undefined" ? Object : CompanyInfoDto)
535
+ ], MeResponseDto.prototype, "company", void 0);
536
+ _ts_decorate([
537
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
538
+ type: BranchInfoDto,
539
+ description: 'Selected branch (only when company feature is enabled)'
540
+ }),
541
+ _ts_metadata("design:type", typeof BranchInfoDto === "undefined" ? Object : BranchInfoDto)
542
+ ], MeResponseDto.prototype, "branch", void 0);
543
+ class CompanySelectionResponseDto {
544
+ requiresSelection;
545
+ sessionId;
546
+ expiresAt;
547
+ user;
548
+ companies;
549
+ }
550
+ _ts_decorate([
551
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
552
+ example: true,
553
+ description: 'Indicates selection is required'
554
+ }),
555
+ _ts_metadata("design:type", Boolean)
556
+ ], CompanySelectionResponseDto.prototype, "requiresSelection", void 0);
557
+ _ts_decorate([
558
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
559
+ example: 'sess_abc123def456',
560
+ description: 'Session ID for the select request'
561
+ }),
562
+ _ts_metadata("design:type", String)
563
+ ], CompanySelectionResponseDto.prototype, "sessionId", void 0);
564
+ _ts_decorate([
565
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
566
+ example: '2024-12-18T15:30:00.000Z',
567
+ description: 'Session expiration time'
568
+ }),
569
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
570
+ ], CompanySelectionResponseDto.prototype, "expiresAt", void 0);
571
+ _ts_decorate([
572
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
573
+ type: UserInfoDto,
574
+ description: 'Authenticated user information'
575
+ }),
576
+ _ts_metadata("design:type", typeof UserInfoDto === "undefined" ? Object : UserInfoDto)
577
+ ], CompanySelectionResponseDto.prototype, "user", void 0);
578
+ _ts_decorate([
579
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
580
+ type: [
581
+ CompanyWithBranchesDto
582
+ ],
583
+ description: 'Available companies with their branches to select from'
584
+ }),
585
+ _ts_metadata("design:type", Array)
586
+ ], CompanySelectionResponseDto.prototype, "companies", void 0);
587
+ class LoginResponseRequiresEmailVerificationDto {
588
+ requiresEmailVerification;
589
+ email;
590
+ }
591
+ _ts_decorate([
592
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
593
+ example: true
594
+ }),
595
+ _ts_metadata("design:type", Boolean)
596
+ ], LoginResponseRequiresEmailVerificationDto.prototype, "requiresEmailVerification", void 0);
597
+ _ts_decorate([
598
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
599
+ example: 'john@example.com'
600
+ }),
601
+ _ts_metadata("design:type", String)
602
+ ], LoginResponseRequiresEmailVerificationDto.prototype, "email", void 0);
603
+ class ForgotPasswordDto {
604
+ email;
605
+ }
606
+ _ts_decorate([
607
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
608
+ example: 'john@example.com',
609
+ description: 'Email address to send reset link to'
610
+ }),
611
+ (0,class_validator__rspack_import_1.IsEmail)(),
612
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
613
+ _ts_metadata("design:type", String)
614
+ ], ForgotPasswordDto.prototype, "email", void 0);
615
+ class ResetPasswordDto {
616
+ token;
617
+ newPassword;
618
+ }
619
+ _ts_decorate([
620
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
621
+ example: 'a1b2c3d4e5f6...',
622
+ description: 'Password reset token from email'
623
+ }),
624
+ (0,class_validator__rspack_import_1.IsString)(),
625
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
626
+ _ts_metadata("design:type", String)
627
+ ], ResetPasswordDto.prototype, "token", void 0);
628
+ _ts_decorate([
629
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
630
+ example: 'NewSecureP@ss123',
631
+ description: 'New password (min 8 chars, requires uppercase, lowercase, number, special char)'
632
+ }),
633
+ (0,class_validator__rspack_import_1.IsString)(),
634
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
635
+ (0,_validators_password_validator_js__rspack_import_2/* .IsStrongPassword */.H)(),
636
+ _ts_metadata("design:type", String)
637
+ ], ResetPasswordDto.prototype, "newPassword", void 0);
638
+ class VerifyEmailDto {
639
+ token;
640
+ }
641
+ _ts_decorate([
642
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
643
+ example: 'a1b2c3d4e5f6...',
644
+ description: 'Email verification token from email'
645
+ }),
646
+ (0,class_validator__rspack_import_1.IsString)(),
647
+ (0,class_validator__rspack_import_1.IsNotEmpty)(),
648
+ _ts_metadata("design:type", String)
649
+ ], VerifyEmailDto.prototype, "token", void 0);
650
+ class ResendVerificationDto extends ForgotPasswordDto {
651
+ }
652
+
653
+ __webpack_require__.d(__webpack_exports__, {
654
+ $h: () => (ChangePasswordDto),
655
+ G3: () => (BranchSelectionInfoDto),
656
+ Oz: () => (ResendVerificationDto),
657
+ RQ: () => (SwitchCompanyDto),
658
+ TF: () => (CompanyWithBranchesDto),
659
+ UQ: () => (BranchInfoDto),
660
+ US: () => (ResetPasswordDto),
661
+ _M: () => (RegistrationResponseDto),
662
+ aZ: () => (SelectDto),
663
+ dp: () => (UserInfoDto),
664
+ fF: () => (CompanyInfoDto),
665
+ gw: () => (LoginResponseDto),
666
+ iJ: () => (CompanySelectionResponseDto),
667
+ k2: () => (RefreshTokenDto),
668
+ mG: () => (ForgotPasswordDto),
669
+ pb: () => (LoginDto),
670
+ rl: () => (VerifyEmailDto),
671
+ rn: () => (LoginResponseRequiresEmailVerificationDto),
672
+ vb: () => (MeResponseDto),
673
+ xG: () => (RegistrationDto)
674
+ });
675
+
676
+
677
+ },
678
+ 7265(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
679
+ /* import */ var _nestjs_swagger__rspack_import_0 = __webpack_require__(6176);
680
+ /* import */ var class_transformer__rspack_import_1 = __webpack_require__(5812);
681
+ /* import */ var class_validator__rspack_import_2 = __webpack_require__(5421);
682
+ /* import */ var _validators_password_validator_js__rspack_import_3 = __webpack_require__(3139);
683
+ function _ts_decorate(decorators, target, key, desc) {
684
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
685
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
686
+ r = Reflect.decorate(decorators, target, key, desc);
687
+ } else {
688
+ for(var i = decorators.length - 1; i >= 0; i--){
689
+ if (d = decorators[i]) {
690
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
691
+ }
692
+ }
693
+ }
694
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
695
+ }
696
+ function _ts_metadata(metadataKey, metadataValue) {
697
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
698
+ return Reflect.metadata(metadataKey, metadataValue);
699
+ }
700
+ }
701
+
702
+
703
+
704
+
705
+ class CreateUserDto {
706
+ name;
707
+ phone;
708
+ email;
709
+ password;
710
+ profilePictureId;
711
+ isActive;
712
+ emailVerified;
713
+ phoneVerified;
714
+ additionalFields;
715
+ }
716
+ _ts_decorate([
717
+ (0,class_transformer__rspack_import_1.Expose)(),
718
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
719
+ example: 'John Doe',
720
+ description: 'Full name'
721
+ }),
722
+ (0,class_validator__rspack_import_2.IsString)(),
723
+ _ts_metadata("design:type", String)
724
+ ], CreateUserDto.prototype, "name", void 0);
725
+ _ts_decorate([
726
+ (0,class_transformer__rspack_import_1.Expose)(),
727
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
728
+ example: '+1234567890',
729
+ description: 'Phone number'
730
+ }),
731
+ (0,class_validator__rspack_import_2.IsOptional)(),
732
+ (0,class_validator__rspack_import_2.IsString)(),
733
+ _ts_metadata("design:type", String)
734
+ ], CreateUserDto.prototype, "phone", void 0);
735
+ _ts_decorate([
736
+ (0,class_transformer__rspack_import_1.Expose)(),
737
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
738
+ example: 'john@example.com',
739
+ description: 'Email address'
740
+ }),
741
+ (0,class_validator__rspack_import_2.IsEmail)(),
742
+ _ts_metadata("design:type", String)
743
+ ], CreateUserDto.prototype, "email", void 0);
744
+ _ts_decorate([
745
+ (0,class_transformer__rspack_import_1.Expose)(),
746
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
747
+ example: 'SecureP@ss123',
748
+ description: 'Password (must meet complexity requirements)'
749
+ }),
750
+ (0,class_validator__rspack_import_2.IsString)(),
751
+ (0,class_validator__rspack_import_2.IsNotEmpty)(),
752
+ (0,_validators_password_validator_js__rspack_import_3/* .IsStrongPassword */.H)(),
753
+ (0,class_validator__rspack_import_2.MaxLength)(128),
754
+ _ts_metadata("design:type", String)
755
+ ], CreateUserDto.prototype, "password", void 0);
756
+ _ts_decorate([
757
+ (0,class_transformer__rspack_import_1.Expose)(),
758
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
759
+ description: 'Profile picture file ID'
760
+ }),
761
+ (0,class_validator__rspack_import_2.IsOptional)(),
762
+ (0,class_validator__rspack_import_2.IsString)(),
763
+ _ts_metadata("design:type", String)
764
+ ], CreateUserDto.prototype, "profilePictureId", void 0);
765
+ _ts_decorate([
766
+ (0,class_transformer__rspack_import_1.Expose)(),
767
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
768
+ default: true,
769
+ description: 'Is user active'
770
+ }),
771
+ (0,class_validator__rspack_import_2.IsOptional)(),
772
+ (0,class_validator__rspack_import_2.IsBoolean)(),
773
+ _ts_metadata("design:type", Boolean)
774
+ ], CreateUserDto.prototype, "isActive", void 0);
775
+ _ts_decorate([
776
+ (0,class_transformer__rspack_import_1.Expose)(),
777
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
778
+ default: false,
779
+ description: 'Is email verified'
780
+ }),
781
+ (0,class_validator__rspack_import_2.IsOptional)(),
782
+ (0,class_validator__rspack_import_2.IsBoolean)(),
783
+ _ts_metadata("design:type", Boolean)
784
+ ], CreateUserDto.prototype, "emailVerified", void 0);
785
+ _ts_decorate([
786
+ (0,class_transformer__rspack_import_1.Expose)(),
787
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
788
+ default: false,
789
+ description: 'Is phone verified'
790
+ }),
791
+ (0,class_validator__rspack_import_2.IsOptional)(),
792
+ (0,class_validator__rspack_import_2.IsBoolean)(),
793
+ _ts_metadata("design:type", Boolean)
794
+ ], CreateUserDto.prototype, "phoneVerified", void 0);
795
+ _ts_decorate([
796
+ (0,class_transformer__rspack_import_1.Expose)(),
797
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
798
+ description: 'Additional custom fields'
799
+ }),
800
+ (0,class_validator__rspack_import_2.IsOptional)(),
801
+ (0,class_validator__rspack_import_2.IsObject)(),
802
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
803
+ ], CreateUserDto.prototype, "additionalFields", void 0);
804
+ class UpdateUserDto {
805
+ id;
806
+ name;
807
+ phone;
808
+ email;
809
+ password;
810
+ oldPassword;
811
+ profilePictureId;
812
+ isActive;
813
+ emailVerified;
814
+ phoneVerified;
815
+ additionalFields;
816
+ }
817
+ _ts_decorate([
818
+ (0,class_transformer__rspack_import_1.Expose)(),
819
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
820
+ description: 'User ID'
821
+ }),
822
+ (0,class_validator__rspack_import_2.IsUUID)(),
823
+ _ts_metadata("design:type", String)
824
+ ], UpdateUserDto.prototype, "id", void 0);
825
+ _ts_decorate([
826
+ (0,class_transformer__rspack_import_1.Expose)(),
827
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
828
+ example: 'John Doe',
829
+ description: 'Full name'
830
+ }),
831
+ (0,class_validator__rspack_import_2.IsOptional)(),
832
+ (0,class_validator__rspack_import_2.IsString)(),
833
+ _ts_metadata("design:type", String)
834
+ ], UpdateUserDto.prototype, "name", void 0);
835
+ _ts_decorate([
836
+ (0,class_transformer__rspack_import_1.Expose)(),
837
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
838
+ example: '+1234567890',
839
+ description: 'Phone number'
840
+ }),
841
+ (0,class_validator__rspack_import_2.IsOptional)(),
842
+ (0,class_validator__rspack_import_2.IsString)(),
843
+ _ts_metadata("design:type", String)
844
+ ], UpdateUserDto.prototype, "phone", void 0);
845
+ _ts_decorate([
846
+ (0,class_transformer__rspack_import_1.Expose)(),
847
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
848
+ example: 'john@example.com',
849
+ description: 'Email address'
850
+ }),
851
+ (0,class_validator__rspack_import_2.IsOptional)(),
852
+ (0,class_validator__rspack_import_2.IsEmail)(),
853
+ _ts_metadata("design:type", String)
854
+ ], UpdateUserDto.prototype, "email", void 0);
855
+ _ts_decorate([
856
+ (0,class_transformer__rspack_import_1.Expose)(),
857
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
858
+ description: 'New password (must meet complexity requirements)'
859
+ }),
860
+ (0,class_validator__rspack_import_2.IsOptional)(),
861
+ (0,class_validator__rspack_import_2.IsString)(),
862
+ (0,_validators_password_validator_js__rspack_import_3/* .IsStrongPassword */.H)(),
863
+ (0,class_validator__rspack_import_2.MaxLength)(128),
864
+ _ts_metadata("design:type", String)
865
+ ], UpdateUserDto.prototype, "password", void 0);
866
+ _ts_decorate([
867
+ (0,class_transformer__rspack_import_1.Expose)(),
868
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
869
+ description: 'Current password (required when changing password on own profile)'
870
+ }),
871
+ (0,class_validator__rspack_import_2.IsOptional)(),
872
+ (0,class_validator__rspack_import_2.IsString)(),
873
+ _ts_metadata("design:type", String)
874
+ ], UpdateUserDto.prototype, "oldPassword", void 0);
875
+ _ts_decorate([
876
+ (0,class_transformer__rspack_import_1.Expose)(),
877
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
878
+ description: 'Profile picture file ID'
879
+ }),
880
+ (0,class_validator__rspack_import_2.IsOptional)(),
881
+ (0,class_validator__rspack_import_2.IsString)(),
882
+ _ts_metadata("design:type", String)
883
+ ], UpdateUserDto.prototype, "profilePictureId", void 0);
884
+ _ts_decorate([
885
+ (0,class_transformer__rspack_import_1.Expose)(),
886
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
887
+ description: 'Is user active'
888
+ }),
889
+ (0,class_validator__rspack_import_2.IsOptional)(),
890
+ (0,class_validator__rspack_import_2.IsBoolean)(),
891
+ _ts_metadata("design:type", Boolean)
892
+ ], UpdateUserDto.prototype, "isActive", void 0);
893
+ _ts_decorate([
894
+ (0,class_transformer__rspack_import_1.Expose)(),
895
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
896
+ description: 'Is email verified'
897
+ }),
898
+ (0,class_validator__rspack_import_2.IsOptional)(),
899
+ (0,class_validator__rspack_import_2.IsBoolean)(),
900
+ _ts_metadata("design:type", Boolean)
901
+ ], UpdateUserDto.prototype, "emailVerified", void 0);
902
+ _ts_decorate([
903
+ (0,class_transformer__rspack_import_1.Expose)(),
904
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
905
+ description: 'Is phone verified'
906
+ }),
907
+ (0,class_validator__rspack_import_2.IsOptional)(),
908
+ (0,class_validator__rspack_import_2.IsBoolean)(),
909
+ _ts_metadata("design:type", Boolean)
910
+ ], UpdateUserDto.prototype, "phoneVerified", void 0);
911
+ _ts_decorate([
912
+ (0,class_transformer__rspack_import_1.Expose)(),
913
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
914
+ description: 'Additional custom fields'
915
+ }),
916
+ (0,class_validator__rspack_import_2.IsOptional)(),
917
+ (0,class_validator__rspack_import_2.IsObject)(),
918
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
919
+ ], UpdateUserDto.prototype, "additionalFields", void 0);
920
+ /**
921
+ * User Response DTO
922
+ */ class UserResponseDto {
923
+ id;
924
+ name;
925
+ phone;
926
+ email;
927
+ profilePictureId;
928
+ isActive;
929
+ emailVerified;
930
+ phoneVerified;
931
+ lastLoginAt;
932
+ additionalFields;
933
+ createdAt;
934
+ updatedAt;
935
+ deletedAt;
936
+ }
937
+ _ts_decorate([
938
+ (0,class_transformer__rspack_import_1.Expose)(),
939
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
940
+ example: '550e8400-e29b-41d4-a716-446655440000'
941
+ }),
942
+ _ts_metadata("design:type", String)
943
+ ], UserResponseDto.prototype, "id", void 0);
944
+ _ts_decorate([
945
+ (0,class_transformer__rspack_import_1.Expose)(),
946
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
947
+ example: 'John Doe'
948
+ }),
949
+ _ts_metadata("design:type", String)
950
+ ], UserResponseDto.prototype, "name", void 0);
951
+ _ts_decorate([
952
+ (0,class_transformer__rspack_import_1.Expose)(),
953
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
954
+ example: '+1-555-123-4567',
955
+ nullable: true
956
+ }),
957
+ _ts_metadata("design:type", Object)
958
+ ], UserResponseDto.prototype, "phone", void 0);
959
+ _ts_decorate([
960
+ (0,class_transformer__rspack_import_1.Expose)(),
961
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
962
+ example: 'john@example.com'
963
+ }),
964
+ _ts_metadata("design:type", String)
965
+ ], UserResponseDto.prototype, "email", void 0);
966
+ _ts_decorate([
967
+ (0,class_transformer__rspack_import_1.Expose)(),
968
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
969
+ example: 'pic_abc123',
970
+ nullable: true
971
+ }),
972
+ _ts_metadata("design:type", Object)
973
+ ], UserResponseDto.prototype, "profilePictureId", void 0);
974
+ _ts_decorate([
975
+ (0,class_transformer__rspack_import_1.Expose)(),
976
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
977
+ example: true
978
+ }),
979
+ _ts_metadata("design:type", Boolean)
980
+ ], UserResponseDto.prototype, "isActive", void 0);
981
+ _ts_decorate([
982
+ (0,class_transformer__rspack_import_1.Expose)(),
983
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
984
+ example: true
985
+ }),
986
+ _ts_metadata("design:type", Boolean)
987
+ ], UserResponseDto.prototype, "emailVerified", void 0);
988
+ _ts_decorate([
989
+ (0,class_transformer__rspack_import_1.Expose)(),
990
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
991
+ example: false
992
+ }),
993
+ _ts_metadata("design:type", Boolean)
994
+ ], UserResponseDto.prototype, "phoneVerified", void 0);
995
+ _ts_decorate([
996
+ (0,class_transformer__rspack_import_1.Expose)(),
997
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
998
+ example: '2024-12-18T10:30:00.000Z',
999
+ nullable: true
1000
+ }),
1001
+ _ts_metadata("design:type", Object)
1002
+ ], UserResponseDto.prototype, "lastLoginAt", void 0);
1003
+ _ts_decorate([
1004
+ (0,class_transformer__rspack_import_1.Expose)(),
1005
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
1006
+ example: {
1007
+ department: 'Engineering',
1008
+ role: 'Developer'
1009
+ },
1010
+ nullable: true
1011
+ }),
1012
+ _ts_metadata("design:type", Object)
1013
+ ], UserResponseDto.prototype, "additionalFields", void 0);
1014
+ _ts_decorate([
1015
+ (0,class_transformer__rspack_import_1.Expose)(),
1016
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
1017
+ example: '2024-01-15T10:30:00.000Z'
1018
+ }),
1019
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
1020
+ ], UserResponseDto.prototype, "createdAt", void 0);
1021
+ _ts_decorate([
1022
+ (0,class_transformer__rspack_import_1.Expose)(),
1023
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
1024
+ example: '2024-12-18T14:45:00.000Z'
1025
+ }),
1026
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
1027
+ ], UserResponseDto.prototype, "updatedAt", void 0);
1028
+ _ts_decorate([
1029
+ (0,class_transformer__rspack_import_1.Expose)(),
1030
+ (0,_nestjs_swagger__rspack_import_0.ApiPropertyOptional)({
1031
+ example: null,
1032
+ nullable: true
1033
+ }),
1034
+ _ts_metadata("design:type", Object)
1035
+ ], UserResponseDto.prototype, "deletedAt", void 0);
1036
+ class UserLookupResponseDto {
1037
+ id;
1038
+ name;
1039
+ email;
1040
+ }
1041
+ _ts_decorate([
1042
+ (0,class_transformer__rspack_import_1.Expose)(),
1043
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
1044
+ example: '550e8400-e29b-41d4-a716-446655440000'
1045
+ }),
1046
+ _ts_metadata("design:type", String)
1047
+ ], UserLookupResponseDto.prototype, "id", void 0);
1048
+ _ts_decorate([
1049
+ (0,class_transformer__rspack_import_1.Expose)(),
1050
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
1051
+ example: 'John Doe'
1052
+ }),
1053
+ _ts_metadata("design:type", String)
1054
+ ], UserLookupResponseDto.prototype, "name", void 0);
1055
+ _ts_decorate([
1056
+ (0,class_transformer__rspack_import_1.Expose)(),
1057
+ (0,_nestjs_swagger__rspack_import_0.ApiProperty)({
1058
+ example: 'john@example.com'
1059
+ }),
1060
+ _ts_metadata("design:type", String)
1061
+ ], UserLookupResponseDto.prototype, "email", void 0);
1062
+
1063
+ __webpack_require__.d(__webpack_exports__, {
1064
+ Qf: () => (UpdateUserDto),
1065
+ TG: () => (CreateUserDto),
1066
+ kq: () => (UserResponseDto),
1067
+ sx: () => (UserLookupResponseDto)
1068
+ });
1069
+
1070
+
1071
+ },
1072
+ 5142(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
1073
+ var SocialProviderTypeEnum = /*#__PURE__*/ function(SocialProviderTypeEnum) {
1074
+ SocialProviderTypeEnum["GOOGLE"] = "google";
1075
+ SocialProviderTypeEnum["FACEBOOK"] = "facebook";
1076
+ SocialProviderTypeEnum["LINKEDIN"] = "linkedin";
1077
+ SocialProviderTypeEnum["MICROSOFT"] = "microsoft";
1078
+ return SocialProviderTypeEnum;
1079
+ }({});
1080
+
1081
+ __webpack_require__.d(__webpack_exports__, {
1082
+ u: () => (SocialProviderTypeEnum)
1083
+ });
1084
+
1085
+
1086
+ },
1087
+ 3139(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
1088
+ /* import */ var class_validator__rspack_import_0 = __webpack_require__(5421);
1089
+
1090
+ /**
1091
+ * Strong password validation decorator.
1092
+ * Validates that passwords meet complexity requirements to prevent weak passwords.
1093
+ *
1094
+ * @example
1095
+ * ```typescript
1096
+ * @IsStrongPassword()
1097
+ * password!: string;
1098
+ *
1099
+ * // With custom options
1100
+ * @IsStrongPassword({ minLength: 12, requireSpecialChar: false })
1101
+ * password!: string;
1102
+ * ```
1103
+ */ function IsStrongPassword(options = {}, validationOptions) {
1104
+ const { minLength = 8, maxLength = 128, requireUppercase = true, requireLowercase = true, requireNumber = true, requireSpecialChar = true } = options;
1105
+ return function(object, propertyName) {
1106
+ (0,class_validator__rspack_import_0.registerDecorator)({
1107
+ name: 'isStrongPassword',
1108
+ target: object.constructor,
1109
+ propertyName: propertyName,
1110
+ options: validationOptions,
1111
+ validator: {
1112
+ validate (value) {
1113
+ if (typeof value !== 'string') return false;
1114
+ const checks = [
1115
+ value.length >= minLength,
1116
+ value.length <= maxLength,
1117
+ !requireUppercase || /[A-Z]/.test(value),
1118
+ !requireLowercase || /[a-z]/.test(value),
1119
+ !requireNumber || /[0-9]/.test(value),
1120
+ !requireSpecialChar || /[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?~`]/.test(value)
1121
+ ];
1122
+ return checks.every(Boolean);
1123
+ },
1124
+ defaultMessage (args) {
1125
+ const requirements = [];
1126
+ if (minLength > 0) requirements.push(`at least ${minLength} characters`);
1127
+ if (requireUppercase) requirements.push('one uppercase letter');
1128
+ if (requireLowercase) requirements.push('one lowercase letter');
1129
+ if (requireNumber) requirements.push('one number');
1130
+ if (requireSpecialChar) requirements.push('one special character (!@#$%^&*...)');
1131
+ return `Password must contain ${requirements.join(', ')}`;
1132
+ }
1133
+ }
1134
+ });
1135
+ };
1136
+ }
1137
+
1138
+ __webpack_require__.d(__webpack_exports__, {
1139
+ H: () => (IsStrongPassword)
1140
+ });
1141
+
1142
+
1143
+ },
1144
+ 6176(module) {
1145
+
1146
+ module.exports = __rspack_external__nestjs_swagger_7cd450b5;
1147
+
1148
+
1149
+ },
1150
+ 5812(module) {
1151
+
1152
+ module.exports = __rspack_external_class_transformer_c5a479fb;
1153
+
1154
+
1155
+ },
1156
+ 5421(module) {
1157
+
1158
+ module.exports = __rspack_external_class_validator_7b99ef4d;
1159
+
1160
+
1161
+ },
1162
+
1163
+ };