@experts_hub/shared 1.0.407 → 1.0.408

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.
package/dist/index.d.mts CHANGED
@@ -183,6 +183,7 @@ declare class FreelancerProfileQuestionDto {
183
183
  uuid: string;
184
184
  question_slug: string;
185
185
  answer: any;
186
+ numberOfHours?: number;
186
187
  currency?: string;
187
188
  }
188
189
 
package/dist/index.d.ts CHANGED
@@ -183,6 +183,7 @@ declare class FreelancerProfileQuestionDto {
183
183
  uuid: string;
184
184
  question_slug: string;
185
185
  answer: any;
186
+ numberOfHours?: number;
186
187
  currency?: string;
187
188
  }
188
189
 
package/dist/index.js CHANGED
@@ -824,6 +824,7 @@ __decorateClass([
824
824
  ], FreelancerDevelopmentPreferenceDto.prototype, "developer", 2);
825
825
 
826
826
  // src/modules/onboarding/dto/freelancer-profile-question.dto.ts
827
+ var import_types = require("class-transformer/types");
827
828
  var import_class_validator23 = require("class-validator");
828
829
  var FreelancerProfileQuestionDto = class {
829
830
  };
@@ -845,6 +846,10 @@ __decorateClass([
845
846
  __decorateClass([
846
847
  (0, import_class_validator23.IsNotEmpty)({ message: "Please enter answer." })
847
848
  ], FreelancerProfileQuestionDto.prototype, "answer", 2);
849
+ __decorateClass([
850
+ (0, import_class_validator23.IsOptional)(),
851
+ (0, import_types.Type)(() => Number)
852
+ ], FreelancerProfileQuestionDto.prototype, "numberOfHours", 2);
848
853
  __decorateClass([
849
854
  (0, import_class_validator23.IsOptional)()
850
855
  ], FreelancerProfileQuestionDto.prototype, "currency", 2);
package/dist/index.mjs CHANGED
@@ -572,6 +572,7 @@ __decorateClass([
572
572
  ], FreelancerDevelopmentPreferenceDto.prototype, "developer", 2);
573
573
 
574
574
  // src/modules/onboarding/dto/freelancer-profile-question.dto.ts
575
+ import { Type } from "class-transformer/types";
575
576
  import {
576
577
  IsUUID as IsUUID8,
577
578
  IsString as IsString5,
@@ -599,6 +600,10 @@ __decorateClass([
599
600
  __decorateClass([
600
601
  IsNotEmpty20({ message: "Please enter answer." })
601
602
  ], FreelancerProfileQuestionDto.prototype, "answer", 2);
603
+ __decorateClass([
604
+ IsOptional5(),
605
+ Type(() => Number)
606
+ ], FreelancerProfileQuestionDto.prototype, "numberOfHours", 2);
602
607
  __decorateClass([
603
608
  IsOptional5()
604
609
  ], FreelancerProfileQuestionDto.prototype, "currency", 2);
@@ -968,7 +973,7 @@ import {
968
973
  MaxLength as MaxLength6,
969
974
  Max
970
975
  } from "class-validator";
971
- import { Type } from "class-transformer";
976
+ import { Type as Type2 } from "class-transformer";
972
977
  var JobLocation = /* @__PURE__ */ ((JobLocation2) => {
973
978
  JobLocation2["ONSITE"] = "ONSITE";
974
979
  JobLocation2["REMOTE"] = "REMOTE";
@@ -990,7 +995,7 @@ var JobBasicInformationDto = class {
990
995
  };
991
996
  __decorateClass([
992
997
  IsOptional11(),
993
- Type(() => Boolean)
998
+ Type2(() => Boolean)
994
999
  ], JobBasicInformationDto.prototype, "isDraft", 2);
995
1000
  __decorateClass([
996
1001
  IsNotEmpty29({ message: "Please enter job role" }),
@@ -1009,13 +1014,13 @@ __decorateClass([
1009
1014
  IsArray({ message: "Skills must be an array" }),
1010
1015
  ArrayNotEmpty({ message: "Please select at least one skill" }),
1011
1016
  IsString12({ each: true, message: "Each skill must be a string" }),
1012
- Type(() => String)
1017
+ Type2(() => String)
1013
1018
  ], JobBasicInformationDto.prototype, "skills", 2);
1014
1019
  __decorateClass([
1015
1020
  ValidateIf3((o) => !o.isDraft),
1016
1021
  IsNumber({}, { message: "Openings must be a number" }),
1017
1022
  Min(1, { message: "There must be at least 1 opening" }),
1018
- Type(() => Number)
1023
+ Type2(() => Number)
1019
1024
  ], JobBasicInformationDto.prototype, "openings", 2);
1020
1025
  __decorateClass([
1021
1026
  ValidateIf3((o) => !o.isDraft),
@@ -1028,17 +1033,17 @@ __decorateClass([
1028
1033
  __decorateClass([
1029
1034
  ValidateIf3((o) => !o.isDraft),
1030
1035
  IsNumber({}, { message: "Country id must be a number" }),
1031
- Type(() => Number)
1036
+ Type2(() => Number)
1032
1037
  ], JobBasicInformationDto.prototype, "countryId", 2);
1033
1038
  __decorateClass([
1034
1039
  ValidateIf3((o) => !o.isDraft),
1035
1040
  IsNumber({}, { message: "State id must be a number" }),
1036
- Type(() => Number)
1041
+ Type2(() => Number)
1037
1042
  ], JobBasicInformationDto.prototype, "stateId", 2);
1038
1043
  __decorateClass([
1039
1044
  ValidateIf3((o) => !o.isDraft),
1040
1045
  IsNumber({}, { message: "City id must be a number" }),
1041
- Type(() => Number)
1046
+ Type2(() => Number)
1042
1047
  ], JobBasicInformationDto.prototype, "cityId", 2);
1043
1048
  __decorateClass([
1044
1049
  ValidateIf3((o) => !o.isDraft),
@@ -1056,7 +1061,7 @@ __decorateClass([
1056
1061
  ValidateIf3((o) => !o.isDraft),
1057
1062
  IsNumber({}, { message: "Expected salary (from) must be a number" }),
1058
1063
  Min(0, { message: "Expected salary (from) cannot be negative" }),
1059
- Type(() => Number)
1064
+ Type2(() => Number)
1060
1065
  ], JobBasicInformationDto.prototype, "expectedSalaryFrom", 2);
1061
1066
  __decorateClass([
1062
1067
  IsOptional11()
@@ -1065,7 +1070,7 @@ __decorateClass([
1065
1070
  ValidateIf3((o) => !o.isDraft),
1066
1071
  IsNumber({}, { message: "Expected salary (to) must be a number" }),
1067
1072
  Min(0, { message: "Expected salary (to) cannot be negative" }),
1068
- Type(() => Number)
1073
+ Type2(() => Number)
1069
1074
  ], JobBasicInformationDto.prototype, "expectedSalaryTo", 2);
1070
1075
  __decorateClass([
1071
1076
  IsOptional11()
@@ -1085,7 +1090,7 @@ __decorateClass([
1085
1090
  IsNumber({}, { message: "Number of hours must be a number" }),
1086
1091
  Min(0, { message: "Number of hours cannot be negative" }),
1087
1092
  Max(40, { message: "Number of hours cannot exceed 40" }),
1088
- Type(() => Number)
1093
+ Type2(() => Number)
1089
1094
  ], JobBasicInformationDto.prototype, "numberOfHours", 2);
1090
1095
  __decorateClass([
1091
1096
  ValidateIf3((o) => !o.isDraft),
@@ -5095,7 +5100,7 @@ import {
5095
5100
  MaxLength as MaxLength11,
5096
5101
  ValidateNested
5097
5102
  } from "class-validator";
5098
- import { Type as Type2 } from "class-transformer";
5103
+ import { Type as Type3 } from "class-transformer";
5099
5104
  var ExperienceDto = class {
5100
5105
  };
5101
5106
  __decorateClass([
@@ -5123,7 +5128,7 @@ var FreelancerExperienceDto = class {
5123
5128
  __decorateClass([
5124
5129
  ValidateNested({ each: true }),
5125
5130
  ArrayMinSize(1, { message: "At least one experience is required." }),
5126
- Type2(() => ExperienceDto)
5131
+ Type3(() => ExperienceDto)
5127
5132
  ], FreelancerExperienceDto.prototype, "experiences", 2);
5128
5133
 
5129
5134
  // src/modules/company-member/pattern/pattern.ts
@@ -5186,7 +5191,7 @@ var FREELANCER_EDUCATION_PATTERN = {
5186
5191
 
5187
5192
  // src/modules/user/freelancer-education/dto/freelancer-education.dto.ts
5188
5193
  import { IsArray as IsArray6, ValidateNested as ValidateNested2, IsString as IsString23, IsNotEmpty as IsNotEmpty41, IsOptional as IsOptional21, ArrayMinSize as ArrayMinSize2 } from "class-validator";
5189
- import { Type as Type3 } from "class-transformer";
5194
+ import { Type as Type4 } from "class-transformer";
5190
5195
  var EducationDto = class {
5191
5196
  };
5192
5197
  __decorateClass([
@@ -5210,7 +5215,7 @@ __decorateClass([
5210
5215
  IsArray6(),
5211
5216
  ArrayMinSize2(1, { message: "At least one education is required." }),
5212
5217
  ValidateNested2({ each: true }),
5213
- Type3(() => EducationDto)
5218
+ Type4(() => EducationDto)
5214
5219
  ], FreelancerEducationDto.prototype, "educations", 2);
5215
5220
 
5216
5221
  // src/modules/user/freelancer-project/pattern/pattern.ts
@@ -5221,7 +5226,7 @@ var FREELANCER_PROJECT_PATTERN = {
5221
5226
 
5222
5227
  // src/modules/user/freelancer-project/dto/freelancer-project.dto.ts
5223
5228
  import { IsArray as IsArray7, ValidateNested as ValidateNested3, IsString as IsString24, IsNotEmpty as IsNotEmpty42, IsOptional as IsOptional22, IsDateString, MaxLength as MaxLength13, ArrayMinSize as ArrayMinSize3 } from "class-validator";
5224
- import { Type as Type4 } from "class-transformer";
5229
+ import { Type as Type5 } from "class-transformer";
5225
5230
  var ProjectDto = class {
5226
5231
  };
5227
5232
  __decorateClass([
@@ -5276,12 +5281,12 @@ __decorateClass([
5276
5281
  IsArray7(),
5277
5282
  ArrayMinSize3(1, { message: "At least one project is required." }),
5278
5283
  ValidateNested3({ each: true }),
5279
- Type4(() => ProjectDto)
5284
+ Type5(() => ProjectDto)
5280
5285
  ], FreelancerProjectDto.prototype, "projects", 2);
5281
5286
  __decorateClass([
5282
5287
  IsArray7(),
5283
5288
  ValidateNested3({ each: true }),
5284
- Type4(() => CaseStudyDto)
5289
+ Type5(() => CaseStudyDto)
5285
5290
  ], FreelancerProjectDto.prototype, "casestudies", 2);
5286
5291
 
5287
5292
  // src/modules/permission/pattern/pattern.ts
@@ -5297,7 +5302,7 @@ var FREELANCER_SKILL_PATTERN = {
5297
5302
 
5298
5303
  // src/modules/user/freelancer-skill/dto/freelancer-skill.dto.ts
5299
5304
  import { IsArray as IsArray8, IsString as IsString25, IsOptional as IsOptional23 } from "class-validator";
5300
- import { Type as Type5 } from "class-transformer";
5305
+ import { Type as Type6 } from "class-transformer";
5301
5306
  var FreelancerSkillDto = class {
5302
5307
  constructor() {
5303
5308
  this.coreSkills = [];
@@ -5308,19 +5313,19 @@ var FreelancerSkillDto = class {
5308
5313
  __decorateClass([
5309
5314
  IsOptional23(),
5310
5315
  IsArray8(),
5311
- Type5(() => String),
5316
+ Type6(() => String),
5312
5317
  IsString25({ each: true })
5313
5318
  ], FreelancerSkillDto.prototype, "coreSkills", 2);
5314
5319
  __decorateClass([
5315
5320
  IsOptional23(),
5316
5321
  IsArray8(),
5317
- Type5(() => String),
5322
+ Type6(() => String),
5318
5323
  IsString25({ each: true })
5319
5324
  ], FreelancerSkillDto.prototype, "tools", 2);
5320
5325
  __decorateClass([
5321
5326
  IsOptional23(),
5322
5327
  IsArray8(),
5323
- Type5(() => String),
5328
+ Type6(() => String),
5324
5329
  IsString25({ each: true })
5325
5330
  ], FreelancerSkillDto.prototype, "frameworks", 2);
5326
5331
 
@@ -5352,7 +5357,7 @@ import {
5352
5357
  Matches as Matches9,
5353
5358
  ValidateIf as ValidateIf5
5354
5359
  } from "class-validator";
5355
- import { Type as Type6 } from "class-transformer";
5360
+ import { Type as Type7 } from "class-transformer";
5356
5361
  var NatureOfWorkEnum = /* @__PURE__ */ ((NatureOfWorkEnum3) => {
5357
5362
  NatureOfWorkEnum3["FULLTIME"] = "FULLTIME";
5358
5363
  NatureOfWorkEnum3["PARTTIME"] = "PARTTIME";
@@ -5394,7 +5399,7 @@ __decorateClass([
5394
5399
  ], CreateFreelancerDto.prototype, "confirmPassword", 2);
5395
5400
  __decorateClass([
5396
5401
  IsBoolean10({ message: "Developer flag must be true or false" }),
5397
- Type6(() => Boolean)
5402
+ Type7(() => Boolean)
5398
5403
  ], CreateFreelancerDto.prototype, "developer", 2);
5399
5404
  __decorateClass([
5400
5405
  IsEnum16(NatureOfWorkEnum, {
@@ -5406,7 +5411,7 @@ __decorateClass([
5406
5411
  __decorateClass([
5407
5412
  IsNumber3({}, { message: "Expected hourly compensation must be a number" }),
5408
5413
  Min3(0, { message: "Expected hourly compensation must be 0 or more" }),
5409
- Type6(() => Number)
5414
+ Type7(() => Number)
5410
5415
  ], CreateFreelancerDto.prototype, "expectedHourlyCompensation", 2);
5411
5416
  __decorateClass([
5412
5417
  IsEnum16(ModeOfWorkEnum, {
@@ -5417,7 +5422,7 @@ __decorateClass([
5417
5422
  ], CreateFreelancerDto.prototype, "modeOfWork", 2);
5418
5423
  __decorateClass([
5419
5424
  IsBoolean10({ message: "isImmediateJoiner must be true or false" }),
5420
- Type6(() => Boolean)
5425
+ Type7(() => Boolean)
5421
5426
  ], CreateFreelancerDto.prototype, "isImmediateJoiner", 2);
5422
5427
  __decorateClass([
5423
5428
  ValidateIf5((o) => o.isImmediateJoiner === false),
@@ -5460,7 +5465,7 @@ import {
5460
5465
  IsNotEmpty as IsNotEmpty45,
5461
5466
  ValidateIf as ValidateIf6
5462
5467
  } from "class-validator";
5463
- import { Transform as Transform2, Type as Type7 } from "class-transformer";
5468
+ import { Transform as Transform2, Type as Type8 } from "class-transformer";
5464
5469
  var NatureOfWorkEnum2 = /* @__PURE__ */ ((NatureOfWorkEnum3) => {
5465
5470
  NatureOfWorkEnum3["FULLTIME"] = "FULLTIME";
5466
5471
  NatureOfWorkEnum3["PARTTIME"] = "PARTTIME";
@@ -5504,7 +5509,7 @@ __decorateClass([
5504
5509
  __decorateClass([
5505
5510
  IsOptional25(),
5506
5511
  IsBoolean11({ message: "Developer flag must be true or false" }),
5507
- Type7(() => Boolean)
5512
+ Type8(() => Boolean)
5508
5513
  ], UpdateFreelancerDto.prototype, "developer", 2);
5509
5514
  __decorateClass([
5510
5515
  IsOptional25(),
@@ -5518,7 +5523,7 @@ __decorateClass([
5518
5523
  IsOptional25(),
5519
5524
  IsNumber4({}, { message: "Expected hourly compensation must be a number" }),
5520
5525
  Min4(0, { message: "Expected hourly compensation must be 0 or more" }),
5521
- Type7(() => Number)
5526
+ Type8(() => Number)
5522
5527
  ], UpdateFreelancerDto.prototype, "expectedHourlyCompensation", 2);
5523
5528
  __decorateClass([
5524
5529
  IsOptional25(),
@@ -5531,7 +5536,7 @@ __decorateClass([
5531
5536
  __decorateClass([
5532
5537
  IsOptional25(),
5533
5538
  IsBoolean11({ message: "isImmediateJoiner must be true or false" }),
5534
- Type7(() => Boolean)
5539
+ Type8(() => Boolean)
5535
5540
  ], UpdateFreelancerDto.prototype, "isImmediateJoiner", 2);
5536
5541
  __decorateClass([
5537
5542
  ValidateIf6((o) => o.isImmediateJoiner === false),
@@ -5834,7 +5839,7 @@ var ADMIN_JOB_PATTERN = {
5834
5839
  };
5835
5840
 
5836
5841
  // src/modules/job-admin/dto/admin-create-job-information.dto.ts
5837
- import { Type as Type8 } from "class-transformer";
5842
+ import { Type as Type9 } from "class-transformer";
5838
5843
  import {
5839
5844
  IsString as IsString32,
5840
5845
  IsEnum as IsEnum21,
@@ -5905,11 +5910,11 @@ __decorateClass([
5905
5910
  IsNotEmpty52({ message: "Currency is required." })
5906
5911
  ], AdminCreateJobInformationDto.prototype, "currency", 2);
5907
5912
  __decorateClass([
5908
- Type8(() => Number),
5913
+ Type9(() => Number),
5909
5914
  IsNumber5({}, { message: "Expected salary from must be a number." })
5910
5915
  ], AdminCreateJobInformationDto.prototype, "expectedSalaryFrom", 2);
5911
5916
  __decorateClass([
5912
- Type8(() => Number),
5917
+ Type9(() => Number),
5913
5918
  IsNumber5({}, { message: "Expected salary to must be a number." })
5914
5919
  ], AdminCreateJobInformationDto.prototype, "expectedSalaryTo", 2);
5915
5920
  __decorateClass([
@@ -5942,7 +5947,7 @@ __decorateClass([
5942
5947
  ], AdminCreateJobInformationDto.prototype, "clientId", 2);
5943
5948
 
5944
5949
  // src/modules/job-admin/dto/admin-update-job-information.dto.ts
5945
- import { Type as Type9 } from "class-transformer";
5950
+ import { Type as Type10 } from "class-transformer";
5946
5951
  import {
5947
5952
  IsString as IsString33,
5948
5953
  IsEnum as IsEnum22,
@@ -6013,11 +6018,11 @@ __decorateClass([
6013
6018
  IsNotEmpty53({ message: "Currency is required." })
6014
6019
  ], AdminUpdateJobInformationDto.prototype, "currency", 2);
6015
6020
  __decorateClass([
6016
- Type9(() => Number),
6021
+ Type10(() => Number),
6017
6022
  IsNumber6({}, { message: "Expected salary from must be a number." })
6018
6023
  ], AdminUpdateJobInformationDto.prototype, "expectedSalaryFrom", 2);
6019
6024
  __decorateClass([
6020
- Type9(() => Number),
6025
+ Type10(() => Number),
6021
6026
  IsNumber6({}, { message: "Expected salary to must be a number." })
6022
6027
  ], AdminUpdateJobInformationDto.prototype, "expectedSalaryTo", 2);
6023
6028
  __decorateClass([
@@ -6177,7 +6182,7 @@ import {
6177
6182
  ValidateIf as ValidateIf7,
6178
6183
  ValidateNested as ValidateNested5
6179
6184
  } from "class-validator";
6180
- import { Type as Type10 } from "class-transformer";
6185
+ import { Type as Type11 } from "class-transformer";
6181
6186
  var CandidateType = /* @__PURE__ */ ((CandidateType2) => {
6182
6187
  CandidateType2["SHORTLISTED"] = "SHORTLISTED";
6183
6188
  CandidateType2["APPLICATNTS"] = "APPLICATNTS";
@@ -6216,14 +6221,14 @@ __decorateClass([
6216
6221
  IsArray13({ message: "Existing candidates should be an array." }),
6217
6222
  ArrayNotEmpty8({ message: "Please select at least one candidate." }),
6218
6223
  ValidateNested5({ each: true }),
6219
- Type10(() => ExistingCandidateDto)
6224
+ Type11(() => ExistingCandidateDto)
6220
6225
  ], CandidatesDto.prototype, "exixtingCandidates", 2);
6221
6226
  __decorateClass([
6222
6227
  ValidateIf7((o) => o.newCandidates?.length > 0),
6223
6228
  IsArray13({ message: "New candidates should be an array." }),
6224
6229
  ArrayNotEmpty8({ message: "Please add at least one candidate." }),
6225
6230
  ValidateNested5({ each: true }),
6226
- Type10(() => NewCandidateDto)
6231
+ Type11(() => NewCandidateDto)
6227
6232
  ], CandidatesDto.prototype, "newCandidates", 2);
6228
6233
  var InterviewInviteDto = class {
6229
6234
  };
@@ -6232,7 +6237,7 @@ __decorateClass([
6232
6237
  ], InterviewInviteDto.prototype, "jobId", 2);
6233
6238
  __decorateClass([
6234
6239
  ValidateNested5({ each: true }),
6235
- Type10(() => CandidatesDto)
6240
+ Type11(() => CandidatesDto)
6236
6241
  ], InterviewInviteDto.prototype, "candidates", 2);
6237
6242
 
6238
6243
  // src/modules/interview/dto/create-f2f-interview.dto.ts
@@ -6301,17 +6306,17 @@ var CONTRACT_PATTERN = {
6301
6306
 
6302
6307
  // src/modules/contract/dto/sign-contract-for-client.dto.ts
6303
6308
  import { IsEnum as IsEnum25, IsNotEmpty as IsNotEmpty60, IsNumber as IsNumber8 } from "class-validator";
6304
- import { Type as Type11 } from "class-transformer";
6309
+ import { Type as Type12 } from "class-transformer";
6305
6310
  var SignContractForClientDto = class {
6306
6311
  };
6307
6312
  __decorateClass([
6308
6313
  IsNotEmpty60({ message: "Job Id is required." }),
6309
- Type11(() => Number),
6314
+ Type12(() => Number),
6310
6315
  IsNumber8({}, { message: "Job ID must be a number." })
6311
6316
  ], SignContractForClientDto.prototype, "jobId", 2);
6312
6317
  __decorateClass([
6313
6318
  IsNotEmpty60({ message: "Freelancer ID is required." }),
6314
- Type11(() => Number),
6319
+ Type12(() => Number),
6315
6320
  IsNumber8({}, { message: "Freelancer ID must be a number." })
6316
6321
  ], SignContractForClientDto.prototype, "freelancerId", 2);
6317
6322
  __decorateClass([
@@ -6321,17 +6326,17 @@ __decorateClass([
6321
6326
 
6322
6327
  // src/modules/contract/dto/sign-contract-for-freelancer.dto.ts
6323
6328
  import { IsEnum as IsEnum26, IsNotEmpty as IsNotEmpty61, IsNumber as IsNumber9 } from "class-validator";
6324
- import { Type as Type12 } from "class-transformer";
6329
+ import { Type as Type13 } from "class-transformer";
6325
6330
  var SignContractForFreelancerDto = class {
6326
6331
  };
6327
6332
  __decorateClass([
6328
6333
  IsNotEmpty61({ message: "Job Id is required." }),
6329
- Type12(() => Number),
6334
+ Type13(() => Number),
6330
6335
  IsNumber9({}, { message: "Job ID must be a number." })
6331
6336
  ], SignContractForFreelancerDto.prototype, "jobId", 2);
6332
6337
  __decorateClass([
6333
6338
  IsNotEmpty61({ message: "Client ID is required." }),
6334
- Type12(() => Number),
6339
+ Type13(() => Number),
6335
6340
  IsNumber9({}, { message: "Client ID must be a number." })
6336
6341
  ], SignContractForFreelancerDto.prototype, "clientId", 2);
6337
6342
  __decorateClass([
@@ -2,5 +2,6 @@ export declare class FreelancerProfileQuestionDto {
2
2
  uuid: string;
3
3
  question_slug: string;
4
4
  answer: any;
5
+ numberOfHours?: number;
5
6
  currency?: string;
6
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@experts_hub/shared",
3
- "version": "1.0.407",
3
+ "version": "1.0.408",
4
4
  "description": "Shared DTOs, interfaces, and utilities for experts hub applications",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",