@umapi/contracts 1.0.20 → 1.0.21

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.
@@ -1,10 +1,15 @@
1
1
  import { AuthMethod } from '../interfaces';
2
2
  /**
3
3
  * DTO для запроса OTP
4
+ * Требует указания либо phone, либо email
4
5
  */
5
6
  export declare class OtpRequestDto {
6
7
  method: AuthMethod;
7
8
  phone?: string;
8
9
  email?: string;
10
+ /**
11
+ * Нормализует телефонный номер к стандартному формату
12
+ */
13
+ normalizePhone(): string | undefined;
9
14
  }
10
15
  //# sourceMappingURL=otp-request.dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"otp-request.dto.d.ts","sourceRoot":"","sources":["../../src/dto/otp-request.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAa;IAGtB,MAAM,EAAG,UAAU,CAAC;IAKpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"otp-request.dto.d.ts","sourceRoot":"","sources":["../../src/dto/otp-request.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,qBAAa,aAAa;IAGtB,MAAM,EAAG,UAAU,CAAC;IAMpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,SAAS;CAkBvC"}
@@ -15,8 +15,27 @@ const class_validator_1 = require("class-validator");
15
15
  const interfaces_1 = require("../interfaces");
16
16
  /**
17
17
  * DTO для запроса OTP
18
+ * Требует указания либо phone, либо email
18
19
  */
19
20
  class OtpRequestDto {
21
+ /**
22
+ * Нормализует телефонный номер к стандартному формату
23
+ */
24
+ normalizePhone() {
25
+ if (!this.phone)
26
+ return undefined;
27
+ // Удаляем все нецифровые символы кроме +
28
+ let normalized = this.phone.replace(/[^0-9+]/g, '');
29
+ // Если начинается с 8, заменяем на +7
30
+ if (normalized.startsWith('8')) {
31
+ normalized = '+7' + normalized.substring(1);
32
+ }
33
+ // Если нет кода страны, добавляем +7 (Россия по умолчанию)
34
+ if (!normalized.startsWith('+')) {
35
+ normalized = '+7' + normalized;
36
+ }
37
+ return normalized;
38
+ }
20
39
  }
21
40
  exports.OtpRequestDto = OtpRequestDto;
22
41
  __decorate([
@@ -25,15 +44,17 @@ __decorate([
25
44
  __metadata("design:type", String)
26
45
  ], OtpRequestDto.prototype, "method", void 0);
27
46
  __decorate([
28
- (0, swagger_1.ApiProperty)({ description: 'Номер телефона', required: false, example: '+79991234567' }),
29
- (0, class_validator_1.IsOptional)(),
47
+ (0, swagger_1.ApiProperty)({ description: 'Номер телефона в международном формате', required: false, example: '+79991234567' }),
48
+ (0, class_validator_1.ValidateIf)(o => o.method === interfaces_1.AuthMethod.OTP_PHONE),
49
+ (0, class_validator_1.IsNotEmpty)({ message: 'Телефон обязателен для метода OTP_PHONE' }),
30
50
  (0, class_validator_1.IsString)(),
31
51
  __metadata("design:type", String)
32
52
  ], OtpRequestDto.prototype, "phone", void 0);
33
53
  __decorate([
34
54
  (0, swagger_1.ApiProperty)({ description: 'Адрес электронной почты', required: false, example: 'user@example.com' }),
35
- (0, class_validator_1.IsOptional)(),
36
- (0, class_validator_1.IsEmail)(),
55
+ (0, class_validator_1.ValidateIf)(o => o.method === interfaces_1.AuthMethod.OTP_EMAIL),
56
+ (0, class_validator_1.IsNotEmpty)({ message: 'Email обязателен для метода OTP_EMAIL' }),
57
+ (0, class_validator_1.IsEmail)({}, { message: 'Неверный формат email' }),
37
58
  __metadata("design:type", String)
38
59
  ], OtpRequestDto.prototype, "email", void 0);
39
60
  //# sourceMappingURL=otp-request.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"otp-request.dto.js","sourceRoot":"","sources":["../../src/dto/otp-request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAwE;AACxE,8CAA2C;AAE3C;;GAEG;AACH,MAAa,aAAa;CAczB;AAdD,sCAcC;AAXG;IAFC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,uBAAU,EAAE,OAAO,EAAE,uBAAU,CAAC,SAAS,EAAE,CAAC;IACrG,IAAA,wBAAM,EAAC,uBAAU,CAAC;;6CACC;AAKpB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IACxF,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;4CACI;AAKf;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IACrG,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;4CACK"}
1
+ {"version":3,"file":"otp-request.dto.js","sourceRoot":"","sources":["../../src/dto/otp-request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAoF;AACpF,8CAA2C;AAE3C;;;GAGG;AACH,MAAa,aAAa;IAiBtB;;OAEG;IACH,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAElC,yCAAyC;QACzC,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAEpD,sCAAsC;QACtC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,UAAU,GAAG,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,2DAA2D;QAC3D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,UAAU,GAAG,IAAI,GAAG,UAAU,CAAC;QACnC,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AAtCD,sCAsCC;AAnCG;IAFC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,uBAAU,EAAE,OAAO,EAAE,uBAAU,CAAC,SAAS,EAAE,CAAC;IACrG,IAAA,wBAAM,EAAC,uBAAU,CAAC;;6CACC;AAMpB;IAJC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,wCAAwC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAChH,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,uBAAU,CAAC,SAAS,CAAC;IAClD,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IAClE,IAAA,0BAAQ,GAAE;;4CACI;AAMf;IAJC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IACrG,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,uBAAU,CAAC,SAAS,CAAC;IAClD,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;IAChE,IAAA,yBAAO,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;;4CACnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umapi/contracts",
3
- "version": "1.0.20",
3
+ "version": "1.0.21",
4
4
  "description": "Shared contracts for UMAPI microservices",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",