@experts_hub/shared 1.0.58 → 1.0.60

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.
@@ -0,0 +1 @@
1
+ export * from './match.decorator';
@@ -0,0 +1,2 @@
1
+ import { ValidationOptions } from "class-validator";
2
+ export declare function Match(property: string, validationOptions?: ValidationOptions): (object: any, propertyName: string) => void;
package/dist/index.d.mts CHANGED
@@ -33,10 +33,44 @@ declare const ONBOARDING_PATTERN: {
33
33
  handleFreelancerResumeUpload: string;
34
34
  handleFreelancerDeveloperPreference: string;
35
35
  handleFreelancerProfileQuestion: string;
36
- handleClientProfileQuestion: string;
36
+ handleFreelancerWorkShowcase: string;
37
37
  handleClientAccountCreation: string;
38
+ handleClientProfileQuestion: string;
38
39
  };
39
40
 
41
+ declare class FreelancerCreateAccountDto {
42
+ fullName: string;
43
+ email: string;
44
+ mobileCode: string;
45
+ mobile: string;
46
+ password: string;
47
+ confirmPassword: string;
48
+ }
49
+
50
+ declare class FreelancerUploadResumeDto {
51
+ uuid: string;
52
+ }
53
+
54
+ declare class FreelancerDevelopmentPreferenceDto {
55
+ uuid: string;
56
+ developer: boolean;
57
+ }
58
+
59
+ declare class FreelancerProfileQuestionDto {
60
+ uuid: string;
61
+ question_slug: string;
62
+ answer: any;
63
+ }
64
+
65
+ declare class FreelancerWorkShowcaseDto {
66
+ uuid: string;
67
+ linkedinProfileLink: string;
68
+ kaggleProfileLink?: string | null;
69
+ githubProfileLink?: string | null;
70
+ stackOverflowProfileLink?: string | null;
71
+ portfolioLink?: string | null;
72
+ }
73
+
40
74
  declare const RESUME_PARSER_PATTERN: {
41
75
  handleResumeParsing: string;
42
76
  };
@@ -351,4 +385,4 @@ declare class CompanyProfile extends BaseEntity {
351
385
  foundUsOn: FromUsOn;
352
386
  }
353
387
 
354
- export { AUTHENTICATION_PATTERN, AccountStatus, AccountType, BaseEntity, CompanyProfile, CreateQuestionDto, CreateSubAdminDto, FreelancerProfile, FromUsOn, type IAttachPermissionsToSubAdminResponse, type ICreateSubAdminPayload, type ICreateSubAdminResponse, type IDeleteSubAdminResponse, type IFetchQuestionQuery, type IFetchQuestionResponse, type IFetchSubAdminByIdQuery, type IFetchSubAdminByIdResponse, type IFetchSubAdminQuery, type IFetchSubAdminResponse, type IUpdateSubAdminAccountStatusPayload, type IUpdateSubAdminAccountStatusResponse, type IUpdateSubAdminPayload, type IUpdateSubAdminResponse, JobRMQAdapter, JobTCPAdapter, KindOfHire, LoginDto, LogoutDto, ModeOfHire, ModeOfWork, NatureOfWork, ONBOARDING_PATTERN, OTP_PATTERN, Otp, QUESTION_PATTERN, Question, QuestionFor, RESUME_PARSER_PATTERN, RefreshDto, RefreshToken, ResumeParserLog, SUBADMIN_PATTERN, UpdateSubAdminAccountStatusDto, UpdateSubAdminDto, User, UserRMQAdapter, UserTCPAdapter };
388
+ export { AUTHENTICATION_PATTERN, AccountStatus, AccountType, BaseEntity, CompanyProfile, CreateQuestionDto, CreateSubAdminDto, FreelancerCreateAccountDto, FreelancerDevelopmentPreferenceDto, FreelancerProfile, FreelancerProfileQuestionDto, FreelancerUploadResumeDto, FreelancerWorkShowcaseDto, FromUsOn, type IAttachPermissionsToSubAdminResponse, type ICreateSubAdminPayload, type ICreateSubAdminResponse, type IDeleteSubAdminResponse, type IFetchQuestionQuery, type IFetchQuestionResponse, type IFetchSubAdminByIdQuery, type IFetchSubAdminByIdResponse, type IFetchSubAdminQuery, type IFetchSubAdminResponse, type IUpdateSubAdminAccountStatusPayload, type IUpdateSubAdminAccountStatusResponse, type IUpdateSubAdminPayload, type IUpdateSubAdminResponse, JobRMQAdapter, JobTCPAdapter, KindOfHire, LoginDto, LogoutDto, ModeOfHire, ModeOfWork, NatureOfWork, ONBOARDING_PATTERN, OTP_PATTERN, Otp, QUESTION_PATTERN, Question, QuestionFor, RESUME_PARSER_PATTERN, RefreshDto, RefreshToken, ResumeParserLog, SUBADMIN_PATTERN, UpdateSubAdminAccountStatusDto, UpdateSubAdminDto, User, UserRMQAdapter, UserTCPAdapter };
package/dist/index.d.ts CHANGED
@@ -33,10 +33,44 @@ declare const ONBOARDING_PATTERN: {
33
33
  handleFreelancerResumeUpload: string;
34
34
  handleFreelancerDeveloperPreference: string;
35
35
  handleFreelancerProfileQuestion: string;
36
- handleClientProfileQuestion: string;
36
+ handleFreelancerWorkShowcase: string;
37
37
  handleClientAccountCreation: string;
38
+ handleClientProfileQuestion: string;
38
39
  };
39
40
 
41
+ declare class FreelancerCreateAccountDto {
42
+ fullName: string;
43
+ email: string;
44
+ mobileCode: string;
45
+ mobile: string;
46
+ password: string;
47
+ confirmPassword: string;
48
+ }
49
+
50
+ declare class FreelancerUploadResumeDto {
51
+ uuid: string;
52
+ }
53
+
54
+ declare class FreelancerDevelopmentPreferenceDto {
55
+ uuid: string;
56
+ developer: boolean;
57
+ }
58
+
59
+ declare class FreelancerProfileQuestionDto {
60
+ uuid: string;
61
+ question_slug: string;
62
+ answer: any;
63
+ }
64
+
65
+ declare class FreelancerWorkShowcaseDto {
66
+ uuid: string;
67
+ linkedinProfileLink: string;
68
+ kaggleProfileLink?: string | null;
69
+ githubProfileLink?: string | null;
70
+ stackOverflowProfileLink?: string | null;
71
+ portfolioLink?: string | null;
72
+ }
73
+
40
74
  declare const RESUME_PARSER_PATTERN: {
41
75
  handleResumeParsing: string;
42
76
  };
@@ -351,4 +385,4 @@ declare class CompanyProfile extends BaseEntity {
351
385
  foundUsOn: FromUsOn;
352
386
  }
353
387
 
354
- export { AUTHENTICATION_PATTERN, AccountStatus, AccountType, BaseEntity, CompanyProfile, CreateQuestionDto, CreateSubAdminDto, FreelancerProfile, FromUsOn, type IAttachPermissionsToSubAdminResponse, type ICreateSubAdminPayload, type ICreateSubAdminResponse, type IDeleteSubAdminResponse, type IFetchQuestionQuery, type IFetchQuestionResponse, type IFetchSubAdminByIdQuery, type IFetchSubAdminByIdResponse, type IFetchSubAdminQuery, type IFetchSubAdminResponse, type IUpdateSubAdminAccountStatusPayload, type IUpdateSubAdminAccountStatusResponse, type IUpdateSubAdminPayload, type IUpdateSubAdminResponse, JobRMQAdapter, JobTCPAdapter, KindOfHire, LoginDto, LogoutDto, ModeOfHire, ModeOfWork, NatureOfWork, ONBOARDING_PATTERN, OTP_PATTERN, Otp, QUESTION_PATTERN, Question, QuestionFor, RESUME_PARSER_PATTERN, RefreshDto, RefreshToken, ResumeParserLog, SUBADMIN_PATTERN, UpdateSubAdminAccountStatusDto, UpdateSubAdminDto, User, UserRMQAdapter, UserTCPAdapter };
388
+ export { AUTHENTICATION_PATTERN, AccountStatus, AccountType, BaseEntity, CompanyProfile, CreateQuestionDto, CreateSubAdminDto, FreelancerCreateAccountDto, FreelancerDevelopmentPreferenceDto, FreelancerProfile, FreelancerProfileQuestionDto, FreelancerUploadResumeDto, FreelancerWorkShowcaseDto, FromUsOn, type IAttachPermissionsToSubAdminResponse, type ICreateSubAdminPayload, type ICreateSubAdminResponse, type IDeleteSubAdminResponse, type IFetchQuestionQuery, type IFetchQuestionResponse, type IFetchSubAdminByIdQuery, type IFetchSubAdminByIdResponse, type IFetchSubAdminQuery, type IFetchSubAdminResponse, type IUpdateSubAdminAccountStatusPayload, type IUpdateSubAdminAccountStatusResponse, type IUpdateSubAdminPayload, type IUpdateSubAdminResponse, JobRMQAdapter, JobTCPAdapter, KindOfHire, LoginDto, LogoutDto, ModeOfHire, ModeOfWork, NatureOfWork, ONBOARDING_PATTERN, OTP_PATTERN, Otp, QUESTION_PATTERN, Question, QuestionFor, RESUME_PARSER_PATTERN, RefreshDto, RefreshToken, ResumeParserLog, SUBADMIN_PATTERN, UpdateSubAdminAccountStatusDto, UpdateSubAdminDto, User, UserRMQAdapter, UserTCPAdapter };
package/dist/index.js CHANGED
@@ -34,7 +34,12 @@ __export(index_exports, {
34
34
  CompanyProfile: () => CompanyProfile,
35
35
  CreateQuestionDto: () => CreateQuestionDto,
36
36
  CreateSubAdminDto: () => CreateSubAdminDto,
37
+ FreelancerCreateAccountDto: () => FreelancerCreateAccountDto,
38
+ FreelancerDevelopmentPreferenceDto: () => FreelancerDevelopmentPreferenceDto,
37
39
  FreelancerProfile: () => FreelancerProfile,
40
+ FreelancerProfileQuestionDto: () => FreelancerProfileQuestionDto,
41
+ FreelancerUploadResumeDto: () => FreelancerUploadResumeDto,
42
+ FreelancerWorkShowcaseDto: () => FreelancerWorkShowcaseDto,
38
43
  FromUsOn: () => FromUsOn,
39
44
  JobRMQAdapter: () => JobRMQAdapter,
40
45
  JobTCPAdapter: () => JobTCPAdapter,
@@ -113,10 +118,146 @@ var ONBOARDING_PATTERN = {
113
118
  handleFreelancerResumeUpload: "handle.freelancer.resume.upload",
114
119
  handleFreelancerDeveloperPreference: "handle.freelancer.developer.preference",
115
120
  handleFreelancerProfileQuestion: "handle.freelancer.profile.question",
116
- handleClientProfileQuestion: "handle.client.profile.question",
117
- handleClientAccountCreation: "handle.client.account.creation"
121
+ handleFreelancerWorkShowcase: "handle.freelancer.work.showcase",
122
+ handleClientAccountCreation: "handle.client.account.creation",
123
+ handleClientProfileQuestion: "handle.client.profile.question"
118
124
  };
119
125
 
126
+ // src/modules/onboarding/dto/freelancer-create-account.dto.ts
127
+ var import_class_validator5 = require("class-validator");
128
+
129
+ // src/decorators/match.decorator.ts
130
+ var import_class_validator4 = require("class-validator");
131
+ function Match(property, validationOptions) {
132
+ return function(object, propertyName) {
133
+ (0, import_class_validator4.registerDecorator)({
134
+ name: "Match",
135
+ target: object.constructor,
136
+ propertyName,
137
+ options: validationOptions,
138
+ constraints: [property],
139
+ validator: {
140
+ validate(value, args) {
141
+ const [relatedPropertyName] = args.constraints;
142
+ const relatedValue = args.object[relatedPropertyName];
143
+ return value === relatedValue;
144
+ },
145
+ defaultMessage(args) {
146
+ const [relatedPropertyName] = args.constraints;
147
+ return `${propertyName} must match ${relatedPropertyName}`;
148
+ }
149
+ }
150
+ });
151
+ };
152
+ }
153
+
154
+ // src/modules/onboarding/dto/freelancer-create-account.dto.ts
155
+ var FreelancerCreateAccountDto = class {
156
+ };
157
+ __decorateClass([
158
+ (0, import_class_validator5.IsNotEmpty)({ message: "Please enter full name." }),
159
+ (0, import_class_validator5.IsString)({ message: "Please enter valid full name." })
160
+ ], FreelancerCreateAccountDto.prototype, "fullName", 2);
161
+ __decorateClass([
162
+ (0, import_class_validator5.IsNotEmpty)({ message: "Please enter email." }),
163
+ (0, import_class_validator5.IsEmail)()
164
+ ], FreelancerCreateAccountDto.prototype, "email", 2);
165
+ __decorateClass([
166
+ (0, import_class_validator5.IsNotEmpty)({ message: "Please enter mobile code." }),
167
+ (0, import_class_validator5.Matches)(/^\d+$/, { message: "Mobile code must be numeric" })
168
+ ], FreelancerCreateAccountDto.prototype, "mobileCode", 2);
169
+ __decorateClass([
170
+ (0, import_class_validator5.IsNotEmpty)({ message: "Please enter mobile number." }),
171
+ (0, import_class_validator5.Matches)(/^\d{10}$/, { message: "Mobile must be a 10-digit number" })
172
+ ], FreelancerCreateAccountDto.prototype, "mobile", 2);
173
+ __decorateClass([
174
+ (0, import_class_validator5.IsNotEmpty)({ message: "Please enter password." }),
175
+ (0, import_class_validator5.MinLength)(6),
176
+ (0, import_class_validator5.MaxLength)(32),
177
+ (0, import_class_validator5.Matches)(/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*?&])/, {
178
+ message: "Password must include letters, numbers and symbols."
179
+ })
180
+ ], FreelancerCreateAccountDto.prototype, "password", 2);
181
+ __decorateClass([
182
+ (0, import_class_validator5.IsNotEmpty)({ message: "Please enter confirm password." }),
183
+ Match("password", { message: "Passwords do not match" })
184
+ ], FreelancerCreateAccountDto.prototype, "confirmPassword", 2);
185
+
186
+ // src/modules/onboarding/dto/freelancer-upload-resume.dto.ts
187
+ var import_class_validator6 = require("class-validator");
188
+ var FreelancerUploadResumeDto = class {
189
+ };
190
+ __decorateClass([
191
+ (0, import_class_validator6.IsNotEmpty)({ message: "Please enter uuid." }),
192
+ (0, import_class_validator6.IsUUID)()
193
+ ], FreelancerUploadResumeDto.prototype, "uuid", 2);
194
+
195
+ // src/modules/onboarding/dto/freelancer-development-preference.dto.ts
196
+ var import_class_validator7 = require("class-validator");
197
+ var FreelancerDevelopmentPreferenceDto = class {
198
+ };
199
+ __decorateClass([
200
+ (0, import_class_validator7.IsNotEmpty)({ message: "Please enter uuid." }),
201
+ (0, import_class_validator7.IsUUID)()
202
+ ], FreelancerDevelopmentPreferenceDto.prototype, "uuid", 2);
203
+ __decorateClass([
204
+ (0, import_class_validator7.IsNotEmpty)({ message: "Please select development flag." }),
205
+ (0, import_class_validator7.IsBoolean)()
206
+ ], FreelancerDevelopmentPreferenceDto.prototype, "developer", 2);
207
+
208
+ // src/modules/onboarding/dto/freelancer-profile-question.dto.ts
209
+ var import_class_validator8 = require("class-validator");
210
+ var FreelancerProfileQuestionDto = class {
211
+ };
212
+ __decorateClass([
213
+ (0, import_class_validator8.IsNotEmpty)({ message: "Please enter uuid." }),
214
+ (0, import_class_validator8.IsUUID)()
215
+ ], FreelancerProfileQuestionDto.prototype, "uuid", 2);
216
+ __decorateClass([
217
+ (0, import_class_validator8.IsNotEmpty)({ message: "Please enter question slug." }),
218
+ (0, import_class_validator8.IsString)(),
219
+ (0, import_class_validator8.IsIn)([
220
+ "natureOfWork",
221
+ "expectedHourlyCompensation",
222
+ "modeOfWork",
223
+ "availabilityToJoin",
224
+ "isImmediateJoiner"
225
+ ])
226
+ ], FreelancerProfileQuestionDto.prototype, "question_slug", 2);
227
+ __decorateClass([
228
+ (0, import_class_validator8.IsNotEmpty)({ message: "Please enter answer." })
229
+ ], FreelancerProfileQuestionDto.prototype, "answer", 2);
230
+
231
+ // src/modules/onboarding/dto/freelancer-work-showcase.dto.ts
232
+ var import_class_validator9 = require("class-validator");
233
+ var FreelancerWorkShowcaseDto = class {
234
+ };
235
+ __decorateClass([
236
+ (0, import_class_validator9.IsNotEmpty)({ message: "Please enter uuid." }),
237
+ (0, import_class_validator9.IsUUID)()
238
+ ], FreelancerWorkShowcaseDto.prototype, "uuid", 2);
239
+ __decorateClass([
240
+ (0, import_class_validator9.IsNotEmpty)({ message: "Please enter likedin profile url." }),
241
+ (0, import_class_validator9.IsString)(),
242
+ (0, import_class_validator9.IsUrl)({ require_protocol: true }, { message: "linkedinProfileLink must be a valid URL with protocol (e.g. https://)" })
243
+ ], FreelancerWorkShowcaseDto.prototype, "linkedinProfileLink", 2);
244
+ __decorateClass([
245
+ (0, import_class_validator9.IsOptional)(),
246
+ (0, import_class_validator9.IsUrl)({ require_protocol: true }, { message: "kaggleProfileLink must be a valid URL with protocol (e.g. https://)" })
247
+ ], FreelancerWorkShowcaseDto.prototype, "kaggleProfileLink", 2);
248
+ __decorateClass([
249
+ (0, import_class_validator9.IsOptional)(),
250
+ (0, import_class_validator9.IsUrl)({ require_protocol: true }, { message: "githubProfileLink must be a valid URL with protocol (e.g. https://)" })
251
+ ], FreelancerWorkShowcaseDto.prototype, "githubProfileLink", 2);
252
+ __decorateClass([
253
+ (0, import_class_validator9.IsOptional)(),
254
+ (0, import_class_validator9.IsUrl)({ require_protocol: true }, { message: "stackOverflowProfileLink must be a valid URL with protocol (e.g. https://)" })
255
+ ], FreelancerWorkShowcaseDto.prototype, "stackOverflowProfileLink", 2);
256
+ __decorateClass([
257
+ (0, import_class_validator9.IsOptional)(),
258
+ (0, import_class_validator9.IsUrl)({ require_protocol: true }, { message: "portfolioLink must be a valid URL with protocol (e.g. https://)" })
259
+ ], FreelancerWorkShowcaseDto.prototype, "portfolioLink", 2);
260
+
120
261
  // src/modules/resume-parser/pattern/pattern.ts
121
262
  var RESUME_PARSER_PATTERN = {
122
263
  handleResumeParsing: "handle.resume.parsing"
@@ -135,75 +276,75 @@ var SUBADMIN_PATTERN = {
135
276
  };
136
277
 
137
278
  // src/modules/user/subadmin/dto/create-subadmin.dto.ts
138
- var import_class_validator4 = require("class-validator");
279
+ var import_class_validator10 = require("class-validator");
139
280
  var CreateSubAdminDto = class {
140
281
  };
141
282
  __decorateClass([
142
- (0, import_class_validator4.IsNotEmpty)({ message: "Please enter unique id." })
283
+ (0, import_class_validator10.IsNotEmpty)({ message: "Please enter unique id." })
143
284
  ], CreateSubAdminDto.prototype, "uniqueId", 2);
144
285
  __decorateClass([
145
- (0, import_class_validator4.IsNotEmpty)({ message: "Please enter username." })
286
+ (0, import_class_validator10.IsNotEmpty)({ message: "Please enter username." })
146
287
  ], CreateSubAdminDto.prototype, "userName", 2);
147
288
  __decorateClass([
148
- (0, import_class_validator4.IsNotEmpty)({ message: "Please enter first name." })
289
+ (0, import_class_validator10.IsNotEmpty)({ message: "Please enter first name." })
149
290
  ], CreateSubAdminDto.prototype, "firstName", 2);
150
291
  __decorateClass([
151
- (0, import_class_validator4.IsNotEmpty)({ message: "Please enter last name." })
292
+ (0, import_class_validator10.IsNotEmpty)({ message: "Please enter last name." })
152
293
  ], CreateSubAdminDto.prototype, "lastName", 2);
153
294
  __decorateClass([
154
- (0, import_class_validator4.IsNotEmpty)({ message: "Please enter email." })
295
+ (0, import_class_validator10.IsNotEmpty)({ message: "Please enter email." })
155
296
  ], CreateSubAdminDto.prototype, "email", 2);
156
297
  __decorateClass([
157
- (0, import_class_validator4.IsNotEmpty)({ message: "Please enter mobile number." })
298
+ (0, import_class_validator10.IsNotEmpty)({ message: "Please enter mobile number." })
158
299
  ], CreateSubAdminDto.prototype, "mobile", 2);
159
300
  __decorateClass([
160
- (0, import_class_validator4.IsNotEmpty)({ message: "Please enter the password." })
301
+ (0, import_class_validator10.IsNotEmpty)({ message: "Please enter the password." })
161
302
  ], CreateSubAdminDto.prototype, "password", 2);
162
303
  __decorateClass([
163
- (0, import_class_validator4.IsNotEmpty)({ message: "Please enter account type." })
304
+ (0, import_class_validator10.IsNotEmpty)({ message: "Please enter account type." })
164
305
  ], CreateSubAdminDto.prototype, "accountType", 2);
165
306
  __decorateClass([
166
- (0, import_class_validator4.IsNotEmpty)({ message: "Please enter account status." })
307
+ (0, import_class_validator10.IsNotEmpty)({ message: "Please enter account status." })
167
308
  ], CreateSubAdminDto.prototype, "accountStatus", 2);
168
309
 
169
310
  // src/modules/user/subadmin/dto/update-subadmin-status.dto.ts
170
- var import_class_validator5 = require("class-validator");
311
+ var import_class_validator11 = require("class-validator");
171
312
  var UpdateSubAdminAccountStatusDto = class {
172
313
  };
173
314
  __decorateClass([
174
- (0, import_class_validator5.IsString)()
315
+ (0, import_class_validator11.IsString)()
175
316
  ], UpdateSubAdminAccountStatusDto.prototype, "accountStatus", 2);
176
317
 
177
318
  // src/modules/user/subadmin/dto/update-subadmin.dto.ts
178
- var import_class_validator6 = require("class-validator");
319
+ var import_class_validator12 = require("class-validator");
179
320
  var UpdateSubAdminDto = class {
180
321
  };
181
322
  __decorateClass([
182
- (0, import_class_validator6.IsNotEmpty)({ message: "Please enter unique id." })
323
+ (0, import_class_validator12.IsNotEmpty)({ message: "Please enter unique id." })
183
324
  ], UpdateSubAdminDto.prototype, "uniqueId", 2);
184
325
  __decorateClass([
185
- (0, import_class_validator6.IsNotEmpty)({ message: "Please enter username." })
326
+ (0, import_class_validator12.IsNotEmpty)({ message: "Please enter username." })
186
327
  ], UpdateSubAdminDto.prototype, "userName", 2);
187
328
  __decorateClass([
188
- (0, import_class_validator6.IsNotEmpty)({ message: "Please enter first name." })
329
+ (0, import_class_validator12.IsNotEmpty)({ message: "Please enter first name." })
189
330
  ], UpdateSubAdminDto.prototype, "firstName", 2);
190
331
  __decorateClass([
191
- (0, import_class_validator6.IsNotEmpty)({ message: "Please enter last name." })
332
+ (0, import_class_validator12.IsNotEmpty)({ message: "Please enter last name." })
192
333
  ], UpdateSubAdminDto.prototype, "lastName", 2);
193
334
  __decorateClass([
194
- (0, import_class_validator6.IsNotEmpty)({ message: "Please enter email." })
335
+ (0, import_class_validator12.IsNotEmpty)({ message: "Please enter email." })
195
336
  ], UpdateSubAdminDto.prototype, "email", 2);
196
337
  __decorateClass([
197
- (0, import_class_validator6.IsNotEmpty)({ message: "Please enter mobile number." })
338
+ (0, import_class_validator12.IsNotEmpty)({ message: "Please enter mobile number." })
198
339
  ], UpdateSubAdminDto.prototype, "mobile", 2);
199
340
  __decorateClass([
200
- (0, import_class_validator6.IsNotEmpty)({ message: "Please enter the password." })
341
+ (0, import_class_validator12.IsNotEmpty)({ message: "Please enter the password." })
201
342
  ], UpdateSubAdminDto.prototype, "password", 2);
202
343
  __decorateClass([
203
- (0, import_class_validator6.IsNotEmpty)({ message: "Please enter account type." })
344
+ (0, import_class_validator12.IsNotEmpty)({ message: "Please enter account type." })
204
345
  ], UpdateSubAdminDto.prototype, "accountType", 2);
205
346
  __decorateClass([
206
- (0, import_class_validator6.IsNotEmpty)({ message: "Please enter account status." })
347
+ (0, import_class_validator12.IsNotEmpty)({ message: "Please enter account status." })
207
348
  ], UpdateSubAdminDto.prototype, "accountStatus", 2);
208
349
 
209
350
  // src/modules/question/pattern/pattern.ts
@@ -212,24 +353,24 @@ var QUESTION_PATTERN = {
212
353
  };
213
354
 
214
355
  // src/modules/question/dto/create-question.dto.ts
215
- var import_class_validator7 = require("class-validator");
356
+ var import_class_validator13 = require("class-validator");
216
357
  var CreateQuestionDto = class {
217
358
  };
218
359
  __decorateClass([
219
- (0, import_class_validator7.IsNotEmpty)({ message: "Please enter unique id." })
360
+ (0, import_class_validator13.IsNotEmpty)({ message: "Please enter unique id." })
220
361
  ], CreateQuestionDto.prototype, "questionId", 2);
221
362
  __decorateClass([
222
- (0, import_class_validator7.IsNotEmpty)({ message: "Please enter username." })
363
+ (0, import_class_validator13.IsNotEmpty)({ message: "Please enter question." })
223
364
  ], CreateQuestionDto.prototype, "question", 2);
224
365
  __decorateClass([
225
- (0, import_class_validator7.IsNotEmpty)({ message: "Please enter first name." })
366
+ (0, import_class_validator13.IsNotEmpty)({ message: "Please enter for whom the question is." })
226
367
  ], CreateQuestionDto.prototype, "questionFor", 2);
227
368
  __decorateClass([
228
- (0, import_class_validator7.IsNotEmpty)({ message: "Please enter last name." })
369
+ (0, import_class_validator13.IsNotEmpty)({ message: "Please enter options." })
229
370
  ], CreateQuestionDto.prototype, "options", 2);
230
371
  __decorateClass([
231
- (0, import_class_validator7.IsOptional)(),
232
- (0, import_class_validator7.IsBoolean)({ message: "Whether the question status active" })
372
+ (0, import_class_validator13.IsOptional)(),
373
+ (0, import_class_validator13.IsBoolean)({ message: "Whether the question status active" })
233
374
  ], CreateQuestionDto.prototype, "isActive", 2);
234
375
 
235
376
  // src/adapters/tcp/user.tcp.adapter.ts
@@ -839,7 +980,12 @@ CompanyProfile = __decorateClass([
839
980
  CompanyProfile,
840
981
  CreateQuestionDto,
841
982
  CreateSubAdminDto,
983
+ FreelancerCreateAccountDto,
984
+ FreelancerDevelopmentPreferenceDto,
842
985
  FreelancerProfile,
986
+ FreelancerProfileQuestionDto,
987
+ FreelancerUploadResumeDto,
988
+ FreelancerWorkShowcaseDto,
843
989
  FromUsOn,
844
990
  JobRMQAdapter,
845
991
  JobTCPAdapter,
package/dist/index.mjs CHANGED
@@ -65,10 +65,166 @@ var ONBOARDING_PATTERN = {
65
65
  handleFreelancerResumeUpload: "handle.freelancer.resume.upload",
66
66
  handleFreelancerDeveloperPreference: "handle.freelancer.developer.preference",
67
67
  handleFreelancerProfileQuestion: "handle.freelancer.profile.question",
68
- handleClientProfileQuestion: "handle.client.profile.question",
69
- handleClientAccountCreation: "handle.client.account.creation"
68
+ handleFreelancerWorkShowcase: "handle.freelancer.work.showcase",
69
+ handleClientAccountCreation: "handle.client.account.creation",
70
+ handleClientProfileQuestion: "handle.client.profile.question"
70
71
  };
71
72
 
73
+ // src/modules/onboarding/dto/freelancer-create-account.dto.ts
74
+ import {
75
+ IsNotEmpty as IsNotEmpty4,
76
+ IsEmail,
77
+ Matches,
78
+ MinLength,
79
+ MaxLength,
80
+ IsString
81
+ } from "class-validator";
82
+
83
+ // src/decorators/match.decorator.ts
84
+ import {
85
+ registerDecorator
86
+ } from "class-validator";
87
+ function Match(property, validationOptions) {
88
+ return function(object, propertyName) {
89
+ registerDecorator({
90
+ name: "Match",
91
+ target: object.constructor,
92
+ propertyName,
93
+ options: validationOptions,
94
+ constraints: [property],
95
+ validator: {
96
+ validate(value, args) {
97
+ const [relatedPropertyName] = args.constraints;
98
+ const relatedValue = args.object[relatedPropertyName];
99
+ return value === relatedValue;
100
+ },
101
+ defaultMessage(args) {
102
+ const [relatedPropertyName] = args.constraints;
103
+ return `${propertyName} must match ${relatedPropertyName}`;
104
+ }
105
+ }
106
+ });
107
+ };
108
+ }
109
+
110
+ // src/modules/onboarding/dto/freelancer-create-account.dto.ts
111
+ var FreelancerCreateAccountDto = class {
112
+ };
113
+ __decorateClass([
114
+ IsNotEmpty4({ message: "Please enter full name." }),
115
+ IsString({ message: "Please enter valid full name." })
116
+ ], FreelancerCreateAccountDto.prototype, "fullName", 2);
117
+ __decorateClass([
118
+ IsNotEmpty4({ message: "Please enter email." }),
119
+ IsEmail()
120
+ ], FreelancerCreateAccountDto.prototype, "email", 2);
121
+ __decorateClass([
122
+ IsNotEmpty4({ message: "Please enter mobile code." }),
123
+ Matches(/^\d+$/, { message: "Mobile code must be numeric" })
124
+ ], FreelancerCreateAccountDto.prototype, "mobileCode", 2);
125
+ __decorateClass([
126
+ IsNotEmpty4({ message: "Please enter mobile number." }),
127
+ Matches(/^\d{10}$/, { message: "Mobile must be a 10-digit number" })
128
+ ], FreelancerCreateAccountDto.prototype, "mobile", 2);
129
+ __decorateClass([
130
+ IsNotEmpty4({ message: "Please enter password." }),
131
+ MinLength(6),
132
+ MaxLength(32),
133
+ Matches(/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*?&])/, {
134
+ message: "Password must include letters, numbers and symbols."
135
+ })
136
+ ], FreelancerCreateAccountDto.prototype, "password", 2);
137
+ __decorateClass([
138
+ IsNotEmpty4({ message: "Please enter confirm password." }),
139
+ Match("password", { message: "Passwords do not match" })
140
+ ], FreelancerCreateAccountDto.prototype, "confirmPassword", 2);
141
+
142
+ // src/modules/onboarding/dto/freelancer-upload-resume.dto.ts
143
+ import { IsUUID, IsNotEmpty as IsNotEmpty5 } from "class-validator";
144
+ var FreelancerUploadResumeDto = class {
145
+ };
146
+ __decorateClass([
147
+ IsNotEmpty5({ message: "Please enter uuid." }),
148
+ IsUUID()
149
+ ], FreelancerUploadResumeDto.prototype, "uuid", 2);
150
+
151
+ // src/modules/onboarding/dto/freelancer-development-preference.dto.ts
152
+ import { IsUUID as IsUUID2, IsNotEmpty as IsNotEmpty6, IsBoolean } from "class-validator";
153
+ var FreelancerDevelopmentPreferenceDto = class {
154
+ };
155
+ __decorateClass([
156
+ IsNotEmpty6({ message: "Please enter uuid." }),
157
+ IsUUID2()
158
+ ], FreelancerDevelopmentPreferenceDto.prototype, "uuid", 2);
159
+ __decorateClass([
160
+ IsNotEmpty6({ message: "Please select development flag." }),
161
+ IsBoolean()
162
+ ], FreelancerDevelopmentPreferenceDto.prototype, "developer", 2);
163
+
164
+ // src/modules/onboarding/dto/freelancer-profile-question.dto.ts
165
+ import {
166
+ IsUUID as IsUUID3,
167
+ IsString as IsString2,
168
+ IsNotEmpty as IsNotEmpty7,
169
+ IsIn
170
+ } from "class-validator";
171
+ var FreelancerProfileQuestionDto = class {
172
+ };
173
+ __decorateClass([
174
+ IsNotEmpty7({ message: "Please enter uuid." }),
175
+ IsUUID3()
176
+ ], FreelancerProfileQuestionDto.prototype, "uuid", 2);
177
+ __decorateClass([
178
+ IsNotEmpty7({ message: "Please enter question slug." }),
179
+ IsString2(),
180
+ IsIn([
181
+ "natureOfWork",
182
+ "expectedHourlyCompensation",
183
+ "modeOfWork",
184
+ "availabilityToJoin",
185
+ "isImmediateJoiner"
186
+ ])
187
+ ], FreelancerProfileQuestionDto.prototype, "question_slug", 2);
188
+ __decorateClass([
189
+ IsNotEmpty7({ message: "Please enter answer." })
190
+ ], FreelancerProfileQuestionDto.prototype, "answer", 2);
191
+
192
+ // src/modules/onboarding/dto/freelancer-work-showcase.dto.ts
193
+ import {
194
+ IsNotEmpty as IsNotEmpty8,
195
+ IsOptional,
196
+ IsUrl,
197
+ IsString as IsString3,
198
+ IsUUID as IsUUID4
199
+ } from "class-validator";
200
+ var FreelancerWorkShowcaseDto = class {
201
+ };
202
+ __decorateClass([
203
+ IsNotEmpty8({ message: "Please enter uuid." }),
204
+ IsUUID4()
205
+ ], FreelancerWorkShowcaseDto.prototype, "uuid", 2);
206
+ __decorateClass([
207
+ IsNotEmpty8({ message: "Please enter likedin profile url." }),
208
+ IsString3(),
209
+ IsUrl({ require_protocol: true }, { message: "linkedinProfileLink must be a valid URL with protocol (e.g. https://)" })
210
+ ], FreelancerWorkShowcaseDto.prototype, "linkedinProfileLink", 2);
211
+ __decorateClass([
212
+ IsOptional(),
213
+ IsUrl({ require_protocol: true }, { message: "kaggleProfileLink must be a valid URL with protocol (e.g. https://)" })
214
+ ], FreelancerWorkShowcaseDto.prototype, "kaggleProfileLink", 2);
215
+ __decorateClass([
216
+ IsOptional(),
217
+ IsUrl({ require_protocol: true }, { message: "githubProfileLink must be a valid URL with protocol (e.g. https://)" })
218
+ ], FreelancerWorkShowcaseDto.prototype, "githubProfileLink", 2);
219
+ __decorateClass([
220
+ IsOptional(),
221
+ IsUrl({ require_protocol: true }, { message: "stackOverflowProfileLink must be a valid URL with protocol (e.g. https://)" })
222
+ ], FreelancerWorkShowcaseDto.prototype, "stackOverflowProfileLink", 2);
223
+ __decorateClass([
224
+ IsOptional(),
225
+ IsUrl({ require_protocol: true }, { message: "portfolioLink must be a valid URL with protocol (e.g. https://)" })
226
+ ], FreelancerWorkShowcaseDto.prototype, "portfolioLink", 2);
227
+
72
228
  // src/modules/resume-parser/pattern/pattern.ts
73
229
  var RESUME_PARSER_PATTERN = {
74
230
  handleResumeParsing: "handle.resume.parsing"
@@ -88,76 +244,76 @@ var SUBADMIN_PATTERN = {
88
244
 
89
245
  // src/modules/user/subadmin/dto/create-subadmin.dto.ts
90
246
  import {
91
- IsNotEmpty as IsNotEmpty4
247
+ IsNotEmpty as IsNotEmpty9
92
248
  } from "class-validator";
93
249
  var CreateSubAdminDto = class {
94
250
  };
95
251
  __decorateClass([
96
- IsNotEmpty4({ message: "Please enter unique id." })
252
+ IsNotEmpty9({ message: "Please enter unique id." })
97
253
  ], CreateSubAdminDto.prototype, "uniqueId", 2);
98
254
  __decorateClass([
99
- IsNotEmpty4({ message: "Please enter username." })
255
+ IsNotEmpty9({ message: "Please enter username." })
100
256
  ], CreateSubAdminDto.prototype, "userName", 2);
101
257
  __decorateClass([
102
- IsNotEmpty4({ message: "Please enter first name." })
258
+ IsNotEmpty9({ message: "Please enter first name." })
103
259
  ], CreateSubAdminDto.prototype, "firstName", 2);
104
260
  __decorateClass([
105
- IsNotEmpty4({ message: "Please enter last name." })
261
+ IsNotEmpty9({ message: "Please enter last name." })
106
262
  ], CreateSubAdminDto.prototype, "lastName", 2);
107
263
  __decorateClass([
108
- IsNotEmpty4({ message: "Please enter email." })
264
+ IsNotEmpty9({ message: "Please enter email." })
109
265
  ], CreateSubAdminDto.prototype, "email", 2);
110
266
  __decorateClass([
111
- IsNotEmpty4({ message: "Please enter mobile number." })
267
+ IsNotEmpty9({ message: "Please enter mobile number." })
112
268
  ], CreateSubAdminDto.prototype, "mobile", 2);
113
269
  __decorateClass([
114
- IsNotEmpty4({ message: "Please enter the password." })
270
+ IsNotEmpty9({ message: "Please enter the password." })
115
271
  ], CreateSubAdminDto.prototype, "password", 2);
116
272
  __decorateClass([
117
- IsNotEmpty4({ message: "Please enter account type." })
273
+ IsNotEmpty9({ message: "Please enter account type." })
118
274
  ], CreateSubAdminDto.prototype, "accountType", 2);
119
275
  __decorateClass([
120
- IsNotEmpty4({ message: "Please enter account status." })
276
+ IsNotEmpty9({ message: "Please enter account status." })
121
277
  ], CreateSubAdminDto.prototype, "accountStatus", 2);
122
278
 
123
279
  // src/modules/user/subadmin/dto/update-subadmin-status.dto.ts
124
- import { IsString } from "class-validator";
280
+ import { IsString as IsString4 } from "class-validator";
125
281
  var UpdateSubAdminAccountStatusDto = class {
126
282
  };
127
283
  __decorateClass([
128
- IsString()
284
+ IsString4()
129
285
  ], UpdateSubAdminAccountStatusDto.prototype, "accountStatus", 2);
130
286
 
131
287
  // src/modules/user/subadmin/dto/update-subadmin.dto.ts
132
- import { IsNotEmpty as IsNotEmpty5 } from "class-validator";
288
+ import { IsNotEmpty as IsNotEmpty10 } from "class-validator";
133
289
  var UpdateSubAdminDto = class {
134
290
  };
135
291
  __decorateClass([
136
- IsNotEmpty5({ message: "Please enter unique id." })
292
+ IsNotEmpty10({ message: "Please enter unique id." })
137
293
  ], UpdateSubAdminDto.prototype, "uniqueId", 2);
138
294
  __decorateClass([
139
- IsNotEmpty5({ message: "Please enter username." })
295
+ IsNotEmpty10({ message: "Please enter username." })
140
296
  ], UpdateSubAdminDto.prototype, "userName", 2);
141
297
  __decorateClass([
142
- IsNotEmpty5({ message: "Please enter first name." })
298
+ IsNotEmpty10({ message: "Please enter first name." })
143
299
  ], UpdateSubAdminDto.prototype, "firstName", 2);
144
300
  __decorateClass([
145
- IsNotEmpty5({ message: "Please enter last name." })
301
+ IsNotEmpty10({ message: "Please enter last name." })
146
302
  ], UpdateSubAdminDto.prototype, "lastName", 2);
147
303
  __decorateClass([
148
- IsNotEmpty5({ message: "Please enter email." })
304
+ IsNotEmpty10({ message: "Please enter email." })
149
305
  ], UpdateSubAdminDto.prototype, "email", 2);
150
306
  __decorateClass([
151
- IsNotEmpty5({ message: "Please enter mobile number." })
307
+ IsNotEmpty10({ message: "Please enter mobile number." })
152
308
  ], UpdateSubAdminDto.prototype, "mobile", 2);
153
309
  __decorateClass([
154
- IsNotEmpty5({ message: "Please enter the password." })
310
+ IsNotEmpty10({ message: "Please enter the password." })
155
311
  ], UpdateSubAdminDto.prototype, "password", 2);
156
312
  __decorateClass([
157
- IsNotEmpty5({ message: "Please enter account type." })
313
+ IsNotEmpty10({ message: "Please enter account type." })
158
314
  ], UpdateSubAdminDto.prototype, "accountType", 2);
159
315
  __decorateClass([
160
- IsNotEmpty5({ message: "Please enter account status." })
316
+ IsNotEmpty10({ message: "Please enter account status." })
161
317
  ], UpdateSubAdminDto.prototype, "accountStatus", 2);
162
318
 
163
319
  // src/modules/question/pattern/pattern.ts
@@ -167,27 +323,27 @@ var QUESTION_PATTERN = {
167
323
 
168
324
  // src/modules/question/dto/create-question.dto.ts
169
325
  import {
170
- IsNotEmpty as IsNotEmpty6,
171
- IsOptional as IsOptional3,
172
- IsBoolean as IsBoolean3
326
+ IsNotEmpty as IsNotEmpty11,
327
+ IsOptional as IsOptional4,
328
+ IsBoolean as IsBoolean4
173
329
  } from "class-validator";
174
330
  var CreateQuestionDto = class {
175
331
  };
176
332
  __decorateClass([
177
- IsNotEmpty6({ message: "Please enter unique id." })
333
+ IsNotEmpty11({ message: "Please enter unique id." })
178
334
  ], CreateQuestionDto.prototype, "questionId", 2);
179
335
  __decorateClass([
180
- IsNotEmpty6({ message: "Please enter username." })
336
+ IsNotEmpty11({ message: "Please enter question." })
181
337
  ], CreateQuestionDto.prototype, "question", 2);
182
338
  __decorateClass([
183
- IsNotEmpty6({ message: "Please enter first name." })
339
+ IsNotEmpty11({ message: "Please enter for whom the question is." })
184
340
  ], CreateQuestionDto.prototype, "questionFor", 2);
185
341
  __decorateClass([
186
- IsNotEmpty6({ message: "Please enter last name." })
342
+ IsNotEmpty11({ message: "Please enter options." })
187
343
  ], CreateQuestionDto.prototype, "options", 2);
188
344
  __decorateClass([
189
- IsOptional3(),
190
- IsBoolean3({ message: "Whether the question status active" })
345
+ IsOptional4(),
346
+ IsBoolean4({ message: "Whether the question status active" })
191
347
  ], CreateQuestionDto.prototype, "isActive", 2);
192
348
 
193
349
  // src/adapters/tcp/user.tcp.adapter.ts
@@ -838,7 +994,12 @@ export {
838
994
  CompanyProfile,
839
995
  CreateQuestionDto,
840
996
  CreateSubAdminDto,
997
+ FreelancerCreateAccountDto,
998
+ FreelancerDevelopmentPreferenceDto,
841
999
  FreelancerProfile,
1000
+ FreelancerProfileQuestionDto,
1001
+ FreelancerUploadResumeDto,
1002
+ FreelancerWorkShowcaseDto,
842
1003
  FromUsOn,
843
1004
  JobRMQAdapter,
844
1005
  JobTCPAdapter,
@@ -0,0 +1,5 @@
1
+ export declare class ClientProfileQuestionDto {
2
+ uuid: string;
3
+ question_slug: string;
4
+ answer: any;
5
+ }
@@ -0,0 +1,7 @@
1
+ export declare class ClientCreateAccountDto {
2
+ fullName: string;
3
+ email: string;
4
+ companyName: string;
5
+ password: string;
6
+ confirmPassword: string;
7
+ }
@@ -0,0 +1,8 @@
1
+ export declare class FreelancerCreateAccountDto {
2
+ fullName: string;
3
+ email: string;
4
+ mobileCode: string;
5
+ mobile: string;
6
+ password: string;
7
+ confirmPassword: string;
8
+ }
@@ -0,0 +1,4 @@
1
+ export declare class FreelancerDevelopmentPreferenceDto {
2
+ uuid: string;
3
+ developer: boolean;
4
+ }
@@ -0,0 +1,5 @@
1
+ export declare class FreelancerProfileQuestionDto {
2
+ uuid: string;
3
+ question_slug: string;
4
+ answer: any;
5
+ }
@@ -0,0 +1,3 @@
1
+ export declare class FreelancerUploadResumeDto {
2
+ uuid: string;
3
+ }
@@ -0,0 +1,8 @@
1
+ export declare class FreelancerWorkShowcaseDto {
2
+ uuid: string;
3
+ linkedinProfileLink: string;
4
+ kaggleProfileLink?: string | null;
5
+ githubProfileLink?: string | null;
6
+ stackOverflowProfileLink?: string | null;
7
+ portfolioLink?: string | null;
8
+ }
@@ -0,0 +1,5 @@
1
+ export * from './freelancer-create-account.dto';
2
+ export * from './freelancer-upload-resume.dto';
3
+ export * from './freelancer-development-preference.dto';
4
+ export * from './freelancer-profile-question.dto';
5
+ export * from './freelancer-work-showcase.dto';
@@ -1 +1,2 @@
1
1
  export * from './pattern/pattern';
2
+ export * from './dto';
@@ -3,6 +3,7 @@ export declare const ONBOARDING_PATTERN: {
3
3
  handleFreelancerResumeUpload: string;
4
4
  handleFreelancerDeveloperPreference: string;
5
5
  handleFreelancerProfileQuestion: string;
6
- handleClientProfileQuestion: string;
6
+ handleFreelancerWorkShowcase: string;
7
7
  handleClientAccountCreation: string;
8
+ handleClientProfileQuestion: string;
8
9
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@experts_hub/shared",
3
- "version": "1.0.58",
3
+ "version": "1.0.60",
4
4
  "description": "Shared DTOs, interfaces, and utilities for experts hub applications",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",